前提
如果所有的数据都在一个数据模式中,数据库中没有重复的记录,并且数据是实时的且没有数据冲突,那么数据库和数据挖掘可以很好的帮助我们对大量的数据进行管理和分析。但是在现实中,应用经常需要使用不同的独立的数据来源产生的数据,这些数据源使用不同的数据模型和不同的数据模式,对同一个现实实体存在冲突的数据,并且对查询接口有不同的限制。这时就需要通过数据集成来处理这些数据。
数据集成
定义: 数据集成是把来自一组具有异构性的数据源的数据合并成一个独立统一的数据集合(物理集成)或者数据的视图(虚拟集成)。消除所有类型的异构。
集成之后的数据应该正确的完全代表所有数据源的内容、使用单一的数据模型和单一的模式、对每一个现实实体只包含一条记录、对每一个现实实体没有互相冲突的数据。
数据集成需要解决不同数据源之间的多种类型的异构性。
数据湖的定义:结构化程度可能不同的存在潜在联系的原始数据组成的未集成的数据池。
数据集成的应用领域
-
商业:对企业数据库、遗留数据库、服务和应用数据进行集成可以用于客户关系管理、供应链关系管理和公司兼并。
-
科学:数以百计的生物医学数据源在快速增长。
-
政府:执法部门通过从不同的来源挖掘大量的数据去识别和评价个人。
-
数据新闻:政府的数据被越来越多的发布在网站上,记者可以通过合并不同数据源的数据去发掘故事。
-
网页:可以比较不同网站的商品信息,去选择最合适的购买方式。
异构性
-
异构性的类型:技术异构、语法异构、数据模型异构、结构异构、语义异构
-
异构性的主要原因是数据源的自主权。数据源独立的决定如何存储和如何提供访问,在标准上达成一致可以部分消减异构性。
-
技术异构性:技术异构性包括访问数据的方式的不同,与数据本身无关。
例如:通信协议(HTTP、ODBC/JDBC、SOAP)、数据交换格式(XML、JSON、CSV、RDF、HTML、binary data)、查询语言(SQL、XQuery、SPARQL)、额外的限制(Number of queries、Cost per query/data set)
-
语法异构性:语法异构包括对值编码的不同。
例如:字符格式(ASCII、Unicode)、数字格式(小端模式、大端模式)、分隔符格式(制表符、逗号分隔符)
-
数据模型异构性:数据模型异构包括表示数据的数据模型的不同。
-
数据模型:关系型数据模型、XML数据模型、图数据模型、面向对象的数据模型
-
结构异构性:结构异构性包括不同图式代表现实的同一部分的方式的差异。
-
语义异构性:语义异构包括关于数据和模式元素的意思的差异。
名词冲突:同义词、同音词、略有偏差的概念
对象重复:多个数据源以及同一个数据源中的描述同一个现实实体的多个记录
数据冲突:多个数据源以及同一个数据源中的描述同一个现实实体的多个记录的数据冲突。
数据冲突的原因:
1. 错误:拼写错误或者其他在输入时产生的错误;
2. 过时的数据:数据或者源比其他的旧;
3. 分歧:不同的源对事实和真相有分歧。
数据集成的过程
- 数据收集、数据提取、模式映射、数据转换、实体解析、数据质量评估、数据融合
-
数据收集:
目标:解决技术异构和数据模式异构,使来自所有数据源的数据都可以在相同的数据模式下被访问。
-
信息提取:
目标:从无结构或半结构化的内容中自动提取结构化信息。
随着结构化程度的降低,提取的难度提高。
-
模式映射和数据转换:
目标:解决结构异构和与模式相关的语义异构。
方式:从不同模式的元素中寻找联系,依据这些联系把数据转换为单一的目标模式。
-
实体解析:
目标:通过从所有数据源的所有数据中识别表示相同现实实体的记录解决语义异构。
实体解析的其他表述:Duplicate Detection、Record Linkage、Entity Matching、Data Matching
基本方法:通过不同相似性度量的结合对记录进行比较,如果记录足够相似,那就认为这些记录表示的是相同的现实实体。
-
数据融合:
目标:通过把关于同一个实体的重复记录的属性值合并成一个统一的描述来解决数据冲突。
基本方法:评估数据源、记录、值的质量,评估标准:时间性、源的声望,使用冲突解决方法选择最好的值或者纠正值。
数据集成架构
-
物理集成:把所有的数据放到一个物理数据库中。
-
虚拟集成:数据还留在原始数据源,但是在查询时通过试图访问。
-
经验法则:如果数据源超过五个或者实体解析和数据融合比较重要,那么虚拟集成不适用。
-
Tools for specific tasks:Altova Map Force:数据综合和网络服务器实现工具。
-
Alon Halevy:”Data Integration is AI-Complete”
完全AI问题:现有的人工智能无法解决,除非人类提出更深层次的解决方案已开发人类风格的人工智能,否则无法解决它们。
完全自动化解决是不可能的,原因:
逻辑原因:模式和数据异构
社会原因:寻找相关数据需要说服人们分享自己的数据
-
目标:减少设置集成应用程序所需的工作量;是系统能够在具有不确定性的情况下完好的运行。
总结
-
数据集成的目标就是从来自不同模式的多个数据源中抽取出真实的数据。
-
数据集成的应用范围很广,处理数据集成对于很多应用都至关重要。
-
架构包括从物理架构到虚拟架构。不管架构是什么样的,消除异构性都是关键问题。目标是减少耗费的人力。