




已阅读5页,还剩63页未读, 继续免费阅读
(计算机软件与理论专业论文)基于xml的异构数据库数据转换工具的设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
沈阳理工大学硕士学位论文 摘 要 随着数据库技术的发展和各行业间信息交换的日益频繁,不同种类数据库之 间进行数据共享的要求日益突出。传统的异构数据库间的数据转换工具已不能很 好地解决类型复杂的异构数据库间的信息交换,因此,本文结合新兴的xml技术, 应用其作为中间数据格式标准设计实现一个异构数据库数据转换工具。 xml 具有平台无关性、 可扩展性和互操作性, 具有数据语义描述和传送能力, 是理想的数据源交互媒介。 本文基于 xml 技术设计了异构数据库数据转换工具模 型, 并对其中 xml 数据结构文件和数据结构转换文件的结构进行了详细的设计与 描述。实现了迁移式和合并式两种数据转换方式并解决了其中存在的命名冲突、 数据类型冲突、结构冲突及语义冲突。根据实际需求,本文设计的 xml 数据结构 文件和数据结构转换文件考虑到了源数据库与目的数据库之间一对多和多对一的 复杂条件转换。同时,针对大批量数据转换对系统软硬件环境要求高的特点,本 文提出分包数据转换的思想与实现。 在数据转换工具的实现中,本文采用了 microsoft visual studio.net 平台和 visual c#开发语言。 利用 ado.net 数据库访问技术实现了数据库操作类并设计了 人性化的用户操作界面,实现了异构数据库数据转换的功能并将其应用到辽宁信 用项目数据交换系统中。 本课题基于信用项目提出,经过实际数据测试,取得了较好的效果。 关键词:异构数据库;转换技术;xml;ado.net 沈阳理工大学硕士学位论文 abstract with the development of database technology and high frequency of information exchange between industries, demands of data sharing between different types of databases become increasingly prominent. traditional transformation tools for transforming data between heterogeneous databases have not adequately address the complex types of heterogeneous databases to exchange information, so using the new xml technology, the paper designs and implements a data transformation tool between heterogeneous databases based on standard xml data format. xml has the features of platform independency,easy extendibility,good interactivity, semantic description of the data, data transmission capacity and it is the ideal cross-media of heterogeneous data source.the paper designs a data transformation tool model based on xml and gives the design and presentation of structure of xml data file and xml structure file in it.it achieves to transform data in two-way that the transfer way and the merger way.and it gives settlement to conflicts in naming ,structure,data type and meaning. on the basis of actual needs,the paper takes into account the complex conditions of one-to-many and many-to-one between tables in source database and purpose database. at the same time, it gives the idea of sub-data and put it into practice because of data transformation of large amounts of data needing high software and hardware environmental. in the implementation of the data transformation tool,the paper chooses microsoft visual studio.net platform and visual c# programming language.it implements classes of database operation based on ado.net technology and designs human user interface.this paper implements the function of the data transformation tool and puts it into effect in data exchange system of liaoning credit project. the subject carries out on liaoning credit project,the data transformation tool completes the actual data test and achieves good results. key words:heterogeneous databases;transformation technology;xml;ado.net 沈阳理工大学硕士学位论文 沈阳理工大学 硕士学位论文原创性声明 本人郑重声明:本论文的所有工作,是在导师的指导下,由作者本 人独立完成的。有关观点、方法、数据和文献的引用已在文中指出, 并与参考文献相对应。除文中已注明引用的内容外,本论文不包含任 何其他个人或集体已经公开发表的作品成果。对本文的研究做出重要 贡献的个人和集体,均己在文中以明确方式标明。本人完全意识到本 声明的法律结果由本人承担。 作者(签字) : 日 期 : 年 月 日 学位论文版权使用授权书 本学位论文作者完全了解沈阳理工大学有关保留、使用学位论文 的规定,即:沈阳理工大学有权保留并向国家有关部门或机构送交学 位论文的复印件和磁盘,允许论文被查阅和借阅。本人授权沈阳理工 大学可以将学位论文的全部或部分内容编入有关数据库进行检索,可 以采用影印、缩印或其它复制手段保存、汇编学位论文。 (保密的学位论文在解密后适用本授权书) 学位论文作者签名: 指导教师签名: 日 期: 日 期: 第 1 章 绪 论 1 第 1 章 绪论 1.1 研究背景及意义 随着数据库技术的发展,政府、企事业信息化建设不断加强,各个部门根据 自身业务需要构建起基于数据库的信息管理平台,但由于各部门业务逻辑不同、 采用数据库管理信息时间差异以及经济差别等原因,使得各部门内部或各部门之 间出现异构数据库问题。 这些数据库包括 sql server、 visual foxpro、 access、 oracle 等,由于不同数据库在数据类型、存储方式以及数据检索方法等方面存在差异, 随着时间的推移,这些异构数据库数据逐渐形成一个个“信息孤岛” 。如何将这些 “信息孤岛”数据进行转换整合,从巨大的数据资源中获取信息,成为当前数据 库领域研究的热点问题之一,尤其是异构数据库的数据转换问题,已经成为当前 急待解决的问题。 研究异构数据库,努力发展其解决方案,实现异构数据库数据转换,就可以 在一个统一的环境中对数据进行集中管理、统一使用。异构数据库的转换问题在 技术上有一定复杂性,而且目前还很难用一个通用的 dbms (database management system ,数据库管理系统)来解决这个问题。随着 xml 技术的发展以及 xml 在数据应用方面具有易表义、跨平台、半结构化数据的描述、扩展性好、内容和 形式相分离等优点 1,为异构数据库数据转换提供了有利条件。基于 xml 实现异 构数据库数据转换,不仅有利于数据的共享,可以节省在软件开发方面作出的投 资,而且有利于对数据进行更好的管理和使用,为政府、企事业的信息化应用奠 定基础。 1.2 研究现状 对于异构数据库数据转换问题,国内外主要沿着以下两个方面进行研究:一 是发展异构数据库的有关标准;二是承认各厂商数据库产品的异构,建立异构数 据库互转换工具。前一个方向无疑可以使异构数据库相互转换的实现基础更好, 起点更高,但是标准的建立难度大、时间长、无法解决当务之急。因此,人们把 沈阳理工大学硕士学位论文 2 解决异构数据库数据转换问题放在开发异构数据库数据转换工具上。 目前,使用数据转换工具进行异构数据库数据转换中主要存在三种解决方案。 第一,利用数据库厂商提供的异构数据库转换工具。如:sql server的dts(数据 转换服务)工具、oracle导入/导出工具等。这些工具功能强大,性能稳定。但这 些工具的运行需要一定的运行环境,软硬件要求高,异构数据库数据的转换不灵 活。同时由于不同数据库对相同数据类型长度定义存在差异,导致当数据长度不 符时数据转换出现异常,无法正常进行;第二,利用中间数据库。采用access等较 小的桌面数据库作为中间数据库,这种办法所需转换模块少,扩展性强,但是实 现过程比较复杂,转换质量不高,转换过程长。第三,利用xml实现异构数据库 数据转换。将需要转换的数据转换为xml文档,在应用程序中识别和解析xml文 档中的数据。这种方式实现数据的动态转换,具备很强的开放性。 1998 年 2 月由 w3c(world wide web consortium,万维网联盟)组织制定的 通用语言规范 xml(extensible markup language,可扩展标记语言)以一种开放的 自我描述方式定义数据结构,在描述数据内容的同时,能突出对结构的描述,从 而体现出数据之间的关系。同时 xml schema 具有丰富的数据类型,强大约束表 达能力,使得以 xml 模式为公共数据模型,建立统一的关系模式间的数据转换工 具是可行的、方便的 2。就关系模式到 xml 模式转化方面来看,己经存在转化工 具和大量相关算法的研究,一些商业产品实现了关系模式到 xml 文档的转化,例 如 odbc2xml、xmlspy、oraclexsql、silkroutel 工具 2。这些工具大部分都 为相关数据产品服务,并且只支持输出 xml dtd 模式,不支持 xml schema 模 式 2。 在基于xml实现异构数据库数据转换技术的研究已经取得较好成果。美国政 府在1998年通过opal计划开始支持基于xml的yat(基于中间件的信息集成系 统)系统的研究,其中,v.christophides、s.cluet等人主要研究以xml集 成视图对异构数据的包装和查询,并提出了相应的代数体系结构 3。wisconsin大学 和ibm almaden research center共同研究和实现了xperanto中间件系统。该中 间件系统支持对象关系数据的xml发布,支持基于xml query的xml关系数据视 图,采用了flat模式转化算法,以dtd为目标模式,但不支持主键及外键等约束 的描述,也不支持多表关系约束的转化 3。 maryland大学研究了基于xml代码自 第 1 章 绪 论 3 动部署和数据交换mocha中间件 3。在以xml为中间媒介进行异构数据库数据转 换整合方面所取得的研究成果为该领域的下一步研究奠定了良好基础。 1.3 异构数据库的概念 数据处理是计算机诞生以来的一项重要工作,随着应用的发展,数据方式已 经由原来的以文件方式为主发展成为现在的数据库方式。由于各企事业单位会根 据自身业务需求及特定应用选择不同数据库实现数据管理。从而带来异构数据库 问题。异构数据库是指包含不同物理模式、不同数据模型的数据库,相同数据模 型不同厂商的同质异型数据库,以及同一数据库厂商的不同版本、针对不同网络 环境的数据库产品等等 4。数据库的异构性主要体现在以下四个方面: (1) 计算机体系结构异构 计算机体系结构的异构主要体现在各个数据库可以分别运行在大型机、小型 机、工作站、pc 或嵌入式系统中 4,而大型机、小型机、工作站、pc 或嵌入式系 统在数据表示、寻址方式、指令系统等方面都存在差异。 (2) 计算机操作系统异构 计算机操作系统异构是指各个数据库系统所在的计算机的操作系统不同,可 以是 unix、windows、linux 等 5。 (3) dbms 异构 这种异构是指由于 dbms 不同使得基于不同 dbms 的数据库之间存在异构 性,实质上可以分为三个方面 5。第一,结构的区别,根据不同的方法论,不同 dbms 的数据类型和数据结构,反映在物理上的存储方法也存在差异 4。第二,规 则的不同,不同的数据模型造成了不同的规则,不同的规则又直接影响数据库功 能的实现。 一个 dbms 因此可以是适应型的或被动型的 4。 第三, 查询语言的不同, 不同的数据模型必然造成不同的数据类型,所采用的数据操作机制也不同,即使 支持相同的标准,但不同 dbms 所采用的查询语言也有所区别。 (4) 语义的异构 语义的异构主要是由于应用系统开发人员对数据定义、理解以及描述的二义 性造成的 5,主要体现在两个方面:第一,命名的异构,由于不同业务需求及方法 论,对相同的现实世界的实体及其属性采用不同的命名方法,造成命名冲突。第 沈阳理工大学硕士学位论文 4 二,数据存储种类的异构,相同或相似的现实世界数据,存在表达的多样性,因 此在不同数据库中存储选择的数据类型、精度、范围存在差异。例如,学生的学 号信息有的选择存储为整型,而有的则选取为字符串数据类型。 目前,政府、企事业各部门信息管理系统大多采用关系数据库,关系数据库 产品繁多,不同数据库产品标准、结构、查询等方面存在差异,这种差异成为数 据库间信息交流的主要障碍,所以本文主要研究基于关系数据模型的异构数据库 间数据转换技术。 1.4 课题的提出与研究任务 随着社会的进步,社会信用体系建设也在不断发展,建设完善社会信用体系 建设是完善我国社会主义市场经济的客观需要,是整顿规范市场经济秩序的治本 之策 6。目前,我国各省市都在努力开展信用项目建设。在辽宁信用项目中包括企 业信用、个人信用、政府信用三个部分,在企业和个人信用项目中,通过采集企 业、个人在工商、质监、税务、海关、银行等部门的数据,对数据进行有效的分 析处理,进而为衡量一个企业或个人的信用度提供依据。然而工商、质监、税务、 海关、银行等部门根据各自业务需要所采用的数据库各不相同,包括 sql server、 oracle、access、visual foxpro 等,因此建立一个实现异构数据库数据转换工具成 为辽宁信用项目中重要组成部分。解决异构数据库问题,实现各厅局数据转换整 合,就可以在统一的环境中对数据进行管理使用,从巨大的数据资源获取信用信 息,为辽宁信用项目建设奠定良好的数据基础。 针对辽宁信用项目异构数据库问题, 本论文研究的主要内容是基于 xml 实现 异构数据库的数据转换。在正确完成数据转换这一过程中,需要考虑不同数据源 数据的异构性,解决异构数据库数据转换中的命名冲突、数据类型冲突、结构冲 突等问题。具体包括以下几个方面: (1) 数据转换工具模型设计 设计以 xml 为中间数据格式的数据转换模型, 在此基础上设计数据转换工具 的功能结构及数据转换流程。 (2) xml 文件结构设计 基于 xml 丰富而灵活的表达能力, 设计 xml 数据文件、 xml 结构文件和数 据结构转换文件结构。 利用 xml 结构文件进行源数据库到目的数据库数据结构转 第 1 章 绪 论 5 换,生成 xml 数据结构转换文件,从而控制源数据库数据到目的数据库的转换。 良好的结构设计是异构数据库数据转换顺利进行的基础。 (3) 数据转换冲突处理 分析迁移式和合并式两种数据转换方式中存在的命名冲突、数据类型冲突、 结构冲突、语义冲突,给出处理办法。 (4) 大批量数据转换 结合大批量数据转换对软硬件要求高以及速度慢的特点,进行分包数据转换 设计,通过产生大小适当的多个 xml 数据文件,完成大批量数据的转换,提高数 据转换效率,降低系统要求。 (5) 数据转换工具的实现 基于 microsoft visual studio.net 平台对数据转换工具进行实现并将其应用于 辽宁信用项目数据交换系统。 1.5 论文组织结构 围绕数据转换工具的开发展开论述,本文的组织结构如下: 第一章为绪论。介绍课题的研究背景及意义。阐述异构数据库的概念及异构 数据库数据转换的研究现状。介绍课题来源及主要研究任务。 第二章为技术背景。主要介绍 xml 技术,包括 xml 的查询技术、解析技术 等,阐述 dbms 和 microsoft .net 对 xml 的支持,描述了基于 xml 实现异构数 据库数据转换的优势。 第三章为数据转换工具概要设计。概述数据转换工具模型及功能结构,对数 据转换流程及数据存储结构进行设计。 第四章为数据转换工具详细设计。按照数据转换流程对数据转换工具各功能 模块进行详细的设计。设计 xml 结构文件和数据结构转换文件的结构,支持迁移 式数据转换和合并式数据转换两种方式。设计大批量数据的分包数据转换方式并 对数据转换中的命名冲突、数据类型冲突等数据转换冲突给出解决方法。 第五章为数据转换工具实现与应用。根据对数据转换工具的详细设计,本章 介绍了其在 microsoft visual studio.net 平台下的具体实现,最后描述了数据转换 工具的应用。 最后是本文工作的总结,并提出对本文工作的展望。 沈阳理工大学硕士学位论文 6 第 2 章 相关理论与技术 xml 技术一经出现就在异构数据交换方面显示了强大的力量,迅速成为一个 与平台无关、与厂商无关的数据格式标准 412。目前绝大多数数据库制造商已全面 支持 xml 技术, 提供了各种强大功能处理 xml 数据。 microsoft visual studio.net 围绕 xml 这一核心提供了丰富的类,这些类构成了两种 xml 文档的处理模型, 为 xml 编程奠定良好基础。 2.1 xml 简介 xml 是 sgml(standard generalized markup language,标准通用置标语言)的 一个子集, 保留了 sgml 的可扩展功能, 将 sgml 的丰富功能和 html (hypertext markup language, 超文本标识语言) 的易用性结合到 web 应用中。 简单地讲, xml 是一种定义标记语言的元语言,是一套定义语义标记的规则,即定义了用于定义 其他与特定领域有关的、语义的、结构化的标记语言的语言 7。 xml 自 w3c 于 1998 年发布以来在各个领域得到了广泛的应用,并且在不断 的发展和完善中。xml 的可扩展性是指 xml 允许用户按照 xml 规则自定义标 记。xml 文件是由标记及其所标记的内容构成的文本文件,与 html 文件的不同 之处在于这些标记可自由定义, 其目的是使得 xml 文件能够很好的地体现数据的 结构和含义 7。w3c 推出 xml 的主要目的是使得 internet 网络上的数据相互交流 更方便,让文件的内容更加显而易见。 xml 实现了数据表示与数据内容相分离,允许不同来源数据的无缝集成和对 同一数据的多种处理 8。在数据表示方面 xml 已经成为表示结构化数据的行业标 准,有良好的结构和约束;在数据处理方面,xml 简单且易于阅读,容易被计算 机处理 89。 2.2 xml 的相关技术 2.2.1 xml 文档查询技术 第 2 章 相关理论与技术 7 xml 的查询技术一直是一个热门研究领域,通过某种途径把一些规则传递给 xml 解析器,然后得到符合规则的文档片段集合。有了这种能力,一个 xml 文 档就成为了某种类型的数据库,xml 的查询也是转换操作的中心,是操作和改变 xml 的关键模式 10。2007 年 1 月 23 日 w3c 将 xpath2.0 和 xquery1.0 确定为推 荐标准,基于此标准,各科研机构纷纷提出了对 xpath 和 xquery 的实现。 xpath 是一种在 xml 文档中查找信息的语言 7。xpath 将 xml 文档看成带有 节点的树状结构并提供在文档中选择节点子集的简单语法, 无论 xml 文档结构多 么复杂,xpath 都能够理解文档中的节点以及节点间的关系。利用 xpath,可以在 xml 文档的树状结构中找到任意的节点。节点类型包括根、元素、属性、命名空 间等 8。 xquery 混合了 xml、xpath、注释、函数以及将其结合在一起的专用表达式 语法。xquery 是一种高端的、强类型的函数语言,非常适合表达从 xml 文档或 者大型 xml 存储库中获取数据的查询 8。另外,xquery 允许对结果排序或者将其 转换成 html、csv、sql 及其他任何基于文本的格式。如同从 xml 文档中检索 数据应该使用 xpath 一样,从大型 xml 存储库中检索和转换数据时则应该使用 xquery。 2.2.2 xml 文档的解析技术 xml 能很好地描述组织、数据,在许多实际应用中,需要使用 xml 的数据 结构,并根据其结构提取所需数据。xml 解析器是 xml 和应用程序之间的一个 软件组织,为应用程序从 xml 文件中解析出所需要的数据。目前,主要有两种类 型的解析器,即基于 dom(document object model,文档对象模型)的解析器和基 于事件的解析器 sax(simple api for xml,xml 简易应用程序编程接口)。 dom 解析器 w3c 提供了精确的、与语言无关的 dom 接口规范 11。xml 将数据组织为一 棵树,dom 就是对这棵树的一个对象描述。通俗的说,就是通过解析 xml 文档, 获取 xml 文档中的元素、属性和注释等对象信息,然后,以节点树的形式在内存 中创建 xml 文档的表示,应用程序可以通过节点树访问文档的内容,对文档内容 沈阳理工大学硕士学位论文 8 进行操作。例如,以下 xml 文档对应的节点树如图 2.1。 blue nike china fujian 2008-9-9 899 document text element commentelementversion element text element text element text element text 图 2.1 xml 文件对象树 由于 dom 将 xml 文本文件解析为抽象的节点树表示,因此能够避免无结束 标记和不正确的标记嵌套问题 8 10。也就是说使用 dom 操作 xml 文档时,只需 关心节点间父子关系和相关的信息,不必担心文档的文本表示。但是 dom 在处理 大型 xml 文件时却存在不足,可能会使内存使用达到极限,降低系统性能 3。 sax 解析器 第 2 章 相关理论与技术 9 sax 接口可以用来编写应用程序以读取 xml 文档内容。与 dom 解析器不 同,sax 解析器不在内存中建立和 xml 文件对应的树状结构数据,sax 解析器 调用函数 parse(file f,defaulthandler dh)解析 xml 文件,并向该方法的参数 dh 传 递一个事件处理器。sax 解析器在解析 xml 文件的过程中,根据从文件中解析 出的数据产生相应的事件,并报告这个事件给事件处理器,事件处理器就会处理 所发现的数据,parse 方法必须等待事件处理器处理完毕后再继续解析文件,报告 下一个事件。所以,sax 解析器比 dom 解析器效率高,事件处理器每次在内存 中只保留对一个事件的处理,处理完毕释放该处理过程所占用的内存。因此,sax 的效率较高 1314。采用 sax 解析优点还包括可以解析任意大小文件、适合创建特 定的数据结构和适合小信息子集等。但是,sax 在拥有高效、简单等优势的同时, 同样也存在不能对文档进行随机存取、难以实现复杂查询、不支持 dtd、不能获 取词法信息等不足之处。使其应用也有一定的局限性。 2.2.3 dtd 和 xml schema dtd(document type definition,文档类型定义)和 xml schema(模式定义) 是 xml 的两种文档类型定义语言,提供了 xml 基本的语法规则,用来定义所有 xml 语法分析器都必须遵守的一组规则 15,dtd 和 xml schema 为标记的定义和 使用提供了验证方法。 开发人员也可以把 dtd 和 xml schema 做为格式变换的基 础。 dtd 的结构与功能 dtd 的原设计意图是针对以文档为中心的 xml 文件,dtd 允许开发人员在 xml 文档模型的元素层次结构上设置约束条件, 以及为元素定义松散的内容模型。 dtd 的焦点在元素的层次结构上,不在元素数据类型上,不能定义元素数据类型, 也不能指定元素的含义 15。 一个 xml dtd 主要包含元素类型、 属性列表、 表示法、 实体四种不同成分的声明。 (1) 元素类型声明 dtd 的核心是元素类型声明。如果要使一个文档有效,该文档中的每个元素 必须有一个相应的声明,每个声明必须提供元素名和内容模型。dtd 不允许有复 沈阳理工大学硕士学位论文 10 杂的内容模型定义,但允许提供关于元素层次结构的信息。 (2) 属性列表声明 在 xml 文档中属性也要求进行声明, 每个属性都必须有一个相应的属性列表 声明。单个属性列表声明可以为一种元素类型声明多个属性,但是,对于不同元 素使用的相同属性,必须分别定义属性列表声明。属性列表声明所含的信息比它 们对应的元素类型所含信息还多,在属性列表声明中定义的信息包括:元素名称、 属性名称、数据类型、默认值等。 (3) 表示法声明 表示法的设计意图就是作为一种标识非 xml 数据并提供数据处理指令的方 法 15。例如,为了使用一个声音格式文件,开发人员不仅要引用该声音文件,而且 要告诉处理程序如何处理该格式文件。 (4) 实体声明 如果需要处理声音文件,仅仅定义表示法是不够的,还需要定义一个引用该 外部文件的实体。一个实体是一个代表内容的占位符,dtd 充分利用实体,允许 开发人员定义与重用 dtd 和 xml 文档中的信息 16。定义一个实体后,就可以在 文档中多次引用该实体。 作为纯建模语言,dtd 是定义文档模型的首选解决方法,dtd 有几个重要功 能: 为文档提供一个结构框架,为元素定义一个内容模型; 为每个元素声明一个允许用的属性列表,为属性值准备限定的数据类型并 为属性提供默认值; 为创建可重用的数据块定义一个具有某些限制条件的机制; 提供一种把非 xml 数据传递给相应处理器去处理的机制; 允许开发人员使用条件段来标明包含或排斥的声明。 dtd 使用简单,在处理以文档为中心的信息中有广泛的应用前景。但它也存 在一些局限性,一是 dtd 不是构造完备的 xml,由于 dtd 不是用 xml 编写的, 因此不能对它进行有效性验证;二是需要为 dtd 和 xml 使用不同的分析器和应 用程序编程接口 16;三是 dtd 对定义新数据类型的支持有限。 xml schema 第 2 章 相关理论与技术 11 由于 xml 正广泛应用于 b2b 等领域,xml 越来越以数据数据为中心的文档 为主, 传统的 dtd 已经不能满足要求, 于是 xml schema 应运而生, xml schema 指的是一类文档的模型。 这个模型描述了一个 xml 文档内元素层次结构和数据内 容约束。xml schema 由三个相互独立的规范文档来定义,即结构文档、数据类型 文档和一个入门帮助文档。结构文档定义了用于描述 xml 文档的结构的构造;数 据类型文档中定义了一组简单的数据类型;在入门帮助文档中解释了模式的概念 以及如何使用 15。 xml schema 的一个显著优点就是提供一个改进巨大的类型化系统 16。xml schema 不仅支持内建数据类型,同时支持用户自定义数据类型,进而允许开发人 员根据需要创建特定的数据类型库。自定义数据类型包括复杂类型和简单类型。 如果一个元素含有子元素或者采用属性,就需要定义一个复杂类型,定义复杂类 型有两种方法,第一种是创建一个可以用在元素类型声明中的复杂类型定义,在 复杂类型定义中可以含有元素声明、元素引用和属性声明等成分 17。复杂类型声明 的第二种方法是把复杂类型定义放在元素声明的内部,作为元素声明的一部分。 简单类型定义是针对不能含有子元素的元素和属性提出的,简单类型以数据类型 文档定义的内建数据类型为基础,添加 xml schema 提供的刻面,来约束简单的 允许值的集合 18。 xml schema 刻面包括 length(长度)、 precision (精度) 、 enumeration (枚举)等 18,开发人员通过这些刻面将约束条件应用到数据值上,使数据保持一 致。 xml schema 在提供强大的数据类型支持的同时,还具有支持混合内容建模、 支持 xml 名称空间、能够按照 xml 规则进行扩充等优点。 2.3 dbms 对 xml 的支持 将 xml 数据存储在关系数据库中会给数据管理和查询处理带来好处 13。现在 许多主流的数据库厂商都在把 xml 支持结合到其产品中, 或者提供可在其数据库 中使用 xml 的工具 19。 sql server 2000 就已经有了对 xml 的支持,这种支持主要体现在 for xml 子句和 openxml 函数上 19。在 sql 语句后加一个 for xml 就可以将 sql 查询 结果序列化为 xml。利用 openxml 函数在 xml 上提供行集机制,将 xml 消息 沈阳理工大学硕士学位论文 12 进行切分,然后存储到不同的关系视图中,将 xml 文档中的数据插入到数据库的 表中。 sql server 2005 对 xml 的支持得到了很好的加强,其中关键的一点就是引 入了一种称为 xml 的本机数据类型 19。用户可以在表中创建一个或多个 xml 类 型的列用于存储 xml 数据。sql server 2005 还提供了 xml 架构集合,可以将其 作为一种方法来以元数据的形式管理 w3c xml 架构。 xml 数据类型可以与 xml 架构集合相关联,以便对 xml 实例强加架构限制。当 xml 数据与 xml 架构集 合相关联时,它称为类型化的 xml;否则,就称为非类型化的 xml。在一个框 架中可以同时容纳类型化的 xml 和非类型化的 xml, 保留 xml 数据模型, 并且 强制采用 xml 语义进行查询处理 19。底层关系基础结构被广泛用于这一目的。它 支持关系数据和 xml 数据之间的互操作,这为更广泛地采用 xml 功能开辟了道 路。 oracle 对 xml 的支持始于 oracle8i。它完全基于 w3c 的 xml 数据模型,并 提供存取方法来导航和查询 xml 20。oracle9i 中引入了一种新的数据类型 xmltype 用于存储和管理 xml 文档,xmltype 是以关系数据库的语言来描述 xml 数据类型,所以是 sql 特性和 xml 特性都有的一种数据类型。xmltype 数据类型既可以以关系方式存储 xml,即把 xml 文档分解为元素提取出来存储 在关系表里, 数据库自动进行 xml 文档的分解和合成 20。 xmltype 数据类型也可 以以 clob 方式存储 xml 2122,即整个 xml 文档存储在 xmltype 里,包括所有 的 xml 标签, 这个时候和 xml 文档没有本质区别。 oracle 提供了一组方法和 sql 操作符进行 xml 操作 22,支持 xquery 查询、xpath 查询、xsl 格式转换和 xml 模式校验,并支持 xml 模式演化,使开发者能根据应用需要改变 xml 模式。 ibm 的 db2 对 xml 的支持是通过 xml extender(已被打包在 db2 udb7.1 中)实现的。xml extender 提供了两种方法 23 : (1) xml column 将整个 xml 文档以 xmlclob 或 xmlvarchar 类型存储在关系表的字段 中。 (2) xml collections 第 2 章 相关理论与技术 13 允许用户把 xml 文档分解为元素存储到 db2 表中,在映射过程中没有固定 的映射规则,而是用一个 xml 格式的 dad(data access definition,数据访问定 义)来提供映射规则。 虽然主流数据库产品提供了支持 xml 的功能, 但并不能使用这些功能来实现 基于 xml 的异构数据库数据转换。因为这种支持和数据库产品直接相关,它们之 间的实现方式并不一致。而且大都只支持 xml dtd 模式,而 xml dtd 数据类 型有限,因此不能实现数据类型转换。另外,关系数据库对 xml 的支持中也没 有考虑数据库中数据本身的联系,更没有考虑到数据的实体完整性和参照完整性。 所以这种转换方式是不等价转换,舍弃了数据库模式的语义约束条件。然而数据 库产品对 xml 支持功能的增强为以 xml 为中间格式进行异构数据库数据转换中 产生的 xml 文件管理带来有利条件。 2.4 xml 文档与数据库的映射 xml 的未来与数据库技术是密不可分的,把 xml 作为中间格式进行异构数 据库数据转换时,必然要求在关系数据库和 xml 之间传递数据,因此需要在文档 结构和数据库结构之间建立映射。关系数据库数据是结构化数据,而 xml 文档属 于半结构化的数据,将它与结构化数据或非结构化数据进行转换时,关键问题是 建立不同结构层次之间的映射关系,以及如何保留语义约束信息 18。其中基于模板 映射方法和基于模型的映射方法是目前主流的映射方法 22。 基于模板的映射方法不需要预先定义 xml 文档与数据库之间的映射关系, 而是在 xml 文档中嵌入一些可执行的指令 24。在转换过程中这些指令被系统识别 和执行,执行的结果替换到指令所在的位置,从而生成目标 xml 文档。 这种映射 方法灵活、简单,基于模板可以快速生成 xml 文档。但是,基于模板的映射方法 只能实现数据库到 xml 文档的映射,无法实现 xml 文档到数据库映射。 基于模型的映射就是在数据库和 xml 文档之间传送数据时, 用一个具体模型 映射 xml 文档层次结构与数据库结构之间的对应关系, 而不是仅仅依赖内嵌 sql 命令。常用的数据模型有表格模型和对象模型。 zz 表格模型:就是把 xml 文档当成一个单独的表对象或者一系列表对象。 也就是说,将文档结构定义为如下模型: 沈阳理工大学硕士学位论文 14 value 其中“table1”元素表示一个查询结果集,或者是一个表或可更新视图。如 果只有一个这样的元素元素可以不出现。 当把数据库信息转换为 xml 文档时只要把一个表或者一个查询结果的数据插入到相应的位置即可,而把 xml 文档数据转换成关系数据时只要把内容插入到相应的表中即可。根据这种映射编 写代码容易,代码执行快、伸缩性好。 对象模型:把 xml 文档定义成由数据对象构成的树,每一个元素类型和对象 相对应。在该模型中,元素类型通常对应对象,而 xml 中的内容模型、属性和 pcdata 则对应对象的属性。 这种模型对于 xml 文档与面向对象数据库和层次数 据库之间的转换是非常便利的,在转换时可以利用传统的“对象一关系”映射技 术。 模型的引入, 使基于模型的映射方法不但简单而且实现了 xml 文档与数据库 之间的双向映射,但也使得 xml 文档受到结构约束的限制,只有符合模型规定结 构的 xml 文档才能映射到数据库中;同样从数据库映射得到的 xml 文档也具有 模型规定结构。 2.5 microsoft.net 框架对 xml 的支持 .net 框架提供了对 xml 的强大支持,而且.net 框架本身也普遍采用 xml 格式来存储各种配置信息 25。比如 web.config 文件。在.net 类库中,名称空间 system.xml 包含了大量的操作 xml 文档的类。 这些类构成了两种 xml 文档的处 理模型,即流式处理模型和 dom 处理模型 26。 第 2 章 相关理论与技术 15 (1) 流式处理模型 在流式处理模型中, 将 xml 文档做作一个数据流来进行处理, 逐个处理 xml 文档中的数据,在这种模型下,可以快速读取大体积的 xml 文档,而且内存占 用少,程序性能好 27。类 system.xml.xmlreader 就提供了流式处理模型,使用 xmlreader 可以快速读取 xml 文档。但是,使用流式处理模型也有一定的缺点, 首先是它只能读取 xml 文档,而不能修改 xml 文档;其次是检索 xml 文档内 容不方便,不能使用 xpath 技术;而且编程接口比较简单,处理 xml 文档不够方 便。当程序需要比较简单的从 xml 文档读取数据则可以采用流式处理模型。 (2) dom 处理模型 在 dom 处理模型中,首先是采用文档对象模型的思想解析整个 xml 文档, 在内存中生成一个对象树来表述 xml 文档。在对象树和 xml 文档之间使用 xmlelement 对象映射 xml 文档中的元素, xmlattribute 对象映射 xml 文档中 的属性。这样就可以通过编程操作内存中的对象树从而实现对 xml 文档的操作。 使用 dom 处理 xml 文档具有相当大的优点,首先是处理方便,可以使用各 种编程技巧来处理 xml 文档对象树状结构。例如,可以采用递归算法遍历 xml 文档的一部分或全部,可以向树状结构插入、修改或删除 xml 元素,可以设置 xml 元素的属性等。其次是在 dom 模式下,可以使用 xpath 技术在 xml 文档 树状结构中进行快速检索和定位,这为处理 xml 文档带来很大方便。 .net 中的 dom 支持 w3c dom level 1 和 core dom level 2 规范。 dom 通 过 system.xml 名称空间中的 xmlnode 类实现的,xmlnode 是一个抽象类,它表 示 xml 文档的一个节点 27。system.xml 名称空间中还有一个 xmlnodelist 类,它 表示节点的一个有序列表,这是一个活动的结点列表,对节点的任何修改都会立 即反映到列表中, xmlnodelist支持索引访问或迭代访问。 xmlnode和xmlnodelist 类构成了.net framework 中 dom 的核心。表 2.1 是基于 xmlnode 的一些重要的 类。 沈阳理工大学硕士学位论文 16 表 2.1 基于 xmlnode 的一些重要的类 类名 描述 xmldocument 表示 xml 文档,执行 dom level 1 和 level 1 规范 xmldocumentfragment 表示文档的一个片段 xmllinkednode 返回当前节点之前或之后的节点,给 xmlnoode 添加 nextsibling 和 previoussibling 属性 xmlattribute 表示 xmlelement 对象的属性对象 xmlentity 表示一个已分析或未分析的实体节点 xmlnotation 表示包含在 dtd 或 schema 中的声明的记号 在 visual c#中,使用 dom 方式处理 xml 文档时。首先需要实例化一个 system.xml.xmldocument 类型, 然后调用它的 load 方法既可加载 xml 文档并生 成 xml 节点对象树状结构。通过调用节点树对象的方法就可以遍历对象树,进行 插入、修改或删除节点操作,其中任意一个节点都可以使用 selectnodes 或 selectsinglenode 方法通过 xpath 相对路径快速查找其它的节点。 2.6 ado.net 数据库连接技术 ado.net 的名称起源于 ado(activex data objects,activex 数据对象) , 是一个以 microsoft.net 框架为基础的全新的数据操作模型,是专门为 microsoft.net 平台上的数据访问而设计的。ado.net 是通过 connection、 command、dataset 等对象实现数据库操作的。ado.net 的对象结构如图 2.2。 (1) connection 对象 connection 对象负责与数据库连接。 连接数据库需要提供数据库的种类、 数据 库实例
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度浙江省护师类之主管护师能力检测试卷A卷附答案
- 2024年度浙江省二级造价工程师之建设工程造价管理基础知识模拟考核试卷含答案
- 女性盆底肌护理
- 医院人力资源管理培训
- 生命教育心理学核心框架
- 装配齿轮安全培训
- 中班幼儿语言领域发展
- 幼儿园小班上a英语教案有哪些
- 模具抛光试题及答案
- 涪陵小学面试题及答案
- 3.21 明清时期的科技与文化 课件 2024-2025学年统编版七年级历史下册
- 养老护理员四级考试题库及答案
- 办公室内控管理制度
- 2025年高二语文下学期期末考试语言文字运用专项练习含答案解析
- 2024-2025 学年八年级英语下学期期末模拟卷 (苏州专用)原卷
- 安徽省宿州市砀山县2023-2024学年八年级下学期期末数学试题
- 子痫与重度子痫的护理
- 2025国开电大《个人与团队管理》形考任务1-10答案
- AI赋能电商新机遇:柞水县电子商务应用技能培训大纲
- 医疗供应链精细化管理保障药品安全与供应策略
- 医院建设项目设计技术方案投标文件(技术方案)
评论
0/150
提交评论