XML数据库技术.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《XML数据库技术.docx》由会员分享,可在线阅读,更多相关《XML数据库技术.docx(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、XML数据库技术摘要:XML是一种非常好的数据交换语言,经被用于系统之间的通信。对XML数据库,用户和应用程序需要把XML加载到数据库中,用XML传输数据,从关系数据库中把数据检索为XML,从XML DBMS中检索数据,并且把关系型和XML型数据结合成XML。关键字:XML、数据库、体系结构1数据库技术的发展数据处理的发展经历了三大阶段:1950年代中之前的无管理阶段、1950年代末到1960年代末的文件系统阶段、1970年代初至今的数据库系统阶段。数据库系统的前身是文件系统,文件系统是数据库系统发展的基石。但与数据库系统相比,文件系统的冗余大(数据不能共享、重复浪费)、缺乏数据独立性(数据和
2、程序相互依赖、改变困难)、数据未集中管理(无统一管理,无法保证安全性和完整性)。早期数据库的结构种类丰富,如:l 层次数据库如1968年IBM推出的世界上第一个数据库管理系统IMS(Information Management System,信息管理系统)l 网络数据库如1969年美国CODASYL(Conference on Data System Language,数据系数语言协会)下属的DBTG(Data Base Task Group,数据库任务组)发表的DBTG报告l 关系数据库由IBM的E.F.Codd与1970年提出,如IBM的SanJose实验室1977年推出的System R
3、和加州大学的Berkeley分校于1973年推出的INGRES2XML与数据库2.1 XML是数据库吗?如果仅按数据库这个术语的本质来看,XML文件就是数据库,它是数据的集合。作为一种“数据库”格式,XML有一些优势,如它是自描述的、可交换的(Unicode)、能够以树型或图形结构描述数据。同样它也有缺点,如它显得有些繁琐,由于要对它进行解析和文本转换,所以数据访问速度较慢。一个更有用的问题就是在较为宽松的意义上,XML及其周边技术是否可以算作“数据库”数据库管理系统(DBMS)?答案是“在某种程度上是”。从正面来说,XML提供了许多数据库所具备的东西:存储(XML文档)、模式(DTD, XM
4、L schema,RElAX NG 等等)、查询语言(XQuery, XPath, XQL, XML-QL, QUILT等等)、编程接口(SAX, DOM,JDOM)等等。从反面来说,它缺少一些作为实用的数据库所应具备的特性:高效的存储、索引、安全、事务和数据一致性、多用户访问、触发器、交叉查询多个文件等等。因此,尽管在数据量小、用户少和性能要求不太高的环境下,可以将XML文档用作数据库,但是却不适用于用户量大、数据集成度高以及性能要求高的作业环境。2.2 需要XML数据库吗?如果你要查询历史数据、存储Web页面、进行电子商务,而XML又在其中作为数据传输载体,则你就需要选择支持XML的数据库
5、和中间件。例如,你有个电子商务的应用,将XML用作数据交换。那么你的数据最好有个非常规则的结构并且可供非XML程序使用。还有,XML文档所用的某些东西如实体和编码对你来说并不重要总之,你感兴趣的是数据,而不是它在XML内如何存储。在这种情况下,你大概需要一个关系型数据库以及在XML和数据库之间转换数据的软件。如果你的应用程序是面向对象的,你甚至还需要一个在数据库或XML中存取这些对象的系统。另一方面,假如你要从一些结构松散的XML文档建立一个网站。你不但要管理这个网站,还要提供站点内容搜索。你的文档看起来结构比较松散,其中的实体的使用对你来说可能更重要,因为它们是文档结构的重要部分。这种情况下
6、,你也许需要一个纯XML数据库或内容管理系统。这使你可以保持文档的物理结构,支持文件级的事务处理,以及使用XML Query语言进行查询。2.3 数据与文档在选择数据库时最重要因素大概就是你想在数据库存储的究竟是数据还是文档。例如,是简单地把XML当作数据库和(可能不支持XML)应用程序之间的数据转换工具,还是用于集成,就像XHTML和DocBook中的那样?通常这是个偏好,但是却非常重要,因为这会影响到XML在数据库中如何存储。如果想保存数据,则需要的是主要面向数据存储的数据库,如关系数据库或面向对象数据库,也可以是在数据库和XML文档之间转换数据的中间件。如果想保存文档,则需要的是一个专门
7、用来存储文档内容的内容管理系统(content management system)。XML文档可以分为两类:以数据为中心的(data-centric)文档和以文本为中心的(document-centric)文档。(1) 以数据为中心的文档以数据为中心的文档将XML用作数据的传输载体,文档只提供给机器使用。在此,XML通常并不是绝对必要的。也就是说,对于应用程序或数据库而言,(在某个时间段内)数据是否以XML文档的形式存储并不重要。以数据为中心的文档的例子有销售订单、航班时刻表、科研数据及股市汇率。以数据为中心的文档的特点是结构相当规整,数据粒度小(即最小的独立数据单位只存在于PCDATA元素
8、或属性这一级别),很少或没有混合内容。除非在对文档进行验证的时候,同级元素或PCDATA的出现次序一般来说并不重要。以数据为中心的文档中的这类数据可以来自数据库(此时要输入给XML)或在数据库之外(此时要将其存入数据库)。前者的一个例子就是关系数据库现存的大量数据;而从测量系统采集并转化为XML的科研数据就是后者的例子。(2) 以文档为中心的文档以文档为中心的文档通常是供人阅读的。例如书籍、email、广告以及几乎所有人工写成的XHTML文件。其特性为结构不太或根本不规则、数据粒度大(最小的独立数据单位可能存在于包含混合内容的元素甚至整个文档本身),混合内容多。同级元素或PCDATA出现的次序
9、一般来说总是非常重要的。 以文档为中心的文档通常是以XML手工写成,或从其他格式(如RTF, PDF, SGML)转换到XML的,与以数据为中心的文档不同,它们的来源通常不是数据库(将数据插入到模板而得到的文档是以数据为中心的)。(3) 数据、文档与数据库在现实当中,以数据为中心和以文档为中心的文档之间的差别不一定很明显。例如,另一种以数据为中心的文档比如发票,可能含有大粒度的、结构不规则的数据比如零件说明;另一种以文档文中心的文件如用户手册,可能包含细粒度的结构规则的数据(通常为元数据)比如作者和修订日期。其它例子包括法律和医学文书,虽然以松散的形式写成但是却包含离散的数据块例如日期、名称和
10、操作程序,出于法规的原因通常要以完整的文件形式存储。除此之外,弄清文件的这两种特点有助于选择数据库的类型。一般来说,将数据存储于传统的数据库,例如关系型,面向对象型或层次型数据库。这可由第三方的中间件完成或由数据库本身提供内在支持。对于后者,该数据库被称作支持XML的(XML-enabled)。文档可被存储在纯XML数据库(专为存储XML而设计的数据库)或内容管理系统(建在纯XML数据库之上专门用来管理文档的程序)。这些原则并不是绝对的。如果对XML特有的功能不很看重,数据,特别是半结构化的数据可以存储在纯XML数据库,文档也可以存储到传统数据库。何况传统数据库与纯XML数据库之间的界限越来越
11、模糊,传统数据库增加了纯XML的能力,而纯XML数据库增加了对文档存储在外部(通常为关系型)数据库的支持。2.4 XML数据库模型XML DBMS提供存储、修改、查询和删除数据库中的XML文档及其元素的机制。文档可以保存在数据库中,用各种各样的方法来对其进行修改、基于其内容进行查询、按其成分进行删除。可以通过添加、修改或删除其元素来修改文档。“文档”本身提供了一种方便的机制来组织元素,但是从数据库的角度来看,它不是绝对必须的。不过从文档处理的角度来看,文档当然是必须的。W3C的标准规定了XML文档包含7种类型的结构,其中最实用的是元素、属性和字符数据。(1) 概念模式为XML设计关系模式的第一
12、步,就是创建概念模式。如线性的XML文档可以形象化为树结构,每个元素和字符数据对应于树中的节点,这是一个图形概念模式。为了定义XML的抽象概念模式,可以考虑XML规范中的如下定义:l 一个文档包含一个(根)元素l 一个元素包含一个类型名、一个属性集、若干有序的子元素和字符数据l 一个属性由一个名字和一个值组成l 字符数据由文档中不属于标签的字符串组成为了保持数据库设计的表示简单,在设计阶段我们只表示文档的基本信息,而忽略大多数其他来自规范的信息,如注释、处理指令、引用和声明等。XML的概念模式:l 一个(XML)文档定义为包括一个名字和一个元素l 一个元素定义为包括一个类型名、一个属性集、若干
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- XML 数据库技术
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内