论文部分内容阅读
【摘要】:针对目前异构数据库间数据访问的问题,提出了种基于XML的数据交换技术。研究了XML模式与关系模式相互转换的方法,讨论了XML数据的关系存储以及XML与关系数据库的映射策略,分析了基于不同映射的数据转换的可行性。
【关键词】:XML;关系数据库;映射
1 引言
随着计算机网络和数据库系统的迅速发展的同时,由于数据库技术本身的发展和数据库市场的变化,造成了各种数据库并存的局面。越来越多的应用需要在异构数据源之间进行访问,XML技术便应运而生。然而,目前大部分应用的数据存储在关系数据库中,XML数据又以XML文档形式存在,因此,研究XML文档与关系数据库的转换对异构数据源之间的数据集成非常重要。
2 XML与关系数据库的比较
传统的关系数据库建立在数据库管理系统基础上,由于各数据库管理系统之间的异构性及其所依赖操作系统的异构性,很难实现在异构数据库之间进行通信,同时对关系数据库的访问还依赖于系统对ODBC的支持程度。而利用XML文档,开发人员可以编码任何关系数据库中的面向记录的数据,并很好地保持这些数据的逻辑结构,甚至可以根据实际应用的需要更改这些数据的逻辑结构。同时,XML文档具有透明性和平台无关性,独立于传输协议,可以使用FTP、HTTP、RPC 等多种方式传输。
但是,XML作为一种形式语言,以文本的形式对数据进行描述,存在管理和检索上的困难,仍然无法完全取代数据库。首先,数据库具有灵活而高效率的数据操作手段,可以处理海量的数据信息。就XML文档而言,目前主要通过XML解析器提供的API来实现对文档数据的访问,但随着XML文档的数据量增大,这种方法的效率明显不如访问数据库的效率高,而且XML文档数据的维护也更加困难。其次,从并发性来说,目前对XML文档的访问不具备并发性。最后,从安全性来说,数据库拥有一个很好的安全控制体系,允许用户对数据进行不同级别的处理,而这也是XML文档所不具备的。
3 XML数据的关系存储
XML数据源有XML纯文本文档、关系型数据库以及其他应用数据几类。针对于XML具体应用,在存储XML文档的数据库技术上,形成了两大阵营。一种阵营主张在原有的传统关系数据库基础上,通过扩展XML支持模块或中间件,来完成XML数据和数据库之间的格式转换和传输;另一种阵营主张利用NXD技术来解决XML文档的存储管理。利用关系数据库来存储XML数据的方法是XML半结构数据转换为结构化数据后存储于二维表中,来实现对XML数据的存储和管理。由于XML和关系数据库数据模式的互异性,不能简单地将XML文档存储于关系数据表中,为了实现在XML文件和数据库之间交换数据,必须提供一个XML映射层,将XML文档模式(DTD、XML Schema)映射到关系数据库模式。
4 XML与关系数据库的映射方法
一个具体的XML模式到关系模式的数据转换,需要涉及较为复杂的XML格式分析处理及相应的数据库操作和有效性校验。两者之间的映射为双向映射,根据映射关系的建立方式不同,主要存在以下两种方法:基于模板驱动的映射和基于模型驱动的映射。
4.1 基于模板驱动的映射
XML文档包含简单元素和复杂元素两类,简单元素包含的内容是不具层次结构的简单内容,而复杂元素可包含属性、子元素,还可以包含多个子元素,其中子元素还可以是复杂元素。基于模板驱动的转换方法是一种浅层映射,只能用于从其他类型数据到XML文档之间的数据传递,并不支持面向对象之间或者关系与对象之间的信息交互,它无需提前定义好XML文档和其他数据之间的映射,只需在XML文档模板中嵌入一些SQL命令,这些命令在转换时被系统识别和执行,把执行的结果替换到指令的位置,生成最终的XML文档即可。
具体的规则算法是:第一,简单元素直接映射成表的列。第二,复杂元素映射成数据表,对其包含的属性进行分类处理,若是简单子元素按映射第一规则处理,若是复杂子元素则形成此子元素引用,然后将此引用看作简单元素映射为父元素形成的数据表的列。第三,对复杂子元素形成的引用,重复第一、第二规则,直到所有表的列均是由简单元素映射而成。
同理,可以得到从关系数据库到XML文档的映射规则算法。
4.2 基于模型驱动的映射
基于模型驱动的映射是一种深层映射,是模式和模式之间的映射。当把数据从数据库传送到XML文档或把数据从XML文档传送到数据库时,需要用一个具体的模型来实现,而不是仅仅依赖内嵌SQL命令,关系数据库的理论依据是关系模型,而XML文档依据的是XML Schema和DTD。基于模型驱动实现数据在关系数据库和XML文档间的双向传输关键是在关系模式和DTD或XML Schema之间建立双向映射。
具体的思路是把一个XML文档表示为由数据对象构成的树,每一个元素类型和对象模式中的对象相对应,再通过传统的关系—对象模型映射到关系模式中。在XML文档中的数据有两个公共的模型,即表模型和对象模型。表模型是基于表的映射,许多中间件包在转换XML文档成关系数据库数据所使用的模型,就是将XML文档当成一个单独的表对象或一系列表对象。对象模型是基于对象—关系的映射,在这种模型下,元素通常对应了一个对象或属性或PCDATA(PCDATA表示已解析字符数据,在这里指不需再解析的最小数据单元)对象。它将XML文档用一棵对象树来表示。
5 结束语
XML是一个数据表示的开放标准,其特点使得它在数据和信息管理、数据交换、应用集成等方面有着重要用途。不论是从用户和开发者的角度,还是从利用关系技术的事务管理、数据存储、安全功能等方面考虑,都应该充分研究XML与关系数据库的数据转换问题,建立完全支持XML数据存储和数据管理的关系数据库数据产品,为进一步解决异构数据源集成问题提供切实的理论和实践依据。
参考文献:
[1] 卢菊平, 郭江杰. 精通JSP+ XML + CSS网络开发混合编程. 北京: 电子工业出版社, 2006.
[2] 龚红焱, 刘奕明, 陈涵生. XML与数据库结合技术的探讨[J]. 计算机工程, 2005, 31(4): 1142116.
[3] 娄家星. 浅析数据库与XML的结合[J]. 信息技术与信息化, 2006(4): 1092111.
[4] 黎东华. XML数据存储模式的研究[J]. 计算机与现代化, 2006(11):108- 112.
[5] 郭瑞华. XML数据的存储策略研究[J]. 现代图书情报技术, 2005(6): 65- 69
【关键词】:XML;关系数据库;映射
1 引言
随着计算机网络和数据库系统的迅速发展的同时,由于数据库技术本身的发展和数据库市场的变化,造成了各种数据库并存的局面。越来越多的应用需要在异构数据源之间进行访问,XML技术便应运而生。然而,目前大部分应用的数据存储在关系数据库中,XML数据又以XML文档形式存在,因此,研究XML文档与关系数据库的转换对异构数据源之间的数据集成非常重要。
2 XML与关系数据库的比较
传统的关系数据库建立在数据库管理系统基础上,由于各数据库管理系统之间的异构性及其所依赖操作系统的异构性,很难实现在异构数据库之间进行通信,同时对关系数据库的访问还依赖于系统对ODBC的支持程度。而利用XML文档,开发人员可以编码任何关系数据库中的面向记录的数据,并很好地保持这些数据的逻辑结构,甚至可以根据实际应用的需要更改这些数据的逻辑结构。同时,XML文档具有透明性和平台无关性,独立于传输协议,可以使用FTP、HTTP、RPC 等多种方式传输。
但是,XML作为一种形式语言,以文本的形式对数据进行描述,存在管理和检索上的困难,仍然无法完全取代数据库。首先,数据库具有灵活而高效率的数据操作手段,可以处理海量的数据信息。就XML文档而言,目前主要通过XML解析器提供的API来实现对文档数据的访问,但随着XML文档的数据量增大,这种方法的效率明显不如访问数据库的效率高,而且XML文档数据的维护也更加困难。其次,从并发性来说,目前对XML文档的访问不具备并发性。最后,从安全性来说,数据库拥有一个很好的安全控制体系,允许用户对数据进行不同级别的处理,而这也是XML文档所不具备的。
3 XML数据的关系存储
XML数据源有XML纯文本文档、关系型数据库以及其他应用数据几类。针对于XML具体应用,在存储XML文档的数据库技术上,形成了两大阵营。一种阵营主张在原有的传统关系数据库基础上,通过扩展XML支持模块或中间件,来完成XML数据和数据库之间的格式转换和传输;另一种阵营主张利用NXD技术来解决XML文档的存储管理。利用关系数据库来存储XML数据的方法是XML半结构数据转换为结构化数据后存储于二维表中,来实现对XML数据的存储和管理。由于XML和关系数据库数据模式的互异性,不能简单地将XML文档存储于关系数据表中,为了实现在XML文件和数据库之间交换数据,必须提供一个XML映射层,将XML文档模式(DTD、XML Schema)映射到关系数据库模式。
4 XML与关系数据库的映射方法
一个具体的XML模式到关系模式的数据转换,需要涉及较为复杂的XML格式分析处理及相应的数据库操作和有效性校验。两者之间的映射为双向映射,根据映射关系的建立方式不同,主要存在以下两种方法:基于模板驱动的映射和基于模型驱动的映射。
4.1 基于模板驱动的映射
XML文档包含简单元素和复杂元素两类,简单元素包含的内容是不具层次结构的简单内容,而复杂元素可包含属性、子元素,还可以包含多个子元素,其中子元素还可以是复杂元素。基于模板驱动的转换方法是一种浅层映射,只能用于从其他类型数据到XML文档之间的数据传递,并不支持面向对象之间或者关系与对象之间的信息交互,它无需提前定义好XML文档和其他数据之间的映射,只需在XML文档模板中嵌入一些SQL命令,这些命令在转换时被系统识别和执行,把执行的结果替换到指令的位置,生成最终的XML文档即可。
具体的规则算法是:第一,简单元素直接映射成表的列。第二,复杂元素映射成数据表,对其包含的属性进行分类处理,若是简单子元素按映射第一规则处理,若是复杂子元素则形成此子元素引用,然后将此引用看作简单元素映射为父元素形成的数据表的列。第三,对复杂子元素形成的引用,重复第一、第二规则,直到所有表的列均是由简单元素映射而成。
同理,可以得到从关系数据库到XML文档的映射规则算法。
4.2 基于模型驱动的映射
基于模型驱动的映射是一种深层映射,是模式和模式之间的映射。当把数据从数据库传送到XML文档或把数据从XML文档传送到数据库时,需要用一个具体的模型来实现,而不是仅仅依赖内嵌SQL命令,关系数据库的理论依据是关系模型,而XML文档依据的是XML Schema和DTD。基于模型驱动实现数据在关系数据库和XML文档间的双向传输关键是在关系模式和DTD或XML Schema之间建立双向映射。
具体的思路是把一个XML文档表示为由数据对象构成的树,每一个元素类型和对象模式中的对象相对应,再通过传统的关系—对象模型映射到关系模式中。在XML文档中的数据有两个公共的模型,即表模型和对象模型。表模型是基于表的映射,许多中间件包在转换XML文档成关系数据库数据所使用的模型,就是将XML文档当成一个单独的表对象或一系列表对象。对象模型是基于对象—关系的映射,在这种模型下,元素通常对应了一个对象或属性或PCDATA(PCDATA表示已解析字符数据,在这里指不需再解析的最小数据单元)对象。它将XML文档用一棵对象树来表示。
5 结束语
XML是一个数据表示的开放标准,其特点使得它在数据和信息管理、数据交换、应用集成等方面有着重要用途。不论是从用户和开发者的角度,还是从利用关系技术的事务管理、数据存储、安全功能等方面考虑,都应该充分研究XML与关系数据库的数据转换问题,建立完全支持XML数据存储和数据管理的关系数据库数据产品,为进一步解决异构数据源集成问题提供切实的理论和实践依据。
参考文献:
[1] 卢菊平, 郭江杰. 精通JSP+ XML + CSS网络开发混合编程. 北京: 电子工业出版社, 2006.
[2] 龚红焱, 刘奕明, 陈涵生. XML与数据库结合技术的探讨[J]. 计算机工程, 2005, 31(4): 1142116.
[3] 娄家星. 浅析数据库与XML的结合[J]. 信息技术与信息化, 2006(4): 1092111.
[4] 黎东华. XML数据存储模式的研究[J]. 计算机与现代化, 2006(11):108- 112.
[5] 郭瑞华. XML数据的存储策略研究[J]. 现代图书情报技术, 2005(6): 65- 69