十四、数据集成
1.數據集成的概念和難點
1.1 數據集成的基本概念
數據集成是一個數據整合的過程。通過綜合各數據源,將擁有不同結構、不同屬性的數據整合歸納在一起,就是數據集成。
1、數據集成式將不同來源的數據整合在一個數據庫中的過程。
2、不同的數據源定義屬性時命名規則不同,存入的數據格式、取值方式、單位都會有不同。因此即便兩個值代表的業務意義相同,也不代表存在數據庫中的值就是相同的。
1.2 數據集成的難點
數據集成的本質是整合數據源,因此多個數據源中字段的語義差異、結構差異、字段間的關聯關系,以及數據的冗余重復,都會是數據集成面臨的問題。
1、實體識別問題
2、數據字段問題
3、冗余和相關性分析
4、元組重復
5、數據沖突與檢測處理
2 實體識別問題
2.1 實體識別
我們可以對數據包括名字、含義、數據類型和屬性的允許取值范圍,以及處理空白、零或NULL值的空值規則。
3 數據字段問題
3.1 字段意義問題
在整合數據源的過程中,很可能出現這些情況:
1、兩個數據源中都有一個字段名字叫“Payment”,但其實一個數據源中記錄的是稅前的薪水,另一個數據源中是稅后的薪水。
2、兩個數據源都有字段記錄稅前的薪水,但是一個數據源中字段名稱為“Payment”,另一個數據源中字段名稱為“Salary”。
可以整理一張專門用來記錄字段命名規則的表格,使字段、表名、數據庫名均能自動生成,并統一命名。一旦發生新的規則,還能對規則表實時更新。
3.2 字段結構問題
數據結構問題的產生是數據集成中幾乎必然會產生的。在整合多個數據源時,這樣的問題就是數據結構問題。
1、字段數據類型不同。一個數據源中存為INTEGER型,另一個數據源中存為CHAR型。
2、字段數據格式不同。一個數據源中使用逗號分隔,另一個數據源中用科學記數法。
3、字段單位不同。一個數據源中單位是一萬人民幣,另一個數據源中是美元。
4、字段取值范圍不同。如,同樣是存儲員工薪水的Payment數值型字段,一個數據源中允許空值,NULL值,另一個數據源中不允許。
可以從業務上確定字段的基本屬性。在后續進行數據集成時,可以通過上表對數據格式進行約束,從而避免因格式不同對集成帶來的困擾。
4 冗余和相關性分析
4.1 冗余的概念
冗余是數據集成的另一個重要問題。一個屬性(例如,年收入)如果它能由另一個或另一組屬性“導出”,則這個屬性可能是冗余的。屬性或維命名的不一致也可能導致數據集中的冗余。
4.2 相關分析檢測冗余
冗余可以被相關分析檢測到。例如,給定兩個屬性,根據可用的數據,這種分析可以度量一個屬性能在多大程度上蘊涵另一個。對于標稱數據,我們使用卡方檢驗。對于數值屬性,我們使用相關系數和協方差,它們都評估一個屬性的值如何隨另一個變化。
4.3 標稱屬性的卡方檢驗
假如收集了100份數據用于研究,其中有48名男性,52位女性。在收集數據前預期男女比例應該是4:6 (40%為男性,60%為女性),現在想分析實際收集到的數據比例與預期的比例有沒有顯著的差異。
- 數值屬性的協方差分析
5 元組重復與數據沖突檢測處理
- 除了檢測屬性間的冗余外,還應當在元組級檢測重復(例如,對于給定的唯一數據實體,存在兩個或多個相同的元組)。
- 數據集成還涉及數據值沖突的檢測與處理。例如:對于同一實體,來自不同數據源的屬性值可能不同。屬性也可能在不同的抽象層,其中屬性在一個系統中記錄的抽象層可能比另一個系統中相同的屬性低。
6 總結
數據集成的本質是整合數據源,因此多個數據源中字段的語義差異、結構差異、字段間的關聯關系,以及數據的冗余重復,都會是數據集成面臨的問題。
- 實體識別問題
- 數據字段問題
- 冗余和相關性分析
- 元組重復
- 數據沖突與檢測處理
重復,都會是數據集成面臨的問題。 - 實體識別問題
- 數據字段問題
- 冗余和相關性分析
- 元組重復
- 數據沖突與檢測處理
總結
- 上一篇: 十三、数据清洗
- 下一篇: 十六、数据变换和数据离散化