异构数据集成思路总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

异构数据集成思路总结
基于XML的异构数据集成方案
一、设计任务
设计出基于XML的异构数据集成方案,具体要求:
i.数据源包括:结构化数据、非结构化数据和
半结构化数据
ii.实现功能包括:能够用统一的方式实现查询等处理
iii.应用的技术为XML技术,实现异构数据集成
二、设计应用的具体集成方法
2.1异构数据集成方法简介:
异构数据集成方法包括:模式集成和数据复制方法。

1、模式集成方法中的数据仍保存在各数据源上,由集成系统提供一个虚拟的集成视图(即全局模式)以及全局模式查询的处理机制。

用户直接在全局模式的基础上提交请求,由数据集成系统处理这些请求,转换成各个数据源在本地数据视图基础上能够执行的请求。

图3 数据仓库集成方法示意图
4几种数据库集成的比较
联邦数据库集成方法、中间件数据库方法和数据仓库集成方法,它们拥有各自己的特点,具体特点如下表所示:
表1 各类异构数据集成方法比较
2.3XML技术
1.XML语言
XML可扩充的标记语言 (Extensible Markup Language)标准是一个基于文本的World Wide Web协会(W3C)规范的标记语言。

与HTML使用标签来描述外观和数据不同,XML严格地定义可移植的结构化数据。

它能作为定义数据描述语言的语言,例如标记语法或词汇、交换格式和通讯协议。

XML己经成为开放环境下描述数据、描述信息的标准技术。

Web Services全部的规范、技术都是以XML为底层核心和构架基础的,对 Web Services而言,无论是SOAP、WSDL,UDDI,都是使用XML作为信息描述和交换的标准手段。

2.XML的特点
XML是一种元标记语言,强调以数据为核心,这两大特点在的众多技术特点中最为突出,同时也奠定了在信息管理中的优势。

XML是一种元标记语言与HTML不同。

XML不是一种具体的标记语言,它没有固定的标记符号,是一种元标记语言,是一种用来定义标记的标记
语言,它允许用户自己定义一套适于应用的DTD 或 XMLSchema。

XML的核心是数据。

在一个普通的文档里,往往混合有文档数据、文档结构、文档样式三个要素。

而对于XML文档来说,数据是其核心。

将样式与内容分离是XML的巨大优点。

一方面可以使应用程序轻松的从文档中寻找并提取有用的数出蓦信息,而不会迷失在混乱的各类标签中。

另一方面,由于内容与样式的独立,也可以为同一内容套用各种样式,使得显示方式更加丰富、快捷。

正是XML的特点决定了其卓越的性能表现。

作为一种标记语言有以下几个主要特点:
可扩展性
XML是设计标记语言的元语言,而不是像HTML 这样的只有一个固定标记集的特定的标记语言。

XML在两个意义上是可扩展的。

首先,它允许开发者创建他们自己的DTD或 XMLSchema,有效地创建可被用于多种应用的“可扩展的”标志集。

其次,使用几个附加的标准,用户可以对XML进行扩展,这些附加标准可以向核心的XML功能集
增加样式、链接、和参照能力。

作为一个核心标准,XML为可能产生的别的标准提供了一个坚实的基础。

灵活性
与HTML相比,XML提供了一种结构化的数据表示方式,使得用户界面分离于结构化数据。

这样既可以只关心数据的逻辑结果,也可以通过样式表来格式化数据的表现,甚至可以定义自己的个人样式表来显示各种不同的XML数据。

自描述性
XML文档通常包含一个文档类型声明,从而XML文档是自描述的,不仅人能读懂XML文档,而且计算机也能处理。

XML文档中的数据可以被任何能够。

XML数据进行解析的应用所提取、分析、处理,并按所需格式显示。

这个特性使计算机可以在没有人为干涉的情况下,理解数据的定义,处理数据。

简明性
作为SGML的一个子集,它只有SGML的20%的
复杂性,但具有SGML约80%的功能。

同完整的SGML相比,XML简单得多,易学、易用并容易实现。

此外,XML的诞生也吸收了人们多年来在W 亡b上使用HTML的经验,正如HTML开辟了一种计算机用户能浏览Intemet文档的途径,XML将成为人们读和写的世界语。

所有这一切使XML成为数据表示的一个开放标准,这种数据表示独立于机器平台、提供商和编程语言。

它将为数据交换带来新的机遇。

3 .XML的相关技术
DTD与 XML Schema
XML文档的实质就是保存数据信息的结构化载体。

为了能够得到有效的XML文档,必须要明确文档中的信息必须遵守哪些结构,即需要一种用来描述XML文档中信息结构的数据模型。

DTD和Schema就是规范XML文档的技术。

DTD(document type definition,文档类型定义)
一个DTD可以看作是标记语言的语法文件,它是一套定义XML标记如何使用的规则。

刚开始建立XML时,它是 Standard Generalized Mark
即Language(SGML)的一个应用。

SGML通过让设计人员创建DTD来允许不同的系统彼此对话。

只要数据符合该DTD,每个系统就能阅读它。

然而,DTD有着不少缺陷:
1、DTD基本上没有数据类型的定义,尤其对数据元素的内容而言。

DTD中所有的表示都是基于字符串,所以对于价格、数量是无法表示成数字的。

在计算机与计算机之间
进行信息交换,常涉及数据格式,这就显现出DTD的局限性。

2、DTD只能进行有限的扩展,扩展性不好。

3、DTD中约束定义能力不足,无法做出更细的语义定义。

例如,表示价格精确到小数点后两位数是有困难的。

4、DTD不够结构化,重用的代价相对较高。

相对于DTD的不足, XML Schema出现较好的解决了DTD的缺点。

XML Schema
XML Schema如同DTD一样是负责定义和描述XML文档的结构和内容模式。

它可以定义XML文档中存在哪些元素和元素之间的关系,并且可以
定义元素和属性的数据类型。

XML Schema本身是一个XML文档,它符合XML语法结构。

可以用通用的XML解析器解析它。

XML schema的优点 :XML Schema基于XML,没有专门的语法;XML 可以像其他XML文件一样解析和处理;支持一系列的数据类型 ((int.、neat、Boolean、date 等),提供可扩充的数据模型;支持综合命名空间;支持属性组。

三、基于XML的异构数据集成方案设计
设计的基于XML的数据集成系统的功能目标主要是实现异构数据源的集成,方便数据的访问、分析。

在对异构数据源数据查询上通过查询处理层将查询语句分解成对各个数据源的子查询,并将各个子查询结果合并返回给用户。

基于XML的数据集成系统设计的具体目标有: (1)解决数据的异构性问题,使不同格式、不同数据管理系统中的数据能够互相交流和转换。

(2)保持已有系统的自治性,在进行数据集成的同时不影响已有系统的正常运行。

(3)能够满足用户不同层次的数据集成要求,
通过中间件集成满足。

(4)系统具有较好的可扩展性,能够适应需求的不断变化。

(5)系统对用户层提供统一的、透明的数据访问接口。

使用户不必过多的关系各个底层数据源的差异结构。

考虑到集成方法有多种,所以将集成分为:基于XML的数据仓库异构数据集成方法和基于XML 的中间件异构数据集成方法。

3.1.基于XML的数据仓库集成方法
充分发挥XML作为载体时的可扩展性、结构性、平台无关性等特点,用于数据异构集成是本设计的突出特点.
基于XML的数据仓库集成方法系统架构
数据仓库集成的主要思想是,将分散在不同地点的异构数据集中到一个数据库,使之统一管理。

在这个转移过程中,主要运用XML作为载体实施操作。

基于XML的数据仓库集成示意图:
图4 基于XML的数据仓库集成系统示意图
详细分析设计图
基于XML数据仓库集成系统设计分为:数据源层、数据提取层、数据转换层、数据载入层和数据应用层。

数据源层
数据源层是数据最原始存储处,它主要是分布在不同地区或者不同机器上的原始数据。

从其存在形式可以将数据分为:结构化数据、非结构化
数据和半结构化数据三大类。

由于数据存在形式的不同,外部应用程序不能直接按一种模式进行管理应用。

为此设计了个数据包装器,以达到不同数据的统一化处理。

数据包装器封装了所有异构数据源的数据细节,对外提供相应的XML数据处理接口。

它也是整个数据集成系统中最重要的部分之一。

不同的异构数据源都有相应的包装器。

包装器实现的主要功能是对下封装异构数据源的一切细节,对上提供XML操作接口。

数据源包装器主要封装的功能是对数据的查询,以及其他的数据操作功能。

包装器主要实现查询转换、数据转换。

最终将数据源转换成统一结构模式,存储在数据仓库中。

数据提取层
增量数据提取是数据库集成的基础,直接决定了数据库集成数据集成的效率和质量。

其中最常用的数据提取方法有:快照法、触发器法、日志法、时间戳法、API法和影子表法几种。

本系统设计时通过应用综合运用各类数据提取方法,达到数据提取效率。

快照法
快照是数据库中存储对象在某一时刻的即时映像。

通过为复制对象定义一个快照或采用类似方法.可以将它的当前映像作为更新副本的内容。

基于快照法是最简单的增量数据提取方法,可以在任何数据库上实现。

它不需要依赖特别的机制,不占用额外的系统资源,管理和操作也非常容易,而且在复制初始化和崩溃时是必需的。

但由于无法仅分复制对象中那些具体发生改变,因此效率很低。

触发器法
此方法在数据库表上建立相应的触发器,当数据库表发生新增、插入和删除操作时,此时触发器就会被执行,通过相应的数据提取程序,将增量数据写入目标数据库中,实现本地数据库和目标数据库数据保持一致。

日志法
数据库日志作为维护数据完整性和数据库恢复的重要工具,其中已经包含了全部成功提交的数据库操作记录信息。

基予日志法就是通过分析数据库日志的这些信息来捕获复制对象的变化序列。

目前常见的服务器关系数据库系统有Oracle、DB2、SQL Server、Informix等,它们都提供了日志机制的支持。

因此理论上可以用同志检测可以分析出数据的变化序列,这种方法不仅方便,也不会占用太多额外的系统资源,对任何类型的复制都适合,不但能提高效率和保证数据的完整性,还能在对等式复制时提供详细的控制信息。

但由于数据库日志的格式是不公开且存在差异,它们所提供的日志接口也各不相同,因而不得不基于某一固定的数据库日志分析工具或接口,这给异构数据库复制带来了问题。

日间戳法
基于时间戳的方法主要是根据数据记录的更新时间来判断是否最新更新,并据此对数据副本进行相应的修改。

该方法需要相关应用系统中的每个表中都有一个时间戳字段,以记录每个表的修改时间。

这种方法不影响原有应用的运行效率,但却需要对原有系统做较大的调整,而且不能捕获到那些并非通过应用系统引起的操作数据变化。

API法
在应用程序和数据库之间引入中间件,在完成
应用程序对数据库修改的同时,中间件会记录下复制对象的变化序列,从而达到数据提取的目的。

但是中间件的编写一般比较复杂,但是随着计算机技术的不断发展,面向方面编程AOP(Aspect Oriented Programming)技术给中间件的编写带来很大的方便。

AOP将一个系统中的非功能性需求(横切关注点)从系统中分离出来,将这些横切关注点单独模块化为独立的方面,而不是像OOP那样将这些横切关注点加在每个需要的对象中封装。

AOP在系统编译时静态的或在系统运行时动态的将这些模块化的方面织入到每个类中,实现业务逻辑实现类和方面的组合。

数据提取关心的是如何获得用户操作数据库的信息,这在AOP中属于关注点,关注的是对数据库的操作。

当用户操作应用系统时,应用系统会通过调用数据库驱动(JDBC,ODBC,ADO.NET 等)程序的方法来进行对数据库的操作,此时通过AOP技术来通知数据提取模块来分析用户要执行的操作,从而取得用户要对数据库的操作。

这种方法既可以实现异构数据库复制,也减轻了DBA的负担,但是对于不经过API操作进行的
SQL语句而产生的变化,API法是无法捕捉到的,另外这种方法可移植性差,当从一种运行环境(DBMS,OS等)移植到另一种运行环境时,往往要重新编写应用程序甚至改变数据库模式。

同时当复制逻辑复杂时,有可能影响应用程序的运行效率,因而这种方法不适用于企业级数据复制。

影子表法
影子表法在初始化时为复制对象表T建立一个影子表S,也就是做一份当时的拷贝。

以后就可在适当时机通过比较当前T和S的内容来获取净变化信息。

影子表法是一种通用的增量数据提取方法,能在任何数据库上实现。

影子表法得到的是净变化值,传输效率比较高。

影子表法的缺点也很明显。

首先,它不符合单副本可串行性的要求,中间过程的操作信息全部丢失不能提供足够的控制信息。

其次,每次数据提取时都需扫描整个T表和S表,数据提取效率很低,随着数据的增多会成为一个严重的性能瓶颈。

数据转换层
数据转换层包括:数据压缩、数据加密、数据签名和XML数据模块等。

它们的主要功能是完成
数据转换,最终输出XML格式的数据。

由于接受到提取的数据一般情况下都是非常大的,直接应用于传输不太合适,而且有时也不可行,为此数据压缩变得十分重要了。

通常不同的数据压缩方法有所不同,如音频数据的压缩、视频数据的压缩以及文件数据的压缩等,它们应用的标准都不太一样。

在该层,通常先对数据进行压缩,从而达到减少传输数据量的目的;数据压缩后,将对数据签名,签名的主要目的是保证数据的安全性和可信任;签名后现对数据进行加密,数据加密的主要目的是实现数据的安全性,保证数据不会在传输过程中被泄漏了;当数据的其它一切都处理完后,将对数据进行XML格式的转换,转换的主要目的是运用XML数据的优点,实现数据的传输。

网络通信
考虑到各局部数据源的分布分散、
数据仓库层
数据仓库层主要是对实现统一化后的数据的存储,并且提供数据管理系统。

数据管理系统主要功能主要包括:对数据仓库内部数据更新、数
据查询以及将存在的数据统一转换成XML格式供数据传输。

而其内部的数据将通过ETL得到更新。

查询处理层
查询处理层将从数据仓库层得到以XML格式的数据,并且提供应用程序接口,为应用程序提供数据支持。

基于XML数据仓库集成方法软件的设计
ETL控制是数据仓库更新时需要设计的一个重要部件,它的软件设计流程图如下:
3.2基于XML中间件数据集成方法设计
基于XML中间件数据集成方法系统架构图的设计
中间件数据集成方法有实时性较好的优点,它可以用来对多源异构数据进行实时监控的作用。

但是异构数据无法实现直接统一管理应用,在此设计中,选择XML作为载体对异构数据进行集成。

基于XML中间件数据集成方法架构图设计。

图5 基于XML数据异构集成方法
详细分析设计图三
基于XML的异构数据集成系统分为:数据源层、中介层和查询处理层三层。

数据源层
3.2基于XML中间件数据集成方法设计
基于XML中间件数据集成方法系统架构图的设计
中间件数据集成方法有实时性较好的优点,它可以用来对多源异构数据进行实时监控的作用。

但是异构数据无法实现直接统一管理应用,在此设计中,选择XML作为载体对异构数据进行集成。

基于XML中间件数据集成方法架构图设计。

图6 基于XML数据异构集成方法
详细分析设计图
基于XML的异构数据集成系统分为:数据源层、中介层和查询处理层三层。

数据源层
数据源层是数据源,可以分为结构数据、非结构数据和半结构数据。

考虑到数据之间结构的差异,所以在集成时通过包装器处理掉数据间的差异。

包装器的主要作用是屏蔽掉数据集成时之间的差异,也封装好数据结构之间的差异,将数据转换成可统一的结构模式。

中介层
中介层包括数据缓存和触发器两大部分。

数据缓存主要是存储转换过来的数据,以供查询处理层调用,数据缓存的存在有利于提高数据调用时的速度,从而提高整个系统的速度;触发器的主要作用是调用特定的数据源,它的主要作用是将不同的数据源转换成某一特定格式后,将其存入缓存中,以使应用程序调用。

数据查询层
数据查询层的主要目的为应用程序提供数据接口,以便应用程序能够更好的访问数据。

它的主要手段是给中介触发器一个信号,使触发器触发特定的数据源,从而产生特定的数据并且转换成特定格式数据缓存到缓存器中,并且方便的为应用程序应用。

触发器程序设计
触发器是中间件设计的主要部件,它的作用是触发特定的数据源,识别特定查询层的命令。

具体流程图设计如下:其中n表示第n个数据源,N表示总共数据源个数。

图7 触发器程序流程图
四、基于XML的异构数据集成在演出院线网络化协同服务平台中的应用
4.1系统架构图
基于XML的异构数据集成在演出院线网络化服务平台中的应用架构图如下图所示:
图6 基于XML异构数据集成方法在演出院线网络化服务平台中的应用架构图
4.2详细分析系统
系统分为:数据源层、中间层和查询处理层三大层。

数据源层
其中数据源层主要包括演出院线网络化协同服务平台中各类结构化、非结构化和半结构化的数据。

它们构成了所有决策等操作时最基本的数
据源。

是演出院线进一步做出决策时的数据根源。

为了屏蔽掉数据之间的差异,每个数据源增加了一个包装器,它的作用是将特定的数据转换成XML格式数据,并且传送给中间层。

考虑到数据更新频率等因素,异构数据集成方法包括了两种:数据仓库和中间件法,其中中间件方法是为了处理实时性要求高的数据源,而数据仓库方法则是处理数据更新速度慢的数据源。

中间层
中间层包括两大部分,其中一是基于XML的中间件,另一是数据仓库。

中间件主要目的是处理实时性较强的数据源,而数据仓库则是处理实时性不太高的数据源。

一般情况下,实时性要求高的数据源主要包括:现在演出信息、报警信息等;而实时性要求不高的则主要包括:场馆信息等。

处理场馆等信息时它实时要求不高,所以一般运用数据仓库时就可以满足它的要求。

数据在数据源层时就将数据转换成XML格式的数据,传送到中到ETL控件时,则将XML数据转换成结构化数据,后存入数据仓库,以便查询层运用。

处理演出等信息时,主要是通过触发器首先对
特定数据源进行触发,后通过包装器将数据转换成XML格式后传送到数据缓存器中,以便数据查询层调用。

查询处理层
查询处理层主要目的是为应用程序提供数据接口,以便数据查询用。

它能够彬彬摈弃数据结构的差异,能够访问不同结构的数据,实现主要是通过中间层和数据源层的辅助作用。

在此增加了一个识别器,主要目的是识别应用程序查询访问的是数据仓库还是中间件。

4.3识别器程序设计
识别器的主要作用是为查询处理层接受到的命令时提供一个统一的访问识别,从而正确读取数据。

其程序流程图表示如下:其中n表示第n 个数据源,N表示总共数据源个数。

相关文档
最新文档