内容简介
当数据存储在多个数据库中,如何查询数据?是当这些数据库是由不同的人分别设计。这是第一个全面介绍数据集成的书,由业界三个人尊敬的专家撰写。这本书讲解数据集成技术的理论知识,使用大量实例来解释基本概念。数据集成是解决跨多个数据源(如数据库,网页)的问题。目前在多种环境中都涉及数据集成问题,包括企业信息集成,在网络上的查询处理,政府机构之间的协调和科学家之间的合作。在某些情况下,数据集成是某个领域取得进展的关键。本书提供了数据集成的概念和工具,可用于数据集成的具体实现。本书作者是威斯康星大学麦迪逊分校计算机科学副教授,同时在微软AdCenter实验室与雅虎研究实验室担任咨询顾问。
目录
目 录Principles of Data Integration
出版者的话
中文版序
译者序
前言
第1章 绪论1
1.1 什么是数据集成1
1.2 数据集成面临的挑战5
1.2.1 系统原因5
1.2.2 逻辑原因5
1.2.3 社会和管理原因6
1.2.4 设定预期7
1.3 数据集成架构7
1.3.1 数据集成系统的组成部分7
1.3.2 数据集成实例9
1.4 全书概览12
参考文献注释13
第一部分 数据集成技术基础
第2章 查询表达式及运算16
2.1 数据库概念回顾16
2.1.1 数据模型16
2.1.2 完整性约束18
2.1.3 查询和应答19
2.1.4 合取查询20
2.1.5 datalog查询21
2.2 查询展开22
2.3 查询包含与等价23
2.3.1 形式化定义23
2.3.2 合取查询的包含24
2.3.3 合取查询的并集25
2.3.4 带有比较谓词的合取查询26
2.3.5 带有否定的合取查询28
2.3.6 包语义、分组和聚集30
2.4 基于视图计算查询32
2.4.1 问题定义33
2.4.2 视图与查询计算的相关性34
2.4.3 查询重写的可能长度34
2.4.4 桶算法和MiniCon算法35
2.4.5 逻辑方法:逆规则算法41
2.4.6 算法比较42
2.4.7 基于视图的查询应答43
参考文献注释46
第3章 数据源描述47
3.1 概述和必要条件47
3.2 模式映射语言49
3.2.1 模式映射语言规则49
3.2.2 全局视图50
3.2.3 局部视图53
3.2.4 全局-局部视图55
3.2.5 元组生成依赖56
3.3 访问模式限制57
3.3.1 构建访问模式限制58
3.3.2 生成可执行计划58
3.4 中介模式上的完整性约束61
3.4.1 带有完整性约束的LAV61
3.4.2 带有完整性约束的GAV62
3.5 结果完备性63
3.5.1 局部完备性63
3.5.2 结果完备性检测64
3.6 数据级的异构性65
3.6.1 标度差异性66
3.6.2 相同实体的多重表示66
参考文献注释67
第4章 字符串匹配68
4.1 问题描述68
4.2 相似度度量69
4.2.1 基于序列的相似度度量69
4.2.2 基于集合的相似度度量75
4.2.3 混合相似度度量77
4.2.4 语音相似度度量79
4.3 可扩展的字符串匹配80
4.3.1 字符串上的倒排索引81
4.3.2 大小过滤81
4.3.3 前缀过滤82
4.3.4 位置过滤84
4.3.5 边界过滤85
4.3.6 其他相似度度量方法的可扩展技术86
参考文献注释86
第5章 模式匹配与模式映射88
5.1 问题定义88
5.1.1 语义映射89
5.1.2 语义匹配89
5.1.3 模式匹配与模式映射90
5.2 模式匹配和模式映射的挑战90
5.3 匹配和映射系统概述92
5.3.1 模式匹配系统92
5.3.2 模式映射系统94
5.4 匹配器94
5.4.1 名字匹配器94
5.4.2 实例匹配器96
5.5 组合匹配预测97
5.6 施加域完整性约束98
5.6.1 域完整性约束99
5.6.2 搜索匹配组合空间100
5.7 匹配选择器104
5.8 匹配重用105
5.8.1 学习匹配106
5.8.2 学习器107
5.8.3 训练元学习器108
5.9 多对多匹配109
5.10 由匹配到映射111
参考文献注释116
第6章 通用模式操作118
6.1 模型管理操作119
6.2 合并操作120
6.3 模型生成操作121
6.4 逆映射操作123
摘要与插图
第 1章 绪 论Principles of Data Integration
互联网的发明和万维网的出现改变了人们获取存储在电子设备数据的方式。现在我们能够很容易通过浏览器或者智能手机进行查询,对数百万文档集合、商业数据库进行搜索,获取信息、优惠券等。同样,也可以很方便地订购一台我们想要的计算机,并且在几天内收到该计算机,即使计算机配件分布在世界各地。为了提供这种服务,系统必须能够、准确地处理互联网上的大量数据。但是,不同于传统的数据管理应用,如公司的工资管理系统这种新服务需要在多个应用程序和组织之间共享数据,并能将数据以灵活、的方式集成起来。本书涵盖了数据集成的基本原理,以及一些数据共享和数据集成技术。
1.1 什么是数据集成
我们通过两个实际的例子来说明数据集成的必要性。一个是企业应用,另一个是Web应用。例1.1 FullServe是一家提供家庭互联网接入的公司,同时也卖一些支持家庭计算的基础设施产品,如调制解调器、无线路由器、IP语音电话和咖啡机。FullServe是一家以美国为主的公司,决定把市场扩大到欧洲。为了扩大市场,FullServe收购了一家欧洲公司EuroCard,它是一个信用卡供应商,已开始利用其客户基础,进军互联网市场 这里提到的公司名字和它们之间的业务往来纯属虚构,但在当今的市场中很常见。。
图1-1 FullServe公司示例数据库。对每一个数据库,列举了一些表及其属性。例如,员工(Employee)数据库有一个表FullTimeEmps,该表的属性包括:ssn、empID、lastName、middleName和firstName
像FullServe这样的公司常常有上百个分散在不同地方的数据库,图1-1展示了FullServe数据库集合的一个简单版本。人力资源部有一个存储员工信息的数据库,全职员工和临时工分开,还有另外一个单独存放申请者简历的数据库,包括现有员工的简历。培训和发展部有一个单独的数据库用来保存每个员工接受的培训课程,包括内部和外部的培训课程。销售部门有一个保存服务和当前订购者的数据库,另一个数据库保存产品和客户信息。,客户服务部门维护着一个数据库,用于保存他们的客户服务热线收到的用户来电和电话内容详细信息。
FullServe收购EuroCard公司后,也继承了他们的数据库,如图1-2所示。EuroCard有一些和FullServe类似的数据库,但由于各自不同的地理位置和业务重点,也有一些明显的差异。
图1-2 EuroCard的一些数据库。可以看出,EuroCard组织数据的方式和FullServe有很大不同。例如,EuroCard没有把全职员工和临时工分开存储。FullServe的员工雇用数据一部分保存在简历(Resume)数据库中,另一部分保存在员工数据库中,而EuroCard仅在员工数据库中保存雇用日期
有很多原因导致一个公司的数据分散在多个不同的数据库,而不是集中存储在一个精心设计的数据库中。在FullServe和EuroCard的案例中,多个数据库是通过收购兼并得到的。公司进行内部重组时,应及时调整相应的数据库。例如,当FullServe服务部门和产品部门被合并时,可能并没有合并其数据库,因此公司有两个单独的数据库。其次,大多数数据库的产生都是因为公司中的某个组织在某段时间需要一些特定的信息。当创建数据库时,创建人并不能预见公司未来的所有信息需求以及他们今天存储的数据将来可能会有其他的用途。例如,FullServe现有的培训(Training)数据库在始的时候可能是由少数员工发起的一个小项目,用来记录谁参加了某些培训课程。但是,随着公司的发展以及培训和发展部门的创建,这个数据库就需要进行相应的扩展。总之,由于这样或那样的因素,大型企业通常有几十个甚至数百个不同的数据库。
我们考虑FullS