(计算机应用技术专业论文)xml与关系数据库的存储与转换技术.pdf_第1页
(计算机应用技术专业论文)xml与关系数据库的存储与转换技术.pdf_第2页
(计算机应用技术专业论文)xml与关系数据库的存储与转换技术.pdf_第3页
(计算机应用技术专业论文)xml与关系数据库的存储与转换技术.pdf_第4页
(计算机应用技术专业论文)xml与关系数据库的存储与转换技术.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机应用技术专业论文)xml与关系数据库的存储与转换技术.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 随着i n t e r n e t 的迅猛发展,计算机网络大大地影响了人类的生 活方式、商业模式。作为互联网最主要应用的w e b 正成为整个世界的 窗口,它实现了全球用户和各种信息的共享。w e b 上各种各样信息 的处理已经超出了h t m l ( h y p e r t e x tm a r k u pl a n g u a g e ) 的处理能力。 在这种情况下,万维网协会( w o r l dw i d ew e bc o n s o r t i u m ,w 3 c ) 于 1 9 9 8 年2 月提出了x m l ( e x t e n s i b l em a r k u pl a n g u a g e ) 。由于x m l 具 有灵活性、易于使用等优点,正在逐渐成为w e b 上信息的主要表示和 交换工具。x m l 是一种面向正文的数据模型,这种模型非常类似于半 结构数据模型。 本文首先介绍了半结构化数据) ( m l 和数据库,指出了x m l 是一种 半结构数据,介绍了半结构数据和传统数据库的区别。x m l 就其本身 而言不是数据库,它必须依赖传统数据库存储数据,才能广泛地运用 到w e b 中。然后介绍了d o m ,它在x m l 与数据库的存储中起着重要的 作用。通过d o m ,x m l 与关系数据库之间能够实现相互的转换过程。 论文以x m l 与关系数据库的转换为主,详细阐述了x m l 与数据库的关 系、使用x m l 带来的好处以及建立从关系数据库到x m l 数据库的转换 机制的必要性。最后给出了它们的理论依据。 论文主要解决了以下问题: ( 1 ) 讨论了d o m 的存取机制和组成,以及d o m 树和d o m 的主要应 用,利用d o m 实现了) ( m l 与关系数据库的转换; ( 2 ) 对x m l 与数据库之间的转换技术进行了研究,实现了这些技 术的转换过程,并以实例的形式对转换过程进行了说明; ( 3 ) 从函数依赖的角度分析了x m l 与数据库相互转换前后的理论 依据; 关键词x m l ,半结构数据,关系数据库,存储,转换,函数依赖 a b s t r a c t w i t ht h er a p i d l yd e v e l o p m e n to fi n t e m e t ,t h ec o m p u t e rn e t w o r k g r e a t l ya f f e c tp e o p l ei nl i v es t y l ea n dc o m m e r c em o d e l a sw e b ,w h i c hi s t h em a i na p p l i c a t i o ni ni n t e m e t ,i sb e c o m i n gt h ew i n d o wo ft h ew h o l e w o r l d ,i th a sr e a l i z e dt h es h a r i n go fw o r l du s e ra n dv a r i o u si n f o r m a t i o n i nw e bs i t e ,h t m l ( h y p e r t e x tm a r k u pl a n g u a g e ) h a sn o tb e e na b l et o d e a lw i t ha l lk i n d so fi n f o r m a t i o n u n d e rt h ec i r c u m s t a n c e ,t h ew o r l d w i d ew e bc o n s o r t i u m , w 3 cf o rs h o r tp r o p o s et h ex m l ( e x t e n s i b l e m a r k u pl a n g u a g e ) a sx m l h a ss o m em e r i t ss u c ha sf l e x i b i l i t y , e a s i n e s s f o ru s ee t c i ti sb e c o m i n gt h em a i nw a yo fi m p o r t a n td i s p l a ya n dt o o lf o r e x c h a n g eo nt h ew e b x m li s d a t am o d e l ,w h i c hi se x t r a o r d i n a r y r e s e m b l i n gs e m i s t r u c t u r e dd a t am o d e l f i r s t ,t h i sp a p e ri n t r o d u c e st h es e m i - s t r u c t u r e dd a t a ( x m l ) a n d d a t a b a s e ,i n d i c a t e sx m l i ss e m i s t r u c m r e dd a t aa n ds h o w st h ed i f f e r e n c e b e t w e e ns e m i s t r u c t u r e dd a t aa n dc o n v e n t i o n a ld a t a b a s e x m li sn o t d a t a b a s e i tm u s td e p e n do nr e l a t i o n a ld a t a b a s es t o r i n gd a t aa n dc a nb e w i d e l yu s e do nw e b n e x t ,d o mi si n t r o d u c e d ,i ti sv e r yi m p o r t a n ti nt h e s t o r a g eb e t w e e n x m la n dd a t a b a s ew i t hd o m t h er e c i p r o c a l c o n v e r s i o no nt h ex m la n dr e l a t i o n a ld a t a b a s ec a nb er e a l i z e d t h i sp a p e r m a i n l yi l l u m i n a t e st h ec o n v e r s i o nb e t w e e nx m l a n dr e l a t i o n a ld a t a b a s e , t h er e l a t i o n s h i pb e t w e e nt h e mi si nd e t a i ld e m o n s t r a t e d ,t h ea d v a n t a g eo f u s i n gx m l a n dt h ee s s e n t i a lf o rc r e a t i n gt h ec o n v e r tm a c h i n e r yb e t w e e n r e l a t i o n a ld a t a b a s ea n dx m ld a t a b a s e l a s t ,t h ep a p e rs h o w st h e o r yg i s t o nx m la n dd a t a b a s e t h i sp a p e rm o s t l ys o l u t e sf o rt h ef o l l o w i n gp r o b l e m s : 1 ) d i s c u s s i n gt h ec o m p o s i n ga n ds t o r a g em e c h a n i s mo nd o m , a n a l y z i n gd o m g e ea n dt h em a i na p p l i c a t i o no fd o m r e a l i z i n gt h e c o n v e r s i o nb e t w e e nx m la n dr e l a t i o n a ld a t a b a s et h r o u g hd o m 2 ) r e s e a r c h i n gt h ec o n v e r s i o nt e c h n o l o g yo nx m la n dd a t a b a s e , j j r e a l i z i n gc o n v e r s i o np r o c e s sa b o u tt h e s et e c h n o l o g i e s ,e x p l a i n i n gt h e p r o c e s sw i t hi n s t a n c e 3 ) f r o mf u n c t i o n a ld e p e n d e n c i e s ,i l l u m i n a t i n g t h e t h e o r yb a s e b e t w e e nx m la n dd a t a b a s et h a th a v eb e e nc o n v e n e d k e y w o r d s :x m l ,s e m i s t r u c t u r e d ,r e l a t i o n a ld a t a b a s e ,s t o r a g e , c o n v e r s i o n ,f u n c t i o n a ld e p e n d e n c y 1 1 1 湖南师范大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本 论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文 的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 学位论文作者签名:爹专夫。7 年 月,日 湖南师范大学学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定, 研究生在校攻读学位期间论文工作的知识产权单位属湖南师范大学。 同意学校保留并向国家有关部门或机构送交论文的复印件和电子版, 允许论文被查阅和借阅。本人授权湖南师范大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。 本学位论文属于 1 、保密口,在年解密后适用本授权书。 2 、不保密嘭 ( 请在以上相应方框内打“ ”) 作者签名玲寺叉日期:0 7 年月; 日 导师签名:盂。f 匕珏日期:唧年占月日 5 7 x m l 与数据库的存储与转换技术 第一章绪论 1 1 研究背景 近十年来,i n t e m e t 以迅猛之势飞速发展,它大大地影响了人类 的生活方式、商业模式。作为互联网最主要应用的w e b 正成为整个世 界的窗口,它实现了全球用户和各种信息的共享。随着i n t e r a c t 的迅 速发展,面对海量的信息查询,静态h t m l 页面已无法满足这种需 求。尽管虽然有硬件方面的原因,但主要还是由目前w e b 语言 h t m l 的性质所引起。随着w e b 应用的日益广泛,它的局限性越 来越明显,不能满足i n t e m e t 上信息的交换和表示。可扩展标记语言 ( e x t e n s i b l em a r k u pl a n g u a g e ,简称x m l ) 在这种情况下应运而生。 1 9 9 8 年2 月,w 3 c ( 全球互联网联盟) 给了其正式的x m l l 0 版本, 并正式推荐x m l 成为下一代互联网标准。 由于w e b 的出现,使得电子数据的管理从最初直接以传统的、具 有良好结构的d b ,以及后来使用h t m l 页面的大量手写的无结构数 据,发展到了今天的爆炸性增长的半结构数据阶段【1 】。 要想对这种半结构数据进行有效的管理是十分困难的,因为传统 的d b m s ,如r d b 或0 0 d b 主要是用于管理结构数据的。因而,传 统的d b 技术不适合用于半结构数据的管理。正是因为如此,“如何 对半结构数据进行有效的管理”这一新的研究领域便由此产生。目前, 国际d b 界已把“半结构数据的有效管理问题”列入未来1 0 年的重要 研究方向之一“。, 近年来,x m l 作为w e b 上一种新的数据表示及交换标准,使得 通过i n t e m e t 进行数据交换和集成成为可能。x m l 是一种面向正文的 数据模型,这种数据模型非常类似于半结构数据模型。我们知道, h t m l 语言是面向表现( p r e s e n t a t i o n ) 格式( 布局) 的,信息的内容 靠用户来理解:而x m l 语言则是面向内容的,其语义是隐含在语言 的标记之中,因此x m l 更适合用来表示数据。基于x m l 的w e b 数 硕十学忙论文 据不仅是一种新的w e b 数据组织形式,而且x m l 面向数据交换的特 性推动了w e b 应用模式的发展,它反映的是有结构且有自描述能力的 数据。x m l 另一个令人感到振奋的特点是,它的出现将把w e b 变成 d b l 3 】。因此,将w e b 上的半结构数据迁移到x m l 上海量数据进行有 效管理的十分有意义的一步,该领域也是目前国际上一个新的研究热 点。 1 2 研究目的与意义 如今,面向w e b 的数据挖掘w e b 上有海量的数据信息,怎样对 这些数据进行复杂的应用成了现在数据库技术的研究热点。从数据库 研究的角度出发,w e b 网站上的信息也可以看作一个数据库,一个更 大、更复杂的数据库。w e b 上的每一个站点就是一个数据源,每个数 据源都异构的,因而每一个站点之间的信息和组织都不一样,这就构 成了一个巨大的异构数据的集成问题,只有将这些站点的数据都集成 起来,才能提供给用户一个统一的视图,才有可能从巨大的数据资源 中获取所需的东西。 当有大量的数据需要处理分析的时候,最好的方法是把这些数 据放到数据库中进行处理,几乎所有的大型商业应用系统都是和数据 库相关的。所以,如果想要把x m l 很好地应用于商业领域,就必须 要和数据库相联系。只有这样,才有可能把w e b 上海量的半结构化信 息结构化,对它们进行统一的管理和控制。但需要注意的是,x m l 本身不是数据库,从严格意义上来说,x m l 仅仅意味着x m l 文档。 尽管一个x m l 文档包括有数据,但是如果不通过其它的软件来进行 数据处理的话,它本身也不过是一个文本文件,所以x m l 本身并不 能和数据库相联系,但是如果加上一些其它的辅助工具,就可以把整 个x m l 看成是一个数据库系统,而x m l 文本本身可以看成是数据 库中的数据区,d t d 或者s c h e m a 可以看成是数据库的模式库的处理 工具。当然,它还是缺少一些数据库所必需的东西。比如有效的存储 组织、索引结构、安全性、事务处理、数据完整性、触发器、多用户 处理机制等。 x m l 与数据库的存储与转换技术 由此可以看出,要想很好的处理x m l 数据,最好的办法就是和 现有发达的数据库技术相联系。于是,如何将现在的关系数据库数据 转换为x m l 文档,以便在i n t e r n e t 上进行传输,是一个非常热门的 研究课题。同时,企业为了保持现有的业务处理系统,不希望立即、 完全更改现在的数据存储形式。于是,如何将从i n t e m e t 上获取到的 x m l 文档的内容保存到已有的数据库中,也是急需解决的一个问题。 根据这种需求,研究实现x m l 与关系数据库转换系统,实现x m l 文档与关系数据之间的转换,是一个应用方向十分重要,应用领域十 分广阔的系统。因此,研究x m l 与数据库数据的双向转换,具有以 下几方面的意义【 j : ( 1 ) 实现从关系数据库数据到x m l 文档的转换,就可以很容易 实现数据的w e b 化,提供更为全面的数据服务。而且当数据以x m l 形式存在时,就不会有各种异构数据库之间需要第三方工具进行转换 的问题。 ( 2 ) 实现从x m l 文档到关系数据库数据的转换,可以更好的管 理x m l 数据。虽然x m l 文档有很多优点,但是当文档很大时不但 不好管理而且不易查询。所以当数据转化为关系数据库的数据后,我 们就可以充分的利用关系数据库的成熟技术进行各种处理。 1 3 本文的组织 本文共分六章,第一章介绍了课题的研究背景、研究的目的及意义; 第二章介绍了半结构化数据、x m l 的相关技术以及x m l 与半结构 化数据的联系,并且介绍了x m l 与数据库的区别以及两者结合的重要 性; 第三章主要介绍了d o m 的存取机制和组成,以及d o m 树和d o m 的主要应用。第二、三章的内容作为第四、五章研究的基础; 第四章阐述了x m l 与关系数据库之间相互转换的技术,并对这种 技术进行了详细的分析和阐述,并通过仿真实验对其进行应用; 第五章从理论的角度论述了x m l 与数据库转换前后的函数依赖关 系,从理论上论证了x m l 与数据库进行转换的可行性。 硕十学位论文 第六章结论,对本文的研究工作进行了总结,并指出了进一步的研 究方向。 x m l 与数据阵的存储0 转换技术 第二章x m l 半结构化数据与数据库 2 1x m l 简介 x m l ( e x t e n d e dm a r k u pl a n g u a g e ) 4 1 作为一种新的、w w w 上的数 据交换标准,正在引起人们极大的关注。x m l 是标准通用标记语言 s g m l ( i s 0 8 8 9 7 ) 一个子集,用于支持i n t e m e t 上结构文档的交换。 和h t m l 相比,x m l 是面向内容的。x m l 因具有更多的语义、良 好的可扩展性、简单易用、自描述等特点而特别适用于w e b 上的数据 交换。可以预言,x m l 将成为数据和交换的事实标准;同时,大量 的x m l 数据也将很快出现在w e b 上。目前,对x m l 数据的存储和 查询方面的研究方兴未艾睁7 1 。x m l 数据模型与半结构化数据模型有 很多相似性。可以说,x m l 是w w w 上的半结构化数据。它既为半 结构数据的研究提供了广阔的应用前景,同时也推动了半结构数据研 究的发展。 x m l 具有以下主要性质: ( 1 ) 扩展性。x m l 是一种用于设计标记语言的原语言,而不是 像h t m l 那样,是一种只有一个固定标记集的特定标记语言。x m l 允许用户根据其需要创建自己的标记,这些标记可通过x i ld t d ( d o c u m e n tt y p ed e f i n i t i o n ) 加以定义,x m l 的可扩展性就在于此。 ( 2 ) 灵活性。x m l 提供了一种结构化的数据表现方式,从而使 用户界面与结构化数据相分离。 ( 3 ) 自描述性。x m l 文档通常包含一个文档类型( d t d ) 声明, 从而便于机器理解数据的意义。x m l 文档中的数据可被任何能够对 x m l 数据进行解析的应用程序提取、分析和处理,并以所需格式显 不。 对于x m l 文档而言,它是一个树状结构,如图2 1 所示。在树 根有一个根结点d o c u m e n t ,即文档本身。根结点下有三个结点,分 别为: 硕十学位论文 e x m l d e c l :此结点下所包含的内容为x m l 文档的声明。 e d o c t y p e :此结点下所包含的内容为文档类型定义,即d t d 。 e e l e m e n t :此结点下包含了x m l 文档主体的所有内容,是文 档主体的根。子结点e l e m e n t n 可以有自己的下级子结点。 图2 1 捌l 文档树状结构 2 2 半结构化数据 2 2 1 半结构数据简介 目前,w w w 上存在着各种形式的数据,其数据结构的组织方式 也各不相同,一种极端情况是:完全结构化的数据,有非常良好的数 据库结构,如关系数据库、面向对象数据库中的数据。另一种极端情 况是:还存在着一些完全没有结构的数据,如声音文件、图像文件以 及原始的文本文件等。然而,现实世界中大多数数据则处于两种极端 情况之间,究其原因也是多方面的: ( 1 ) 数据可能是有结构的,但用户对其并不知晓; ( 2 ) 用户可能知道其结构,但为了浏览有意将其忽略掉; ( 3 ) 结构可能隐含在数据中( 如具有格式的文本文件中的数据) , 而不是象传统d b 中那样,具有明显、严格及规整的结构; ( 4 ) 数据可能具有非传统的格式,如a s n 1 交换格式; ( 5 ) 数据的模式可能十分巨大且经常变化,因而不得不将忽略。 因此,人们提出了半结构数据的概念【7 1 。 w e b 数据的不断增长和异构数据源集成的应用,导致了大量半结 构数据的产生。这些数据的一个显著特点是结构隐含、不规则或不完整。 x m l 与数据序的存储与转换技术 例如,对于一个有关学生信息的w e b 页面集合,虽然每一个页面描述 的学生不同,但它们都包含了相似的信息( 学号、姓名、性别、年龄、 专业等) 。这一信息框架隐含在数据中,通常需要通过分析工具( 如文 本分析器等) 才能获得。由于没有严格的结构限制,有的页面可能会缺 少某些信息,而有的页面则可能会多出若干信息。另外,每条信息的表 达方式也可能不尽相同。例如对学生的专业表示,有的可能用表格形式 表示,而有的则可能使用一段有关专业情况的文字描述来表示。 从传统的关系d b 来看,数据结构不规整的原因是缺少预先定 义的、固定的、且独立于数据的模式框架。由于半结构数据是自描述 数据,数据中可能存在模式,但模式与数据间的界限模糊,新数据的 加入没有预先定义的模式约束,所以这种由数据描述的模式会随着数 据的不断增多而扩展。 综上所述,我们可以给半结构数据下一个定义:半结构数据是介 于严格结构化的数据( 如关系或面向对象d b 中的数据) 和完全无结 构化的数据( 如声音文件、图像文件等) 之间的数据形式。 半结构数据有其内在的结构,但这种数据可能表现得不规则、或 者其结构可能经常变化,甚至可能不完整并且同样的概念还可能使用 不同的类型表示。 2 2 2 半结构化数据的特点 半结构化数据具有如下一些特点: ( 1 ) 隐含的模式信息。半结构数据具有一定的结构,但其结构 与数据混在一起,没有显示的模式定义,如h t m l 文件。 ( 2 ) 不规则的结构。一个数据集合可能由异构的元素组成,例 如学生集合中某些学生有电子邮件地址,而另一些学生则没有。同样 的信息可能由不同类型的数据表示,例如某些姓名是字符串,而另外 一些则是由f i r s t n a m e 和l a s m a m e 组成的复杂结构。 ( 3 ) 无严格的类型约束。由于没有一个预先定义的模式,以及 数据在结构上的不规则性,所以缺乏对数据的严格类型约束。 总之,半结构化数据结构存在一定的结构,但这些结构或者没有 硕十学何论文 被清晰地描述,或者是经常动态变化的,或者过于复杂而不能被传统 的模式定义来表示。半结构化数据的模式与传统的关系或面向对象数 据的模式不同,主要有如下一些特点: ( 1 ) 对半结构化数据来说,是先有数据后有模式; ( 2 ) 半结构化数据的模式是用于描述数据的结构信息,而不是 数据结构进行强制性约束; ( 3 ) 半结构化数据的模式是非精确的,它可能只描述数据的一 部分结构,也可能根据数据处理的不同阶段的视角而不同。 ( 4 ) 半结构化数据的模式可能规模很大甚至超过源数据的规模, 而且会由于数据的不断更新而处于动态的变化过程中。 由于没有强制性的模式限制,使半结构数据具有很大的灵活性, 能够满足网络这种复杂分布环境的需要,但是也给数据处理带来了很 大的困难,使得数据处理的效率低下,很难具有实用性。传统的数据 库处理技术很难适应于这种半结构数据模型。半结构数据一般需要专 门的查询语言、更新方法及查询计算、对象集成、结构发现、查询分 解等技术。半结构数据的研究相对来说是一个较新的领域,其模式在 实际的数据处理中有着广泛的用途。 2 2 3x m l 与半结构数据 x m l 是标准通用标记语言s g m l ( i s 0 8 8 9 7 ) 一个子集,用于支 持i n t e m e t 上结构文档的交换。s g m l 即标准通用语言( s t a n d a r d g e n e r a l i z e dm a r k u pl a n g u a g e ) ,它是一种用标记来描述文档资料的通 用语言,它包含了一系列的文档类型定义。 x m l 是元标记语言,用户可以定义自己需要的标记。它描述的 是文档的结构和语义而不是页面元素的格式化,它的主要优点是 9 】: ( 1 ) 支持异质系统间的相互通信 x m l 使用的是公开的、非专有格式,允许不同专业开发与自己 特定领域有关的标记语言,不受版权、专利、商业秘密等知识产权的 限制。x m l 的开放性决定了它可以成为异质系统之间进行交流的媒 介,各系统只要装有x m l 解析工具,便可以理解以x m l 为中介由 x m l 与数据库的存储0 转换技术 其它系统传送的信息加以利用,而不用考虑对方的信息格式和使用特 殊的软件完成跨平台的交流,有力地促进了电子商务的发展。 ( 2 ) 保植性 x m l 是s g m l 的精简网络版。s g m l 是一种有着十几年历史 的国际标准。是一种用标记来描述文档资料的通用语言,它当初设计 的目标之一就是为文件提供较长的寿命,以保证新版的文书编辑软件 能够对旧版的文件忠实地再现。x m l 保留了这个特性,它是自描述 的,使用非常简单的数据格式,可以用纯a s c i i 文本来书写。同时, 与压缩文件和串行的j a v a 对象不同,即使丢失一部分数据仍是可以 读取的。 ( 3 ) 结构化和集成的数据 由于x m l 是数据驱动的标识语言,文档中的所有的内容几乎都是 数据和数据结构,只有关于x m l 解析器或包装程序用的指令不以数据 为主。因而,x m l 很容易进行精确检索,并可以根据多种来源集成数 据并将其作为一个文档来显示。数据可以进行重新排列,数据的各部 分可以根据用户的操作隐藏或显示,这有利于数据仓库的集成处理。 总之,和h t m l 相比,x m l 是面向内容的,它具有更多的结构 和更多的语义、良好的可扩展性、简单而易于掌握、自描述等特点, 适用于w e b 上的数据交换,所以我们认为x m l 将成为数据组织和交 换的事实标准,并且大量的x m l 数据将很快出现在w e b 上。x m l 与半结构化数据之间的对应关系是非常明显的,它实质上是半结构化 数据的一个特例。许多对于半结构化数据的模型和处理的研究可以明 显地应用到x m l 数据上,可以说,x m l 是w w w 上的半结构化数 据,它既为半结构化数据的研究提供了广阔的应用前景,同时也推动 了半结构化数据研究的发展。 对x m l 数据的有效存储和查询方面的研究是当前x m l 研究中 的重要而紧迫的问题。当前已有的半结构化数据( x m l 、b i t e x ) 存 储方式大致可分为三类: ( 1 ) 字节流方式 硕十学侮论文 这种方式也就相当于纯文本方式存储,x m l 特有的树结构被线 性化为字节流。该方式易于实现,当存储和检索整个文档时存取效率 较高。但是,每次查询文档时都必须通过分析器处理后才能获得结果, 而且所有被分析过的文档在查询过程中都常驻内存,以保持其结构信 息。相对我们的模式匹配方式的查询显然是一个不小的缺点。 ( 2 ) 元模型方式 它利用传统d b m s 及其数据模型来存储x m l 文档。例如,将结 点转换成r d b 中的属性。在这种情况下,它与结构化的数据库的交 互方式与d b m s 相同,有许多现成的应用程序可用。缺点是简单的 查询也需要多种开销,通过s q l 界面存取x m l 数据还导致与存取无 关的开销以及存储构造x m l 文本视图时速度较慢等。通常的做法是: 在逻辑数据层与物理层之问增加代理层,其代价是降低了查询速度。 这是当前在x m l 的存储研究中通常使用的方式。 ( 3 ) 混合方式 某种程度的数据细节被设置为“阂”,比这个粒度粗的结构被存储 在数据库中已结构化的部分,而更精细的部分被存储在数据库的字节 流化的对象部分。这种方式的特点是数据查询较快而数据库更新较慢。 2 3x m l 与数据库 目前所讲的x m l 数据库是一个能够在应用中管理x m l 数据和 文档的数据库系统。此x m l 数据库是一个x m l 文档及其部件的集 合,这些文档是持久的并且是可以操作的【l i t1 3 】。即x m l 数据库可以 对x m l 文档进行存储管理和数据查询,并通过一个能管理和控制 x m l 文档集合本身及其所表示信息的系统来维护的数据库。 目前,对x m l 数据库的存储有两种不同的观点:一部分人认为 x m l 只有按x m l 本身结构存储的数据库才是x m l 数据库( n a t i v e x m ld a t a b a s e ) ,另一部分人主张如果能实现对x m l 的存取则它就是 x m l 数据库( x m l e n a b l e dd a t a b a s e ) 地有一部分人主张两者的结合 ( h v b r i dx m ld a t a b a s e ) 下面分别介绍【9 j : ( 1 ) n x d x m l 与数据库的存储与转换技术 n x d ( n a t i v ex m ld a t a b a s e ) 的根本设计目的显存储和处理x m l 文档。它的基本存储单元是x m l 文档。这种数据库维持原有文档的 数据结构和相关的元数据,而不关心数据的底层存储格式( 何种类型 数据库) ,只能通过x m l 特有的相关技术对数据进行存储。可以通 过在原文档的基础上建立相应的索引机制来提高检索效率。 ( 2 ) x e d b x e d b ( x m l e n a b l e dd a t a b a s e ) 的基本数据存储单元是x m l 文档中的数据,主要通过增加一个映射来管理x m l 数据的存储,它 是x m l 与数据库之间转换的桥梁。数据首先要与一个明确的格式相 匹配,符合要求的才能根据预先定义好的规则映射到数据库中,但可 能会损失一部分数据和最初的文档结构。同时可以从现有的数据库中 动态生成x m l 页面,但很难与当初存入的原始页面完全符合。 o r a c l e 8 i 、s q ls e r v e r 2 0 0 0 都不同程度地支持这种功能。 ( 3 ) h x d h x d ( h y b r i dx m ld a t a b a s e ) 根据具体应用,可以做n x d 也 可以做x e d b ,e x c e l o n 、o z o n e 就采用了该思想。 综上所述,n x d 方法保留了文档的原始结构和x m l 原有的优 点,存储简单,同时有利于对文档的进一步的数据挖掘。但信息的格 式、内容相对繁杂,索引建立庞大复杂。x e d b 方法将x m l 文档的 数据进行重新组织,存储相对规范,有利于在此基础上对信息进行电 子商务等方面的应用,但破坏了原文档的结构,很难恢复到原文档, 在存入关系数据库时要进行分解、映射等预处理。由于可以通过指定 的d t d 规范化x m l 文档并利用数据库技术中成熟的统计、并发事 务处理等技术,因而这种策略得到了广泛的应用。 实际上,x m l 本身并不是数据库,尽管x m l 中有数据,但是如 果不通过其它的软件来进行数据处理的话,它本身只不过是一个文本 文件。只有当x m l 被用于数据存储时,x m l 以及与之相关的技术结 合就组成一个数据库管理系统,该系统主要由以下四个部分组成: ( 1 ) d t d 或者s c h e m a s 是对x m l 数据库的逻辑模型的描述,对 硕十学位论文 x m l 数据库数据的存储、访问都要依据该模型进行: ( 2 ) x m l 文档相当于x m l 数据库的数据区,一个x m l 文档就 是一个基本的存储单元,相当于关系数据库中的一个表格; ( 3 ) x m l 中的x q u e r y 、x p a t h 、x q l 、x m l q l 、q u i l t 是数 据库查询语言; ( 4 ) s a x 、d o m 相当于数据库管理工具,实施对x m l 数据库 的编辑、管理以及与其它语言的编程接口功能。 2 3 1x m l 与数据库的对比 从上面的论述我们知道,x m l 本身不是数据库,如果以数据库 观点,x m l 文档可看作是数据库,它的d t d 看作是数据库的模式, 数据库的模式描述了数据库的结构,指数据库管理的数据实体的类 型、特征、实体间联系的表示。d t d 描述文档的结构,非常类似数 据库模式描述了数据类型和属性间的关系,它定义了所允许的元素类 型、属性和实体,并表述对它们的组合方式的约束条件。在数据库系 统中,数据模式存储在数据目录( 系统数据字典) 中,是数据目录的 最基本内容,d b m s 通过数据目录来管理和访问数据模式。 传统数据库技术与x m l 技术有很多相似之处,表2 。1 是它们之 间的一个简单的对比。 表2 - 1 x m l 与数据库比较 比较参数数据库 x m l 数据有结构半结构 模型网状、关系、面向对象等 半结构化( 图或树状结构) 模式数据目录( 系统数据字典中) d t d 、x m l - s c h e m a 等 显示样式 简单 丰富、由x s l 、c s s 指定 查询语言s q lx q u e r y 、x m l q l ( 类s q l ) 查询规范完备的完备的 数据更新完全支持代理软件支持 编程接口j d b c 、o d b c 等 d o m 、s a x 事务支持尚不支持 使用面向应用面向应用、面向人 x m l 与数据库的存储与转换技术 2 3 2x m l 与数据库的结合 从严格的意义上来说,x m l 本身不是数据库,x m l 仅仅意味着 x m l 文档。尽管一个x m l 文档包含数据,但是如果不通过其它的 软件来进行数据处理的话,它本身只不过是一个文本文件。所以x m l 本身不能和数据库挂上钩,但是加上一些辅助工具,可以把整个x m l 看成是一个数据库系统,x m l 文本本身可以看成是数据库中的数据 区,不过x m l 还缺少很多在真实的数据库中所必备的内容:有效的 存储、索引、安全、多用户访问、触发等。而在w e b 设计中,信息 存储多以后台数据库为核心,这就使x m l 与数据库的相互映射应用 浮出水面。事实上,正是由于x m l 与数据库的结合,才使得x m l 技术逐步成为第二代的w e b 语言和电子商务的标准平台,以及成为 网上数据交换的标准。 目前,x m l 数据库存在以下缺点u _ 7 】: ( 1 ) x m l 数据库没有足够强大的科技力量与关系数据库抗争。 关系数据库具有数据结构化、最低冗余度、较高的程序和数据独立性、 易于扩充、易于编制应用程序等优点。而x m l 数据库缺乏多重管理、 协同工作能力、规划能力、易用性,这些好处恰恰是大型数据库所拥 有的优点。 ( 2 ) x m l 数据库缺乏明确的标准。x p a t h 查询语法不支持组、 排列和摘要数据等功能,功能更强的x q u e r y 查询语言仍然仅仅是一 个设计表格。更有甚的是x q u e r y 正式化的时候,依然不支持数据更 新、插入和删除等功能。 ( 3 ) 版权问题。由于x m l 数据库生产厂商和销售商拥有对x m l 数据库查询语言和编程界面的所有权,所以如果x m l 数据库存在问 题,采用x m l 数据库的用户就必须等待,直到这些问题被数据库生 产厂商解决为止。 目前代表业界最新动态的几个主流数据库产品,如o r a c l e 9 i 、s q l s e r v e r 2 0 0 0 、2 0 0 5 都支持x m l 技术,s q ls e r v e r 以两种方式支持 x m l :通过s q ls e r v e r 本身的功能,以及通过发布称为s q lx m l 硕十学位论文 的额外的功能。下面就s q l s e r v e r 本身的功能作一些分析。s q l s e r v e r 所固有的x m l 功能:可以通过h t t p 、模板查询、f o r x m l 子句和 o p e n x m l ( ) 函数来访问s q l s e r v e r 。 ( 1 ) 通过h r r p 访问s q ls e r v e r 数据库。首先设置虚拟目录: 在“开始”菜单中找到“s q ls e r v e r ”,然后找到 c o n f i g u r es q lx m l s u p p o r ti ni s s ”,指定虚拟目录的名称、物理名称、服务器名称、数据 库名称和注册信息。 例:设置一个n o r t h w i n d 的虚拟目录。 h t t p :l o c a l h o s t n o r t h w i n d ? s q l = s e l e c t + 宰+ f r o m + s h i p p e r s + f o rx m l + a u t o ,e l e m e n t s + & r o o t = s h i p p e r s ( 2 ) 在h t t p 上调用一个模板查询。一个模板查询就是一个包含 s q l 查询的x m l 文件,模板作为文件保存在服务器上。因此,如果 在一个叫做g e t s h i p p e r s x m l 的模板中封装了s h i p p e r s s e l e c t 查询。那 么,u r l 查询的形式如下: h t t p :l o c a l h o s t n o r t h w i n d t e m p l a t e s g e t s h i p p e r s x m l 其中模板可以带参数。 ( 3 ) 用f o rx m l 子句将数据读取成x m l 格式。该方法从s q l s e r v e r 表中返回数据,可以把它们看做x m l 数据。相应的语法为: s e l e c t f r o m w h e r e o r d e r b y f o r x m l ( r a w l a u t o ,e l e m e n t s i e x p l i c i t ) 通过指定3 种模式r a w ,a u t o 和e x p l i c i t 之一,就可返回具有一定样 式信息的数据。 r a w 模式将结果中的每个记录作为一个普通的行元素来返回,它 被包含在一个 标签中,并将每个列的值作为一个属性。 a u t o 模式将每个记录作为行元素返回,根据源表或视图对它进 行命名。如果查询从一个表返回多个列,那么每个列的值就会被作为 表元素的属性来返回。另外,还可以配合使用,e l e m e n t s 参数,从 而指定表格中的列映射为独立的元素。 e x p l i c i t 模式可以指定返回的x m l 树的结构,来提供对返回的文 x m l 与数据库的存储,转换技术 档格式的全面控制;x m l 各个列字段都可以独立地映射为属性或子 元素,支持强制性的嵌套,可以生成i d i d r e f 从而高效的表达多对 多的关系,还支持元素间的平行关系。 ( 4 ) o p e n x m l ( ) 函数可以像操作表那样返回x m l 数据,可以 转换成内存中的一个r o w s e t 。要运用r o w s e t ,首先要调用 s px m l存储过程,实际上,它将 解析成一_ p r e p a r e d o c u m e n t x m l 个数据树,并将那个数据的句柄传递到o p e r t x m l ( ) 函数。o p e n x m l ( ) 函数可以带有三个参数:用于x m l 文档内部显示的句柄,一个 r o w p a t t e r n 参数和一个f l a g s 参数。r o w p a t t e m 参数指定了应该返回原 始的x m l 文档中的哪些结点。f l a g s 参数指定了以属性为中心的映射 ( 结果集中列名符合属性名) 或以元素为中心的映射( 结果集中列名 符合元素名) 。在处理完x m l 数据后,可以调用s px m lr e m o v e d o c u m e n t 将x m l 数据从内存中删除。 由以上的分析可知,正是由于关系数据库拥有强大的功能、良好 的结构特征支持x m l ,所以x m l 与关系数据库的结合将是一种必 然。 2 4 本章小结 本章首先简单介绍了x m l 的概念和基本特征,指出了x m l 是 一种半结构数据,然后介绍了半结构数据的基本特点,和传统关系数 据的区别,分析了x m l 与半结构化数据之间的联系。x m l 就其本 身而言不是数据库,它必须依赖传统数据库存储数据,才能广泛地运 用到w e b 中。从传统数据库对x m l 的支持,最后分析了关系数据库 和x m l 的结合将是必然趋势。 硕十学位论文 第三章d o m 的应用 3 1 引言 x m l ( e x t e n s i b l em a r k u pl a n g u a g e ,可扩展标记记语言) 是w 3 c 推荐在w e b 上数据表示和交换标准,是s g m l 的简化版本。作为 s g m l 语言标准的一种改进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论