信息整合异构数据交换综述.docx
- 文档编号:9840642
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:18
- 大小:206.09KB
信息整合异构数据交换综述.docx
《信息整合异构数据交换综述.docx》由会员分享,可在线阅读,更多相关《信息整合异构数据交换综述.docx(18页珍藏版)》请在冰点文库上搜索。
信息整合异构数据交换综述
异构数据交换综述
摘要
本文介绍了异构数据交换的基本概念和研究现状,阐述了异构数据的特点,阐明了异构数据交换的方式与相关技术,并对异构数据交换的前景做出了展望。
关键词:
异构数据,数据交换,数据集成,XML
AReviewofHeterogeneousDataExchange
Abstract
Thispaperintroducesthebasicconceptsofheterogeneousdataexchangeandresearchstatus,describesthecharacteristicsofheterogeneousdata,illustratesthewaytheexchangeofheterogeneousdataandrelatedtechnologies,andprospectsfortheexchangeofheterogeneousdata.
KeyWords:
Heterogeneousdata,Dataexchange,DataIntegration,XML
1引言
自计算机诞生以来,人类积累了丰富的数据资源。
计算机网络的普及,使得数据资源的共享成为一个热门话题。
然而,由于时间和空问上的差异,人们使用的数据源各不相同,各信息系统的数据类型、数据访问方式等也都千差万别。
这就导致各数据源、系统之问不能高效地进行数据交换与共享,成为“信息孤岛”。
用户在具体应用时,往往又需要将分散的数据按某种需要进行交换,以便了解整体情况。
如,跨国公司的销售数据是分散存放在不同的子公司数据库中,为了解整个公司的销售情况,则需要将所有子系统的数据集中起来。
为了满足一些特定需要,如数据仓库,数据挖掘等,也需要将分散的数据交换集中起来,以达到数据的统一和标准化。
异构数据的交换问题由此产生,受到越来越多人的重视。
用户在进行数据交换时,面对的数据是千差万别的。
产生数据差异的主要原因是数据的结构和语义上的冲突。
异构数据不仅指不同的数据库系统之间的异构,如Oracle和SQLServer数据库,还包括不同结构数据之间的异构,如结构化的数据库数据和半结构化的数据。
源数据可以是关系型的,也可以是对象型的,更可以是Web页面型和文本型的。
因而,要解决数据交换问题,一个重要的问题就是如何消除这种差异。
随着数据的大量产生,数据之间的结构和语义冲突问题更加严重,如何有效解决各种冲突问题是数据交换面临的一大挑战。
异构数据交换问题解决后,才会对其他诸如OLAP、OLTP、数据仓库、数据挖掘、移动计算等提供数据基础。
对一些应用,如数据仓库的建立,异构数据交换可以说是生死牧关。
数据交换质量的好坏直接影响在交换后数据上其他应用能否有效进行。
数据交换后,可以减小由于数据在存储位置上分布造成的数据存取开销;避免不同数据在结构和语义上差异造成的数据转换引起的错误;数据存放更为精简有效,避免存取不需要的数据;向用户提供一个统一的数据界面等。
因此,数据交换对信息化管理的发展意义重大。
2研究现状
异构数据交换技术的研究始于七十年代中期,至今已有三十年多了。
数据库的异构问题已经引起了各数据库厂家及许多数据库专家的注意。
各数据库厂商积极参与国际标准的制定,他们新推出的产品都能支持统一的数据库语言、FAP,API标准。
它们的产品有的还留有支持新标准的余地,有的则采用了便于向国际标准过渡的形式。
经过十几年对异构数据问题的探索和研究,人们已取得了不少成果,提出了许多解决异构数据交换的策略及方法,但就其本质可分成四类:
1.使用软件工具进行转换
一般情况下,数据库管理系统都提供将外部文件中的数据转移到本身数据库表中的数据装入工具。
比如Oracle提供的将外部文本文件中的数据转移到Oracle数据库表的数据装入工具SQLLoader,Powersoft公司的PowerBuilder中提供的数据管道(DataPipeline)。
这些数据转移工具可以以多种灵活的方式进行数据转换,而且由于它们是数据库管理系统本身所附带的工具,执行速度快,不需要ODBC支持,在机器没有安装ODBC的情况下也可以方便地使用。
但是,使用这些数据转换工具的缺点是它们不是独立的软件产品,必须首先运行该数据库产品的前端程序才能运行相应的数据转换工具,通常需要几步才能完成,且多用手工方式进行转换。
如果目的数据库不是数据转换工具所对应的数据库,数据转换工具就不能再使用。
2.利用中间数据库的转换
由于缺少工具软件的支持,在开发系统时可使用“中间数据库”的办法,即在实现两个具体数据库之间的转换时,依据关系定义、字段定义,从源数据库中读出数据通过中间数据库灌入到目的数据库中。
这种利用中间数据库的转换办法,所需转换模块少,且扩展性强,但缺点是在实现过程中比较复杂,转换质量不高,转换过程长。
3.设置传送变量的转换
借助数据库应用程序开发工具与数据库连接的强大功能,通过设置源数据库与目的数据库两个不同的传送变量,同时连接两个数据库,实现异构数据库之间的直接转换。
这种办法在现有的数据库系统下扩展比较容易,其转换速度和质量大大提高。
4.通过开发数据库组件的转换
利用Java等数据库应用程序开发技术,通过源数据库与目的数据库组件来存取数据信息,实现异构数据库之间的直接转换。
通过组件存取数据,关键是数据信息的类型问题,若源数据库与目的数据库对应的数据类型不相同,必须先进行类型的转化,然后双方才能实施赋值。
异构数据交换问题,实质上就是:
一个应用的数据可能要重新构造,才能和另一个应用的数据结构匹配,然后被写进另一个数据库。
它是数据集成的一个方面,也可以说是数据集成众多表现形式中的一种。
3异构数据分析
异构数据交换的目标在于实现不同数据之间的数据信息资源,设备资源,人力资源的合并和共享。
因此,分析异构数据,搞清楚异构数据的特点,把握住异构数据交换过程中的核心问题,是十分必要的。
这样研究工作就可以做到有的放矢。
3.1异构数据
数据的异构性导致了应用对于数据交换的需求。
那么何谓异构数据?
异构数据是一个含义丰富的概念,它是指涉及同一类型但在处理方法上存在各种差异的数据,在内容上,不仅可以指不同的数据库系统之间的数据是异构的(如Oracle和SQLServer数据库中的数据);而且可以指不同结构的数据之间的异构,(如结构化的SQLServer数据库数据和半结构化的XML数据)。
总的来说,数据的异构性可以包括以下三个方面:
系统异构、数据模型异构和逻辑异构。
系统异构是指硬件平台、操作系统、并发控制、访问方式和通信能力等的不同,具体细分如下:
1、计算机体系结构的不同,即数据可以分别存在于大型机、小型机、工作站、PC或嵌入式系统中。
2、操作系统的不同,即数据的操作系统可以是MicrosoftWindows,WindowsNT、各种版本的UNIX,IBMOS/2,Macintosh等。
3、开发语言的不同,比如C,C++,Java,Delphi等。
4、网络平台的不同,比如Ethernet,FDDI,ATM,TCP/IP,IPX\SPX等。
而数据模型异构则是指DMBS本身的不同。
比如数据交换系统可以采用同为关系数据库系统的Oracle,SQLServer等作为数据模型,也可以采用不同类型的数据库系统----关系、层次、网络、面向对象或函数型数据库等。
逻辑异构则包括命名异构、值异构、语义异构和模式异构等。
比如语义的异构具体表现在相同的数据形式表示不同的语义,或者同一语义由不同形式的数据表示。
以上这些构成了数据的异构性,数据的异构给行业单位和部门等的信息化管理以及决策分析带来了极大的不便。
因此异构数据交换是否迅速、快捷、可靠就成了行业、单位和部门制约信息化建设的一个瓶颈。
3.2冲突分类
异构数据之间进行数据交换的过程中,要想实现严格的等价交换是比较困难的。
主要原因是由于异构数据模型间存在着结构和语义的各种冲突,这些冲突主要包括:
命名冲突:
即源模型中的标识符可能是目的模型中的保留字,这时就需要重新命名。
格式冲突:
同一种数据类型可能有不同的表示方法和语义差异,这时需要定义两种模型之间的变换函数。
结构冲突:
如果两种数据库系统之间的数据定义模型不同,如分别为关系模型和层次模型,那么需要重新定义实体属性和联系,以防止属性或联系信息的丢失。
由于目前主要研究的是关系型数据模型间的数据交换问题,根据解决问题的需要,可将上述三大类冲突再次抽象划分为两大冲突:
结构冲突和语义冲突。
结构冲突是指需要交换的源数据和目标数据之间在数据项构成的结构上的差异。
语义冲突是指属性在数据类型、单位、长度、精度等方面的冲突。
本文对数据交换中需要解决的主要冲突,作了如下分类:
1、结构冲突
结构冲突可分为两种情况:
相似结构冲突和异构结构冲突。
相似结构是指源和目标模式在表内部构成上相似,异构则与之相反。
(1)相似结构冲突
表相似结构冲突:
如果两个表,表中的属性数量不同,但一个表的某些属性能够同另一个表某些属性对应,这时在这两个表之间产生了表结构冲突。
此时,两表在属性集上发生不一致性,表现为属性数量上的差异,但两表之间其他属性能够相互对应。
其解决的方法一般为减少多余的属性或增加缺失的属性。
属性相似结构冲突:
源和目标表中的属性之间存在以下两种情况:
①源表的某些属性可以通过合并构成目标表的一个属性;②源表的一个属性经过分裂成为目标表的几个属性。
此时,源表和目标表产生了属性结构上的冲突。
例如源表存在Fname和Iname两个属性,而目标表只有Name属性,但Name属性由Fname和Inalne属性构成。
则在源表的Fname,Lnaoe属性和目标表的Name属性之间产生属性结构冲突。
其解决的方法为在对应的冲突属性之间进行合并或分裂操作。
(2)异构结构冲突
异构结构冲突可分为:
值--属性冲突、值--表冲突、属性--值冲突,表--值冲突等。
以图1中几个表为例来说明表之间的异构结构冲突。
Dalian、Yantai、Qingda。
三个表表示位于三地的子港务公司每月的集装箱出口数量表,表Table_value_port是港口集装箱出口统计表,而表Table_value_company是总公司的集装箱出口数量统计表,它是由Dalian、Yantai、Qingda。
三个表中的数据经过数据交换后得到的。
属性--值冲突:
如果相同的信息在一个表中被表示为属性的名称而在另一个表中被表示为属性的值时,则产生了属性--值冲突。
如总公司统计表(Table_Value_company)中Company属性的某个值如Dalian在利润表(Table_value_port)表中成为一个属性的名称。
表--值冲突:
当数据库中表的某个属性值被表示为一个表的名字时,则产生了表--值冲突。
如总公司统计表(Table_value_Companys)中Company属性的某个值如Yantai成为的表Yantai的名称。
对异构的情况,比较常见的转换为“表”到“值”的转换和“属性”到“值”的转换。
对“值”到“表”,“值”到“属性”,“属性”到“表”,“表”到“属性”的转换,由于实际数据交换中,目标系统表结构很少采用这种设计方式,因而研究重点是“表”到“值”,“属性”到“值”两种异构情况的转换。
图1异构结构冲突示例
Fig.1Examplesofheterogeneousstructureoftheconflict
2、语义冲突
语义冲突主要分为二种情况:
表的语义冲突、属性语义冲突。
表的语义冲突是指具有相同标识符的表语义不同。
属性语义冲突是指属性的数据类型、单位、格式等的冲突。
(1)表的语义冲突
表的语义冲突是指具有相同或相似结构的两个表在语义上的差异。
如一个表为所有员工的工资,而另一个结构相同的表则为某个部门员工的工资。
对相同的结构,只需要将所有源表数据合并到目标表或将源表水平分割为各个目标表即可。
(2)属性语义冲突
数据类型冲突:
同一属性的数据在不同表中的数据类型不一致。
如年龄在一个表中为字符型而在另一个表中为数值型。
其解决办法为将一种数据类型转化为另一种数据类型。
命名冲突:
表示同一概念的属性在不同表中命名不一样。
如,一个表中用Company属性表示公司,在另一个表中用Corporation属性表示公司,对应的属性在命名上有差异。
解决的办法是统一属性的命名。
单位冲突:
同一属性在不同表中,其值的单位不一样。
如,一个表中身高以米为单位,另一个表中用厘米为单位。
此时,对应属性在度量单位上有差异。
解决办法是统一单位。
数据长度冲突:
属性值的长度不一样。
数据精度冲突:
同一属性的值在不同表中的数据精度不一样。
如,一个表中工资值为100.89,在另一个表中为100.9。
解决办法是进行精度转换。
数据格式冲突:
同一属性的值在不同表中的表现格式不一样。
最典型的例子如日期,一个表中为“MM/DD/YY”格式,在另一个表中为“YY/MM/DD”。
此时,对应属性在数据格式上出现差异。
解决的办法是统一数据的表现格式。
其他情况:
这类情况比较特殊,如物理运动的测量是由于参照物选择不同引起的测量值的差异。
可根据实际交换时的情况进行分析。
总之,在进行数据转换时,一方面源数据模式中所有需要共享的信息都转换到目标数据中,另一方面这种转换又不能包含冗余的关联信息。
4异构数据交换方式
异构数据交换就是实现分布式网络环境下,不同位置、平台和格式的数据以一种统一的交换标准集中展现给用户,并可以进行数据资源的抽取和利用。
异构数据存放于异构数据库中,异构数据库的各个组成部分具有自治性和数据库管理系统,实现数据共享的同时又保持自己的应用特性、完整性控制和安全性控制,确保基于异种系统平台实现对异构数据库的查询和联合使用。
提供一个独立于特定的数据库管理系统的统一编程界面。
异构数据库系统是相关的多个数据库系统的集合,目标在于实现不同数据库之间的资源的合并和共享,为应用系统提供安全的、统一的、快捷的信息查询、数据挖掘和决策支持服务。
异构数据库系统的数据交换主要是为了消除异构数据之间的冲突,通过一些设备在不同的应用平台和操作系统之间使交换数据的双方可以实现彼此之间的透明访问和各系统问的数据共享、业务协同,从而解决了信息孤岛问题。
异构数据交换方式主要分为:
数据发布、数据集成和交易自动化。
4.1异构数据的发布
异构数据的发布指的是将异构数据库中的数据根据用户设定的条件及提取出来的目标信息,按照数据请求者要求的、可以接受的格式发送出去。
4.2异构数据的集成
异构数据的集成指的是根据用户设定的条件及提取出来的目标信息将异构数据源集成起来并且提供给用户一个统一的视图(物理的、逻辑的)。
异构数据的集成屏蔽了数据源的异构性.可以使应用程序以统一的方式对不同分布的、结构异构的数据源进行访问,可以为这些数据源提供实时的读写操作,也可以完成各个业务模块之间的数据共享,从而畅通无阻地实现彼此之间的通信。
进而理顺业务操作过程。
异构数据集成体系结构主要有三种:
联邦数据库、Mediator/Wrapper模式以及数据仓库。
1、联邦数据库
联邦数据库系统是实现数据库集成问题的一种传统方法,是在任何两种异构数据源之间建立起彼此互相转化的方式。
这种模式的数据集成是个N维问题,假设存在N个彼此异构的数据库系统,并且任意两个之间要实现彼此转换.则需要实现的转换模式总和为T=N(N-1)。
因此,使用这种方式时,开发人员要编写N(N-1)段代码来实现两两之间的彼此共享。
2、Mediator/Wrapper模式
Mediator/Wrapper模式是一种软件构件.通过为所有异构数据源提供一个统一的虚拟视图的方式来实现集成目。
这种集成方式并不需要存储任何实际数据,只需要系统为用户提供一个全局模式(即Mediator模式),用户只需要针对全局模式提交查询条件,而不需要知道数据源的模式、位置以及访问方法,系统会自动地将用户的查询条件分别转换成一个或多个对数据源的查询,再将查询得到的结果集进行处理和整合,最终返回给用户。
Mediator/Wrapper模式中的异构数据源具有完全的自治性,从而可以方便地对数据源进行添加和删除。
中介系统一般由一个Mediator和多个Wrapper构成,Mediator的作用是将针对全局模式的查询进行分析,然后分解成若干个子查询,并将它们分别转换成针对所对应数据源的查询,最后将所有数据源的结果进行合并和整合,再返回给用户。
Wrapper的作用是将各个数据源中的数据转换为统一集成系统可以处理的结构化的数据。
Mediator/Wrapper这种方式的优点是可以实现大量的数据源的互访和通信,对数据源的数目并没有限制,但是系统的结构和内部处理算法实现起来十分复杂。
3、数据仓库
数据仓库集成异构数据源的策略是将来自几个异构数据源的数据副本,按照一个集中、统一的视图要求,进行预处理、转换,以符合数据仓库的模式,并存储到数据仓库中。
这样,对于使用者来说感觉就像在使用一个普通的数据库一样。
一旦数据存储于数据仓库,用户使用查询就像是在原来单一的数据源中查询一样。
另一方面,数据仓库可能会禁止用户去更新数据,因为,用户对数据仓库中数据的更新将不会反应到原来的数据源中,这就会造成数据源和数据仓库中数据不一致的问题。
目前,进行数据仓库中数据构建的方式有以下三种:
①数据仓库周期性的从原数据源中重新构建数据。
最常使用的方式是在每天午夜(那时系统可能需要关机,并且不是用户使用数据仓库的高峰期)或者是更长周期的午夜时刻进行数据重建。
这种方式的主要缺陷是需要将数据仓库关闭,而事实上数据的重建可能需要很长的时间。
对于某些应用来说,过长的时间会使很多数据过时。
②数据仓库周期性的从原数据源中更新数据(采用增量更新的模式,即每次数据仓库更新上次更新以后修改的数据)。
这种方式只会影响到数据仓库中少量的数据,这样即使是在数据仓库的容量很大的时候,数据更新的时间也不会很久。
该方式主要的缺点是用于计算数据仓库中数据更新的算法(增量更新算法),相对于从原始数据开始构建数据仓库的算法要复杂的多。
③数据仓库即时更新异构数据源的数据变化。
当一个或多个数据源中的数据发生变化的时候,立即更新数据仓库中相应的数据。
由于这种方法需要数据仓库和数据源之间频繁的通信,所以这种方式只适用于小型的、数据更新量小的数据仓库中。
这种方式有着一个典型而且广泛的应用----自动股票交易系统。
总之,数据仓库模式的异构数据库数据共享集成的优点是便于进行联机分析和数据挖掘,缺点是数据重复存储、难以及时更新。
综上所述,三种集成方式各有优缺点,我们应该根据实际应用的具体要求和特点来选择最适合的集成方式以满足具体应用的实际要求。
4.3交易自动化
各种应用只要遵循共同的标准,就可以使得应用程序开发商开发出具有一定自动处理能力的代理程序,从而提高工作效率。
5异构数据交换的方法与技术
实现异构数据交换的方法和技术较多,这里列出XML、本体技术、WebService等几项技术。
5.1基于XML的异构数据交换技术
XML(ExtensibleMarkupLanguage,可扩展标记语言)是SGML(StandardGeneralizedMarkupLanguage,标准通用标记语言)的一个简化子集,1998年2月成为W3C(TheWorldWideWebConsortium互联网联合组织)标准。
XML提供了一种灵活的数据描述方式。
XML支持数据模式、数据内容、数据显示方式三者的分离的特点,这使得同一数据内容在不同终端设备上的个性化数据表现形式成为可能,在数据描述方式上可以更加灵活。
XML具有很强的链接能力可以定义双向链接、多目标链接、扩展链接和两个文档间的链接。
XML具有自描述性。
XML文档通常由模式描述文件和事例文件组成,前者用于描述XML事例文件所能使用的标记、标记的结构、标记的含义等,而XML事例文件则使用这些预定义的标记描述数据,所以XML具有自描述性。
XML简单,易于处理。
从数据处理的角度看,XML足够简单易于阅读,又易于被应用程序处理。
上述的特点,使得XML可以为结构化数据、半结构化数据、关系数据库、对象数据库等多种数据源的数据内容加入标记,适于作为一种统一的数据描述工具,扮演异构应用间数据交换载体或多源异构数据集成全局模式的角色。
事实上,XML已经成为Internet环境下数据表达的公开而被广泛支持的标准。
5.1.1基于XML的异构数据交换的总体过程
由于系统的异构性,需要交换的数据具有多个数据源,不同数据源的数据模式可能不同,导致源数据和目标数据在结构上存在差异。
在进行数据交换时,首先必须将数据模型以统一的XML格式来描述,这就需要使用XML的DTD或XMLSchema来定义文档的结构,DTD定义XML文档的基本结构,但不涉及到任何有关的实际数据,通过定义适当的DTD将源数据库中的数据转换成XML文档,然后使用DOM技术来解析XML文档,这样就可以将XML文档中的数据存入目标数据库,从而实现了异构数据的交换。
由于DTD文档定义的数据结构与源数据库中得数据结构保持一致,这样保证了生成的XML文档与源数据库中数据的保持一致。
其总体交换过程如图2所示。
图2基于XML的异构数据交换的总体过程
Fig.2XML-basedexchangeofheterogeneousdata
5.1.2数据库数据与XML文档的映射原理
在XML数据和数据库之间转换时,需要考虑许多问题,XML不支持任何有实际意义的数据模型,所有XML文档中的数据都会被当成纯文本处理。
通常数据转换中间件需要把XML文档中的纯文本转换成数据库的数据类型,或把数据库的数据类型转换为纯文本的XML格式。
在XML文档结构和数据库模式结构之间进行相互映射,一般有两种映射方法:
模板驱动映射与模型驱动映射。
①模板驱动映射
基于模板驱动的映射是一种浅层次的映射,是一种基于模板的DTD到关系模式的转换算法,其转换比较简单,只要给出模板,就可以快速生成相应XML文档。
基于模板的映射方法不用预定义XML数据与数据库数据之间的映射关系,只是在XML文档中嵌入带参数的SQL命令,这些模板中的命令由数据转换中间件来处理,在转换过程中被识别和执行,将执行的结果替换到命令所在的位置上,从而生成XML文档。
因为使用模板驱动映射在数据转换时需要生成大量合理的模板,所以系统要为用户提供生成模板的工具,以及相应的指令执行程序。
其过程如图3。
图3模板驱动映射过程
Fig.3Template-drivenmappingprocess
基于模板映射的优点是转换步骤简单,查询语言灵活性大,支持通过HTTP的传递参数,允许嵌套查询,支持SELECT语句的参数化,支持编程结构,如可以由程序构建loop循环或if判断等。
目前大多数的数据库产品都属于模板映射,如SQLServer、DB2和Oracle等。
缺点是模板驱动映射是以XML内嵌的SQL执行的数据结果集为依据,不涉及数据库赖以存在的数据模型,,只能将关系数据库的数据转换为XML文档,并舍弃了关系模式的约束条件,所以也不支持反向的转换。
②模型驱动映射
模型驱动映射是一种深层次的映射,其原理是利用XML文档中的数据模型的结构显性或隐性地映射成其他数据模型的结构。
要实现数据库和XML文档间的数据转换的关键是在数据库模式和XMLSchemas或DTD之间建立映射关系,用具体的模型来实现数据间的映射。
通常关系数据库利用关系型,面向对象数据库利用对象模型,而XML文档依赖的是Schemas或DTD。
当数据从数据库转换成XML文档时,因为依照得是单个模
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 整合 数据 交换 综述
![提示](https://static.bingdoc.com/images/bang_tan.gif)