数据集成内容
定义:数据集成是要将互相关联的分布式异构数据源集成到一起, 使用户能够以透明的方式访问这些数据源。
集成是指维护数据源整体上的数据一致性、提高信息共享利用的效率;
透明的方式是指用户无需关心如何实现对异构数据源数据的访问,只关心以何种方式访问何种数据。
数据集成难点:
( 1 ) 异构性: 被集成的数据源通常是独立开发的, 数据模型异构, 给集成带来很大困难。这些异构性主要表现在: 数据语义、相同语义数据的表达形式、数据源的使用环境等。
( 2 ) 分布性: 数据源是异地分布的, 依赖网络传输数据, 这就存在网络传输的性能和安全性等问题。
( 3 ) 自治性: 各个数据源有很强的自治性, 它们可以在不通知集成系统的前提下改变自身的结构和数据, 给数据集成系统的鲁棒性提出挑战。
数据集成方法:
1.模式集成方法:
在构建集成系统时将各数据源的数据视图集成为全局模式, 使用户能够按照全局模式透明地访问各数据源的数据。全局模式描述了数据源共享数据的结构、语义及操作等。用户直接在全局模式的基础上提交请求, 由数据集成系统处理这些请求, 转换成各个数据源在本地数据视图基础上能够执行的请求。 模式集成方法的特点是直接为用户提供透明的数据访问方法。
模式集成要解决两个基本问题: 构建全局模式与数据源数据视图间的映射关系; 处理用户在全局模式基础上的查询请求。
联邦数据库和中间件集成方法是现有的两种典型的模式集成方法。
联邦数据库是早期人们采用的一种模式集成方法。联邦数据库中数据源之间共享自己的一部分数据模式, 形成一个联邦模式。联邦数据库系统按集成度可分为两类: 采用紧密藕合联邦数据库系统和采用松散藕合联邦数据库系统。
紧密藕合:联邦数据库系统使用统一的全局模式, 将各数据源的数据模式映射到全局数据模式上, 解决了数据源间的异构性。这种方法集成度较高, 用户参与少; 缺点是构建一个全局数据模式的算法复杂, 扩展性差。
松散藕合:联邦数据库系统比较特殊, 没有全局模式, 采用联邦模式。该方法提供统一的查询语言, 将很多异构性问题交给用户自己去解决。松散藕合方法对数据的集成度不高, 但其数据源的自治性强、动态性能好, 集成系统不需要维护一个全局模式。
中间件集成方法是另一种典型的模式集成方法, 它同样使用全局数据模式。G.wiedehrold最早给出了基于中间件的集成方法的构架。与联邦数据库不同, 中间件系统不仅能够集成结构化的数据源信息, 还可以集成半结构化或非结构化数据源中的信息, 如web信息。斯坦福大学Gare:a一Molina等人开发了TSIMMIS系统, 就是一个典型的中间件集成系统。
典型的基于中间件的数据集成系统( 图2) 主要包括中间件和包装器, 其中每个数据源对应一个包装器, 中间件通过包装器和各个数据源交互。用户在全局数据模式的基础上向中间件发出查询请求. 中间件处理用户请求, 将其转换成各个数据源能够处理的子查询请求, 并对此过程进行优化, 以提高查询处理的并发性, 减少响应时间。包装器对特定数据源进行了封装, 将其数据模型转换为系统所采用的通用模型, 并提供一致的访问机制。中间件将各个子查询请求发送给包装器, 由包装器来和其封装的数据源交互, 执行子查询请求, 并将结果返回给中间件。
中间件注重于全局查询的处理和优化, 相对于联邦数据库系统的优势在于: 它能够集成非数据库形式的数据源, 有很好的查询性能, 自治性强; 中间件集成的缺点在于它通常是只读的, 而联邦数据库对读写都支持。
2.数据复制方法
将各个数据源的数据复制到与其相关的其它数据源上, 并维护数据源整体上的数据一致性、提高信息共享利用的效率.
数据仓库:该方法将各个数据源的数据复制到同一处— 数据仓库。用户则像访问普通数据库一样直接访问数据仓库。
数据异构性问题:
语法异构和语义异构的区别可以追溯到数据源建模时的差异: 当数据源的实体关系模型相同, 只是命名规则不同时,造成的只是数据源之间的语法异构; 当数据源构建实体模型时, 若采用不同的粒度划分、不同的实体间关系以及不同的字段数据语义表示, 必然会造成数据源间的语义异构, 给数据集成带来很大麻烦.
语法异构:一般指源数据和目的数据之间命名规则及数据类型存在不同. 对数据库而言, 命名规则指表名和字段名. 语法异构相对简单, 只要实现字段到字段、记录到记录的映射,解决其中的名字冲突和数据类型冲突。这种映射都很直接, 比较容易实现.
语意异构:字段拆分、字段合并、字段数据格式变换、记间字段转移。
3.综合性集成方法:
模式集成方法为用户提供了全局数据视图及统一的访问接口, 透明度高; 但该方法并没实现数据源间的数据交互, 用户使用时经常需要访问多个数据源, 因此该方法需要系统有很好的网络性能。
数据复制方法在用户使用某个数据源之前, 将用户可能用到的其它数据源的数据预先复制过来, 用户使用时仅需访问某个数据源或少量的几个数据源, 这会大大提高系统处理用户请求的效率; 但数据复制通常存在延时.使用该方法时,很难保障数据源之间数据的实时一致性。
为了突破两种方法的局限性, 人们通常将这两种方法混合在一起使用, 即所谓的综合方法。综合方法通常是想办法提高基于中间件系统的性能, 该方法仍有虚拟的数据模式视图供用户使用, 同时能够对数据源间常用的数据进行复制. 对于用户简单的访问请求, 综合方法总是尽力通过数据复制方式. 在本地数据源或单一数据源上实现用户的访间需求; 而对那些复杂的用户请求, 无法通过数据复制方式实现时, 才使用虚拟视图方法。
4.其他技术:
网格技术:
现在, 进行科学研究所要进行的数据分析、计算变得日益复杂, 需要多种设备和多个系统的协作, 为此人们提出网格计算技术, 试图构建一种能够联合网络中所有资源, 为用户提供一种虚拟的巨型超级计算机系统。而数据网格技术的最终目标是建立异构分布环境下海量数据的一体化存储、管理、访问、传输与服务的架构和环境, 简而言之, 数据网格技术主要解决的是在广域环境下分布的, 异构的, 海量存储资源的统一访问与管理的问题, 可以很好地解决海量数据难于组织、难以处理的问题。数据网格技术是在计算网格技术的基础上发展起来的, 对于数据集型的大型科学研究具有重大的科研和应用价值, 它为广域的具有数据密集型或协作特点的大型科学应用和研究提供了支撑平台。
本体技术:
本体是对某一领域中的概念及其之间关系的显式描述。是语义网络的—项关键技术。本体技术能够明确表示数据的语义以及支持基于描述逻辑的自动推理, 为语义异构性问题的解决提供了新的思路, 对异构数据集成来说应该有很大的意义。
采取本体技术和中间件相结合的方法: 采用中间件架构, 支持虚拟视图或视图集合, 且不存储任何异构数据库中的实际数据。为了更好地解决语义异构, 在中间件中引入了一个本体库。
应用层:为用户提供访问数据库的接口。
中间件层:中间件层从更高层次上屏蔽了数据源的分布性和异构性。用户认为所有的数据都是本地的, 处于同一服务域中, 而具体的查询请求的处理、结果的返回都由中间层负责。中间件主要由中介器、包装器和本体库3个部分组成, 其中, 中介器又包括查询生成器、查询分解引擎、查询执行引擎和结果处理4 个功能组件。
数据源层:每一个数据源都采取本地管理的方式对数据进行管理。