ImageVerifierCode 换一换
格式:DOCX , 页数:11 ,大小:23.51KB ,
资源ID:20784632      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/20784632.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于XML技术的数据库应用.docx)为本站会员(b****2)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于XML技术的数据库应用.docx

1、基于XML技术的数据库应用基于XML的数据库应用1 关系型数据库1.1关系模型关系模型是在1970年由IBM的研究员E.F.Codd博士首先提出,在之后的几十年中,关系模型的概念得到了充分的发展并逐渐成为数据库架构的主流模型。简单来说,关系模型指的就是二维表格模型。下面列出了关系模型中的常用概念。 关系:可以理解为一张二维表,每个关系都具有一个关系名,就是通常说的表名。 元组:可以理解为二维表中的一行,在数据库中经常被称为记录。 属性:可以理解为二维表中的一列,在数据库中经常被称为字段。 域:属性的取值范围,也就是数据库中某一列的取值限制。 关键字:一组可以唯一标识元组的属性。数据库中常称为主

2、键,由一个或多个列组成。 关系模式:指对关系的描述,其格式为:关系名(属性1,属性2,属性N)。在数据库中通常称为表结构。1.2 关系型数据库关系型数据库是支持采用了关系模型的数据库,简单来说,关系模型就是指二维表模型。关系型数据库以行和列的形式存储数据,以便于用户理解。这一系列的行和列被称为表,一组表组成了数据库。用户用查询(Query)来检索数据库中的数据。一个Query是一个用于指定数据库中行和列的SELECT语句。关系型数据库通常包含下列组件:客户端应用程序(Client)数据库服务器(Server)数据库(Database)Structured Query Language(SQL,

3、结构化查询语言)是Client端和Server端的桥梁,Client用SQL来向Server端发送请求,Server返回Client端要求的结果。现在流行的大型关系型数据库有IBM DB2、Oracle、SQL Server、SyBase、Informix等。 关系型数据库管理系统中储存与管理数据的基本形式是二维表。1.3 关系型数据库的优点关系型数据库相比其他模型的数据库而言,有着以下优点: 容易理解:二维表结构是非常贴近逻辑世界的一个概念,关系模型相对网状、层次等其他模型来说更容易理解。 使用方便:通用的SQL语言使得操作关系型数据库非常方便,程序员甚至于数据管理员可以方便地在逻辑层面操作

4、数据库,而完全不必理解其底层实现。 易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大降低了数据冗余和数据不一致的概率。近几年来,非关系型数据库在理论上得到了飞快的发展,例如:网状模型、对象模型、半结构化模型等。网状模型拥有性能较高的优点,通常应用在对性能要求较高的系统中;对象模型符合面向对象应用程序的思想,可以完美地和程序衔接,而不需要另外的中间转换组件,例如现在很多的OR Mapping组件;半结构化模型随着XML的发展而得到发展,现在已经有了很多半结构化的数据库模型。但是,凭借其理论的成熟、使用的便捷以及现有应用的广泛,关系型数据库仍然是系统应用中的主流方案。2 XM

5、L数据库2.1 XML文档类型XML文档有两种类型:面向文档处理和面向数据处理。面向文档处理的文档是利用XML来获取自然(人类)语言的那些文档,如用户手册。它们以复杂或无规则的结构和混合内容为特征,而且文档的物理结构非常重要。这些文档的处理侧重于给用户提供信息的最终表示,因此它们也被称作面向表示的文档。面向数据处理的文档主要利用XML来传送数据,这些文档包括销售订单、病人记录和科学数据等。面向数据处理的XML文档的物理结构,如元素的顺序,或者数据被存储为属性还是子元素,通常不是很重要。它们的特征是高度有序的结构,并且同时带有那些数据结构的多个副本,类似于关系数据库系统中的多条记录。这些文档的处

6、理通常侧重于应用程序间的数据交换,因此它们也被称作面向消息的文档。这两类文档有时也简称为面向文档的(XML)文档和面向数据的(XML)文档。面向数据处理和面向文档处理的XML文档之间的区别不大,然而文档上需要执行的操作是不一样的。在一个面向文档处理的XML文档中,需要执行的操作包括检索整个文档、搜索关键词、修改一部分或重排一部分。在一个面向数据处理的XML文档中,需要执行的操作包括检索文档的一个指定部分、搜索元素和数据的一个特定的结合、修改或删除一个简单的元素或一块简单的数据,或者给文档添加一个新元素。2.2 XML数据库 XML数据库是一个XML文档的集合,这些文档是持久的并且是可操作的。目

7、前XML数据库有三种类型:(1) XML Enabled Database(XEDB),即能处理XML的数据库。其特点是在原有的数据库系统上扩充对XML数据的处理功能,使之能适应XML数据存储和查询的需要。一般的做法是在数据库系统之上增加XML映射层,这可以由数据库供应商提供,也可以由第三方厂商提供。映射层管理XML数据的存储和检索,但原始的XML元数据和结构可能会丢失,而且数据检索的结果不能保证是原始的XML形式。其核心方法是将XML的树型结构拆分为表。XEDB的基本存储单位与具体的实现紧密相关。(2) Native XML Database(NXD),即纯XML数据库。其特点是以自然的方式

8、处理XML数据,以XML文档作为基本的逻辑存储单位,针对XML的数据存储和查询特点专门设计适用的数据模型和处理方法。(3) Hybrid XML Database(HXD),即混合XML数据库。根据应用的需求,可以视其为XEDB或NXD的数据库,典型的例子是Ozone(http:/www.ozone-db.org/frames/home/what.html)。3 XED和NXD的比较 早期的XML数据以文档(文本文件)的方式存储,以关键字查询等信息检索手段进行查询,简单易用,适合XML文档不频繁更新的场合。由于缺乏系统的存储和查询机制的支持,造成查询能力低,不能满足复杂条件的查询,更谈不上查询

9、优化。一些现有的商业数据库管理系统扩充了处理XML数据的功能。利用现有数据库成熟的技术,把XML查询要求转换为数据库的查询表达,如SQL,由数据库的查询引擎优化查询表达,产生查询执行计划并执行,最后再将查询的结果转换为XML数据。这种方法在一定程度上解决了查询复杂性的要求,但是多次转换带来的问题是效率的降低和查询语义的混淆,即阻抗失配的问题。(1)从本质上讲,传统的RDBMS不支持层次的和半结构化的数据形式,只有经过转换处理才能把嵌套的XML数据放到简单的关系表中。XML是具有动态结构的数据,这正是XML可扩展性的关键,而传统的RDBMS不能处理这种数据。(2)SQL适合于查询受确定模式支配的

10、表,它不是为具有动态、复杂特性的XML设计的。(3)传统的RDBMS查询引擎需要把针对XML的查询翻译成很多关系表的检索和连接运算,这不仅造成查询性能的下降,而且往往不能产生代价较小的查询执行计划。3.1 XED的优、劣势 优势: 用户不需要将传统数据库中原有数据重新移植到新系统中,只是稍加改变,就可以支持XML应用。 传统数据库技术,例如并发控制、事务等,已经很成熟 传统数据库知识和经验依然有效,用户不需要为了应用XML而再去学习一套新的数据库技术 劣势: XML文档存入到数据库时需要将其打碎,取出时需要组合,不仅耗时,而且文档的格式可能会不同 XML文档和数据库之间的模式转换复杂,在前期开

11、发阶段需要投入很大 对以文档为中心、格式复杂的XML文档处理性能较差 在采纳XML技术标准方面较落后 3.2 NXD的优、劣势 优势: XML文档存取无需模式转换,存取速度快 对格式复杂的XML文档支持比XED要好 支持大部分的最新的XML技术标准 劣势: 在传统数据库技术方面比较薄弱,没有经过时间的考验 知识比较新,相应的支持人员和文档资源都比较少 应用范围仅局限在XML应用领域中 事实上,两者的优劣并没有统一的答案,而是和具体的应用相关。在开发格式较简单、数据内容比格式更重要的应用时,XED是不错的选择,特别是在已有的传统数据库上要提供XML的访问接口的情况下。相反,如果XML文档格式复杂

12、,数据本身就有层次性关系,或是只有XML数据的时候,就可以考虑NXD,因为它提供更好的性能,对XML标准有更完备的支持。另外,由于NXD在事务、数据恢复等传统数据库技术方面还未得到时间的检验,因此对数据安全要求较高的一些应用,如银行、金融系统的数据库,建立在传统数据库上的XED相对来说更有优势。 4 Native XML数据库NativeXML数据库管理系统(纯XML数据库管理系统,NXDBMS)以自然的方式处理XML数据,没有因数据模型转换而带来信息丢失和性能下降。NXDBMS与非NXDBMS的区别在于”:有效地支持XML数据的自描述性、半结构化和有序性;系统直接存储XML数据,而不是把XM

13、L数据转换成关系模型或者面向对象模型,由关系数据库或面向对象数据库存储;直接支持XML查询语言,如XQuery,XPath,而不是转换成SQL或OQL(对象查询语言)。什么是真正的Native XML数据库(纯XML数据库,NXD)? RonaldBourret在“XML and Databases”一文中给出有关NXD的定义。一个纯XML数据库是指:(1) 相对于XML文档中的数据,定义了XML文档的逻辑模型,并且按照该模型来存储和检索文档。这样的模型至少应该包括元素、属性、PCDATA以及文档顺序。如Xpath数据模型、XMLInfoset(参阅http:/www.w3.Or6TR/xml

14、-infoset)以及由DOM和SAX10(参阅http:/saxsourceforgenet和ht-tp/wwwsaxprojectorg)中的事件所隐含的模型都是这类数据模型。(2) 就像关系数据库以行作为表的逻辑存储基本单位一样,NXDBMS以XML文档作为NXD的逻辑存储基本单位。(3) 不要求有任何特殊的基本物理存储模型,它可以建立在关系的、层次的或面向对象数据库之上,或者使用诸如索引文件、压缩文件此类的专门存储格式。从这个定义至少可以简单地总结以下三点:纯XML数据库是专门用来存储XML数据的,而且完整无缺地存储XML模型的所有成分;文档进得去出得来;NXD可能根本就不是真正独立的

15、数据库。随着对NXD的认识与技术的发展,人们越来越不认同上述定义的第三点。在这一方面,德国的SoftwareAG(参阅ht-tp:www2,softwareagcorn)公司走在了前面。他们认为建立和设计NXD系统是用来处理XML数据的,而不仅仅是在任意数据模型的数据库系统之上附加一层对XML的处理。用户可能一眼看不出它们之间有什么差别,但最根本的不同是在系统的内部。在很多方面,XML都不同于其他著名的数据模型(如关系模型、面向对象模型)。将XML映射到另一种数据模型常常引起“阻抗失配”,并导致功能和性能上的局限”。因此,NXD必须直接存储XML数据。一般认为,NXD应该具有以下几个特性:文档

16、集合(Document Collection),查询、更新,事务、锁和并发控制、二次开发接口等。 文档集合 很多NXD产品都支持“文档集合”的概念,就像文件系统中的一个目录或RDBMS中的一张表,一个“文档集合”把一类文档聚集在一起,方便用户操作。集合级别上的查询、修改操作都会反映到集合内的每个文档。 一般说来,一个“文档集合”关联一种模式。将文档加入到有模式的文档集合时,会对要加入的文档进行模式检查。只有符合文档集合模式的文档才可以加入。 不同于RDBMS中表必须具有模式,NXD还提供无模式的文档集合,即将一个文档放入该集合中时,不必检查该文档的模式。无模式的文档集合大大方便了用户存储格式很

17、难统一,半结构化的XML文档。 查询语言 XPath和XQuery是W3C推荐的针对XML文档的查询语言。目前大部分NXD产品都支持XPath,。另外还有一些NXD提供专有的查询语言。 Path是基于XML文档树形模型,给出从某个结点起的查询路径,搜索文档。目前,XPath作为数据库查询语言还有不少缺陷:不能分组、排序、连接等。 而XQuery更像一种编程语言,支持循环等逻辑,支持分组、排序、连接等。相对于传统数据库的标准SQL语句, XQuery在对XML数据的查询方面,是一种功能更强大、更易于编程的方法。 事务、锁和并发控制 几乎所有的NXD都支持事务处理。但是,锁的粒度通常比较大,对整个

18、文档的而不是对文档片断(Fragment)的,所以多用户并发性的支持相对较低。具体的并发程度取决于应用程序以及文档的构成。 二次开发接口 几乎所有NXD都提供编程接口:提供数据库连接、浏览元数据、执行查询和返回结果的方法。返回结果通常是XML字符串、DOM树、返回文档的SAX解析器。如果查询返回结果是多个文档或文档片断(Fragment)的话,通常都会提供枚举这些结果的方法。对于以Client/Server模式运行的数据库产品,还可以将结果通过网络协议(如HTTP)回传给客户端。 Round-tripping NXD一个重要特性是它为XML文档提供了Round-tripping:可以将XML文

19、档存放在NXD中,而且再取回同样的文档。对于以文档为中心的应用程序来说非常重要,因为易被XED忽略的CDATA部分、实体应用、注释和处理指令是这些文档不可缺少的组成部分。特别是对于法律和医学领域中格式不允许随意窜改的数据文档。 所有NXD都能够在元素(element)、属性(Attribute)、CDATA和文件顺序的级别上为文档提供Round-tripping,能达到的具体程度取决于数据库产品。5 四个主流的Native-XML数据库随着XML日益广泛的应用,XML数据存储的问题摆在了我们的面前。如何有效地管理大量的XML文档是亟待解决的问题。 最初,通常的做法是先把XML数据转换为关系映射

20、将其存入关系数据库中,写入和读出都要进行相应的转换。但是随着XML数据量的日益增加,这显然不是最好的解决办法。于是诞生了专门为XML文档存储设计的Native-XML数据库,也被称为原生XML数据库或纯XML数据库。 本文介绍了四个主流的Native-XML数据库,并略作比较,以为需要大量存储XML数据的用户提供Native-XML数据库的选择参考。 5.1 Tamino数据库系统 Tamino是Software AG公司提供的原生XML数据库服务器产品,它于1999年发布第一个版本。Tamino将XML文档以原生的方式存储在Tamino数据库中,而不是映射到其他的数据库模型。 Tamino数

21、据库具有以下特点: (1)支持HTTP方方法GET、PUT、DELETE和HEAD读取文档、存储或替换文档、删除文档那个和取得文档的有关信息,并支持SSL安全机制; (2)提供Java、ActiveX、JavaScript和.net等语言的API访问; (3)支持XML Schema模式验证; (4)也可存储其他类型的对象,如图像、声音文件、Word文档、HTML页面文件等; (5)方便与其他数据库进行集成与数据转化; (6)支持XQuery查询语言; (7)提供图形界面和命令行方式的交互。 Tamino XML服务器提供了用于处理XML的现代数据库系统必需的完整功能。它支持一个数据库系统所应

22、该具有的所有特性,包括多用户操作、事务支持、强大的备份功能,海量处理能力、可扩充性和高性能。 5.2 eXist数据库系统 eXistz是一个开放源代码的纯XML数据库系统,于2001年开始研究。 eXist数据库具有以下特点: (1)完全用Java语言实现; (2)不支持XML Schema模式验证; (3)支持XPath查询; (4)支持可插拔的存储后端,即后端既可以纯XML数据库也可以是关系数据库; (5)支持HTTP、XML-RPC、SOAP和WebDAV接口访问和Java专用的XML:DB API; 5.3 Xindice数据库 Xindice是一个开放源码的Native-XML数据

23、库。它也是Apache自由软件基金会下的一个项目。Xindice可以以XML本身的格式存储和检索XML数据,它有个缺点是不能处理较大的XML文档数据。这个大小没有严格的定义,通常1M字节以上的就可以认为比较大。 Xindice具有以下特点: (1)完全用Java语言写成,因此需要JDK的支持; (2)支持DOM和SAX编程接口; (3)仅支持well formed的XML文档,不支持Schema验证。 (4)提供Java语言的XML:DB API接口和其它语言的XML-RPC的接口; (5)提供命令行管理工具。 Xindice目前已经足以运用于一般的内容管理系统,但其不支持XML校验和不能处理

24、较大的XML文档,因此在大型应用中有所限制。 5.4 Berkeley DB XML嵌入式数据库 Berkeley DB XML是一个开放源码的嵌入式Native-XML数据库。它是在Berkeley DB(一种通用的嵌入式数据库引擎)的基础上开发而成。Berkeley DB XML存储XML文档,对它们进行索引并提供一个XPath检索接口。XML文档被组织在不同的容器内,这些容器可以共用一个通用的模式定义或者不规定特定的模式。 Berkeley DB XML数据库具有以下特征: (1)它是一个库而不是一个数据库服务器,它与应用程序运行在同一个进程; (2)提供基于XQuery的接口访问存储;

25、 (3)支持XML Schema验证; (4)对外提供编程接口API支持C+、Java、Perl、Python、PHP、Tcl、Ruby等语言; (5)开放源代码、底层采用C/C+语言实现; (6)支持操作系统包括Windows、Linux、BSD、UNIX、Mac OS/X和任何POSIX兼容的操作系统; (7)提供命令行方式与数据库进行交互操作。 (8)支持大用户量的并发访问,存储容量可达256TB; Berkeley DB XML也是Oracle数据库产品解决方案的一部分,这一点表明它的可用性及性能上值得信赖。 5.5 四个Native-XML数据库简单比较 Tamino是个功能强大的商业Native-XML数据库产品,而且提供图形界面。缺点是要花钱。eXist和Xindice都是完全用Java语言写的开源数据库,eXist更适合用于管理以文档为中心的XML数据,Xindice不适合大文档的处理,它们两者差不多在内容管理领域都有应用。Berkeley DB XML的功能比较强大,支持Schema验证是其优点之一。Berkeley DB XML嵌入式数据库跟应用程序运行在相同的地址空间,因此它既可以支持小的、但用户应用程序,又支持拥有大量内存和硬盘空间的多处理器计算机上处理数以千计的并发用户访问。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1