(计算机应用技术专业论文)基于xml的异构数据库的信息交互.pdf_第1页
(计算机应用技术专业论文)基于xml的异构数据库的信息交互.pdf_第2页
(计算机应用技术专业论文)基于xml的异构数据库的信息交互.pdf_第3页
(计算机应用技术专业论文)基于xml的异构数据库的信息交互.pdf_第4页
(计算机应用技术专业论文)基于xml的异构数据库的信息交互.pdf_第5页
已阅读5页,还剩54页未读 继续免费阅读

(计算机应用技术专业论文)基于xml的异构数据库的信息交互.pdf.pdf 免费下载

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

文档简介

摘要 基于x m l 的异构数据库的信息交互 摘要 本文提出了一种基于:y j v l ( e x t e n s i b l em a r k u pl a n g u a g e ,可扩展标 记语言) 异构数据库结构和数据交互的方法,分别制定关系数据库的结构 和数据的映射规则r x i ( r e l a t i o nx m li n t e r a c t ,关系数据库与x m l 的映 射规则) ,基于此映射规则,关系数据库和r x m ( r e l a t i o nx m lm o d e l , 数据库的x m l 模型) 之间建立了完美的映射关系和映射算法。 本文的主要研究内容如下: ( 1 ) 提出了r x m ,并建立了关系数据库模型和r x m 之间的映射规 则和算法。阐述了关系数据库模式与x m l 文档的结构转换和数据转移的 原理。 ( 2 ) 详细阐述了关系数据库和r x m 之间的结构映射和数据映射。并 分析了异构数据库的冲突问题,分析了类型冲突、命名冲突等问题,并提 出相应的解决方案。 ( 3 ) 本文通过e c l i p s e 开发了基于x m l 的数据库交互工具,并利用 此工具对算法在实际中进行了测试。对s q ls e r v e r 和m y s q l 之间的数据 交互进行了验证。 实验表明上述方法能很好的实现异构数据库的结构和数据的交互,并 且保证了结构和数据的完整性。这种映射算法和以往映射关系相比有以下 优点:x m l 文档包括结构文档和数据文档,很好的实现了关系数据库的 北京化工大学硕士学位论文 结构和数据的分离。x m l 结构文档符合x m ls c h e m a 规范的要求,而且 很好的体现了关系数据库的各种约束,在结构和数据上拥有很好的完整 性。结构文档和数据文档都不依赖于关系数据库,可以作为异构关系数据 库中传递的标准。保证了结构的完整性和数据的完整性。 关键词:异构数据库,x m l ,映射规则,完整性约束 i i a b s t r a c t i n t e r a c t i o no fx m l b a s e dh e t e r o g e n e o u s d a t a b a s e a b s t r a c t m e t h o d st om a k et h es t r u c t u r e sa n dd a t ai n t e r a c t e di nx m l b a s e d h e t e r o g e n e o u sd a t a b a s ea r ep r e s e n t e di nt h i sp a p e r a n dt h es t r u c t u r e sa n d m a p p i n gr u l e s f o rx m li n t e r a c t i n ga r el a i d o u t u p o nt h e s er u l e s ,t h e r e l a t i o n a ld a t a b a s ea n dr x m ( r e l a t i o nx m lm o d e l ) a r ec o n n e c t e ds m o o t h l y a n ds o m em a p p i n ga l g o r i t h m sa r ed e s i g n e dw e l l t h i sa r t i c l er e a d sa sf o l l o w s : ( 1 ) r x mi sp r e s e n t e d t h e s t r u c t u r e sa n dm a p p i n gr u l e sf o rx m l i n t e r a c t i n ga r el a i do u t t h ee l a b o r a t i o na r ea l s om a d ef o r t h ep r i n c i p l e so f t h e d a t at r a n s f e r e n c eb 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 e ( 2 ) d e t a i ls t r u c t u r em a p p i n ga n dd a t am a p p i n gb e t w e e n r e l a t i o n a l d a t a b a s ea n dr x m t h ec o n f l i c t so fh e t e r o g e n e o u sd a t a b a s e sa r ed i s c u s s e d s u c ha s t y p ec o n f l i c t ,n a m i n gc o n f l i c t ,e t c a n dr e l a t e dr e s o l u t i o n sa r e p r o p o s e d ( 3 ) u s i n ge c li p s e ,t h ea u t h o rd e v e l o p e sat o o lf o rx m l d a t ai n t e r a c t i o n , m a k e si tp r a c t i c a li nt h er e a le n v i r o n m e n t ,a n dv e r i f i e st h ed a t ae x c o n v e r s i o n b e t w e e ns q ls e r v e ra n dm y s q l t h er e s u l t ss h o wt h a tt h em e t h o d sa b o v ec o u l dm a k eg o o di n t e r a c t i o nf o r 北京化工大学硕士学位论文 t h es t r u c t u r ea n dd a t ao fh e t e r o g e n e o u sd a t a b a s ea n de n s u r et h ed a t ai n t e g r i t y c o m p a r i n g w i t hp r e v i o u s m a p p i n ga l g o r i t h m ,t h i s h a st h e f o l l o w i n g a d v a n t a g e s :x m ld o c u m e n t sc o n t a i n ss t r u c t u r ed o c u m e n ta n dd a t ad o c u m e n t , w h i c ha c h i e v er e l a t i o n a ld a t a b a s es t r u c t u r ea n dd a t aw e l l x m ls t r u c t u r e d o c u m e n t sm e e tt h er e q u i r e m e n t sx m ls c h e m a ,w h i c hc o u l di n d i c a t ev a r i o u s o fr e l a t i o n a ld a t a b a s ec o n s t r a i n t sa n de n s u r et h es t r u c t u r ea n dd a t aw e l l t h e s t r u c t u r ea n dd a t ad o c u m e n t sa r eb o t hi n d e p e n d e n tt or e l a t i o n a ld a t a b a s e , w h i c hc o u l db eu s e da ss t a n d a r d so ft h et r a n s f e r e n c e t h ei n t e g r i t yo fd a t aa n d s t r u c t u r ea r ew e l le n s u r e d k e y w o r d s :h e t e r o g e n e o u sd a t as t r u c t u r e ,x m l ,m a p p i n gr u l e s ,i n t e g r i t y c o n s t r a i n t s i v 北京化工大学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师的指导下, 独立进行研究工作所取得的成果。除文中已经注明引用的内容外,本 论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文 的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本 人完全意识到本声明的法律结果由本人承担。 拓者签名:巡4 玺 日期: 关于论文使用授权的说明 矽| o 。、 、 学位论文作者完全了解北京化工大学有关保留和使用学位论文 的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属北 京化工大学。学校有权保留并向国家有关部门或机构送交论文的复印 件和磁盘,允许学位论文被查阅和借阅;学校可以公布学位论文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存、汇编 学位论文。 保密论文注释:本学位论文属于保密范围,在上年解密后适用 本授权书。非保密论文注释:本学位论文不属于保密范围,适用本授 权书。 作者签名:銎l 查塾 导师签名:1 缘牡 日期:业:堇! ! 兰一一 日期:型! ! 垒二: 第一章绪论 1 1 课题研究背景及意义 第一章绪论 随着计算机和网络技术的迅猛发展,人们在工作和生活中享受到了巨大便利,开 始成为i n t e m e t 中的一员。对于每个公司企业而言,信息是现代社会中最重要的商品, 如何更好的长期无损失的保存这些数据已经成为极其重要的事情。一些有实力的公司 开始创建自己的数据库产品,如s q ls e r v e r 、o r a c l e 等。一些没有数据库产品的公司 通过这些产品建立属于自己的数据库,用来保存和查找用户和网络的信息。现在关系 数据库发展相当成熟,足以满足单独企业的需求,但是随着信息的多元化,很多企业 面临着数据库交互的问题,而各种关系数据库又不是完全一致的,在数据类型、数据 命名等问题上存在很多差异,这就使得异构数据库的交互存在问题【i 翊。现在解决异构 数据库的一个很办的办法,就是基于中间件。 x m l 已经成为i n t e r n e t 上信息交互和表示的重要标准。x m l 就是对已存在的数 据进行x m l 文档格式化,使格式化后的数据库便于操作,可以制定基于数据源的对 外的x m l 接口,现在已经存在大量关于x m l 数据交互和应用的研究,有些是扩展 了对x m l 的支持,比如s q ls e r v e r2 0 0 5 ,o r a c l e 等数据库,有些属于x 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 具有可扩展性,用户可以创建标记;x m l 是 半结构化的,用户可以通过规范定义语法,数据结构以及元素类型,可以将异构数据 集合到一起t 引。 针对目前各种异构数据库频繁进行数据交互,解决异构数据库间的数据共享,加 速数据的交互,把异构数据库整合成一个大的数据整体,己成为大家研究的对象。现 在虽然有了一些数据库交互工具,但是都是针对独自的数据库,还没有一种通用的交 互方式来实现各个数据库间的数据交互,提高数据资源的利用率。中间件x m l 能够 屏蔽异构数据库带来的数据类型差异等问题,不仅能提高各公司之间的合作与交流, 而且也能为数据挖掘、数据仓库提供数据基础。所以实现基于x m l 的异构数据库的 信息交互对于全球信息一体化的进一步发展具有重大意义。 1 2 课题研究现状 北京化工大学硕十学位论文 目前国外数据库交互系统的研究主要集中在存储行业几个巨头企业中,包括c a 公司、s y m a n t e c 公司、i b m 公司、e m c 等。 e m c 4 1 在收购l e g a t o 软件公司后推出的最新版本r e n l i s t o r 6 1 和n e t w o r k c r 系统 用于大学复杂网络环境,提供多平台支持。 s y m a n t e c t 5 】包含高端n e t b a c k u p 和低端n e t b a c k u pe x e c 系列软件。 i b md b 2 e n i e r p r i s e 9 6 】提供d b 2r e o v e r ye x p e r t f o rm u t i p l a t r o r m s 实现多平台备份 恢复,t i v o l i s t o r a g e m a n a g e r 提供i b m 系列主机为主的系统平台的高端备份系统软件。 m i c r o s o f ts y s t e mc e n t e rd a t ap r o t e c t i o nm a n a g e r 2 0 0 6 1 卜8 】通过卷影复制技术 ( v o l u m es h a d o w c o p ys e r v i e e ) 实现备份和恢复;s q ls e r v e r2 0 0 8 使用m i c r o s o f ts y n c f r a m e w o r k 实现异构数据集成。 o r a c l e l l g 提供o r a c l ei n t e g a t i o n 实现异构数据集成。c d p ( c o n t i n u o u sd a t a p r o t e c t i o n ,持续数据保护) 方面,r e v i v i o 公司推出一款企业级c d p 产品,而且是硬 件产品叫p s l 2 0 0 ,提供秒到秒的粒度对应数据丢失或损坏事件之前的任意点【9 】。 m 髓d o c i l l o 【l o 】公司通过收购v y a n t 科技,获得了后者基于主机的s m bc d p 产品 r e a l t i m e 。经过自己的开发,在增加了基于网络的功能后,成为一款企业级c d p 产 品r e c o v e r y o n e ,支持更多种类的服务器和存储系统,同时提供更好的性能和更高的 灵活性。 国内研究概括: 中山大学软件研究所与广州威腾网络科技有限公司联合开发的n e t b u n k e r 2 :用于 l i n u x 备份服务器的网络数据备份恢复。中科同向公司的h e a r t o n eb a c k u pe n t e r p r i s e 提供分布式备份,实现智能备份恢复,简化服务器和网络存储环境。华中科技大学、 东南大学对网络数据库备份恢复实现技术进行了一定的研究【4 2 1 。国内对于异构数据 库的通用交互研究不多,更多的是面向单独的数据库的数据交互,以上研究对于我们 研究通用的数据库交互奠定了基础。 1 3 本文研究内容 本文的主要工作通过定义r x m ,一般关系数据模型和r x i 映射规则,对x m l 文档和关系数据库交互进行了研究,提出了映射算法,并予以实验。 主要难点: ( 1 ) 基于r x m 的x m l 文档如何与数据库中的数据类型建立关联。 ( 2 ) x m l 文档与关系数据库中的外键如何处理。 ( 3 ) 异构数据库结构繁多,如何处理它们之间的数据类型,创建语句等存在的 差异。 ( 4 ) 如何建立映射的规则,能更快速,更健康的映射。 2 第一章绪论 本文的创新点有两点: ( 1 ) 提出了关系数据库与x m l 的映射规则,并提出了相应的算法。 ( 2 ) 解决了异构数据库的数据交互问题,不用再关心元数据库是什么类型,只 要映射到x m l 文档,就能被其他所有的数据库共享。 1 4 本文结构 本篇论文的主要内容如下: 第一章绪论,主要介绍了目前关于国内外数据库交互的发展现状和论文的主要 工作。 第二章基于x m l 的异构数据库交互的相关技术,介绍了基于x m l 的异构数据 库交互的相关技术。 第三章异构数据库整合方案,提出了异构数据库整合方案与冲突解决方法。 第四章数据库与x m l 的相互映射,提出了数据库与x m l 的相互映射算法和具 体实现。 第五章实验与应用,用实例验证了本课题的x m l 与关系数据库的相互转换。 第六章结论与展望,对整个论文进行了总结并提出了展望。 第一二章基于x m l 的异构数据库交互的相关技术 第二章基于x m l 的异构数据库交互的相关技术 2 1x m l 技术 2 1 1x m l 的介绍 i n t e m e t 提供了全球范围的网络互连与信息通信功能,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 ,超文本链接标示语言) 开始被人们接受,使人们浏览、。 检索信息变得简单,但是不可扩展性和不灵活性限制了其发展。自1 9 9 6 年w 3 c 就开 始致力于设计一种置标语言,目标是使这种置标语言既具有s g m l i s ( 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 ,标准通用标记语言) 的强大功能和可扩展性,又具有 h t m l 的简单性,在此目标上x m l 应运而生,它是s g m l 的一个简化子集。x m l 的第一个版本x m l l 0 于1 9 9 8 年2 月产生,但这个版本只是一个推荐版本,并非一 种正式的“标准 。随着w e b 上不同数据交换格式的大量出现,x m l 发挥的作用越来 越不可替代。w 3 c 对x m l l 0 第一版本进行了修改与更新,x m l l 0 第二版于2 0 0 0 年l o 月发布,随后x m l l 1 版又于2 0 0 4 年2 月发布。以一种开放的自我描述方式定 义了数据结构,在描述数据内容的同时能突出对结构的描述,从而体现出数据之间的 关系。这样所组织的数据对于应用程序和用户都是友好的、可操作的孓1 4 j 。 x m l 是一种界定文本数据的简便而又标准的语言,曾经被人称作“w e b 上的 a s c i i 码”。) ( m l 界定文本数据时具有一套定义语义标记的规则,这些标记将文档分 成许多部件并对这些部件加以标识。以一种开放的自我描述方式定义了数据结构,通 过x m l 元素进行定义,在描述数据内容的同时能突出对结构的描述,从而体现出数 据的结构性。x m l 数据模型可以说是w w w 上的半结构数据模型。x m l 提供了一个 标准,只要遵循这个标准,用户可以灵活的定义自己所需的标记。这样所组织的数据 对于应用程序和用户都是友好的、可操作的。x m l 标记描述的是x m l 文档内容的结 构和含义,而不是页面元素的格式化,可以用c s s ( c a s c a d i n gs t y l es h e e t s ,层叠样式 表) 为x m l 文档增加格式化信息。x m l 文档本身只说明该文档包括什么标记,而不 是说明文档看起来是什么样的。x m l 与h t m l 和s g m l 相比具有以下优点: ( 1 ) 灵活性【1 5 】 x m l 实现了内容、结构和表现相分离,而h t m l 数据的格式和数据本身是混合 在一起的。而x m l 提供了一种结构化的数据表示形式,使得用户界面与结构化数据 相分离。x m l 数据的结构即元素间的关系用d t d ( d o c u m e n tt y p ed e f i n i t i o n ,文档 类型定义) 或x m ls c h e m a 进行描述。x m l 数据实例只描述数据,使得数据具有独 5 北京化工大学硕上学位论文 立性,x m l 数据配合x s l ( e x t e n s i b l es t y l e s h e e tl a n g u a g e ,扩展样式表语言) 来完成 数据的多样性显示,对同一个x m l 数据可以根据不同的应用的需要以不同的风格显 示。 ( 2 ) 可扩展性1 1 6 j x m l 允许使用者创建和使用他们自己的标记而不是h t m l 的有限词汇表。特定 行业可一起来定义该领域的特殊标记语言,作为该领域信息共享与数据交换的基础。 目前已有许多特定行业的语言派生自x m l ,有数学领域中的m a t h m l ( m a t h sm a r k u p l a n g u a g e ,数学标记语言) 、化学领域中的c m l ( c h e m i c a lm a r k u pl a n g u a g e ,化学标 记语言) 以及计算机领域中的t e c m l ( t e c h n i c a ld a t am a r k u pl a n g u a g e ,技术数据标记 语言) 。 ( 3 ) 互操作性【1 7 】 x m l 可以在多种平台上使用,被多种工具进行解释,与多种开发语言一起打造 不同需求的应用,它提供了一个直接处理w e b 数据的方法,而h t m l 只提供了w e b 数据显示的方法。例如:向w e b 服务器发出一个h t m l 请求,将得到一个由一系列 h t m l 命令和嵌入式文本组成的格式化页面,若想对刚返回的信息做其他格式处理, 必须向服务器再次发出请求;而使用x m l 发出同样的请求,得到的结果不是一个格 式化的页面,而是一组数据,可根据每个客户端的样式表将这组数据以不同的格式呈 现给用户。因此可以说,x m l 是一种很好的多层应用的粘合剂。 ( 4 ) 半结构化 半结构化是x m l 的一大特点,用户可以通过文档定义,定义用户需要的语法、 数据结构以及元素类型,用户可以利用标记自身所包含的语义,把异构的数据集合在 一起。利用x m l 可以解决异构数据库数据转换的问题。 ( 5 ) 自描述性 x m l 数据通常包含一个文档类型声明,不仅人能读懂x m l 数据,计算机也能 处理。x m l 在没有文档类型声明的情况下,只要查看x m l 文档也能确定该数据的意 义,而s g m l 必须具有配套的文档类型声明。x m l 表示数据的方式真正做到了独立 于应用系统,并且数据能够重用。x m l 数据被看作是文档的数据库化和数据的文档 化。 ( 6 ) 简明性 x m l 只有s g m l 约2 0 的复杂性,但却具有s g m l 约8 0 的功能。x m l 与完 整的s g m l 相比,它非常简单,易学、易用并且易实现。x m l 吸收了h t m l 的经验, 支持世界上几乎所有的主要语言,并且不同语言的文本可以在同一文档中混合使用。 应用x m l 的软件能处理这些语言的任何组合。 x m l 的这些特点,可以与关系数据模型建立映射关系,实现x m l 模式与关系数 据库完全独立,在异构数据交互中起着异常重要的作用,所以x m l 模式与关系模式 6 第二章基于x m l 的异构数据库交互的相关技术 的映射在现在乃至未来都是一个研究热点。 2 1 2x m l 相关技术间的关系 2 1 3x m l 的解析 图2 - 1x m l 相关技术间的关系 f i g 2 - 1r e l a t i o n s h i pb e t w e e nr e l a t e dx m lt e c h n o l o g i e s d o m ( d o c u m e n to b j e c tm o d e ,文档对象模型) 和s a x ( s i m p l ea p if o rx m l , x m l 简单应用程序接口) 是应用操作x m l 的两个重要a p i ( a p p l i c a t i o np r o g r a m m i n g i n t e r f a c e ,应用程序接口) ,用来增删改查x m l 文档中的元素、属性和约束等。在不 同的语言方面又有不同的扩展,在j a v a 方面有j d o m 和d o m 4 j 1 8 。1 9 】。 ( 1 ) d o m d o m 是w 3 c 定义的标准文档对象模型,是一个与操作系统和编程语言无关的、 用于内存中存储和操作的层次化模型。d o m 是传统的解析x m l 的方法,是基于对象 或者基于树的解析方法。它把整个x m l 文档读入内存,然后对x m l 文档的操做就 是对内存中d o m 树的操作。此种方法适合小数据量、数据复杂的x m l 文档,如果 文档很大,就很消耗内存,操作很慢,容易导致内存异常。所有接口都是扩展n o d e 的,主要依靠d o c u m e n t 、n o d e 、e l e m e n t t e x t 、n o d e l i s t 等实现操作。当前,很多解析 器采用延迟加载设计模式,这种策略节省了内存的浪费,但是对性能有一定影响。 ( 2 ) s a x s a x ( s i m p l ea p if o rx m l ) 并不是由w 3 c 官方所提出的标准,可以说是“民间 7 北京化工大学硕士学位论文 的事实标准,不过几乎所有的x m l 解析器都支持它。s a x 是采用回调的方式解析 x m l 文档的,与d o m 相比,s a x 是一种轻量型的解析方法,具有其独特的优势。 s a x 读取时,不需要把所有的文档读入内存,它是满足某个条件时终止,从而保证了 读取的效率。s a x 是基于事件驱动的,适用于处理数据流。 ( 3 ) j d o m j d o m 的目的是成为j a v a 特定文档模型,它简化与x m l 的交互并且比使用d o m 实现更快。j d o m 对于j a v a x m l 应用程序来说,比d o m 容易理解,是在d o m 之 上的x m l 解析,它与d o m 的不同在于它的a p i 不同。但是j d o m 本身不是解析器, 通过使用s a x 2 解析器来解析和验证输入x m l 文档。j d o m 是在a p a c h e 许可证变体 下发布的开放源码。 ( 4 ) d o m 4 j d o m 4 j 代表了完全独立的开发结果。最初,它是j d o m 的一种智能分支。它合 并了许多超出基本x m l 文档表示的功能,包括集成的x p a t h 支持、x m ls c h e m a 支 持以及用于大文档或流化文档的基于事件的处理。它还提供了构建文档表示的选项, 它通过d o m 4 ja p i 和标准d o m 接口实现并行访问功能。从2 0 0 0 下半年开始,它就 一直处于开发之中。d o m 4 j 是一个非常非常优秀的j a v ax m la p i ,具有性能优异、 功能强大和极端易用使用的特点,同时它也是一个开放源代码的软件。 四种操作方式的比较如下: ( 1 ) d o m 4 j 性能最好。目前许多开源项目中大量采用d o m 4 j ,例如h i b e r n a t e 也用d o m 4 j 来读取x m l 配置文件。如果不考虑可移植性,那就采用d o m 4 j 。本文 采取了d o m 4 j 。 ( 2 ) j d o m 和d o m 在性能测试时表现不佳,在测试1 0 m 文档时内存溢出。在 小文档复杂的情况下还可以考虑使用d o m 和j d o m 。d o m 实现广泛应用于多种编 程语言。它还是许多其它与x m l 相关的标准的基础,因为它正式获得w 3 c 推荐,所 以在某些类型的项目中可能也需要它,例如j a v a s c r i p t 使用d o m 。 ( 3 ) s a x 表现较好,这要依赖于它特定的解析方式事件驱动。一个s a x 检 测即将到来的x m l 流,但并没有载入到内存。 2 1 4x m ls c h e m a 的描述 x m l s c h e r m 本身也是一种x m l ,x m ls c h e m a 的格式与x m l 的格是完全相同的, x m l 用户在使用x m ls c h e m a 的时候,不需要为了理解x m ls c h e m a 而重新学习, x m ls c h e m a 除了可以像x m l 一样处理外,也可以同它所描述的x m l 文档以同样的 方式存储,以x m l 为数据交换的应用系统也可以方便的进行模式交换,许多的x m l 编辑工具、a p i 开发包、x m l 语法解析器可以直接的应用到x m ls c h e m a ,而不需要 第二章基于x m l 的异构数据库交互的相关技术 修改。 x m l s c h e m a 与x m l d t d 相比具有其自身的许多优点: ( 1 ) 一致性:x m ls c h e m a 使得对x m l 的定义不必再利用一种特定的形式化的 语言,而是直接借助x m l 自身的特性,利用x m l 的基本语法规则来定义x m l 文档 的结构,使得x m l 达到了从内到外的完美统一,也为x m l 的进一步发展奠定了坚 实的基础【2 0 1 。 ( 2 ) 互换性:利用x m ls c h e m a ,我们能够书写x m l 文档以及验证文档的合法 性。另外,通过特定的映射机制,还可以将不同的s c h e m a 进行转换,以实现更高层 次的数据交换。 ( 3 ) 扩展性:x m ls c h e m a 对d t d 进行了扩充,引入了数据类型、命名空间, 从而使其具备较强的可扩展性【2 l 】。 ( 4 ) 规范性:同d t d 一样,s c h e m a 也提供了一套完整的机制以约束x m l 文档 中置标的使用,但相比之下,后者基于x m l ,更具有规范性。 通过比较,可以看出,x m ls c h e m a 比d t ds c h e m a 更基于x m l 语法,具有强 大的复杂数据类型定义和数据结构描述,更具有开放性,可以多个s c h e m a 运用于一 个x m l 文档【2 2 1 。本文所提出的模式映射方法就是基于x m ls c h e m a 的。 下面介绍一下本论文中用到的一些元素。 ( 1 ) e l e m e n t 元素 例如: 是指定所修饰的x m l 文档中含有的元素,含有多个属性,其中n a m e 是元素的类型名,t y p e 指定元素的类型。还有i d 、n a m e 、r e kt y p e 、s u b s t i t u t i o n g r o u p 、 d e f a u l t 、f i x e d 、f o r m 、m a x o c c u r s 、m i n o c c u r s 、n i l l a b l e 、a b s t r a c t 、b l o c k 、f i n a l 等属性。 ( 2 ) s i m p l e t y p e 简单元素 一个元素中仅仅包含数字、字符串或其他数据,不包括子元素( 元素嵌套) 或属 性。简单类型约束有两种,一是扩展的简单数据类型,有约束类型、枚举类型、列表 类型、联合类型、匿名类型;二是内建的简单数据类型,用来描述元素的内容和属性 值。s i m p l e t y p e 类型的属性有f i n a l 、i d 和n a m e 。本文中使用的是约束类型,详细介 绍一下。例如 s i m p l e t y p e :定义简单数据类型元素, 9 北京化t 大学硕士学位论文 n a m e :类型的名称属性, a g e :类型的名称值, r e s t r i c t i o n :对数据类型的范围进行限制元素, b a s e :基础类型名称属性, i n t e g e r :内置基础类型名称值。内置数据类型有x s :s t r i n g 、x s :d e c i m a l 、x s :i n t e g e r 、 x s :b o o l e a n 、x s :d a t e 、x s :t i m e 等1 9 种。 m i n e x c l u s i v e :最小不包括的值, m a x i n c l u s i v e :最大包括的值。 ( 3 ) c o m p l e x t y p e 复杂元素 复杂类型c o m p l e x t y p e 包含其他元素和属性的x m l 元素。c o m p l e x t y p e 类型可 以定义元素的元素名、元素的内容和子元素的结构。c o m p l e x t y p e 类型中,可以含有 s i m p l e c o n t e n t ,c o m p l e x c o n t e n t ,g r o u p ,s e q u e n c e ,c h o i c e 、a t t r i b u t e ,a t t r i b u t e g r o u p , a n y a t t r i b u t e ,这几种元素决定c o m p l e x t y p e 类型中内容的类型,不过最多只能包含一 种元素。本文中主要使用了s e q u e n c e 和a t t r i b u t e 。 s e q u e n c e :c o m p l e x t y p e 类型中的内容是指定的队列中的元素。 a t t r i b u t e :c o m p l e x t y p e 含有指定的属性。 例如在x m l 中有如下元素: 1 1 2 0 0 9 1o 11 b o w u g u a n 柱 此博物馆收藏的文物很珍贵! 使用s c h e m a 定义就是 1 0 第二章基于x m l 的异构数据库交互的相关技术 ( 3 ) a t t r i b u t e 所有的a t t r i b u t e 都作为简单类型。一个s i m p l e t y p e 是不能含有属性的。 例如在x m l 中有如下元素: 当然还可以有其他的属性,比如默认是否可选,u s e = ”r e q u i r e d ”;固定值, f i x e d = ”a b c ”。在复杂元素中,可以使用a t t r i b u t e 来定义外键。 ( 4 ) k e y 和k e y r e f x m ls c h e m a 可以通过将一个元素或属性定义为k e y ,从而保证该元素或属性在 一定范围内的唯一性。在x m l 实例文档中,k e y 所代表的元素或属性的值组成一个 集合,可以通过k e y r e f 来限定另一个元素或属性的值必须在这个集合中。 k e f 的定义方法和u n i q u e 的定义方法十分相似。首先选择一组元素做为范围,然 后依据上下文关系指定某元素或属性为k e f k e f r e f 的定义跟k e f 的定义基本相同, 唯一区别在于增加了k e f r e f 属性来引用k e f 规范中是通过一个较长的例子来说明k e y 和k e y r e f 的定义,归纳起来可以做如下 定义:x m ls c h e m a 可以通过将一个元素或者属性定义为一个k e y ,这个k e y 必须是 u n i q u e 的,这个k e y 可以在x m l 文档中的其他部分通过k e y r e f 进行引用,k e y r e f n n - g 取自于k e y 的某一个值。k e y 的概念很类似于数据库中的外键【2 3 】。 2 1 5 典型数据库对x m l 技术的支持 最近人们对x m l 产生了极大的兴趣。x m l 已经被认为是因特网应用的一种合适 的数据交换方式,因为x m l 便于在计算机及应用之间交换,并独立于现有的数据库 和编程语言。这就要求现代w e b 信息平台能够对x m l 提供一流的支持。由于x m l 北京化工大学硕士学位论文 文档能够被持久支持,这种要求已涉及数据库领域,数据库必须考虑有效地存储和处 理x m l 文档。 ( 1 ) s q ls e r v e r s q ls e r v e r2 0 0 0 中s q l t o x m l 和x m l t o s q l 的映射机制是不对称的。数据库 中有一个存储x m l 查询视图的工具,允许用户从多个关系中检索数据,且可以在一 个具有任意嵌套的x m l 文档中连接数据,通过给s e l e c t 语句添加一个f o rx m l 子 旬来实现。向数据库中存储x m l 文档时使用一个新的模块o p e n x m l ,处理流程是 首先在内存中解析x m l 文档得到文档的d o m 表示,然后将x m l 元素映射到一个模 式中,最后删除内存中的数据。在s q ls e r v e r 2 0 0 0 等大型关系数据库中,可以对现 有的关系数据库中通过f o r x m l 执行s q l 查询,以返回x m l 文档形式而不是表格 的数据记录【2 4 1 。 图2 - 2s q ls e r v e r2 0 0 0 对x m l 支持的完整框架 f i g 2 - 2s q ls e r v e r2 0 0 0s u p p o r t sx m lc o m p l e t ef r a m e w o r k f o rx m l 子句有四种最基本的模式: a u t o 模式:返回数据表为表名的元素,每一列的值返回为属性。 ( d r a w 模式:返回数据行为元素,每一列的值作为元素的属性。 ( 爹p a t h 模式:通过简单的x p a t h 语法允许用户自定义嵌套的x m l 结构、元素、 属性值。 ( de x p l i c i t 模式:通过s e l e c t 语法定义输出x m l 的结构 2 5 1 。 s q ls e r v e r2 0 0 5 提供了对原生x m l 的支持,我们已经可以把x m l 作为一个 二进制的b l o b 存储在s q ls e r v e r 中的一个特殊列中。在s q ls e r v e r2 0 0 5 的 x m l 数据类型上,m s 提供了q u e r y 、v a l u e 、e x i s t 、n o d e 和m o d i f y 方法通过x q u e r y 进行x m l 数据的操作。s q ls e r v e r2 0 0 0 中没有x m l 数据类型,所以不能象s q l s e r v e r2 0 0 5 一样使用x p a t h ,x q u e r y 查询,不过s q ls e r v e r2 0 0 0 支持o p e n x m l 函 1 2 第二章基于x m l 的异构数据库交互的相关技术 数,在调用函数时可以使用x p a m 查询,s q ls e r v e r 2 0 0 0 可以通过建立临时表的方式 使用x q u e r y ,临时表中包含一个x m l 数据类型。 s q ls e r v e r2 0 0 5 直接“s e l e c tn e w s l d ,n e w s t i t l e f r o mn e w sf o rx m l p a t h ( n e w s ) ,即可获得x m l 数据,如下所示: 1 t e s t l 2 b 而在s q ls e r v e r 2 0 0 0 中只能通过如下语句: s e l e c t1a st a g ,n u l la sp a r e n t ,r t r i m ( n e w s l d ) a s n e w s l 11 n e w s l d ! x m l 】 ,r t r i m ( n e w s t i t l e ) a s n e w s 111 n e w s t i t l e ! x m l f r o mn e w sf o rx m le x p l i c i t 才能获得x m l 数据,如下所示: 1 t e s t l 2 b ( 2 ) o r a c l ex m l 开放技术 x m l 模块化了结构和半结构化数据,o r a c l e 9 i 支持结构化和半结构化数据,也支 持复杂的和未结构化的数据。由于o r a c l e 9 i 可以本地实现存储、查询、表现形式和 x m l 数据的操作,所以o r a c l e 9 i 是对x m l 开放的。 数据是做为使用对象视图的相关表或做为c l o b 中的x m l 文档而存储的,使用 o r a c l e 文本能搜索存储在x m l 类型列和c l o b 列中的x m l 文档。在o r a c l e 9 i 中x m l 数据以下列方式存储2 6 】: 生成x m l 方式:x m l 数据在数据库中通过对象关系表存储或作视图,当需 要时数据能被动态的恢复成x m l 格式。 这种方式的优点在于,当x m l 是一种交换格式且存在的企业数据库仅限于x m l 1 3 北京化工大学硕上学位论文 结构时使用生成x m l 方式,这是在数据库中使用x m l 最通用的一种方法,x m l 仅 仅用于交换过程本身且是暂时的。 组合x m

温馨提示

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

评论

0/150

提交评论