




已阅读5页,还剩49页未读, 继续免费阅读
(计算机应用技术专业论文)异构关系数据库间通用数据转换模型的研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
异构关系数据库闯通用数据转换模型的研究 摘要 数据露是诗算税科学技术中发展最快,应沼最广泛的羹要分支之一,它已成为计算机 信怠系统筘计算税应弼系统的霪要技术基础和支柱。数据库的出现给我们带来了很大的便 利,提供了快速的信息搜索查询方式,但是数据库也给我们带来了一些不便,现在数据库 系统种类繁多,例如o r a c l e ,s q l s e r v e r ,d b 2 ,s y b a s e ,l i n u x 平台的自由软件m y s q l 等,他们备自有不同的标准,并且用于不同的操作系统,要在他们之间转换数搬尽管可行, 但是非常困难。x m l 技术的出现为不同数据庠间转换数据提供毅的途缎。 本文以j a v a 2 和x m l 技术为基础,提擞以x m l 文档终戈是孛句关系数据库瓣数据转换 的中间形式,使彳寻数擐库中的袭结搀裁表数据以以搽准瓣方式攒述,克鼹了现有工纂的 中阀文 牛不可疑、转羧基予源秘罄标之闽等缺盎。该模型饺褥异翰关系数据瘁闯数据转换 静模式由魏两汪辎交换交为激x m l 文档为中心韵疆形转换方式。 论文良异构关系数谮瘁问数据转换为西的,分辅提出了表示数据库中表结构和表中数 据的x m l 的格式,并给出了聱j 用“x m l 映射文件”实现将数据由数据库抽取到x m l 的 方法,以及利用“x s l ”实现将数据由x m l 导入剿数据库的方法。 关键字:x m l , d t d ,s c h e m a ,j d b c ,j a v a 2 ,h t m l , s g m l , a p i , x s l a b s t r a c ,l d a t a b a s ei so n e o f i m p o r t a n t b r a n c h e si nc o m p u t e rs c i e n c e i th a sb e c o m e t h e 。s i g n i f i c a n t t e c h n o l o g y f o u n d a t i o na n db a c k b o n ei nc o m p u t e ri n f o r m a t i o ns y s t e m sa n d c o m p u t e ra p p l y i n g s y s t e m s t h ei n v e n t i o no f d a t a b a s eg i v e s u sg r e a t c o n v e n i e n c e ,p r o v i d e su sf a s t e s tw a y so f i n f o r m a t i o n s e a r c h i n ga n dq u e r y h o w e v e r , d a t a b a s e a l s ob r i n g su ss o m ei n c o n v e n i e n t d a t a b a s e h a s n o w a d a y s v a r i o u ss y s t e m sa n d t y p e s ,f o re x a m p l eo r a c l e ,s q ls e r v e r , d b 2 ,s y b a s ea n d m y s q l t h e y h a v et h e i ro w ns t a n d a r d sa n d a p p l y t od i f f e r e n to p e r a t i n gs y s t e m s a l t h o u g hd a t a c o n v e n t i o na m o n gt h e mi sp o s s i b l e ,i ti st o od i f f i c u l t t h ei n v e n t i o no f x m l g i v e su sa n e w w a y o f d a t ac o n v e n t i o ni nd i f f e r e n td a t a b a s es t e m s t h i sp a p e ri sb a s e do nt h e t e e h o n o l o g y o f j a v a 2a n dx m l t h a ti st os a y , x m ld o c u m e n ti s u s e da sam e d i u m c o n v e n t i n g d a t af o r ma m o n gd i f f e r e n td a t a b a s es y s t e m s ,s oi tm a k e ss c h e m a a n dd a t ai nd a t a b a s ed e s c r i b ei ns t a n d a r dw a y i nt h i sw a y , t h ed e f e c t s 辩o v e r c o m e di nt h e e x i s t i n gt o o l s i nt h eo l dw a y s ,m e d i u m f i l e sa r e i m p l i c i ta n d c o n v e n t i o ni sb a s e db e t w e e ns o u r c e d a m b a s ea n dd e s t i n a t i o nd a t 如a s e 。t h et e c h o n o l o g i e sd i s c u s s e di nt h i sp a p e rm a k et h e c o n v e n t i o nb e t w e e nd i f f e r e n td a t a b a s es y s t e m sf r o ma l lo l d ,p o i n t - t o - p o i n tw a yt oan e w s t a r - s t y l ew a y , i n w h i c hx m li sv e r y i m p o r t a n t a sam e d i u m t h i sp a p e ra i m st od a t ac o n v e n t i o ni nd i f f e r e n td a t a b a s es y s t e m sa n ds h o w st h ex m l p a t t e r n sr e p r e s e n t i n g t h es c h e m aa n dd a t ai nd a t a b a s e a l s o ,i tg i v e sw a y s o f c o n v e n t i n gd a t a f r o md a t a b a s et ox m ld o c u m e n t sb yu s i n g “x m l m a p p i n g f i l e s ”a n dc o n v e n t i n gt h ed a t ab a c k t od a t a b a s ef r o mx m l b y u s i n g “x s l , k e y w o r d s :x m l ,d t d ,s c h e m a ,j d b c ,j a v a 2 ,h t m l , s g m l ,a p i , x s l 第一章绪论 第一章绪论 1 1 异构关系数据库转换数据的现状 随着越来越多的商业应用的出现,可供选择的数据库类型也越来越多。这样,不同的 商业应用使用不同的数据库管理系统成为了十分普遍的现象。此时,不同数据库之间数据 转换的要求也就变得十分紧迫。 1 1 1 数据库间转换数据的应用背景 不同数据库间转换数据的应用主要表现在以下几个方面: 口企业信息系统的升级过程中的数据转换,以实现最大程度复用现有数据 口c s 或者n 层应用中的不同数据源的数据交换和共享 口异构客户端与服务器之间的数据导入导出 1 1 2 异构关系数据库的定义 在本论文中,异构关系数据库指不同的关系数据库管理系统,例如s q l s e r v e r 、o r a c l e 、 d b 2 等,但是并不限制数据库管理系统所在的平台。 1 。1 3 常用的数据转换工具及异源数据访问的发展 不同数据库间转换数据的应用促进了数据转换工具和异源数据访问的发展。目前,有 许多支持异源数据访问的a p i 和组件,例如:o d b c 、j d b c 、o l e d b 、a d o 等等,还有 许多商业数据库管理系统都带有专用的数据转换工具,常见的工具有s q l s e r v e r 2 0 0 0 中的 d t s 、o r a c l e 的s q l + l o a d e r 、p o w e r b u i l d e r 中的d a t a p i p e l i n e 等,它们都为实现不同数据 库间访问和数据转换提供了强大的功能。 1 1 4 现有数据转换工具的局限性 虽然以上这些工具可以实现异构数据库间的数据转换,但这些数据转换工具通用性差, 依赖于特定的平台。不同工具在每次转换过程中生成的文件不可知,因此其它的应用很难 利用要转换的数据进行操作。另外不同的转换需要重新生成转换的中间文件,使得数据转 换局限在进行转换的源和目标数据库之间,即使只是简单的将一个数据源的数据转换到各 个不同的目标数据源中去,由于没有中间标准,各个系统的实现人员也几乎没有可能将代 第一鞲嬉媳 码重用。如果能够设计一个通用的转换标准,以上问题将得刹很好的解决。 1 。2x 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 捧为异摘关系数据 库间转换数据的中间形式。 l 。2 。 x m l 的特煮 x m l 是一种数据标记语裔,搬黉有以下特点: o 翅袋蘧述蕴惠,棱遥、移储秘茨送售塞。它熬援惑是数据靛巍骞 口x m l 鲍标签帮文档结构不是隧定酾,楚霹黻扩震靛 口w 跨乎台,独立于各软传、醺终 辩。2 2x m l 在数撵转换枣酶皮震 x m l 的特点及瓣标准化使得它蜓常用于不同的数据交换领域中,数据岸就是其中个 颧域。x m l 凌鼗籀艨中静嚣觅寝爝镪括瑷下凡方箍: 叠餐僚数攒库:便翅x m l 来餐份数裙痒帮酸灵活鹣蒋数播律中瓣髂怠转移至l 箕谴懿平 台帮数据库系绫巾,丽藏备徐数瓣库占翊瀚空闯巍菲鬻小 口柱不同豹数据摩恕问交换数搬:可以将个系统中的某种类型数据麾义件用x m l 导 凌,爨磊粪勇静一个系绞中熬茭憩鼗撂露争将鼗援遘褥导入魏霹溢了,x m l 霞簿簿平 台的不同数据降之间的数据交换变得更娜方便,本文即怒进行这方面随用的研究 。将数撂导入裂数捺仓痒系绞嗲;数据仓簿中存骞大量承受数撂,这登数据往往皋巍予 企她串不同地域嬲种类的数掇麾,数据的瓣含导入变得十分复杂,丽x m l 使得邈闷 藤媳褥爨瓣狭 1 。3 主流数据痒对x m l 的支持 随着瑚l 的发鼹,主流数据露纷纷提供了辩蕊l 酶支持。这垫支簿燕簧包括将关系 2 第一嚣绪论 数据以x m l 的形式鼹示( 即以适当的v 【l 格式,来描述关系数据) 以及将符合要求的 x m l 文 串表示豹数攒导入至数攥蓐鼹方嚣。不同熬数据库警壤系统攒述关系数摄的x m l 的格式并不相同,并鼠只能描述简单的关系数据,因此本文提供的方案中,并没有利用各 数据艨提供的关于x m l 抟功能,但会参考各数据库戆理系绞提供的功能。 3 1o r a c l e 对x m l 的支持 o r a c l e 中的工具x s u ( x m l - s q lu t i l i t y ) 可以实现将o r a c l e 数据库中的数据转化为 x m l 格式。x s u 其搿班下功能: 口将一个s q l 查询溅j d b c 的结果榘转化为x m l 文档( 字符串形式或d o m 形式) 口簸一个x m l 文档中籀取数据,然蠡将数据插入数禧痒静袭中,雯耨数据簿表中酌数弦 或者从数据库表中删除相应的数掘 x s u 逶遥提镤款筑j a v a 类,把s q l 查谗或d b c 楚结莱集转键必x m l 文箨。蒸中 的o r a c l e x m l q u e r y 类专用于转换。 1 3 2d b 2 对x m l 的支持 d b 2 提供了对x m l 的丰富的支持。在d b 2 中,将关系数据转化为x m l 文件的方法 有以下几砷: 口使用简单的函数 口使用“s q l c o l l e c t i o n ”将查询映射为x m l 文档 口使用“r d b n o d ec o l l e c t i o n ”将许多表淤射为x m l 文档 口也可以利用自己编写的脚本 d b 2 中擒供函数r e c 2 x m l ,可敬圭| 三减一个不完全酌x m l 文档 割。3 3s q l s e r v e r 对x m l 的支持 s q l s e r v e r 提供了在s e l e c t 语每中添熬“f o r x m l ”语訇来宾瑗将数攥痒中敬数摇转换 为x m l 文档。以下题一个利用“f o r x m l ”语句来生成x m l 文档的例予2 0 s e l e c tc u s t o m e r s 。c u s t o m e r l d 。c o n t a c t n a m e 。c o m p a n y n a m e , o r d e r s c u s t o m e r i d f r o mc u s t o m e r s ,o r d e r s w h e r ec u s t o m e r s c u s t o m e r l d = o r d e r s c u s t o m e r l d 撑 d ( c u s t o m e r s c u s t o m e r l d = n a l f k i o r c u s t o m e r s c u s t o m e r l d = n x y z a ) o r d e rb yc u s t o m e r s c u s t o m e r l d 弦r x m t a u t o 3 第一章缝论 1 3 4s y b a s e 对x m l 的支持 s y b a s e 馒麓j a v a 类r e s u l t s e t x m l ,柬支持殓疰l ,它是j x m l 豹一个子类,翊来飘 有效的s q l 语句中生成x m l 文档。还提供了对结果的x m l 文档骢证、访问和修改的功 能。使用r e s u l t s e t x m l 的简单语句如下2 0 : j c s + x m l 。r e s u l t s e t r e s u l t s e t x m l r s x 。 o e w j c s x m l r e s u l t s e l r e s u # s e t x m l 1 s e | e c t + f r o mo r d e r s , t 其它参数 ) : f i l e u t i l s t r i n 9 2 f i l e ( o r d e r s s e t x m r , r s x g e t x m l t e x t 0 ) : 其中,r e s u l t s e t x m l 的一个构造函数的参数是一个s q l 语句,刹用函数g e t x m l t e x t 0 藏可疆褥嚣豫镊0 懿字符串。 1 。4 论文缩构 本文班 v i 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 文秘絮孝每语言d t d 及x s l 。 第三章主流数据库的数据转换工具概谶,主要讲述s q l s e r v e r2 0 0 0 、o r a c l e 9 i 中的数 据转换工具的纂本功能和特点,以及一些前台开发的工热中提供的数据转换工具。 第强章冥 奄关系数摆痒阙逶震数据转捺模型鳇设计。这一章在爨签主滚数撂露对数据 转换的技术基獭之上,提出了本文设计的转换模型,并深入讨论其设计思想、絮构和原型 代码的实现。 。 第五章结论与展望,总结金文,指出本模型的不足,提出进一步研究的方向。 4 第= 章x m l 概述 2 ;唾x m l 篙介 2 1 。1 标记语言 第二章x m l 概述 标记语畜由标论鸟代码缀戚,这蹙标记姆代码用于告诉成精程序如何去处理。称记语 言定义文终的结构、遗义以及表瓣方式,至予翔 霹裘现文 粤测是应髑疆痿瓣互作。 s g m l 、h t m l 潮x m l 都是标记语言。 s g m l 楚豢著襄翡簸麓途椽诞添言,它怒鬻际标准组织( i s o ) 于 9 8 6 年透过懿一 个通用标记谗言。s g m l 是种元语畜,它怒义严谨,强烈瓣求文件的辅枸慷。它的可移 植性朝可扩展性高、功能完熬以及应用广泛,但是其复杂瑕艘相对也姣赢,所有耳魏矮没 有蔗够多熬支持s 通l 嚣瘟爝较释。 h t m l 嚣蓊是w w w 应簸中激必警及的标记语袁。它怒耱有特殊弱途煞标记语京, 将骈鬻的标铤予戳特定鹈含义进行定义。餐繇獭这些标记秃法满是掰户韵灞求时,潦酌 办法就是在使用它的应用程序上作出修改,邀样会使h t m l 瞧失灵瓣性。 x m l 也憝一辩拣记语言。它谈诗戆羞藩塞纛予定义文搏酌缝穗黎涵义,一个x l v l l 文 件经过解读藤,可以为其它威用与程序所使用。x m l 不同予h t m l ,它并没有特别去定 义要懿斑显零文俘懿蠹容,瞧没蠢糠裂要求辩搜翅爨一耱榉裁表,穗交黪鲶瑷x m l 文孛 的残瘸程序巍行决定。它豹撂记不固定,所戳比h t m l 扩展性好。它是以s g m l 为释栋 经遗麓讫纛设计出来麓,藩酶较s g m l 夺褥多,因藏宅还竞驻了s g m l 过于复杂静缺点。 驻。1 :2x m l 编瓣鼹 x m l 文档本身怒个文本文件,其扩展粥翔“x m l ”,可以使髑任 珂文本编辑器( 例 如记攀本、u l t r a e d i t ) 制作或编辑x m l 文件。 鞠麓院鞍完善熬拿x m l 文转编辑器燕w a t t l es o a k a r e 公霉懿x m l w r t e r ,它不仅可 以编霹x m l 文件,还可以制作d t d 、x s l 样代表、c s s 样式表以及h t m l 文件。 2 4 。3x m l 鳃擀器 所谓x m l 解析器是输入x m l 文件,将文件加以解析,然后切害0 成个个的单元,并 且捻骚其结麴是歪牧合x m l 要漱戆一耱痊爨糕枣。一个x m l 艇辑爨可以肇独存在, 夔珂 班与蕊它载纛弱程黪( 骥热滋整嚣) 台劳在一越霞翅。 5 簿二章x m l 概述 2 1 4x 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 范潮: h e i i o ,w o r l d # 第一行是文件头部分,其余的属于文件本体部分。 口每一个文l 牛只能蠢一个檄标记 每一个x m l 文件都拥有一个最外艨的标记组,该标记是不被其他标记所包含的,称为 根元素,除了根元索外,每一个标记会被男一组标记所包含 口所有标记须嵌套辩剜 口所有标记必须成对出现 口椽记名称区分大小写 口x m l 文档中的属性值有两个规定:属性必须有值,值必须用引号括起来 2 2 x m l 文件的解析 解析x m l 的文件,可以利用与应用程序熬合在一起的x m l 解析器( 例如i n t e r n e t e x p l o r e r 舨本5 x 跌上) ,也谢以刭熙x m l 豹多耱绩凝接口。曩蓑最浚簿窥广泛使建鼹绽 程接口有四种:文档对象模型( d o m ,d o c u m e n to b j e e tm o d e l ) 、用予x m l 的简单a p i ( s a x ,s i m p l e a p i f o r x m l ) 、j d o m 积是予x m l 勰撰的j a v a a p i ( j a x p ,j a v a a p i f o r x m l p a r s i n g ) 。 2 2 1 文梢对象类型( d o m ) 文档对象模型( 通常称为d o m ) 为x m l 文档躺已解析版本定义了一鳃接日。瓣析 器读入整个文档,构建一个驻留内存的树结构,然后代码中就可以使用d o m 接口米操作 整个树结构。d o m 撬供了一缀丰富酌功能,可戳焉这些凌熊柬解释帮搡佟x m l 文稻,疆 使用它们是肖代价的,主要存在以下几个问题: 叠d o m 聿鼋建整个文狴驻整内存静褥。舞票文橙缀犬,藏会要求鸯极大戆肉存 口d o m 创建表示原始文档中每个节点的对浆,包括元素、文本、属性和空格。如果只需 荚注覆始文档弱一小部分,那么锘建那些永远不被使用鹣对象是极其渡赞兹。 第二章x m l 概述 口d o m 解析器必须在代码取得控制权之前读取整个文档。对于非常大的文档,这会引起 显著的延迟 这些仅仅是由文档对象模型的设计引起的问题;撇开这些问题,d o m a p i 是解析 x m l 文档非常有用的方法。 2 2 2 用于x m l 的简单a p i ( s a x ) 为了解决d o m 问题,x m l - d e v 参与者们( 由d a v i d m e g g i n s o n 领导) 创建了s a x 接口。s a x 的几个特征解决了d o m 的问题: 口s a x 解析器向代码发送事件。当解析器发现元素开始、元素结束、文本、文档的丌始 或结束等时,它会以事件的方式传达。如果没有显式地保存来自某个事件的数据,它 就被丢弃 口s a x 解析器根本不创建任何对象,它只是将事件传递给应用程序。 口s a x 解析器在解析开始的时候就开始发送事件。当解析器发现文档开始、元素开始和 文本等时,代码会收到一个事件。 但s a x 解析器也存在以下一些问题: 口s a x 事件是无状态的。如果想知道,必须编写状态管理代码 口s a x 事件不是持久的。如果应用程序需要一个数据结构来对x m l 文档建模,则必须 自己编写那样的代码 2 2 3j d o m 用d o m 和s a x 模型完成某些任务时的困难使j a s o n h u n t e r 和b r e t t m c l a u g h l i n 创建了j d o m 包。j d o m 是基于j a v a 技术的开放源码项目,它试图遵循8 0 2 0 规则: 用d o m 和s a x2 0 的功能来满足8 0 的用户需求2 。r d o m 使用s a x 和d o m 解 析器,因此它是作为一组相对较小的j a v a 类被实现的。 j d o m 的主要特性是它极大地减少了必须编写的代码数量。j d o m 应用程序的长度通 常是d o m 应用程序的三分之一,大约是s a x 应用程序的一半。 2 2 4 用于x m l 解析的j a v a a p i 尽管d o m 、s a x 和j d o m 为大多数常见任务提供了标准接口,但仍有些事情是它 们不能解决的。例如,在j a v a 程序中创建d o m p a r s e r 对象的过程因d o m 解析器的不同 而不同。为了修正这个问题,s u n 发布了j a x p ( 用于x m l 解析的j a v a a p i ,j a v a a p if o r x m l p a r s i n g ) 。该a p i 为使用d o m 、s a x 和x s l t 处理x m l 文档提供了公共接口。 j a x p 提供的诸如d o e m n e n t b u i l d e r f a c t o r y 和d o c u m e n t b u i l d e r 之类的接口为不同的解析器提供 第二章x m l 概述 了一个标准接口。还宵一些方法可以允许控制底层的解析器是否可以识别名称空间以及是 否使瘸d t d 躐s c h e m a 寒狻涯x m l 文橙。 2 。2 ,5 各耱编疆接霜的乏较 不同的接网有不阑的特点,适合予不同黪寝用程廖需求,下瑟是几穗编稷接口懿i 较: 口j a x p 适合于用j a v a 编写代码的艨用,将代码与释种解析器实现的细节隔离 口s a x 解拼器比d o m 解桥器小,邂合于要求代码蹙较小的应用,例如应用程序将鼷作 为j a v aa p p l e t 部署时 口d o m 适食于需要再次访问x m l 文件的融解析版本的应用,因为d o m 自动保存所有 的数据 口s a x 适合于只需攒“l 源文件的少量内容的应用 口s a x 适合于内存镪少翡的待况下麓应孺 2 。3 文档类型定义( d t d ) x m l 是令标记霹扩震蛉爨记送骞,宅霹鞋謦蠢一个文糖类型定义( d t d ) 文传。一 个d t d 可以精作是标记语言的语法文件,它鼹一套定义x i v i l 标记如何使用的规则。d t d 使彳导x m l 文 串的数撼共享霹以独立于应用程序。不固的应用可以使用羼一个d t d 来互楣 交换数据。 2 3 1d t d 的声黼 d t d 可以分为内都d t d 和岁 部d t d 两大类,内部d t d 在x m l 文件鹣褒头处声明, 声明的语法结构如下: d o c t y p er o o t - e l e m e n t - n a m ei d t d r u l e i 。d t d - r u l e 2 ,d t d - r u l e 3 , p 外部d t d 单独存在于一个文件中,该文件包含了定义x m l 文件组织结构所有的规则, 瑟量扩器名爨d t d 。声骥终部d t d 的语法缝掏懿下: d o c t y p er o o t - e l e m e n t - n a m es y s t e mlr 尸u b l i cd t d n a m e ) d t d u r i 避过以上鼯秘声明,x m l 勰辑嚣在一开娥裁可以知道一份x m l 文l 孛的格式定义了e 贮。3 。2 元素的声嚷 d t d 对x m l 文件中元桊的声明语法如下; 第二章x m l 概述 ! e l e m e n te l e m e n t - n a m ef e l e m e n t - c o n t e n t ) 其中e l e m e n t - c o n t e n t 包括多种类型,如下所示: 口空元素:以关键字e m p 丁y 来声明: 口含有数据的元素:可以声明为# c d a t a 、# p c d a t a 、a y # c d a t a 代表不需要解析器解析的字符数据,存p c d 饵粥代表要由解析器解析的数据, a n y 代表内容不受限制的元素 口含有子元素的元素:定义格式为: ! e l e m e n t e e m e n t - n a m e ( c h i l d - e l e m e n t - n a m e , c h i l d - e l e m e n t - n a m e ,j ,1 子元素必须被声明,子元素也可以再嵌套子元素。 口带有出现次数的元素:用符号来表示子元素可以出现的次数:“ 代表可以出现零次 或多次;“+ ”代表出现一次或多次;“? ”代表出现零次或次:什么都没有则代表必 须出现且只能出现一次。例如: ! e l e m e n t n o t e ( m e s s a g e 1 2 3 3 属性的声明 d t d 中,x m l 元素的属性是通过“a 丁1 1 s t ”声明: ( ! 声1 1 _ r u s te l e m e n t - n a m ea t t r i b u t e - n a m ea t t r i b u t e - t y p ed e f a u l t - v a l u e 其中,a t t r i b u t e t y p e 有多种情况,下面是几种常见的情况: c d 4 弘:代表字符数据 d :出现的值不可以重复,是唯一的 i d r e f :是另一个元素的d n m 阳雕;m 是一个x m l 的有效的名字 d e f a u l t - v a l u e 可以有以下几种值: # d e f a u l tv a l u e :属性有一个确实值 嘏e q u 假e d :属性必须出现 撑f m p f ,印:属性可以出现,也可以不出现 舻f x e d :属性必须以某个值出现 2 3 4 一个内部d t d 的例子4 7 ? x m fv e r s i o 仃= ”7 0 2 9 口口口口 口口口 第二章x m l 概述 ! a t t l | s tt e la r e a c o d ec d a l a # l m p l t e d p 2 3 5x m l 文件的检验 当x m l 文件带有d t d 文件时,x m l 解析器不仅会检查x m l 文件是否符合x m l 标 准的规范,还会按照d t d 中的定义,检查文档是否符合要求。也可以通过设置,取消对 d t d 的校验。 2 4x s l 样式表 因为咀。不使用预定义的标签,所以除了x m l 文档,还应该有工具来描述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 s l 可以实现几个功能:转换x m l 文档为x h t m l ;过滤和分类x m l 数据;定义 x m l 文档的某一部分;根据x m l 文档的内容格式化数据;将x m l 文档的内容输出到不 同的设备。x s l 通过三个部分来实现上面提到的功能:x s l t ( 一个用于转换x m l 文档的 语言) 、x p a t h ( 定义x m l 文档某一部分的语言) 和x s l f o r m a t t i n go b j e c t s ( 用于格式化 x m l 文档的词汇表) 。其中,x s l t 是x s l 中最重要的一部分,它用来将x m l 文档转换 为其它形式的x m l 文档或其它浏览器可以辨认的文档形式。一般的,一个转换的过程, 即是指x s l 利用x s l t 将源x m l 树结构转换为结果x m l 树结构的过程。 本论文在“将x m l 文件导入到数据库”的方法中,使用了x s l 。利用x s l 将x m l 文件转换为含有目标数据库所需s q l 语句的x m l 文件。 2 4 1x s l 的声明和引用 x s l 也是标准的x m l 文件,必须在文件的头部添加声明。相应的x m l 文件中则应该 增加引用x s l 文件的语句。 声明x s l 文件的语句为: x s l :s t y l e s h e e tv e r s i o n = “1 0 ”x m l n s :x s l = ”h t t p :1 w w w w 3 o r g 1 9 9 9 x s u t f a n s f o r m : 在x m 文件中引用x s l 的语句为: 2 4 2x s l 中的元素 x s l 有许多定义好的元素,分别代表不同的含义,下面是常用的几个元素 第二章x m l 概述 口 元素 x s h t e m p l a t e 元素包含一系麓要痖躅懿疑羹l ,当x 羚纯文终中静冤豢与t e m p l a t e 中懿 定义相匹配时,就对该元索应用规则。 中的属性“m a t c h ”用来指定匹配 的条件 口 元素 元素愆来获褥选中节点静簸,并把萁添热蓟转换静输豳流中。它有属性 “s e l e c t ”,用来指定选择带点的条件 口 元素 x s l :f o r - e a c h 元素惩寒在x s l 中 擘锤臻,戬褒选择禁令节点集中瓣每一令元豢。元素 韵选择以属性“s e l e c t ”采设置 口 元索 元素将结果按照每个元素值排序。仍用“s e l e c t ”属性表示所选择的元素 叠 元素 元素包含一个模税,只有在指定的条件满足时,才应用该模檄。条件以属性“t e s t ” 来表示 o 元素 x s h c h o o s e 元素同 元素和 x s l :o t h e t w i s e 元素联合使用,用来表示多重条 件 口 蠢索 元素鼷寒荛菜仑壤叛豹燕粪# 瘦瓣到当菸嚣豢或鹭兹元素豹子节 点中。可以添加“s e l e c t ”桶性,表示只肖满足s e l e c t 满性值的元素才应用相应的模板的 规则 2 4 。3 一个x s l 的例子 下面是一个简单的x s l 的例子4 8 。 源x m l 文耱为: e m p i r e b o b l o l 弟= 帮) ( m l 概述 对应的x s l 文件为: 1 2 第三章主流数据库的数据转换工具概述 第三章主流数据库的数据转换工具概述 许多数据库服务器和客户端的开发工具中都提供了将数据由一个数据库转换到其它 数据库的工具。这些工具提供了丰富的功能,有效解决了异构数据库间数据转换的问题。 但这些工具有一个共同的缺点,数据转换的中间数据格式不可知,得到的中间的数据只对 源数据库的工具有用,无法共享或用于其它用途,也不能直接用于多个数据库,或被应用 程序开发人员使用。这样限制了异构数据库间数据的转换,也限制了应用程序的开发。 下面是几种常用的数据转换工具。 3 。1s q ls e r v e r 的d t s s q ls e r v e r 提供了一个工具d t s ( d a t at r a n s f o r ms e r v i c e ) ,用来实现数据库间数据转 换的任务。它可以以图形界面或编程的方法来实现。具体包含的几个方面见图表l 。 3 1 1d t s 的工作流程 图表1 一个完整的d t sp a c k a g e d t s 的基本工作流程如下: 口建立源和目标之间的连接( c o n n e c t i v i t y ) 口定制转换的任务,每一个功能被称为一个t a s k 口定制任务成功或失败或完成后的操作,称为一个w o r k f l o w 口存储整个过程为一个文件,称为d t sp a c k a g e 其中,t a s k 比较重要,代表了d t s 可以提供的数据转换的主要功能。 3 1 。2d t st a s k d t st a s k 可以完成以下的任务 第三章主流数据库的数据转换1 + 具概述 口导入、导出数据 。转换数摆:d t s 竞诲驮一个数据源逡耩数据,按照给定稳一些蠖刘,凌残数撵袄隽孝到 目标 口拷贝数据库对缘:d t s 可以在s q l s e r v e r 的数据库间拷贝索引、视图、登录信息、触 发器、存鼹过程、约束、怒户基定义的类型等 叠自己编写t - s q l 语句或a c t i v e x 脚本 3 2o r a c e l 的s q l * l o a d e r s q l * l o a d e r 是o r a c l e 提供的一个将数据从数据文件装载到o r a c l e 数据库表中的一个 工媳。它不支持目标数据库是j o r a c l e 数据库的数据转换,所以以下内容重点讲述 s q l * l o a d e r 在数摆装载中可以提供的一些好的功能。圈液2 显示了一个标准的 s q l * l o a d e r 工 餐流程。 豳液2 一个标准豹s q l l o a d e r 王作流程 3 。2 。1s q l * l o a d e r 的重l 乍原理 s q l + l o a d e r 工作的基本方法是:将要装载的数据放在数据文件( d a t af i l e ) 中,一个控 制文件( c o n t r o lf i l e ) 用来描述数据文件中的数据。启动s q l + l o a d e r 席,s q l + l o a d e r 通 避貘取整喜l 文传,褥型要装载粒数据,以及嚣橱瘴孛群缝表、缨些列存放数据,然履执幸亍 装裁操作,并分剐生成d i s c a r df i l e 、l o g 蠡i 。和b a df i l e 第三章主流数据库的数据转换工具概述 3 。2 。2s q l * l o a d e r 的功髓 s q l * l o a d e r 灵活性很大,可以提供以下的功能: 口在一次l o a d 会话中,同时从多个数据文件中读取数据和向多个文件中装载数掘 园支簿多稳数攥类型:t e x t ,n u m e r i c ,z o n e d d e c i m a l ,p a c k e d d e c i m a l ,鞋及鑫耱二 迸制类型 口从d a t a f i l e 中读出的数据时,s q l * l o a d e r 允许使用o r a c l e 内置的s q l 函数 口除了表,s q l 4 l o a d e r 还可以将数据装载入面向对象的表、可变长度的数组以及漩套表 礴s q l * l o a d e r 霹越控豢l 嚣繇瘴耪源数据文俘阕瓣字餐嶷( c h a r a c t e rs e t ) 豹转纯 3 3p o w e r b u i l d e r 中的d a t a p i p e l i n e p o w e r b u i l d e r 是一套强大豹数摇痒应麓系统开发工必,它具有完熬的客户i n 势器体系 结构、面向对象的应用程序歼发方法以及w 视化的开发环境,因而成为近几年较流行的数 据库前端开发工具。它也提供了可以实现多数据库间转换数据的方法:d a t a p i p e l i n e 。 3 3 1d a t a p i p e l i n e 的功能 p o w e r b u i l d e r 的d a t a p i p e l i n e 可以提供 ;上下功能: 辽籍一个或多个表孛静数褥,提取翻稳瓣域不同数器露管理系统( d b m s ) 中 口将整个数据库导入到其它数据库管理系统 口创建与选中的表结构相同的表,但没有数据 滋将发生交纯黪本建数据土羧裂一个公瓣豹数据疼中 国当蟊标表审酌有些设置不允许( 例如避否可以有n u l l 值,或主键不同) 时,可以生成 一个新表 3 4 各种王兵的饶缺点 前面概述了一些与数据转换有关的工具,下面简单总结其各自的优缺点: 0s q l s e r v e r 螅d t s = d t s 功能全瑟露蠢操作容易。窀可以支持多璐不圆数据霹系统之 间的互搡 箬,对于提取爨静表中豹数攒,霄鞋透露多种条传酶筛滚,并且可强翔多搴孛 灵活的方法宓现,不满足应用要求的筛选,还可以蠛过提供自己编写的a c t i v e x 脚本 的方法来实现。它还可以嶷持从文本文件导入数据库或将数据库数据导入到文本文件, 这墨戆文本文终毖绥雩孥会s q ls e r v e r 羧定义戆忍秘辏式。餐是d t s 戆缺点是,数据转 换是基于源和目标之间的,每次转换鄹需要重新指定一次,即使任务是将菜个源中的 数据导入到多个目标。同时,转换中生成的中间文件格式不可知,只对s q l s e r v e r 有 第三章主流数据库的数据转换工具概述 意义,这样其它的应用就不能按需执行操作或共享数据了 辽o r a c l e 懿s q l * l o a d e r :o r a c l e 兹s q l * l o a d e r 哭支稔嚣栝秀o r a c l e 数据瘁静撩佟,可 以说是专用于导入数据到o r a c l e 的一个工具。它的数据源要求将选中数据库中的数据 导入到文本文件,并配有相应的控制文件,这样是q e 常不方便的,需要分别借助各自 数据库的工爨。但是,也凌予它专门锋对o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《红楼梦》中风辣子初见林黛玉
- 房地产设计部工作总结
- 联通运维工作总结
- 高级职称评审汇报
- 《皎皎空中孤月轮》课件
- IT业务合作计划保密协议7篇
- 《画》这首诗的课件
- 2025购房合同标准范本示例
- 骨科负压引流患者的护理
- 2025年项目经理临时借用合同范文
- GB/T 44670-2024殡仪馆职工安全防护通用要求
- 2024年孩子打架双方协商后协议书范文
- 2024-2030年全球及中国交通工程软件行业市场现状供需分析及市场深度研究发展前景及规划可行性分析研究报告
- 肾性贫血的诊治进展课件
- 八年级上册《生命 生态 安全》计划
- 5.1 走近老师 (课件) 2024-2025学年七年级道德与法治上册 (统编版2024)
- 《济南的冬天》课后习题参考答案
- 2024年全国企业员工全面质量管理知识竞赛考试原题库资料(含答案)
- 物流行业园区智慧化风险管理白皮书
- 人教版四年级上册数学《速度、时间和路程》获奖说课稿
- 智联招聘国企笔试题库
评论
0/150
提交评论