数据集成
数据集成就是将多个数据源中的数据合并,存放在一个一致的数据存储中:如存放在数据仓库中。这些数据源可能包括多个数据库、数据立方体或一般文件。
1.实体识别问题:
实体识别问题就是要合理匹配来自多个信息源的等价实体。
例如:如何确信一个数据库中的customer_id和另一个数据库中的cust_number指的是相同的属性?每个属性的元数据包括名字、含义、数据类型和属性的允许取值范围,以及处理空白、零或者null值的空值规则。
在集成期间,当一个数据库的虎山行和另一个数据库的属性匹配是,必须注意数据的结构。目的是确保源系统中的函数依赖和参照约束与目标系统中的匹配。
例如:在一个系统中,discount可能用于订单,而在另一个系统中,它用于订单内的商品。如果在集成之前未发现,则目标系统中的商品可能被不正确的打折。
2.冗余和相关分析
属性或维命名的不一致可能导致结构数据集中的冗余。一个属性(例如:年收入)如果能由另一个或者另一组属性“导出”,则这个属性可能是冗余的。
对于标称数据,我们使用x²(卡方)检验
对于数值属性,我们使用相关系数、协方差(方差是协方差的特殊情况),他们都评估一个属性的值如何随另一个变化。
(1)标称数据的x²相关检验
对于标称数据,两个属性A和B之间的相关联系可以通过X²(卡方)检验发现。
(2)数值数据的相关系数
对于数值数据,我们可以通过计算属性A和B的相关系数(又称积矩系数),估计这两个属性的相关度
-1≤r(A,B)≤1,如果r大于0则AB是正相关的,这意味着A随着B的增大而增大。该值越大,相关性越强(即每个属性蕴含另一个的可能性越大)。因此一个较高的R(A,B)值表名A或B可以作为冗余而被删除。
如果结果值=0则A和B是独立的,并且他们之间不存在相关性。如果该结果小于0说明A和B是负相关的。一个值随着另一个值的减少而增加。这意味着每一个属性都阻止另一个出现。散点图也可以用来观察属性之间的相关性
【注意】:
相关性并不蕴含因果关系。也就是说,如果A和B是相关的,这并不意味着A导致B或者B导致A。例如分析人口统计数据库时,我们可能发现一个地区的医院数与汽车盗窃数是相关的。这并并不意味着一个导致另一个。实际上二者必然关联到第三属性-人口
(3)数值数据的协方差
概率中协方差和方差是两个相似的度量,评估两个属性如果一起变化。考虑两个数值属性A、B和n次观测的集合{(a1,b1),…(an,bn)},A和B的均值又分别称作A和B的期望值
3.去除重复数据
“去规范化表”(denormalized table)的使用(这样做通常是通过避免连接来改善性能)是数据冗余的另一个来源。不一致通常出现在各种不同的副本之间,由于不正确的数据输入,或者由于更新了数据的某些出现。
例如:如果订单数据库包含订货人的姓名和地址属性,而不是这些信息在订货人数据库中的码,则差异就有可能出现,如同一个订货人的名字可能以不同的地址出现在订单数据库中。
4.数据冲突的检测和处理
对于同一个实体,来自不同数据源的属性值可能不同。这可能是因为表示、尺度或者编码不同。
e.g重量属性在一个系统中以公制单位而在另一个系统里用英制单位存放;不同城市的房价可能涉及不同的货币
属性也可能在不同的抽象层,其中属性在一个系统中记录的抽象层可能比另一个系统中“相同的”属性低。