XML与关系数据库
XML数据库

级别上为文档提供还原功能。 XML数据库比较麻烦的问题是规范化、引用完整性等。
这方面的研究才刚刚起步,尤其在理论上仍不成熟。
目录
XML数 据库
3.XML数据库的体系结构 一个典型的纯XML数据库系统的体系结构如图
XML Query
应用程序
外部访问接口(API)
查询分解 查
查询优化 询
查询执行
分 解
事 务 管 理
元数据管理
索引管理
存储管理(包括缓冲区管理)
XML数据y
数据库管理 和维护
存取控制
磁盘
目录
XML数 据库
1.2 访问XML数据库
把XML文档作为数据库使用,需要数据转换、数据 查询、链接等访问技术。
目录
XML数 据库
1.1 XML数据库概念
目前,基于XML的数据库系统有XEDB(XML enable database)和NXD(native XML database)两大类。
XEDB是在传统关系数据库系统(RDBMS)的基础上增加了 对XML技术的支持,从而使得传统数据库系统能够访问XML文档。
NXD是以XML文档为基础,可以直接操作XML源文件的数据 库管理系统。
目录
XML数 据库
1.XML数据库定义 Rቤተ መጻሕፍቲ ባይዱBourret认为,只有满足以下3个条件的XML数据库才
能称为纯XML数据库: (1)为XML文档定义了一个逻辑模型,XML数据的存储和
查询都基于这个模型。这个模型至少要包含元素、属性及 PCDATA等,并保持文档顺序。
目前,主流相关技术主要有XSLT、DOM和SAX等。需 要说明的是,这些技术仍处于发展阶段,是XML数据访 问处理的新技术。
浅析XML文档到关系数据库中的映射

d t.t e c mmo fe t e me n fXML d c me t s o e n a r l to a a a a e a h r s n . i c XML mo e a d r l t n ld t b s d lo aa h o n ef c i a so v o u n s t r d i e a in l tb s tt e p e e t S n e d d n ea i a aa a e mo e f o h tr g n o s p o e t ,i i e d t p t a eeo e e u rp r y t s n e o ma h tXM o u n s so e n r lto a mo l d c me t tr d i e a in l de,Ma p n t o t e p i g me h d bewe n XML d c o ume t a d r l t n l n n a i a e o mo e s i to u e t x mp e . n h e u t r nay e . d li n r d c d wih e a l s a d t e r s lswe e a l z d
以 图 1 示 的 XML数 据 模 型 为 例 ,iay边 表 带 内 联 值 表 的 存 所 Bnr
XML与关系数据库之间转换技术的研究

年月(下)1X ML 技术介绍XML (Exte nsible Markup Language ,可扩展标记语言)是由W3C (W orld Wide We b Cons ortium )组织于1998年2月制定的一种通用语言规范,它是专门为W eb 应用程序而设计的SGML 的简化子集。
X ML 作为一种可扩展性标记语言,其描述性使其非常适用于不同应用间的数据交换,而这种交换不是以预先规定一组数据结构定义为前提的。
X ML 最大的优点在于它的数据描述和传送能力,因此具有很强的开放性。
2关系数据库与XML 之间的映射方法根据映射关系的建立方式不同,我们可以得到两种数据转换方法:基于模板驱动的转换方法和基于模型驱动的转换方法。
基于模板的映射方法并不事先定义好X ML 文档与其他数据之间的映射关系,而是在X ML 文档中嵌入带参数的SQL 命令。
这些命令在转换过程中被系统所识别和执行,执行的结果被替换到指令所在的位置,从而生成目标X ML 文档,并用数据传输诸如中间件等实体软件进行处理。
基于模型驱动的映射,当把数据从数据库传送到X ML 文档或把数据从XML 文档传送到数据库时,不是仅仅依赖内嵌SQL 命令,而是用一个具体的模型实现的。
基于模型的转换方法用这个事先定义好的数据模型来映射X ML 与关系数据库数据之间的关系。
3关系数据库到XML 的转换技术3.1关系模式转换为XML 模式在将关系模式映射为X ML 模式时,由两条路线组成,第一条路线是得到X MLS che m a 首先需要从具体的关系数据库中反求出关系模式,再根据关系模式重构其有向图,由有向图再生成映射的结构,根据映射结构和有向图将关系模式映射为X MLSchem a ;第二条路线是根据得到的S che m a 从关系数据库中提取数据嵌入XML 事例文档。
整个流程如图1所示:图1关系模式映射为XM L 流程3.2关系模式的提取和重构由图1表达的流程图可以看出,由具体的关系数据库提取出关系模式是整个算法实现的前提。
浅析XML文档和关系数据库之间的信息交换

xL M 使用X L M 文档提 供数据存储 ,采用D D M c ea T 或X L Sh m 来描述 数据的逻辑结构,用X L t — L U L 等查询语言作为直接操作 Q 、X L Q 、Q IT d XL M 文档 中数据 的工具 ,能够对 数据进行 直接存取 访 问,采 用S X A ( ip e A If r X L S m l P o M )和D M 供了应用程序 的编程接 口。这样 O提
< x l e i n . 7> ? m v rs o =1 0 <al> t b e < i e 1n>
不过 ,X L M 还缺少很 多在真 实的数据库 中所必备 的内容 。在要 求有多用户使用 、需要严格 的数据完整性并且对性能有很高的要求
的情况下,数据库 的优势就很 明显 了。D M 具有分阶段事务提交、 BS 加锁等 自动的并发访 问机制 ,它 的索 引功能可 以极大地提高数据查 询的速度 , 有灵活和安全的用户权限管理功能, 并且在数据完备性、 多用户访 问、触发 、多文档查询等方面有强大的机制。 当然,我们不排除在将来X L M 文档能够拥有数据库 的一切优 良
文献标祝码 : 文章鳊号 :10— 59 ( 00 0— 14 0 A 07 99 21 ) 4 03— 2
S mp eAn l sso a s o ma i n Be we n XM L Do u e t i l a y i n Tr n f r to t e c m ns
在数据量一般 、用户较 少、性能要求不高 的环境 下可 以把XL M 当作 数据库来使用。用X L M 存储数据的优势在于它的开放性好 ,X L M 独立 于厂商可 以跨平 台运行 ,允许不同来源的数据无缝集成,从数据描 述 的角度看 ,X L 活、可扩展 ,结构与显示是分离 的,并且可 以 M灵 直接支持W b e 应用 。
XML文档在关系数据库中存储与查询的实现.doc

XML文档在关系数据库中存储与查询的实现近年来,Web上涌现了大量的XML数据,XML因自身描述能力强、格式简单,实现了结构、内容、表现这三者的分离,在各个领域都得到了非常广泛的应用。
XML现已成为Web上数据表示、集成和交换的标准。
基于关系数据库的存储和查询技术是目前存储和查询XML的各种方式中最成熟的一种数据管理技术。
目前很多学者都已提出了各种各样的XML查询和存储管理的方式方法来对XML数据进行有效地加工、分析和处理。
由于XML文档在关系数据库中的存储与查询存在着各个方面的问题,本文就此展开了深入的研究和探讨。
提出了一种解决方法。
该方法不必建立任何的索引结构,也不用考虑XML文档DTD的模式信息。
而是将XML文档树中的全部节点信息无损的存储在一个关系表中。
具体地来说,本文做了如下的主要工作:1、提出了一种不同与以往的关系存储方法,该方法是XML文档数据基于路径的存储方法,它是采用一个关系数据表完整地记录了XML 文档中的所有信息,即采用一个固定的关系模式来存储结构各异的XML文档,具体存储XML文档中的各个节点、边、还有值的信息,即在关系表中存储了各个元素和属性的id、name、xlevel、attribute、cdata、parentid、xvalue和所有的元素或者属性的path信息,减少了表连接,提高了查询的效率。
2、提出了一种查询处理机制,该方法基于表连接并适用于以上存储方法,并给出了相应的查询转换算法。
该算法可将路径表达式转换为对应的SQL语句来处理。
3、提出了一种存储方法与查询机制的优化策略。
如果XML文档层次较多,就会有对相同路径的存储冗余的现象发生,当进行存储时引入一个路径关系表,可避免此情况;若XML数据进行查询的路径表达式为线性结构,则为了减少表连接的次数,可采用串匹配的方法,同时也能减少输入和输出数量。
4、通过构建存储与查询系统验证本论文提出的存储转换和查询处理算法,采用网上搜集的不同大小的XML文档实例测试了文档的存储时间和查询响应时间等方面的数据,最终用数据证明,所提出的方法是可行且高效的。
XML与关系数据库间数据转换的研究

将X ML用 于关系数据库数据 交换能够较好 地克 服传 统数据交换方式的缺点。基 于 X ML的关 系数据库数 据交
换 , 以X 是 ML为公共数据模 型来 实现数 据库 系 统间模 式
转换 和数据交换 。当某一数据 库需 要转换 为其 它数据 库 的时候 , 只需将它转换 为 X , 能轻 易的将其 迁移 到各 ML 就 种关 系数据库 中, 具有很好的通用性和 良好 的扩展性 。 关 系数据库数据交 换 的困难主 要是 缺乏一 个有效 的
公 共 数 据 模 型 统 一 描 述 关 系 模 式 及 关 系 。X ML的 出 现 很 好地 解决 了这 个 问题 : M X L的 纯 文 本 、 平 台无 关 性 首 先 与 满 足 解 决 异构 关 系 数 据 源所 需 要 的跨 平 台 性 ; ML的强 大 X 的 结 构 性 和 良好 的语 义 性 满 足 了表 达 关 系 数 据 库 的 结 构 和 各 种 约束 的需 要 ; ML的优 良的 交 互 性 为 转 换 带 来 了方 X
因而, 我们 需 要 一个 中介 , ML就 是 这样 的 中介 之 一 。 X
数据库 的数据交换 , 并且 已成 为事实 上 的数 据交换标 准 ,
以X ML为公共 数据模型转换异构关 系数据库也 为关 系数
据库与其他数 据类 型的集成转换 提供 了便利。
收 稿 日期 :0 7— 5— 5 20 0 0 作者简介 : 刘元 鼎(9 4一) 男, 17 , 汉族 , 海南儋 州人 。海南师范大 学高级 工程师 , 海南大学信 息学院在读 硕 士。研 究方 向 为基 于 X ML数 据 交换 整 合 标 准 及 中 间件 技 术 。
基于关系数据库的XML存储技术

、
X ML与 关 系数 据 库 结构 上 的差 异
X L 档 是 半 结 构 化 的数 据 ,是 一 个 树 模 型 , 如 果 考 M文
定义 ; ( )简 化 变 换 : 将 连 续 的 多 个 一 元 操 作 转 换 为 一 2
个 … 元 操 作 ; ( ) 聚 集 变 换 : 将 多 个 具 有 相 同 名 称 的 3 子 元 素 聚 在 一 起 , 形 成 一 个 子 元 素 。一 个 D D 表 示 的 T图 是 一 个 D D 结构 , 图 的 结 点 表 示 D D 的 元 素 、 属 性 或 T的 T中 操 作 符 ,D D 的 元 素 在 D D 中 只 出现 一 次 ,属 性 和 操 T中 T图 作 符 在 D D 中 出 现 的 次 数 则 与 它 们 在 D D 出现 的 次 数 T图 T中
在 信 息 技 术 与 网 络 技 术 高 速 发 展 的 今 天 , 网 络 已经 成 为 新 一代 操 作 平 台 。信 息 正 全 面 地 以互 联 网 方 式 展 开 , 互 联 网 的信 息 传播 , 极 大 地 加 速 了人 类 发 展 的 进程 。随 着 W B 术 的 日益 发 展 ,W B 经 成 为 信 息 制 造 、 发 布 、 加 E技 E已
相 同。
虑  ̄ X L 素 次 序 , 则 是 一 棵 有 序 树 模 型 , 其 数据 结 构 是 OM 元
非结 构化 的 ,而关 系数据 库管 理 系统 是采 用 二维 表格 作
为 存 储 数 据 的 模 型 , 表 格 由行 和 列 组 成 , 列 被 称 作 “ 字 段 ” 用 于 表 示 组 成 数 据 有 效 信 息 的属 性 , 行: 第 一 步 : 简 化 D D 生 成 D D 。 因 为 X L T 的元 T并 T图 M D D 素 是 相 当 复 杂 的 , 需 要 对 复 杂 的 D D 行 简 化 。 D D 简 T进 T的
XML文档和关系数据库数据模式中的概念比较分析

2 0 年 4月 08
软 件 导 刊
So t r Gud fwae ie
V0 . 4 1 NO. 7 Ap . 08 r 20
X 文档和关系数据库数据模式 中的概念 比较分析 ML
杨 鼓
( 汉 软 件 工程 职 业 学 院 , 北 武 汉 4 0 0 ) 武 湖 3 2 5
可扩展 标记语 言X 就有 了其用 武之 地 , 正 在成 为 网页编辑 ML 它 层 次 中 的 主 流 , 在 网 页 的 逻 辑 层 次 中 占据 重 要 地 位 。 而 将 数 并
如 校验机 制 、 同控制 以及继 承机制 等 。 协
目前 的开发 已经 有 了一 定标 准 。 同的组 织 和设计 者之 间 不 也 有 了很 好地 沟 通 , 在模 式 说 明业 已确 定 的情况 下 , 不一 致 性
已 经 大 大 降 低 , 少 是 可 以处 理 的 。 至
据库应 用 于网站交 互信 息 的存 储也 已经 是不可 阻挡 的趋势 , 因
此如 何将 X 和数 据库 系 统有 机 地结 合起 来就 成 为 了值 得研 ML
究 的问题 。
本 文将 从 客观 的 角度 对X T ML D D和X 模 式 涉及 到 的一 ML 些 概念 和来 自R B 的概念 进行 比较 ,从而 在概 念上 帮助读 者 D S
是 不 同 的 设 计 人 员 或 组 织 — — 甚 至 是 同 一 批 设 计 人 员 在 基 于
1 概 念 的 比较
11 名 称 的 唯 一 性 .
关 系 的名称要 求在整 个关 系模 式 中是 唯一 的 , 就像xML 元
素类 型的名 称在D D中是 唯一 的一样 。 ML T X 允许元 素类型 通过 附 以不 同的名 称空 间前 缀来 使用 相 同的名称 , 而在D D或X T ML
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
XML与关系数据库
前面我们讲到了XML的数据存取机制,从一个较高的层面上分析了数据存取的多种方式。
作为其中的一种,数据库的数据存取机制似乎倍受青睐,但我们并未对此作比较深入的探讨,这一节里我们对XML与数据库的关系进行更进一步的详细分析。
我们知道,关系数据库提供了对于大批量数据的有效存储管理和快速信息检索、查询的功能。
从体系结构上看,数据库技术的发展历经了网络型数据库、层次型数据库、关系数据库、面向对象数据库。
虽然面向对象数据库融入了面向对象技术,但是到目前为止,在各个领域使用最广的还是关系数据库。
关系数据库管理系统(RDBMS)采用二维表格作为存储数据的模型,如下图10-1所示,
字段字段字段
行
行
行
行
图10-1 关系数据库二维表
表格由行和列组成,一般情况下,列被称作“字段”,用于表示组成数据有效信息的属性,而行则用于指示一条完整的数据记录。
由于数据间的相关性可以通过表与表之间关键字(外键)来关联,由此产生了“关系”类型数据库的由来。
关系数据库有自己的查询语言——结构化查询语言(Structured Query Languag e,SQL)。
SQL最初由IBM提出,后经不断发展,已于1986年成为业界标准并被广泛采用。
SQL 是非过程性的。
当SQL语句传送到数据库服务器后,服务器返回满足条件的结果或结果集(视具体查询项目而定)。
一般情况下,大多数支持SQL 的服务器系统均采用客户/服务器架构,现在又发展到更为先进的分布式处理架构。
这样一来,SQL服务器既可以接收客户应用程序发送的查询请求,也可以接收其他服务器的查询请求,这些服务器可能是其他SQL服务器,也可以是XML服务器。
就数据存储而言,关系型数据库已经是相当成熟的应用,从80年代商用产品出现至今,早已深入企业储存及数据应用的核心。
相较之下,XML部分技术尚且在发展阶段。
关系型数据库是透过详细定义和控制结构化数据的方式,达到数据增、删、查询的目的。
因此它是以字段数据型态的精确定义,将数据以列的方式一笔笔储存,再透过数据表之间的互相关联,建构出数据和数据结合后的复杂结果,因此
企业在日常营运可以仰赖这种方式来储存数据。
但是,定义好的关系型数据库一旦要修改字段,牵动的范围相当大,既会影响到过去的数据,也会影响到其它相关联的数据表。
因此它在变动的弹性上较小。
然而由于企业内产生的数据并非总是这么规矩,一旦遇到非结构化的数据型态,关系型数据库便显得左右支绌,施展不开手脚。
相对而言,由于XML是以阶层式的树状结构作为储存架构,通过元素(Eleme nt)和属性(Attribute)来包含数据,再利用XML schema控制数据的正确性。
这种架构特性,让XML随时可以新增字段,只要吻合XML schema的定义,字段便可以弹性置入。
此外,XML透过元素和属性描述数据,以及不需转译编码的文字型态,让它可以不受操作系统和应用程序的限制,在数据交换上相当容易进行,而且它的内容除了可以被人类解读之外,也能被机器或应用程序所辨读。
鉴于这些X ML的优势,可以解决关系型数据库在应用及储存上的不足,因此传统数据库大厂纷纷在关系数据库的基础上推出支持XML的方式。
关系型数据库在支持XML上大致有三种方式:一种是把xml文件原封不动的存储在关系数据库的字段里面(严格的说这不是一种新的支持方式,而是关系数据库天生就有的功能。
);另一种是将XML的树状结构数据拆解成数成关系型数据库的之后再存入数据库,一旦需要存取时,再通过组合,还原成XML文件;还有一种则是保留XML原有的运作方式,又称之为原生XML数据库,原生型数据库的做法则是保留阶层式的XML格式存进数据库,并且利用XML的树状节点特性,进行查询节点数据或新增、删除数据。
实际应用中,第一种方式的应用环境将受到一定限制,因为关系数据库不能很好地处理大容量的结构化的信息和文本数据;第二种方式,因为关系型数据库并不能很好地支持层次、顺序、包含等在结构化置标语言中十分本质的关系,所以在开发中也仍有很多问题要解决;由于XML本身是档案型的数据储存方式,在安全管理的机制上并没有良善的处理方式,只要一旦储存在数据库中,就可以享有数据库本身的安全机制。
这样看来原生XML数据库似乎更受欢迎。
但相较之下,关系型数据库在技术的成熟度上,查询速度上都是更有效率的数据处理方式,在目前是处于主导地位。
如非必要,在需要XML与数据库进行数据交换的时候,使用“将XML的树状结构数据拆解成数成关系型数据库”的方式即可,因此本节里我们不再讨论使用关系数据库来存储XML文档,也不再讨论原生XML数据库,而是重点关注如何将XML的树状结构数据拆解成数成关系型数据库的型态,进而达到XML数据与关系数据库之间的数据交换,下面通过一个实例来了解这样常用数据交换方式。
在该实例的开发过程中我们侧重于JSP功能实现与X ML数据文件的使用,对于网页的显示的样式的修饰,在这里没有做太多的要求。
数据库使用MYSQL。
本实例是让用户输入要查询的客户的姓名信息,提交后自动根据用户输入的信息从数据库里提取相关的记录组装成XML文件存储起来,最后把存储好的XML 文件内容发送给查询用户。
首先新建一个数据库,名称为kehu,它存储公司的是客户信息。
它包含一个表
名为kehus,此表共有三个字段组成:id、name、add、tel,它们分别记录客户的序号、姓名、地址和电话等信息(在这个实例中需要预先向kehus表加入客户信息记录若干条)。
其次创建第一个显示视图文件view.html,用来收取用户输入信息,打开记事本输入下列代码:
在tomcat的webapps文件夹下新建一个站点Example,将view.html保存在Ex ample文件夹下,打开IE浏览器,在地址栏里输入“http://localhost:8080/Example/v
iew.html”,单击【转到】会显示如图10-2所示窗口。
check()函数是对表单的简单验证,即输入不能为空,如果为空会显示如图10-3所示窗口。
图10-2 客户端视图图10-3 JavaScript 验证如果用户输入的值符合要求,那么这个值就会被提交到model1.jsp来处理。
下面创建另外一个页面model1.jsp。
打开记事本,输入如下例10-2所示代码。
将该页面保存在Example文件夹下,文件名字为model1.jsp。
这个页面主要完成的功能:一是从view.html页面中获取输入的参数;二是以获取的参数为查询的条件,获得数据库中相关的记录,获得记录后形成一个XML文件;三是把形成的X ML作为HTML的数据源发送到客户端。
文件的脚本程序从整体上来看可以分为两个部分,一部分是从数据库里提取所需的数据,另一部分则是把提取出来的数据形成XML文档。
通过“String name=r equest.getParameter("name");”来获得从view.html文件里提交的数据,也就是一个查询的条件。
在这里有一点要注意的是,如果提交的信息是中文字符,在这里必须使用“name=new String(name.getBytes("ISO-8859-1"));”进行相应的转换,转换后的字符才可以在中文中直接使用。
再下面的代码大家都非常熟悉了,通过指定一个select语句来获得一个Result Set对象,通过一个while循环把获得的信息全部提取出来,并保存到相应的数组中,然后利用数组里保存的数据来创建XML文档,其创建文档的方法参见第六章。
最后把控制权转向刚刚产生的“ch.xml”,在浏览器里把相应的数据显示出来。
在测试本实例之前一定要把MTSQL的驱动程序(MySQL-connector-java-5.0.5-bin.jar,是一个jar文件,网上可以下载)放到Example\WEB-INF\lib文件夹下。
打开IE浏览器在地址栏里输入“http://localhost:8080/Example/view.html”,网页打开后在客户名输入框里写入“刘”,如下图10-4所示,单击【提交】按钮结果如下图10 -5所示
图10-4 用户查询窗口图10-5 查询结果这时到Example目录下查看一下会发现多了一个ch.xml文件,用记事本打开其
内容如下图10-6:
图10-6 生成的XML文档。