分享
 
 
 

详细讲解XML数据库中几个容易混淆的概念

王朝other·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

当开发人员谈及XML数据库时,他们往往指的是两个概念:存储XML数据的数据库,利用XML数据库的DBMS。绝大多数主要的DBMS产品允许你无需改变现有的数据库就可以集成XML数据到程序中。现在让我们讨论一下XML数据库并探讨其特性。

原始的XML数据库

一个原始的XML数据库(NXD)可以是很简单,也可以是很复杂。我这样定义一个数据库的概念:永久稳定数据的集合。在这样的定义下,一个NXD能在逻辑上存储一个XML文档。当XML:DBinitiative对一个NXD还有更多的要求时,我想以上的定义也可以满足。

以下的代码行可以用作于一个NXD:

〈?xml version=”1.0”?〉

〈diet〉

〈meal mealName=”breakfast”〉

〈item itemName=“toast”

unit=”slice” quantity=“2” /〉

〈item itemName=“bacon”

unit=”strip” quantity=“2” /〉

〈/meal〉

〈/diet〉

很显然,数据的集合以XML格式存储。如果它被存放在一个flat文件,它也会满足我们对NXD的定义:永久稳定数据的集合。

一个NXD使用相同的方式来存储XML文档(比如:flat文件,关系数据库或级别数据库,对象数据库)。

Flat文件

一个简单的flat文件是一个最简单的XML数据库模型。作为一种“变种”,你可以存储很多XML文档在一个目录层次。为了扩展前面的范例,看看以下的模型:

Diets

DietsAtkins

Day1.xml

Day2.xml

Day3.xml

Day4.xml

Diets3DayDiet

Day1.xml

Day2.xml

Day3.xml

Diets目录包含了子目录,并且每一子目录很多XML的flat文件。

关系数据库

关系数据库中的XML数据库可以分为三种模型:coarse-grained(粗糙纹理型), medium-grained(中等级别纹理型),或 fine-grained(优良纹理型)。

coarse-grained(粗糙纹理型)模型在逻辑上与flat文件模型有些不同。你可以使用一个关系数据库来存放每一个XML文档。例如,以下的代码可以存放一个XML文档:

Create table diets

( dietName varchar2(30),

xmlDocument varchar2(32000)

)

fine-grained(优良纹理型)模型将XML文档的每一成分映射到关系数据库中。为了能够将flat模型转移到关系数据库,你必须使用两种改变方式。对以上的范例,你不能再使用子目录名来代表diet的名称,你也不能再使用文件的名称来传递diet的日期。表A显示了diet的XML文档的文件类型定义(DTD);表B显示了将DTD映射到关系表的数据定义语言(DDL)。除此之外,表C还包括了相应的XML语法。

medium-grained(中等级别纹理型)模型介于coarse-grained(粗糙纹理)模型与 fine-grained(优良纹理)模型之间。使用这一模型,你可以将信息存储在meals 表的xml_items列中。

对象数据库

你也可以通过使用一个对象数据库来执行NXD。有些对象数据库是基于文档对象模型(DOM),这允许XML与数据库有紧密的结合。例如,一旦你提供一个食物方面的DTD,你可以开始保存这些食物,而不需要额外的配置。

数据库管理系统

对于DBMS,你可以有多种选择。你可以通过使用开放程序如eXist或Ozone来建立自己的DBMS,或者购买商业产品如Tamino XML Server。

绝大多数关系数据库卖主都使他们的数据库能够使用XML,至少的,XML数据库(XEDBs)能够返回XML文档查询的结果。另外很多也可以保存XML数据。例如,Oracle 提供了一个XML剖析器,一个Xpath引擎,一个XSLT处理器,一个XMLSQL工具,以及使用XML的方法。

所以,使用关系数据库存储的NXD和存储XML数据的XEDB有什么区别呢?一个NXD是基于XML文档概念而建立,而XEDB与其它没有过多的关联。而且,很多规范适用于NXD,而DBMS只适用标准的查询和存储数据的XML文档,比如Xpath。

XML数据库不是新概念

XML数据库在逻辑观点上不是新概念,虽然在逻辑执行上是新的。如果你想要执行一个XML数据库,你可以使用NXD,XEDB,或者是二者的结合。然而,如果你所在的公司对现有的数据库已经有一定的投资,你所做的第一个调查就是核实你的DMBS卖主是否提供使用XML的工具。无论你使用的哪一种XML数据库方式,你都要非常理解每一种数据库的特性,这才是最重要的。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有