版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
數(shù)據(jù)清理關(guān)鍵技術(shù)及其軟件平臺的研究與應(yīng)用第一章緒論1.1引言我國目前正在大力推廣信息技術(shù),實(shí)施各行各業(yè)的信息化工程。隨著信息化建設(shè)的不斷深入,企事業(yè)單位積累了大量的電子數(shù)據(jù),這些數(shù)據(jù)非常重要。為了使信息系統(tǒng)中的數(shù)據(jù)更準(zhǔn)確、一致,能支持正確決策,就要求所管理的數(shù)據(jù)準(zhǔn)確、可靠。因此,企業(yè)數(shù)據(jù)質(zhì)量的管理正在獲得越來越多的關(guān)注。但是,由于各種原因,如數(shù)據(jù)錄入錯誤、不同來源數(shù)據(jù)引起的不同表示方法、數(shù)據(jù)間的不一致等,導(dǎo)致企業(yè)現(xiàn)有系統(tǒng)數(shù)據(jù)庫中存在這樣或那樣的臟數(shù)據(jù),主要表現(xiàn)為:不正確的字段值、重復(fù)的記錄、拼寫問題、不合法值、空值、不一致值、縮寫詞的不同,不遵循引用完整性等。根據(jù)“進(jìn)去的是垃圾,出來的也是垃圾(garbagein,garbageout)”這條原理,若不進(jìn)行清理,這些臟數(shù)據(jù)會扭曲從數(shù)據(jù)中獲得的信息,影響信息系統(tǒng)的運(yùn)行效果,也為企業(yè)構(gòu)建數(shù)據(jù)倉庫、建立決策支持系統(tǒng)、應(yīng)用商務(wù)智能帶來隱患。顯見,數(shù)據(jù)清理問題的重要性是不言而喻的。另外,從市場上眾多的相關(guān)產(chǎn)品,也可以明白這一點(diǎn)。然而,由于數(shù)據(jù)清理本身的一些特點(diǎn),比如:數(shù)據(jù)清理是具體應(yīng)用問題,經(jīng)常要具體問題具體分析,難于歸納出通用方法;數(shù)據(jù)清理問題的數(shù)學(xué)建模困難。因此,目前在學(xué)術(shù)界,數(shù)據(jù)清理并沒有得到足夠的關(guān)注,針對這方面的研究也少,有些人甚至認(rèn)為數(shù)據(jù)清理是一個需要大量勞動力的過程,而且往往過于依賴特定應(yīng)用領(lǐng)域。其實(shí)不然,對于數(shù)據(jù)清理有很多內(nèi)容值得研究,比如:在數(shù)據(jù)清理的研究中,盡管檢測相似重復(fù)記錄受到最多的關(guān)注,采取了許多措施,但檢測效率與檢測精度并不令人滿意。特別是在數(shù)據(jù)量非常大時,耗時太多,有待于更好的方法。作者在文獻(xiàn)中做了一些這方面工作,在相似重復(fù)記錄檢測中采用長度過濾方法優(yōu)化相似檢測算法,避免了不必要的編輯距離計算,從而提高了相似重復(fù)記錄的檢測效率;在數(shù)據(jù)清理的相關(guān)研究中,數(shù)據(jù)清理整體框架的研究正逐漸成為研究的熱點(diǎn)。對此,作者在文獻(xiàn)[7]中提出一個可擴(kuò)展的數(shù)據(jù)清理軟件平臺,該軟件平臺具有開放的規(guī)則庫和算法庫,通過在規(guī)則庫中定義清理規(guī)則以及從算法庫中選擇合適的清理算法,可使該軟件平臺適用于不同的數(shù)據(jù)源,從而使其具有較強(qiáng)的通用性和適應(yīng)性;目前,對數(shù)據(jù)清理的研究主要集中在結(jié)構(gòu)化數(shù)據(jù)上。由于半結(jié)構(gòu)化數(shù)據(jù)XML(ExtensibleMarkupLanguage,可擴(kuò)展標(biāo)識語言)的快速增長以及廣泛應(yīng)用,其在數(shù)據(jù)清理中越來越重要。為了使XML數(shù)據(jù)源中的數(shù)據(jù)更準(zhǔn)確、一致,如何清理這些XML相似重復(fù)數(shù)據(jù),都是值得研究的,作者在文獻(xiàn)[8]中做了一些這方面工作;另外,關(guān)于數(shù)據(jù)清理在一些業(yè)務(wù)領(lǐng)域中的應(yīng)用也是值得研究,作者在文獻(xiàn)[9]、[10]中做了一些這方面的工作。當(dāng)然,對任何現(xiàn)實(shí)世界中的數(shù)據(jù)源,人工完成數(shù)據(jù)清理是沒有問題的。一些單位每年要花費(fèi)上百萬元來查找數(shù)據(jù)錯誤,手工清理是勞累的、費(fèi)時的和易出錯的。對于少量數(shù)據(jù)的數(shù)據(jù)源來說,采用人工清理就可以了,但對于規(guī)模較大的數(shù)據(jù)源,手工清理是不可行的,必須借助信息技術(shù),采用自動清理方法。當(dāng)然,在自動清理的過程中,仍需要人來參與,我們要做的就是盡可能減少人的參與??傊?,在信息化建設(shè)過程中,數(shù)據(jù)清理是一個非常重要,而且較新的課題,有很多東西值得我們?nèi)パ芯?。作為全文的引言,本章主要介紹數(shù)據(jù)質(zhì)量的相關(guān)概念、數(shù)據(jù)清理的原理、數(shù)據(jù)清理軟件平臺的意義以及本文的內(nèi)容安排。1.2數(shù)據(jù)質(zhì)量1.2.1數(shù)據(jù)質(zhì)量概念及分類目前,數(shù)據(jù)質(zhì)量問題已引起廣泛的關(guān)注。什么是數(shù)據(jù)質(zhì)量呢?數(shù)據(jù)質(zhì)量問題并不僅僅是指數(shù)據(jù)錯誤。文獻(xiàn)[22]把數(shù)據(jù)質(zhì)量定義為數(shù)據(jù)的一致性(consistency)、正確性(correctness)、完整性(completeness)和最小性(minimality)這4個指標(biāo)在信息系統(tǒng)中得到滿足的程度,文獻(xiàn)[23]則把“適合使用”作為衡量數(shù)據(jù)質(zhì)量的初步標(biāo)準(zhǔn)。一般說來,評價數(shù)據(jù)質(zhì)量最主要的幾個指標(biāo)是:準(zhǔn)確性(Accuracy)準(zhǔn)確性是指數(shù)據(jù)源中實(shí)際數(shù)據(jù)值與假定正確數(shù)據(jù)值的一致程度;完整性(Completeness)完整性是指數(shù)據(jù)源中需要數(shù)值的字段中無值缺失的程度;一致性(Consistency)一致性是指數(shù)據(jù)源中數(shù)據(jù)對一組約束的滿足程度;唯一性(Uniqueness)唯一性是指數(shù)據(jù)源中記錄以及編碼是否唯一;適時性(Timeliness)適時性是指在所要求的或指定的時間提供一個或多個數(shù)據(jù)項(xiàng)的程度;有效性(Validity)有效性是指維護(hù)的數(shù)據(jù)足夠嚴(yán)格以滿足分類準(zhǔn)則的接受要求。當(dāng)建立一個信息系統(tǒng)的時候,即使進(jìn)行了良好的設(shè)計和規(guī)劃,也不能保證在所有情況下,信息系統(tǒng)中數(shù)據(jù)的質(zhì)量都能滿足用戶的要求。用戶錄入錯誤、企業(yè)合并以及企業(yè)環(huán)境隨著時間的推移而改變,這些都會影響所存放數(shù)據(jù)的質(zhì)量。信息系統(tǒng)中可能存在的數(shù)據(jù)質(zhì)量問題有很多種,總結(jié)起來主要有以下幾種:重復(fù)的記錄重復(fù)的記錄是指在一個數(shù)據(jù)源中有指現(xiàn)實(shí)世界同一個實(shí)體的重復(fù)信息,或在多個數(shù)據(jù)源中有指現(xiàn)實(shí)世界同一個實(shí)體的重復(fù)信息。不完整的數(shù)據(jù)由于錄入錯誤等原因,字段值或記錄未被記入數(shù)據(jù)庫,造成信息系統(tǒng)數(shù)據(jù)源中應(yīng)該有的字段或記錄缺失。不正確的數(shù)據(jù)由于錄入錯誤,數(shù)據(jù)源中的數(shù)據(jù)未及時更新,或不正確的計算等,導(dǎo)致數(shù)據(jù)源中數(shù)據(jù)過時,或者一些數(shù)據(jù)與現(xiàn)實(shí)實(shí)體中字段的值不相符。無法理解的數(shù)據(jù)值無法理解的數(shù)據(jù)值是指由于某些原因,導(dǎo)致數(shù)據(jù)源中的一些數(shù)據(jù)難以解釋或無法解釋,如偽值、多用途域、古怪的格式、密碼數(shù)據(jù)等。不一致的數(shù)據(jù)數(shù)據(jù)不一致包括了多種問題,比如,由不同數(shù)據(jù)源來的數(shù)據(jù)很容易發(fā)生不一致;同一數(shù)據(jù)源的數(shù)據(jù)也會因位置、單位以及時間不同產(chǎn)生不一致。在以上這些問題中,前三種問題在數(shù)據(jù)源中出現(xiàn)的最多。根據(jù)數(shù)據(jù)質(zhì)量問題產(chǎn)生的原因,數(shù)據(jù)質(zhì)量問題可分成單數(shù)據(jù)源問題和多數(shù)據(jù)源問題兩個方面,其分類如圖1.1所示。1.2.2單數(shù)據(jù)源數(shù)據(jù)質(zhì)量問題單數(shù)據(jù)源數(shù)據(jù)質(zhì)量問題可以分成模式級和實(shí)例級兩類問題進(jìn)行分析,如圖1.1所示。一個數(shù)據(jù)源的數(shù)據(jù)質(zhì)量很大程度上決定于控制這些數(shù)據(jù)的模式和完整性約束的等級。沒有模式的數(shù)據(jù)源,如文件,它對數(shù)據(jù)的輸入和保存沒有約束,于是出現(xiàn)錯誤和不一致的可能性就很大。因此,出現(xiàn)模式相關(guān)的數(shù)據(jù)質(zhì)量問題是因?yàn)槿鄙俸线m的特定數(shù)據(jù)模型和特定的完整性約束,如差的模式設(shè)計,或者因?yàn)閮H定義了很少一些約束來進(jìn)行完整性控制。特定實(shí)例問題相關(guān)錯誤和不一致,如拼寫錯誤,不能在模式級預(yù)防。另外,不唯一的模式級特定約束不能防止重復(fù)的實(shí)例,如關(guān)于同一現(xiàn)實(shí)實(shí)體的記錄可能會以不同的字段值輸入兩次。無論是模式級問題還是實(shí)例級問題,可以分成字段、記錄、記錄類型和數(shù)據(jù)源四種不同的問題范圍,分別說明如下:字段:這類錯誤僅僅局限于單個字段的值。記錄:這類錯誤表現(xiàn)在同一條記錄中不同字段值之間出現(xiàn)的不一致。記錄類型:這類錯誤表現(xiàn)在同一個數(shù)據(jù)源中不同記錄之間的不一致關(guān)系。數(shù)據(jù)源:這類錯誤表現(xiàn)在數(shù)據(jù)源中的某些字段值和其它數(shù)據(jù)源中相關(guān)值的不一致關(guān)系。四種不同情況的例子如表1.1和表1.2所示。表1.1單數(shù)據(jù)源中模式級的數(shù)據(jù)質(zhì)量問題表1.2單數(shù)據(jù)源中實(shí)例級的數(shù)據(jù)質(zhì)量問題1.2.3多數(shù)據(jù)源集成時數(shù)據(jù)質(zhì)量問題當(dāng)多個數(shù)據(jù)源集成時,發(fā)生在單數(shù)據(jù)源中的這些問題會更加嚴(yán)重。這是因?yàn)槊總€數(shù)據(jù)源都是為了特定應(yīng)用,單獨(dú)開發(fā)、部署和維護(hù)的,這就很大程度上導(dǎo)致數(shù)據(jù)管理系統(tǒng)、數(shù)據(jù)模型、模式設(shè)計和實(shí)際數(shù)據(jù)的不同。每個數(shù)據(jù)源都可能含有臟數(shù)據(jù),多數(shù)據(jù)源中的數(shù)據(jù)可能會出現(xiàn)不同表示、重復(fù)、沖突等現(xiàn)象。在模式級,模式設(shè)計的主要問題是命名沖突和結(jié)構(gòu)沖突。命名沖突主要表現(xiàn)為不同的對象可能使用同一個命名,而同一對象可能使用不同的命名;結(jié)構(gòu)沖突存在很多種不同的情況,一般是指在不同數(shù)據(jù)源中同一對象有不同表示,如不同的組成結(jié)構(gòu)、不同的數(shù)據(jù)類型、不同的完整性約束等。除了模式級的沖突,很多沖突僅出現(xiàn)在實(shí)例級上,即數(shù)據(jù)沖突。由于不同數(shù)據(jù)源中數(shù)據(jù)的表示可能會不同,單數(shù)據(jù)源中的所有問題都可能會出現(xiàn),比如重復(fù)的記錄、沖突的記錄等。此外,在整個數(shù)據(jù)源中,盡管有時不同的數(shù)據(jù)源中有相同的字段名和類型,仍可能存在不同的數(shù)值表示,如對性別的描述,一個數(shù)據(jù)源中可能用“0/1”來描述,另一個數(shù)據(jù)源中可能會用“F/M”來描述,或者對一些數(shù)值的不同表示,如一個數(shù)據(jù)源中度量單位制可能用美元,另一個數(shù)據(jù)源中可能會用歐元。此外,不同數(shù)據(jù)源中的信息可能表示在不同的聚集級別上,如一個數(shù)據(jù)源中信息可能指的是每種產(chǎn)品的銷售量,而另一個數(shù)據(jù)源中信息可能指的是每組產(chǎn)品的銷售量。多數(shù)據(jù)源集成中的數(shù)據(jù)清理問題也是信息化建設(shè)中面臨的一個重要問題。對于這個問題,作者會在第五章進(jìn)行研究。1.3數(shù)據(jù)清理內(nèi)涵及原理通過以上對數(shù)據(jù)質(zhì)量問題的分析,可以看出:數(shù)據(jù)質(zhì)量問題是信息化建設(shè)中的一個重要問題,為了提高信息系統(tǒng)的數(shù)據(jù)質(zhì)量,研究數(shù)據(jù)清理非常重要。數(shù)據(jù)清理(datacleaning)也稱數(shù)據(jù)清洗。數(shù)據(jù)清理的三個主要領(lǐng)域包括:數(shù)據(jù)倉庫(DataWarehouse,DW)、數(shù)據(jù)庫中的知識發(fā)現(xiàn)(KnowledgeDiscoveryinDatabases,KDD)和綜合數(shù)據(jù)質(zhì)量管理(TotalDataQualityManagement,TDQM)。數(shù)據(jù)清理在不同的應(yīng)用領(lǐng)域其要求不完全相同,如在數(shù)據(jù)倉庫環(huán)境下,數(shù)據(jù)清理是ETL(Extraction抽取、Transition轉(zhuǎn)換、Load加載,ETL)過程的一個重要部分,要考慮數(shù)據(jù)倉庫的集成性與面向主題的需要,包括數(shù)據(jù)的清理及結(jié)構(gòu)轉(zhuǎn)換;在KDD中,數(shù)據(jù)清理主要是提高數(shù)據(jù)的可利用性,如去除噪聲、無關(guān)數(shù)據(jù)、空值,考慮時間順序和數(shù)據(jù)的變化等,但主要內(nèi)容還是一樣的。目前,對于數(shù)據(jù)清理沒有統(tǒng)一的定義。文獻(xiàn)[30]認(rèn)為數(shù)據(jù)清理是一個消除數(shù)據(jù)中的錯誤和不一致,解決對象識別問題的過程,文獻(xiàn)[31]則把數(shù)據(jù)清理定義為重復(fù)記錄的合并/清理問題。一般來說,從廣義上講,數(shù)據(jù)清理是將數(shù)據(jù)庫精簡以除去重復(fù)記錄,并使剩余部分轉(zhuǎn)換成標(biāo)準(zhǔn)可接收格式的過程;而狹義上的數(shù)據(jù)清理是特指在構(gòu)建數(shù)據(jù)倉庫和實(shí)現(xiàn)數(shù)據(jù)挖掘前對數(shù)據(jù)源進(jìn)行處理,使數(shù)據(jù)實(shí)現(xiàn)準(zhǔn)確性、完整性、一致性、唯一性、適時性、有效性以適應(yīng)后續(xù)操作的過程。本文的研究是以信息化建設(shè)為背景,研究的重點(diǎn)是提高信息系統(tǒng)的數(shù)據(jù)質(zhì)量,故作者本人認(rèn)為:凡是有助于提高信息系統(tǒng)數(shù)據(jù)質(zhì)量的處理過程,都可認(rèn)為是數(shù)據(jù)清理。所以,數(shù)據(jù)清理可簡單看成就是從數(shù)據(jù)源中清除錯誤數(shù)值和重復(fù)記錄,即利用有關(guān)技術(shù)如數(shù)理統(tǒng)計、數(shù)據(jù)挖掘或預(yù)定義的清理規(guī)則等,從數(shù)據(jù)源中檢測和消除錯誤數(shù)據(jù)、不完整數(shù)據(jù)和重復(fù)數(shù)據(jù),從而提高信息系統(tǒng)的數(shù)據(jù)質(zhì)量。一般說來,數(shù)據(jù)清理包括以下幾個步驟:數(shù)據(jù)分析數(shù)據(jù)分析是指從數(shù)據(jù)中發(fā)現(xiàn)控制數(shù)據(jù)的一般規(guī)則,比如字段域、業(yè)務(wù)規(guī)則等。通過對數(shù)據(jù)的分析,可定義出數(shù)據(jù)清理的規(guī)則,并選擇合適的清理算法。數(shù)據(jù)檢測數(shù)據(jù)檢測是指根據(jù)預(yù)定義的清理規(guī)則及相關(guān)數(shù)據(jù)清理算法,檢測數(shù)據(jù)是否正確,比如是否滿足字段域、業(yè)務(wù)規(guī)則等,或檢測記錄是否是重復(fù)記錄。數(shù)據(jù)修正數(shù)據(jù)修正是指手工或自動地修正檢測到的錯誤數(shù)據(jù)或處理重復(fù)的記錄。對于數(shù)據(jù)清理應(yīng)該滿足:數(shù)據(jù)清理應(yīng)該能檢測和消除所有主要的錯誤和不一致,包括單數(shù)據(jù)源和多數(shù)據(jù)源集成時;數(shù)據(jù)清理方法能被這樣的工具支持,人工檢測和編程工作要盡可能少,并具有可擴(kuò)展性。根據(jù)以上分析,數(shù)據(jù)清理的原理可總結(jié)為如圖1.2所示1.4數(shù)據(jù)清理研究現(xiàn)狀分析1.4.1國外研究動態(tài)數(shù)據(jù)清理的相關(guān)研究最早可追溯到1959年。自那時起,合并來自不同數(shù)據(jù)源的數(shù)據(jù)是一直被認(rèn)為是一個重要而且很困難的問題,這些問題被作為記錄連接、實(shí)例識別、對象識別等問題來研究。它們曾經(jīng)是醫(yī)療、商業(yè)、稅務(wù)領(lǐng)域中的研究重點(diǎn)之一,在流行病的研究、欺騙檢測等方面都起到重要作用。這些問題的研究可以看成是數(shù)據(jù)清理的源頭。近年來,隨著信息化的進(jìn)展,國外開始系統(tǒng)地研究數(shù)據(jù)清理問題。目前,在數(shù)據(jù)清理算法、方法和商用系統(tǒng)上都取得了一些成果。主要成果可分類如下:特殊域清理特殊域清理工具主要解決某類特定應(yīng)用域的數(shù)據(jù)清理問題,大多數(shù)是姓名和地址數(shù)據(jù)。比如:根據(jù)概率統(tǒng)計學(xué)原理查找數(shù)值異常的記錄;對姓名、地址、郵政編碼等進(jìn)行清理等,這是目前研究得較多的領(lǐng)域,也是應(yīng)用最成功的一類。如商用系統(tǒng):TrillinmSoftware、PureIntegrate(Oracle)、QuickAddress(QASSystems)等。它們用一個匹配工具抽取被清理的數(shù)據(jù),并把姓名和地址信息轉(zhuǎn)換成單個標(biāo)準(zhǔn)元素、有效的街道名、城市和郵政編碼。它們具體表現(xiàn)為用一個大的預(yù)定義的規(guī)則庫,來處理在清理過程中發(fā)現(xiàn)的問題。比如,TrillinmSoftware的抽取和匹配模型包含二十多萬個商業(yè)規(guī)則。這些工具也提供了針對特定應(yīng)用,使用戶自定義規(guī)則來定制或擴(kuò)展規(guī)則庫的工具。與特定應(yīng)用領(lǐng)域無關(guān)的數(shù)據(jù)清理與特定應(yīng)用領(lǐng)域無關(guān)的數(shù)據(jù)清理研究主要集中在清理重復(fù)的記錄上,其主要工具包括:DataBladeModule,ChoiceMaker,Integrity,Merge/PurgeLibrary(Sagent/QMSoftware),MatchIT(HelpITSystems),MasterMerge(PitneyBowes),DataCleanser(EDD)等。數(shù)據(jù)清理框架為了使數(shù)據(jù)清理具有一定的通用性,近年來,關(guān)于數(shù)據(jù)清理的框架也有了一些研究。文獻(xiàn)[44]提出了一個數(shù)據(jù)清理框架,該框架清晰地分離邏輯規(guī)范層和物理實(shí)現(xiàn)層。用戶可以在邏輯層設(shè)計數(shù)據(jù)處理流程,確定清理過程需要執(zhí)行的數(shù)據(jù)轉(zhuǎn)化步驟;在物理層實(shí)現(xiàn)這些數(shù)據(jù)轉(zhuǎn)化操作,并對它們進(jìn)行優(yōu)化。例如,用戶為了計算記錄之間的相似度,對輸入數(shù)據(jù)集指定執(zhí)行匹配操作,而在物理層,數(shù)據(jù)清理系統(tǒng)會根據(jù)實(shí)際數(shù)據(jù)的特點(diǎn),選擇一個特定的實(shí)現(xiàn)方法。該算法可以進(jìn)行優(yōu)化,它無須計算所有記錄對的相似度,而同時又不會損害所要求的結(jié)果。除了分離邏輯層和物理層以外,文獻(xiàn)[44]還提出了一種描述性語言,該描述性語言可以在邏輯層上指定數(shù)據(jù)清理過程所需采取的數(shù)據(jù)轉(zhuǎn)化操作,并指定何時可以彈出例外,要求用戶的交互。該描述性語言還可以指定一些數(shù)據(jù)轉(zhuǎn)化操作的參數(shù),比如記錄匹配操作所使用的距離函數(shù)等。在[44]研究的基礎(chǔ)上,文獻(xiàn)[30,45]實(shí)現(xiàn)了一個可擴(kuò)展的數(shù)據(jù)清理工具AJAX。文獻(xiàn)[3,46]提出了一個關(guān)于數(shù)據(jù)清理的交互式系統(tǒng)框架,該框架把數(shù)據(jù)轉(zhuǎn)化和差異檢測(discrepancydetection)緊密地集成在一起。用戶面對表單風(fēng)格的界面,能夠以直觀的圖形化方式逐步建立起整個數(shù)據(jù)轉(zhuǎn)化過程。在此過程中,用戶可以執(zhí)行或者撤消轉(zhuǎn)化操作,而且操作的結(jié)果馬上就可以在屏幕上看到。后臺進(jìn)程以增量方式檢測轉(zhuǎn)化后數(shù)據(jù)中存在的問題,如果檢測到,則及時報告給用戶。用戶利用系統(tǒng)提供的基本數(shù)據(jù)轉(zhuǎn)化操作,無須書寫復(fù)雜的程序就能夠完成數(shù)據(jù)清理任務(wù),而且用戶能夠隨時看到每一步轉(zhuǎn)化操作后的結(jié)果,沒有很長的延遲。因此,該系統(tǒng)框架具有較好的交互性。再來看一下其它一些與數(shù)據(jù)清理有關(guān)的工具。市場上有很多工具都支持?jǐn)?shù)據(jù)轉(zhuǎn)換和數(shù)據(jù)清理工作,特別是針對數(shù)據(jù)倉庫。數(shù)據(jù)分析工具數(shù)據(jù)分析工具能處理實(shí)例數(shù)據(jù)、識別數(shù)據(jù)錯誤和不一致,從而得到相應(yīng)的清理轉(zhuǎn)換。數(shù)據(jù)分析工具可分成數(shù)據(jù)剖析和數(shù)據(jù)挖掘工具。EvokeSoftware公司的MigrationArchitect是少數(shù)商用數(shù)據(jù)剖析工具的一種,它能分析出每一個字段的元數(shù)據(jù),比如:數(shù)據(jù)類型、長度、集的勢、離散值和它們的百分比、最小和最大值、缺失值、以及獨(dú)特性。MigrationArchitect對開發(fā)數(shù)據(jù)遷移的目標(biāo)模式也有所幫助。數(shù)據(jù)挖掘工具,如WizSoft公司的WizRule和InformationDiscovery公司的DataMiningSuite能推斷字段和它們的值之間的關(guān)系,并計算出一個置信度來指示符合條件的記錄。WizRule能顯示三種規(guī)則:數(shù)據(jù)公式、IF-THEN規(guī)則,以及能指示姓名拼寫錯誤的基于拼寫的規(guī)則。WizRule也能自動地把那些偏離發(fā)現(xiàn)規(guī)則集的數(shù)據(jù)指定為可疑錯誤。數(shù)據(jù)再工程工具數(shù)據(jù)再工程工具也能處理實(shí)例數(shù)據(jù)、識別數(shù)據(jù)錯誤和不一致,從而得到相應(yīng)的清理轉(zhuǎn)換。比如,Vality的Integrity可以利用檢測模型和規(guī)則執(zhí)行清理轉(zhuǎn)換。ETL工具ETL是數(shù)據(jù)倉庫系統(tǒng)中數(shù)據(jù)處理的關(guān)鍵操作。ETL操作的實(shí)質(zhì)就是根據(jù)數(shù)據(jù)處理的需要,將源數(shù)據(jù)對象經(jīng)過ETL處理后加載到目標(biāo)數(shù)據(jù)對象中。很多商業(yè)工具在很多方面支持?jǐn)?shù)據(jù)倉庫的ETL過程,如DataStage(Ardent)、DataTransformationService(Microsoft)、WarehouseAdministrator(SAS)、PowerMart(Informatica)等。這些工具在關(guān)系數(shù)據(jù)庫系統(tǒng)上建立一個存儲器,以統(tǒng)一的方式管理關(guān)于數(shù)據(jù)源、目標(biāo)模式、映射、腳本程序等所有元數(shù)據(jù)。通過文件、關(guān)系數(shù)據(jù)系統(tǒng)、以及標(biāo)準(zhǔn)接口,比如ODBC(OpenDatabaseConnectivity,開放式數(shù)據(jù)庫連接),可以從操作型數(shù)據(jù)源中抽取模式和數(shù)據(jù)。數(shù)據(jù)轉(zhuǎn)換用一個容易使用的圖形界面來定義。為了指定單個的映射步驟,需要提供一個單獨(dú)的規(guī)則語言和一個全面的預(yù)定義轉(zhuǎn)換規(guī)則的庫。雖然這些ETL工具能夠提供大量數(shù)據(jù)的抽取、轉(zhuǎn)換和集成操作,但往往只能提供有限的數(shù)據(jù)清理支持。也就是說,ETL工具并不是完全針對數(shù)據(jù)清理。1.4.2國內(nèi)研究動態(tài)由于發(fā)達(dá)國家的信息化程度較高,各種信息系統(tǒng)的使用范圍廣、時間長,因此對數(shù)據(jù)清理的需求顯得較為迫切,所以關(guān)于數(shù)據(jù)清理的研究大多都集中在國外,而國外關(guān)于數(shù)據(jù)清理的研究主要是針對西文表示的數(shù)據(jù),這些數(shù)據(jù)清理方法不一定完全適用于中文表示的數(shù)據(jù)。隨著國內(nèi)信息化建設(shè)的快速發(fā)展,數(shù)據(jù)質(zhì)量問題也越來越受到關(guān)注,對數(shù)據(jù)清理的研究也逐步展開,并取得了一定的成果,主要研究情況如下:復(fù)旦大學(xué)以周傲英教授為首的研究小組較早地認(rèn)識到數(shù)據(jù)清理研究的重要價值,并已開始了數(shù)據(jù)清理的研究工作,目前他們?nèi)〉玫闹饕晒校禾岢隽艘粋€可擴(kuò)展數(shù)據(jù)清洗框架的定義該清洗框架以術(shù)語模型、處理描述文件、共享庫等概念和技術(shù)實(shí)現(xiàn)了模塊功能的可定制、系統(tǒng)的開放性和可擴(kuò)展性。提出了一種基于N-Gram的相似重復(fù)記錄檢測方法該方法先計算各記錄的N-Gram值,然后以各記錄的N-Gram值為排序鍵進(jìn)行排序,再通過采用一種高效的應(yīng)用無關(guān)的Pair-wise比較算法,通過計算兩記錄中單詞間的編輯距離來判斷記錄的相似與否,并采用一種改進(jìn)的優(yōu)先隊(duì)列算法來準(zhǔn)確地聚類相似重復(fù)記錄。該方法在一定程度上有效地解決了相似重復(fù)記錄的檢測問題,但當(dāng)數(shù)據(jù)量大,錯誤多,單詞間有互相影響時,該方法的初步聚類效果就會受到很大的影響。此外,該方法主要針對西文數(shù)據(jù)庫環(huán)境,不適用于中文數(shù)據(jù)庫環(huán)境。研究了一種檢測多語言數(shù)據(jù)重復(fù)記錄的綜合方法該方法充分考慮了中文數(shù)據(jù)庫的環(huán)境,有效地解決了多語言數(shù)據(jù)記錄的初步聚類和記錄比較問題。北京大學(xué)對數(shù)據(jù)清理也做了一些相關(guān)研究,他們主要解決了針對于客戶關(guān)系管理中客戶數(shù)據(jù)集成時重復(fù)記錄的數(shù)據(jù)清理問題。東南大學(xué)以董逸生教授為首的研究小組也對數(shù)據(jù)清理做了一些研究,他們主要是針對數(shù)據(jù)倉庫化過程中的數(shù)據(jù)清理問題進(jìn)行研究。對于數(shù)據(jù)清理,作者本人在信息化實(shí)踐的基礎(chǔ)上,根據(jù)信息化建設(shè)的實(shí)際需要,也做了系統(tǒng)的研究,并取得了一些研究成果,相關(guān)內(nèi)容會在后面的章節(jié)中做具體的論述。1.4.3存在的問題目前,從國內(nèi)外關(guān)于數(shù)據(jù)清理的研究現(xiàn)狀來看,主要體現(xiàn)在以下幾個方面的不足:數(shù)據(jù)清理屬于一個較新的研究課題,直接針對這方面的研究并不多。此外,數(shù)據(jù)清理的研究目前主要集中在西文數(shù)據(jù)庫上,中文數(shù)據(jù)清理與西文數(shù)據(jù)清理有較大的不同,如很多排序方法并不完全適用于中文數(shù)據(jù)庫,中文數(shù)據(jù)清理沒有引起重視。數(shù)據(jù)清理的研究主要集中在字符型數(shù)據(jù)上,識別數(shù)值型字段之間的關(guān)系異常很不成熟與實(shí)用,數(shù)據(jù)挖掘算法在數(shù)據(jù)清理中的應(yīng)用需要加強(qiáng)。盡管檢測重復(fù)記錄受到很大的關(guān)注,采取了許多措施,但檢測效率與檢測精度問題并不令人滿意。特別是在數(shù)據(jù)量比較大時,耗時太多,有待于更好的檢測算法。多數(shù)數(shù)據(jù)清理工具都是針對特定的領(lǐng)域,其應(yīng)用受到一定的限制。在將來,特定領(lǐng)域的數(shù)據(jù)清理仍將是應(yīng)用重點(diǎn),但較通用的清理方案會受到越來越多的關(guān)注。國產(chǎn)的數(shù)據(jù)清理工具還很少,少量的國產(chǎn)數(shù)據(jù)清理工具主要研究了重復(fù)記錄的清理問題,目前還很少研究關(guān)于不完整數(shù)據(jù)、錯誤數(shù)據(jù)的清理問題,還沒有利用孤立點(diǎn)檢測的方法來檢測數(shù)據(jù)源中的錯誤數(shù)據(jù)。目前,數(shù)據(jù)清理的研究主要集中在結(jié)構(gòu)化數(shù)據(jù)上。半結(jié)構(gòu)化的數(shù)據(jù),如XML數(shù)據(jù)已受到越來越多的重視,特別是由于XML自身所具有的特點(diǎn),如通用性、自描述性,其在數(shù)據(jù)清理中應(yīng)受到重視。1.5數(shù)據(jù)清理軟件平臺的意義為了完成數(shù)據(jù)清理的任務(wù),滿足信息化建設(shè)的需要,必須研制一個數(shù)據(jù)清理工具。由于數(shù)據(jù)清理的復(fù)雜性,數(shù)據(jù)清理涉及多種不同的清理算法以及清理規(guī)則,對數(shù)據(jù)清理工具有以下要求:對數(shù)據(jù)源進(jìn)行數(shù)據(jù)清理時,清理相似重復(fù)記錄和清理錯誤數(shù)據(jù)的方法是不同的,針對不同的數(shù)據(jù)質(zhì)量問題,應(yīng)采用相應(yīng)的清理方法有針對性的進(jìn)行清理。因此,必須提供多種清理功能才能很好地完成數(shù)據(jù)源的清理工作。數(shù)據(jù)清理工具不但要能清理重復(fù)數(shù)據(jù),不完整數(shù)據(jù)、錯誤數(shù)據(jù)也要能清理,這樣才能全面提高信息系統(tǒng)的數(shù)據(jù)質(zhì)量。對于錯誤數(shù)據(jù)的清理,由于每種方法的適用范圍不同,故要盡可能的采用多種方法。所以,數(shù)據(jù)清理工具應(yīng)能夠提供多種錯誤數(shù)據(jù)清理方法,并能夠擴(kuò)充。對不同的數(shù)據(jù)源,清理相似重復(fù)記錄時,相似度閾值δ和字段權(quán)重w的取值會對清理效果有較大的影響,所以要能根據(jù)具體的數(shù)據(jù)源靈活地選取δ和w的值。對不同的數(shù)據(jù)源,要求有不同的數(shù)據(jù)清理規(guī)則,能靈活地定義和修改數(shù)據(jù)清理規(guī)則很重要;在相似重復(fù)記錄檢測中,如果數(shù)據(jù)源數(shù)據(jù)量較小,就沒有必要對記錄進(jìn)行排序,可以對所有記錄進(jìn)行比較,這就要求數(shù)據(jù)清理工具對數(shù)據(jù)源中數(shù)據(jù)量的大小要有較好的適應(yīng)性。由前文分析可知,目前國內(nèi)外已根據(jù)某種算法開發(fā)出一些各具特點(diǎn)的應(yīng)用系統(tǒng),或者開發(fā)出一些針對特定應(yīng)用領(lǐng)域的清理軟件。但是,由于數(shù)據(jù)清理的復(fù)雜性,對不同的數(shù)據(jù)源,要求數(shù)據(jù)清理適應(yīng)不同的數(shù)據(jù)類型、數(shù)據(jù)量以及具體業(yè)務(wù),一種數(shù)據(jù)清理算法無論它采用多有效的措施,不可能在所有問題上表現(xiàn)出好的清理效果,不可能依靠一種或少數(shù)幾種算法普遍良好地解決各種數(shù)據(jù)清理問題。有必要提供一種包含一系列數(shù)據(jù)清理算法以及輔助算法(用于數(shù)據(jù)預(yù)處理和可視化)并能利用具體業(yè)務(wù)知識、可不斷擴(kuò)展的軟件,為不同背景下的數(shù)據(jù)清理提供算法方面的支持。為了有別于其它數(shù)據(jù)清理工具,作者稱之為數(shù)據(jù)清理軟件平臺。實(shí)現(xiàn)一個包含豐富算法的數(shù)據(jù)清理軟件平臺有助于利用問題的先驗(yàn)知識在不同算法間取長補(bǔ)短,從而提高數(shù)據(jù)清理算法在不同應(yīng)用中的清理效果。此外,雖然國外已經(jīng)提出一些具有通用性的數(shù)據(jù)清理框架,并研制了相應(yīng)的清理工具,但這些工具主要是針對西文數(shù)據(jù)庫,而我們的數(shù)據(jù)庫中數(shù)據(jù)往往以中文為主,這些工具對中文數(shù)據(jù)庫并不能完全適用。故此,本文提出一種可擴(kuò)展的數(shù)據(jù)清理軟件平臺,該軟件平臺具有開放的規(guī)則庫和算法庫,并提供大量的數(shù)據(jù)清理以及其它輔助算法。當(dāng)對數(shù)據(jù)源進(jìn)行清理時,根據(jù)具體的業(yè)務(wù)分析,通過預(yù)定義清理規(guī)則和選擇合適的算法,來清理數(shù)據(jù)源中的種種錯誤,具有較強(qiáng)的通用性和適應(yīng)性,并大大提高了數(shù)據(jù)清理的綜合效果。1.6論文研究目的與內(nèi)容安排第二章單數(shù)據(jù)源中相似重復(fù)記錄的清理2.1引言由于數(shù)據(jù)輸入錯誤、不標(biāo)準(zhǔn)的縮寫詞,或其它原因,數(shù)據(jù)庫中可能包含關(guān)于現(xiàn)實(shí)世界同一實(shí)體的重復(fù)記錄。雖然關(guān)系數(shù)據(jù)庫系統(tǒng)不允許含有重復(fù)主鍵值的記錄輸入,但是,由于數(shù)據(jù)輸入錯誤,不管主鍵的值是否被這些錯誤影響,關(guān)系數(shù)據(jù)庫不能再保證不存在重復(fù)的記錄。因此,在數(shù)據(jù)清理中,相似重復(fù)記錄的檢測與清除是一個重要問題。什么是相似重復(fù)記錄呢?首先列舉兩個典型的重復(fù)記錄實(shí)例,如表2.1和表2.2所示。表2.1為某ERP系統(tǒng)中關(guān)于供應(yīng)商信息的四條記錄。表中編號為G02001和G02003的兩條記錄看起來不一樣,但實(shí)際上兩條記錄除了“地址”略有不同之外,指的是同一個供應(yīng)商。因此,這兩條記錄可稱為相似重復(fù)記錄。而表中編號為G02002和G02004的兩條記錄除了“供應(yīng)商編號”不同外,其它字段完全相同。因此,這兩條記錄可稱為完全重復(fù)記錄。表2.2為某高校學(xué)生管理信息系統(tǒng)中關(guān)于學(xué)生信息的三條記錄,該系統(tǒng)中的數(shù)據(jù)用的是英文表示。在表2.2中,學(xué)號為B01051和B01053的這兩條記錄看起來不一樣,但這兩條記錄除了姓名的格式不同、所在學(xué)院數(shù)據(jù)中包含了最常見的拼寫錯誤:插入(Corllege)、刪除(Mecanical)、交換(Electircal)、替換(Engeneering)之外,但實(shí)際上指的是同一個學(xué)生。根據(jù)以上分析,數(shù)據(jù)源中的重復(fù)記錄可分成完全重復(fù)記錄和相似重復(fù)記錄,分別定義如下:定義2.1完全重復(fù)記錄完全重復(fù)記錄是指在數(shù)據(jù)表中除了主鍵外,其它各字段完全相同的記錄,或者是在那些設(shè)計差的數(shù)據(jù)庫中,沒有主鍵,所有字段完全相同的記錄。定義2.1相似重復(fù)記錄相似重復(fù)記錄是指那些客觀上表示現(xiàn)實(shí)世界同一實(shí)體的,但是由于在格式、拼寫上有些差異而導(dǎo)致數(shù)據(jù)庫系統(tǒng)不能正確識別的記錄。一般情況下,對幾個記錄可能指同一現(xiàn)實(shí)世界實(shí)體的這種情況較感興趣,而不是在語句構(gòu)成上相同的記錄。為了減少數(shù)據(jù)源中的冗余信息,重復(fù)記錄的清理是一項(xiàng)重要的任務(wù)。因此,本章主要研究如何清除數(shù)據(jù)源中的相似重復(fù)記錄,具體內(nèi)容組織如下:第2節(jié)分析了相似重復(fù)記錄清理的相關(guān)研究;第3節(jié)給出了一種有效的相似重復(fù)記錄清理方法;在此方法的基礎(chǔ)上,第4節(jié)研究了一種提高相似重復(fù)記錄檢測精度的方法;為了提高該方法中相似重復(fù)記錄的檢測效率,第5節(jié)提出了一種提高相似重復(fù)記錄檢測效率的方法;第6節(jié)介紹了作者研制的記錄生成器,該生成器為第7節(jié)的實(shí)驗(yàn)提供了條件;第7節(jié)通過實(shí)驗(yàn)驗(yàn)證了改進(jìn)算法的效果;第8節(jié)總結(jié)了本章的工作。需要指出的是,本章的研究主要針對中文數(shù)據(jù)庫。2.2相似重復(fù)記錄清理的相關(guān)研究要想清理數(shù)據(jù)源中的相似重復(fù)記錄,必須要先通過某種方法檢測出相似重復(fù)記錄,然后采取一定的策略清除這些重復(fù)記錄,從而達(dá)到清理的目的。在相似重復(fù)記錄的檢測方面已經(jīng)有了一些成果。在一個數(shù)據(jù)表中,完全重復(fù)記錄的標(biāo)準(zhǔn)檢測方法是先將數(shù)據(jù)庫中的記錄排序,然后,通過比較鄰近記錄是否相等來檢測完全重復(fù)記錄。完全重復(fù)記錄不管以記錄的哪一個部分進(jìn)行分類,在分類排序后,都能保證互相相鄰。這種方法可被擴(kuò)展后用來檢測相似重復(fù)記錄,研究人員在此基礎(chǔ)上提出了很多方法,比如,文獻(xiàn)[62]將整條記錄作為一個字符串進(jìn)行排序,通過計算整個字符串的編輯距離來檢測記錄是否相似;文獻(xiàn)[31]中提出的Sorted-Neiberhood方法以用戶定義的健作為排序鍵進(jìn)行排序,然后,通過一組規(guī)則定義的相等理論判定記錄是否相似,其基本思想可描述如下:按照用戶定義的排序鍵對整個數(shù)據(jù)表進(jìn)行排序,將可能匹配的記錄排列在一起。當(dāng)然,按照某個排序鍵排一次序往往是不夠的,需要按照不同的排序鍵對數(shù)據(jù)多次排序,再將結(jié)果結(jié)合起來。具體說來,Sorted-Neiberhood算法分為三步:創(chuàng)建排序鍵抽取記錄中重要的字段或字段的一部分組成每條記錄的排序鍵,排序鍵的選擇對于檢測結(jié)果的準(zhǔn)確性至關(guān)重要。記錄排序用第一步生成的排序鍵對記錄排序。合并定義一個固定大小的窗口,在記錄列表上移動,比較窗口內(nèi)的記錄是否相似,如圖2.1所示。如果窗口的大小為L(2≤L≤N),那么每條最新進(jìn)入窗口的記錄與前面的L-1條記錄逐一比較以找到匹配記錄。窗口中第一條記錄滑出窗口。至于說如何叫相似,由用戶定義的規(guī)則指定,例如:假設(shè)R1、R2為兩條記錄IFR1中的字段Lastname等于R2中的字段LastnameANDR1中的字段Firstname等于R2中的字段FirstnameAND兩記錄的Address字段差別很小THENR1和R2相似ENDIF其中,“字段的差別”是通過將距離函數(shù)的計算結(jié)果與閾值比較確定的。距離函數(shù)一般包括:字符串編輯距離,語音距離和打字機(jī)距離,用戶也可以自己定義距離函數(shù)。Sorted-Neiberhood算法的時間復(fù)雜度與定義的窗口大小有關(guān),窗口大小為2時,復(fù)雜度為O(NlogN),窗口大小為N時,復(fù)雜度為O(N2)。在目前常用的相似重復(fù)記錄清理方法中,Sorted-Neiberhood算法是較為流行的匹配與合并算法,并且該算法已被應(yīng)用到幾個關(guān)于數(shù)據(jù)清理的軟件之中。文獻(xiàn)[55]先計算各記錄的N-Gram值,然后以各記錄的N-Gram值為排序鍵進(jìn)行排序,再通過采用一種高效的應(yīng)用無關(guān)的Pair-wise比較算法,通過計算兩記錄中單詞間的編輯距離來判斷記錄的相似與否,并采用一種改進(jìn)的優(yōu)先隊(duì)列算法來準(zhǔn)確地聚類相似重復(fù)記錄,該算法使用固定大小的優(yōu)先隊(duì)列順序掃描已排序的記錄,通過比較當(dāng)前記錄和隊(duì)列中記錄的距離來聚類相似重復(fù)記錄;文獻(xiàn)[56]在文獻(xiàn)[55]的基礎(chǔ)上提出了一種檢測多語言數(shù)據(jù)重復(fù)記錄的綜合方法。上述這些方法的基本思想可以總結(jié)為:先對數(shù)據(jù)表中的記錄排序,然后用某種方式檢測相鄰記錄是否為重復(fù)記錄,不同之處是所采用的排序方法和相似檢測方法不同。本章在對這些方法研究的基礎(chǔ)上,吸收這些方法的思想,來解決相似重復(fù)記錄的清理問題,并對算法的關(guān)鍵環(huán)節(jié)進(jìn)行改進(jìn),提高了相似重復(fù)記錄的檢測效率和檢測精度。為了后文論述的方便,首先給出相似重復(fù)記錄清理中的幾個相關(guān)定義:定義2.3記錄之間的相似度S記錄之間的相似度S是根據(jù)兩條記錄的內(nèi)容而計算出的一個表示兩記錄相似程度的數(shù)值,0<S<1。S越小,則兩記錄相似程度越高;若S=0,則表示兩條記錄為完全重復(fù)記錄。定義2.4記錄相似檢測記錄相似檢測是指通過計算兩條記錄之間的相似度S,來判定兩記錄是不是重復(fù)記錄。2.3相似重復(fù)記錄的清理方法2.3.1相似重復(fù)記錄清理方法總體描述根據(jù)以上分析,本文采用的相似重復(fù)記錄清理方法的原理可以總結(jié)為如圖2.2所示。由圖2.2可以看出,相似重復(fù)記錄的清理過程可總結(jié)為:記錄排序→記錄相似檢測→相似重復(fù)記錄合并/清除。其清理過程可描述如下:首先,把數(shù)據(jù)源中需要清理的數(shù)據(jù)通過JDBC(JavaDataBaseConnectivity,Java數(shù)據(jù)庫連接)接口調(diào)入到系統(tǒng)中來;然后,執(zhí)行數(shù)據(jù)清理,記錄排序模塊從算法庫中調(diào)用排序算法,執(zhí)行記錄之間的排序;在記錄已排序的基礎(chǔ)上,記錄相似檢測模塊從算法庫中調(diào)用相似檢測算法,作鄰近范圍內(nèi)記錄間的相似檢測,從而計算出記錄間的相似度,并根據(jù)預(yù)定義的重復(fù)識別規(guī)則,來判定是否為相似重復(fù)記錄。為了能檢測到更多的重復(fù)記錄,一次排序不夠,要采用多輪排序,多輪比較,每次排序采用不同的鍵,然后把檢測到的所有重復(fù)記錄聚類到一起,從而完成重復(fù)記錄的檢測;最后,對所檢測出的每一組相似重復(fù)記錄根據(jù)預(yù)定義的合并/清除規(guī)則,完成相似重復(fù)記錄的合并處理。由圖2.2可以看出,記錄排序和記錄相似檢測是相似重復(fù)記錄清理過程中的兩個重要步驟,下面分別討論這兩個步驟中的關(guān)鍵技術(shù)。2.3.2記錄排序?yàn)榱四懿檎业綌?shù)據(jù)源中所有的重復(fù)記錄,必須比較每一個可能的記錄對,如此以來,檢測相似重復(fù)記錄是一個很昂貴的操作,當(dāng)數(shù)據(jù)源中數(shù)據(jù)量很大時,這會導(dǎo)致是一個無效和不可行的方案。為了減少記錄之間的比較次數(shù),提高檢測效率,常用的方法是僅比較相互距離在一定范圍的記錄,即先對數(shù)據(jù)表中的記錄排序,然后對鄰近記錄進(jìn)行比較。比如,在文獻(xiàn)[31]中,作者在整個分類后的數(shù)據(jù)表中通過移動一個固定大小的窗口,比較附近的記錄。一個大小為W的窗口,在數(shù)據(jù)庫中一次移動一個記錄,新記錄和這個窗口中的其它W-1個記錄相比較。這樣,記錄比較的次數(shù)從O(T2)減少到O(TW),其中,T為數(shù)據(jù)庫中記錄的總數(shù)。因此,當(dāng)數(shù)據(jù)源中數(shù)據(jù)量很大時,應(yīng)該采用記錄排序方法。對于記錄排序方法,文獻(xiàn)[33]使用某種應(yīng)用相關(guān)的鍵來將相似記錄聚類到鄰近位置。文獻(xiàn)[63]根據(jù)用戶定義的鍵值來重排表記錄,并采用滑動窗口來Pair-wise比較窗口內(nèi)的記錄。文獻(xiàn)[55]是先計算記錄的N-Gram值,然后按該值進(jìn)行排序;文獻(xiàn)[56]針對多語言文本的情況,采用序值表的方法來進(jìn)行排序。由于本文的研究主要是針對中國信息化的現(xiàn)狀,所以作者主要考慮采用中文表達(dá)的記錄。根據(jù)對各種排序方法的分析,作者采用序值表的方法來對記錄進(jìn)行排序,該方法說明如下:對于西文字符,排序就是按西文字符的字典序排列,但對于漢字來說,存在多種排序方式。在國標(biāo)GB2312-80中共收集漢字6763個,分成兩級,一級漢字字庫包括漢字3755個,按拼音字母排序,二級漢字字庫包括漢字3008個,按部首排序。由此可見漢字本身的編碼不滿足任何一種統(tǒng)一的序值規(guī)則,不適合作序值使用。為了解決序值不統(tǒng)一的問題,采取建立序值文件的方式。目前,漢字通常有以下三種排序方式:拼音序、筆劃序、部首序。對于漢字各種不同的排序方式,分別建立對應(yīng)于GB2312-80漢字基本集的序值表。序值表中序值的存放按對應(yīng)的漢字在漢字基本集中出現(xiàn)的順序進(jìn)行。因此,根據(jù)漢字的內(nèi)碼(0XB0A1-0XF7FE)可以直接計算出序值表中存放對應(yīng)序值的入口地址,計算公式如下:其中,c1為漢字內(nèi)碼的第一個字節(jié)(區(qū)碼);c2為漢字內(nèi)碼的第二個字節(jié)(位碼);N為序值編碼的長度,N=2(用兩個字節(jié)來存放序值);headoffset是序值表中存放第一個漢字(“啊”字的編碼OXBOA1)的位置。序值表相當(dāng)于自定義的一種編碼,不同的排序方式對應(yīng)各自的序值表。序值表的大小只有幾十K,可以存放在內(nèi)存中。根據(jù)上述公式,漢字的內(nèi)碼可直接映射為獲取序值的地址索引,非常便于使用。對于要排序的字段,根據(jù)以上方法把該字段中所有的字符轉(zhuǎn)換成相應(yīng)的序值,然后,采快速排序算法可以對記錄進(jìn)行排序。在此排序的基礎(chǔ)上,再采用相似重復(fù)記錄檢測算法對相鄰記錄進(jìn)行檢測,從而提高了檢測效率。按以上方法重排記錄后,相似記錄被放在較接近的位置,從而可以在相對集中的范圍內(nèi)作記錄的相似檢測。但是由于排序時對錯誤的位置非常敏感,不能保證排序后的重復(fù)記錄都在一起。因此這種方法也有一定的局限性。此外,對整個數(shù)據(jù)庫記錄進(jìn)行重排的開銷也很大。因此,從實(shí)用的角度考慮,在實(shí)際應(yīng)用中,對于小批量數(shù)據(jù),如記錄總數(shù)小于5萬時,沒有必要采用復(fù)雜的記錄排序算法,可以直接進(jìn)行記錄的比較,從而提高相似重復(fù)記錄的查全率。2.3.3記錄相似檢測由圖2.2可以看出,記錄相似檢測是相似重復(fù)記錄清理過程中的一個重要步驟,通過記錄相似檢測,可以判斷兩條記錄是不是相似重復(fù)記錄。對于記錄相似檢測,一般采用Pair-wise比較算法,它是一種比較成熟的方法。本文吸收Pair-wise比較算法的思想,所采用的記錄相似檢測算法的偽碼描述如下:算法略過2.3.4相似重復(fù)記錄檢測算法2.3.5相似重復(fù)記錄的合并/清除當(dāng)完成相似重復(fù)記錄的檢測之后,對檢測出的重復(fù)記錄要進(jìn)行處理。對于一組相似重復(fù)記錄,一般有兩種處理方法:第一種處理方法第一種處理方法是把一組相似重復(fù)記錄中的一個記錄看成是正確的,其它記錄看成是含有錯誤信息的重復(fù)記錄。于是,任務(wù)就是刪除數(shù)據(jù)庫中的重復(fù)記錄。在這種情況下,一些常用的處理規(guī)則是:人工規(guī)則人工規(guī)則是指由人工從一組相似重復(fù)記錄中選出一條最準(zhǔn)確的記錄保留,并把其它重復(fù)記錄從數(shù)據(jù)庫中刪除掉,這種方法最簡單。隨機(jī)規(guī)則隨機(jī)規(guī)則是指從一組相似重復(fù)記錄中隨機(jī)地選出一條記錄保留,并把其它重復(fù)記錄從數(shù)據(jù)庫中刪除掉。最新規(guī)則在很多情況下,最新的記錄能更好地代表一組相似重復(fù)記錄。比如,越接近當(dāng)前日期的信息準(zhǔn)確性可能越高,經(jīng)常使用賬戶上的地址要比退休賬戶上的地址權(quán)威一些?;谶@種分析,最新規(guī)則是指選擇每一組相似重復(fù)記錄中最新的一條記錄保留,并把其它重復(fù)記錄從數(shù)據(jù)庫中刪除掉。完整規(guī)則完整規(guī)則是指從一組相似重復(fù)記錄中選擇最完整的一條記錄保留,并把其它重復(fù)記錄從數(shù)據(jù)庫中刪除掉。實(shí)用規(guī)則因?yàn)橹貜?fù)率越高的信息可能越準(zhǔn)確一些,比如,如果三條記錄中兩個供應(yīng)商的電話號碼是相同的,那么重復(fù)的電話號碼可能是正確的。基于這種分析,實(shí)用規(guī)則是指從一組相似重復(fù)記錄中選擇與其它記錄匹配次數(shù)最多的一條記錄保留,并把其它重復(fù)記錄從數(shù)據(jù)庫中刪除掉??梢园岩陨戏椒ǘx成規(guī)則,存放在規(guī)則庫中,供用戶根據(jù)具體的業(yè)務(wù)要求選擇使用。第二種處理方法第二種處理方法是把每一條相似重復(fù)記錄看成是信息源的一部分。于是,目的就是合并一組重復(fù)記錄,產(chǎn)生一個具有更完整信息的新記錄。該方法一般要由人工進(jìn)行處理。以上給出了常用的幾種處理相似重復(fù)記錄的方法,至于在執(zhí)行相似重復(fù)記錄的清理過程中采用什么樣的處理方法,要根據(jù)具體的數(shù)據(jù)源以及用戶要求來確定。2.4相似重復(fù)記錄檢測精度提高方法2.4.1等級法的使用在2.3.3節(jié)中研究了如何比較記錄的相似性,其過程為:先比較兩條記錄中每個字段的相似度;然后對每個字段賦予不同的權(quán)重,計算出兩條記錄的相似度,從而判定兩條記錄是不是相似重復(fù)記錄。由此可見各個字段所賦予的權(quán)重對檢測精度影響很大,合適的賦值能提高記錄相似檢測的精度。文獻(xiàn)[55]在進(jìn)行記錄比較時,沒有考慮各記錄中各字段的權(quán)重;文獻(xiàn)[56]雖然考慮到了字段權(quán)重的重要性,但沒有給出一個合適的權(quán)重選取方法。本節(jié)在對相關(guān)方法研究的基礎(chǔ)上,采用一種計算字段權(quán)重的有效方法——等級法來計算各字段的權(quán)重。當(dāng)進(jìn)行相似重復(fù)記錄檢測時,根據(jù)對具體業(yè)務(wù)的分析,采用該方法來計算相應(yīng)字段的權(quán)重,然后,對不同的字段使用不同的權(quán)重,從而提高相似重復(fù)記錄檢測的精度。等級法是一種計算記錄字段權(quán)重的方法,它是讓用戶根據(jù)數(shù)據(jù)表中各個字段的重要程度來劃分等級,即最重要字段的等級指定為1,第二重要的字段等級指定為2,等等。然后,根據(jù)記錄各字段的等級,計算其相應(yīng)的權(quán)重。文獻(xiàn)[72,73]都表明采用等級法不但效果好,而且容易使用。表2.4和表2.5為使用等級法時所用的兩種表,其中,表2.4是交給每個操作用戶的表,操作用戶根據(jù)自己的認(rèn)識,在這張表上給各字段劃分等級;表2.5是分析員用來綜合所有操作用戶意見的等級表。在表2.4和2.5中,Yk表示數(shù)據(jù)表中記錄的K個字段,Suk是操作用戶u為字段Yk所指定的等級,Sk表示各個字段最終統(tǒng)一的等級,k∈{1,2….K},u∈{1,2….N}。表2.4中的“字段說明”用來補(bǔ)充說明字段的作用及意義,便于操作用戶準(zhǔn)確地為各字段指定等級。表2.5中匯集了不同操作用戶給各個字段指定的等級值,根據(jù)每個操作用戶所給的等級值,可以計算出各個字段最終統(tǒng)一的等級。2.4.2等級轉(zhuǎn)變成權(quán)重的方法2.4.3利用權(quán)重提高檢測精度在運(yùn)行相似重復(fù)記錄檢測的過程中,首先采用等級法來獲取記錄中不同字段的等級,并采用RC方法生成各字段相應(yīng)的權(quán)重。然后,在記錄相似檢測過程中對不同字段指定不同的權(quán)重,這樣可提高相似重復(fù)記錄的檢測精度,從而更好地識別重復(fù)記錄。采用等級法生成的權(quán)重存放在規(guī)則庫中,供運(yùn)行數(shù)據(jù)清理時調(diào)用。在第七章的實(shí)例中,作者會采用這種方法來檢測相似重復(fù)記錄,通過實(shí)例來驗(yàn)證這種方法的有效性。2.5相似重復(fù)記錄檢測效率提高方法2.5.1提高檢測效率的方法分析快速完成數(shù)據(jù)清理是很重要的,因此,必須提高相似重復(fù)記錄的檢測效率。從前面的分析可以看出:在相似重復(fù)記錄檢測過程中,記錄間的相似檢測是一個重要問題,其關(guān)鍵步驟是記錄中各字段的相似檢測,其效率直接影響整個算法的效率,記錄中大多字段采用編輯距離算法來檢測,由于編輯距離算法的復(fù)雜度為O(m×n),當(dāng)數(shù)據(jù)量很大時,如不采用一種高效的過濾方法來減少不必要的編輯距離計算,則會導(dǎo)致相似檢測時間過長。因此,為了提高相似重復(fù)記錄的檢測效率,本文提出了一種優(yōu)化相似重復(fù)記錄檢測效率的方法,該方法采用長度過濾方法減少不必要的編輯距離計算。實(shí)驗(yàn)證明:長度過濾方法能有效地減少不必要的編輯距離計算,降低相似檢測時間,從而提高了相似重復(fù)記錄的檢測效率。由于作者提出的這種優(yōu)化方法用于記錄相似檢測模塊中,所以,不管記錄相似檢測過程中是否進(jìn)行記錄排序,這種優(yōu)化方法都適用。2.5.2長度過濾方法2.6實(shí)驗(yàn)準(zhǔn)備—記錄生成器的研制2.6.1記錄生成器的作用2.6.2記錄生成器的原理及實(shí)現(xiàn)2.7改進(jìn)算法檢測效果的實(shí)驗(yàn)驗(yàn)證2.7.1度量相似重復(fù)記錄檢測效果的標(biāo)準(zhǔn)2.7.2長度過濾方法有效性的實(shí)驗(yàn)檢測2.7.3實(shí)驗(yàn)結(jié)果分析2.8本章小結(jié)如何消除數(shù)據(jù)源中的重復(fù)信息是數(shù)據(jù)清理研究中的一個熱門課題。本章在研究了相似重復(fù)記錄清理相關(guān)技術(shù)的基礎(chǔ)上,給出了一種相似重復(fù)記錄清理的綜合方法,并對該方法進(jìn)行了改進(jìn),從而提高了該方法的檢測精度和檢測效率。本文中的方法和文獻(xiàn)[39,55,56]中所描述的相似重復(fù)記錄檢測方法相比,從兩種重要的途徑上進(jìn)行了改進(jìn):第一個改進(jìn)是為了提高相似重復(fù)記錄的檢測精度,采用等級法為記錄字段指定合適的權(quán)重,從而提高了相似重復(fù)記錄的檢測精度;第二個改進(jìn)是提出了一種提高相似重復(fù)記錄檢測效率的方法,該方法采用長度過濾方法優(yōu)化相似重復(fù)記錄檢測中的相似檢測算法,避免了不必要的編輯距離計算,從而提高了相似重復(fù)記錄的檢測效率。這兩種改進(jìn)可以用于任何相似重復(fù)記錄檢測算法之中。此外,作者還構(gòu)造了合適的實(shí)驗(yàn)環(huán)境,作了大量的檢測實(shí)驗(yàn),翔實(shí)的實(shí)驗(yàn)結(jié)果驗(yàn)證了改進(jìn)方法的科學(xué)性及效果。第三章單數(shù)據(jù)源中不完整數(shù)據(jù)的清理3.1引言數(shù)據(jù)不完整是產(chǎn)生數(shù)據(jù)質(zhì)量問題的一個重要因素,簡單地說,數(shù)據(jù)不完整是指數(shù)據(jù)源中字段值的缺失問題。表3.1是ERP系統(tǒng)中“檢驗(yàn)單”數(shù)據(jù)表中的一些數(shù)據(jù),表中給出了一些不完整數(shù)據(jù)的例子。在這個表中,由于種種原因,記錄中的一些字段值缺失,如第一條記錄中字段“送檢日期”的值為空,第二條記錄中字段“狀態(tài)”的值為空,第三條記錄中字段“送檢部門編號”的值為空。這種現(xiàn)象在數(shù)據(jù)源中會常常出現(xiàn),然而并未引起人們的注意,一般也只是對它做一些簡單的處理。但是,不完整數(shù)據(jù)的存在不但會影響信息系統(tǒng)的運(yùn)行效果,還會引起決策錯誤,特別是數(shù)值數(shù)據(jù)中出現(xiàn)不完整數(shù)據(jù)。故必須要解決數(shù)據(jù)源中的數(shù)據(jù)不完整問題。在多數(shù)情況下,數(shù)據(jù)源之間的字段值并不是相互獨(dú)立的。所以,通過識別字段值之間的關(guān)系可以推斷出缺失的字段值?;谝陨戏治?,為了清理數(shù)據(jù)源中的不完整數(shù)據(jù),本章提出了一種有效的清理方法,該方法首先檢測記錄的可用性,然后刪除不可用的記錄,最后,對可用記錄通過選用合適的方法來處理該記錄的缺失值,從而完成數(shù)據(jù)源中不完整數(shù)據(jù)的清理。主要內(nèi)容組織如下:第2節(jié)論述了作者所提出的不完整數(shù)據(jù)清理方法;第3節(jié)給出了如何采用K-最臨近算法來估算缺失字段值;第4節(jié)總結(jié)了本章的工作。3.2不完整數(shù)據(jù)的清理方法3.2.1不完整數(shù)據(jù)清理方法總體描述對于數(shù)據(jù)源中不完整數(shù)據(jù)的清理,可分成以下三步來處理:檢測數(shù)據(jù)源中的不完整數(shù)據(jù)要清理數(shù)據(jù)源中的不完整數(shù)據(jù),首先要做的就是把數(shù)據(jù)源中的不完整數(shù)據(jù)檢測出來,以便于下一步的處理。判斷數(shù)據(jù)的可用性如果一條記錄中字段值缺失的太多,或者剩余的字段值中根本就不包含關(guān)鍵信息,就沒有必要花費(fèi)精力去處理該記錄。因此,對于檢測出的不完整數(shù)據(jù),要根據(jù)每一條記錄的不完整程度以及其它因素,來決定這些記錄是保留還是刪除。判斷數(shù)據(jù)的可用性就是完成這一工作。推斷缺失字段的值推斷缺失字段的值是指對那些要保留的記錄,要采取一定的方法來處理該記錄中缺失的字段值。根據(jù)以上分析,作者提出一種不完整數(shù)據(jù)清理方法,其原理如圖3.1所示。采用該方法清理數(shù)據(jù)源中不完整數(shù)據(jù)的過程簡要描述如下:首先,把數(shù)據(jù)源中需要清理的數(shù)據(jù)通過JDBC接口調(diào)入到系統(tǒng)中來,不完整數(shù)據(jù)檢測模塊調(diào)用算法庫中的檢測算法,來判定每條記錄是否完整。如果記錄完整,則無須清理,直接將該記錄通過JDBC接口導(dǎo)入到數(shù)據(jù)源中,如果記錄不完整,則把該記錄導(dǎo)入到記錄可用性檢測模塊中來;記錄可用性檢測模塊從算法庫中調(diào)用可用性檢測算法,執(zhí)行記錄的可用性檢測,然后根據(jù)規(guī)則庫中預(yù)定義的規(guī)則,來判定該記錄是否可用;如果記錄不可用,則直接刪除該記錄,如果記錄可用,則不完整數(shù)據(jù)處理模塊從算法庫中調(diào)用相關(guān)算法來處理該記錄中缺失的字段值;最后,處理完的數(shù)據(jù)經(jīng)JDBC接口導(dǎo)入到數(shù)據(jù)源中。在以上這種不完整數(shù)據(jù)清理方法中,通過在規(guī)則庫中定義合適的閾值,能靈活、合理地確定記錄的取舍;對于要保留的記錄,又可以通過選用合適的不完整數(shù)據(jù)處理方法來處理該記錄,可見這種不完整數(shù)據(jù)清理方法具有較強(qiáng)的通用性和靈活性。所以,該方法能較好地完成不完整數(shù)據(jù)的清理工作。3.2.2不完整數(shù)據(jù)的可用性檢測從圖3.1中可以看出,記錄的可用性檢測是不完整數(shù)據(jù)清理過程中的一個重要步驟。如果一條記錄字段值缺失的太多,或者剩余的字段值中根本就不包含關(guān)鍵信息,就沒有必要花費(fèi)精力去處理該記錄。因此,要解決數(shù)據(jù)的不完整問題,判斷記錄的可用性非常重要。判斷記錄的可用性也就是根據(jù)每一條記錄的不完整程度及其它因素,來決定該記錄是保留還是刪除。對于記錄的可用性檢測,作者采用的方法是:先評估每一條記錄的不完整程度,也就是先計算每一條記錄中缺失字段值的百分比,再考慮其它因素,如記錄剩余的字段值中關(guān)鍵信息是否存在,然后決定記錄的取舍。由于當(dāng)一條記錄某字段取值為缺省值時,意味著該字段值已缺失,所以,我們把字段值為缺省值的也作為缺失值來處理。評估一條記錄不完整程度的方法如下:3.2.3缺失字段值的處理在完成記錄可用性檢測之后,對那些要保留的不完整數(shù)據(jù)記錄R,要采取一定的方法來處理該記錄中缺失的字段值,一般采取以下幾種處理方法:人工處理法對一些重要數(shù)據(jù),或當(dāng)不完整數(shù)據(jù)的數(shù)據(jù)量不大時應(yīng)該采用這種方法。常量值替代法常量替代法就是對所有缺失的字段值用同一個常量來填充,比如用“Unknown”或“MissValue”,這種方法最簡單。但是,由于所有的缺失值都被當(dāng)成同一個值,容易導(dǎo)致錯誤的分析結(jié)果。平均值替代法平均值替代法就是使用一個字段的平均值來填充該字段的所有缺失值。常見值替代法常見值替代法就是使用一個字段中出現(xiàn)最多的那個值來填充該字段的所有缺失值。估算值替代法估算值替代法是最復(fù)雜,也是最科學(xué)的一種處理方法。采用這種方法處理缺失字段值的過程為:首先采用相關(guān)算法,如回歸、判定樹歸納、K-最臨近等算法預(yù)測該字段缺失值的可能值,然后用預(yù)測值填充缺失值。以上給出了常用的幾種處理記錄中缺失字段值的方法,至于在執(zhí)行不完整數(shù)據(jù)的清理過程中采用什么樣的處理方法,要根據(jù)具體的數(shù)據(jù)源以及用戶要求來確定。由于采用估算值替代法最復(fù)雜,本章后半部分給出了如何采用K-最臨近算法來估算缺失字段值。由于本文提出的不完整數(shù)據(jù)清理方法具有可擴(kuò)展性,其它更好的估算值替代法也可以用于其中。3.3采用K-最臨近算法估算缺失字段值3.3.1K-NN算法的特點(diǎn)3.3.2采用K-NN算法估算缺失字段值的過程3.3.3K-NN算法中距離函數(shù)的分析3.3.4采用距離權(quán)重優(yōu)化K-NN算法3.4本章小結(jié)不完整數(shù)據(jù)的清理是數(shù)據(jù)清理中的一個重要問題。本章針對數(shù)據(jù)源中出現(xiàn)的不完整數(shù)據(jù),提出一種有效的清理方法,該方法首先檢測記錄的可用性,然后刪除不可用的記錄,最后,對可用記錄通過選用合適的算法來處理該記錄的缺失值,從而完成數(shù)據(jù)源中不完整數(shù)據(jù)的清理。此外,本章還給出了如何采用K-NN算法來估算缺失字段值。在第七章,把這種不完整數(shù)據(jù)清理方法加入到作者研制的數(shù)據(jù)清理軟件平臺中去,成為數(shù)據(jù)清理的一種有效工具。需要指出的是,對于檢測出的不完整數(shù)據(jù),在條件許可的情況下,最好采取人工處理的方法,特別是對一些關(guān)鍵數(shù)據(jù)。但是,在有些情況下,也可以采用K-NN等算法來推斷出缺失值的最可能值。第四章單數(shù)據(jù)源中錯誤數(shù)據(jù)的清理4.1引言在三種重要的數(shù)據(jù)質(zhì)量問題上,數(shù)據(jù)錯誤是最重要的數(shù)據(jù)質(zhì)量問題。簡單地說,數(shù)據(jù)錯誤是指數(shù)據(jù)源中記錄字段的值和實(shí)際的值不相符。表4.1是ERP系統(tǒng)中“檢驗(yàn)單”數(shù)據(jù)表中的一些數(shù)據(jù),表中給出了一些錯誤數(shù)據(jù)的例子。在這個表中,由于種種原因,記錄中含有一些錯誤數(shù)據(jù),比如:第一條記錄中“確認(rèn)日期”比“送檢日期”早,但實(shí)際上,“送檢日期”應(yīng)該比“確認(rèn)日期”早;由于錄入錯誤,檢測單J0302已經(jīng)檢驗(yàn)過,在數(shù)據(jù)表其字段“狀態(tài)”的值應(yīng)該為“R”,但實(shí)際上卻還是“I”;第三條記錄中,編號為G99032的供應(yīng)商已不存在,可能是操作員在錄入數(shù)據(jù)時錄錯了“供應(yīng)商編號”這個字段的值。如果信息系統(tǒng)中包含錯誤數(shù)據(jù),記錄重復(fù)問題和數(shù)據(jù)不完整問題則會更難清理。故必須要清理數(shù)據(jù)源中的錯誤數(shù)據(jù)。對于重復(fù)記錄清理問題,已經(jīng)在第二章進(jìn)行了研究,對于不完整數(shù)據(jù)清理問題,已經(jīng)在第三章進(jìn)行了研究,本章主要研究如何通過清理數(shù)據(jù)源中的錯誤數(shù)據(jù)來達(dá)到提高數(shù)據(jù)質(zhì)量的目的。對于錯誤數(shù)據(jù)的清理,有兩種相聯(lián)系的方法:第一種通過檢測數(shù)據(jù)表中單個字段的值來發(fā)現(xiàn)錯誤數(shù)據(jù)這種方法主要是根據(jù)數(shù)據(jù)表中單個字段值的數(shù)據(jù)類型、長度、取值范圍等,來發(fā)現(xiàn)數(shù)據(jù)表中的錯誤數(shù)據(jù),如表4.2中列出了幾種檢測單個字段值中錯誤數(shù)據(jù)的方法。第二種通過檢測字段之間以及記錄之間的關(guān)系來發(fā)現(xiàn)錯誤數(shù)據(jù)這種方法主要是通過在大量數(shù)據(jù)中發(fā)現(xiàn)特定的數(shù)據(jù)格式,如幾個字段之間的關(guān)系,從而得到字段之間的完整性約束,如采用函數(shù)依賴或特定應(yīng)用的業(yè)務(wù)規(guī)則來檢測并改正數(shù)據(jù)源中的錯誤數(shù)據(jù)。另外,采用一個具有高置信度的關(guān)聯(lián)規(guī)則能夠檢測違反這一規(guī)則的數(shù)據(jù)質(zhì)量問題,比如,一個置信度為99%的關(guān)聯(lián)規(guī)則“總數(shù)=數(shù)量×單價”表明1%記錄不遵守這一規(guī)則,需要對記錄做進(jìn)一步的檢查。對于這一方面,一些數(shù)據(jù)挖掘工具,如WizSoft公司的WizRule和InformationDiscovery公司的DataMiningSuite,能通過推斷字段和它們的值之間的關(guān)系,計算出一個置信度來指示符合條件的記錄。針對以上分析,本章主要研究如何清理數(shù)據(jù)源中的錯誤數(shù)據(jù),從而達(dá)到提高數(shù)據(jù)質(zhì)量的目的。內(nèi)容組織如下:第2節(jié)研究了如何采用基于孤立點(diǎn)檢測的方法來檢測數(shù)據(jù)源中的錯誤數(shù)據(jù),并給出了一種有效的孤立點(diǎn)檢測方法;第3節(jié)提出了一種基于業(yè)務(wù)規(guī)則的錯誤數(shù)據(jù)檢測方法,該方法能有效地檢測數(shù)據(jù)源中的錯誤數(shù)據(jù);第4節(jié)總結(jié)了本章的工作。4.2基于孤立點(diǎn)檢測的錯誤數(shù)據(jù)清理4.2.1基于孤立點(diǎn)檢測的錯誤數(shù)據(jù)清理方法在數(shù)據(jù)源中經(jīng)常含有一定數(shù)量的異常值,它們與數(shù)據(jù)源的其它部分不同或不一致,這樣的數(shù)據(jù)常常被稱為孤立點(diǎn)(Outlier)。Hawkins給出了孤立點(diǎn)本質(zhì)性的定義:孤立點(diǎn)是在數(shù)據(jù)源中與眾不同的數(shù)據(jù),使人懷疑這些數(shù)據(jù)并非隨機(jī)偏差,而是產(chǎn)生于完全不同的機(jī)制。孤立點(diǎn)可能是度量或執(zhí)行錯誤所導(dǎo)致,也可能是固有的數(shù)據(jù)變異性的結(jié)果,例如,一個人的年齡為999,可能是程序?qū)?shù)據(jù)表記錄中年齡字段的缺省設(shè)置所產(chǎn)生的;一個公司總經(jīng)理的工資,自然遠(yuǎn)遠(yuǎn)高于公司其他雇員的工資,成為一個孤立點(diǎn);如果一個整型字段99%的值在某一范圍內(nèi),則剩下1%的不在此范圍內(nèi)的記錄可以認(rèn)為是異常。孤立點(diǎn)檢測是數(shù)據(jù)挖掘中的一個重要方面,用來發(fā)現(xiàn)數(shù)據(jù)源中顯著不同于其它數(shù)據(jù)的對象,它常常應(yīng)用在電信和信用卡欺騙檢測、貸款審批、氣象預(yù)報和客戶分類等領(lǐng)域中。由于數(shù)據(jù)錯誤往往表現(xiàn)為孤立點(diǎn),所以,通過檢測并去除數(shù)據(jù)源中的孤立點(diǎn)可以達(dá)到數(shù)據(jù)清理的目的,從而提高數(shù)據(jù)源的數(shù)據(jù)質(zhì)量。但是,并非所有的孤立點(diǎn)都是錯誤的數(shù)據(jù),所以,在檢測出孤立點(diǎn)后還應(yīng)結(jié)合領(lǐng)域知識或所存儲的元數(shù)據(jù),從中找出相應(yīng)的錯誤數(shù)據(jù)?;谝陨戏治?,為了清理數(shù)據(jù)源中的錯誤數(shù)據(jù),作者提出一種基于孤立點(diǎn)檢測的錯誤數(shù)據(jù)清理方法,其原理如圖4.1所示。采用該方法清理數(shù)據(jù)源中錯誤數(shù)據(jù)的過程簡要描述如下:首先把數(shù)據(jù)源中需要清理的數(shù)據(jù)通過JDBC接口調(diào)入到系統(tǒng)中來,執(zhí)行數(shù)據(jù)清理。數(shù)據(jù)預(yù)處理模塊調(diào)用算法庫中的相應(yīng)算法對數(shù)據(jù)源進(jìn)行預(yù)處理,如標(biāo)準(zhǔn)化數(shù)據(jù)記錄格式,并根據(jù)預(yù)定義的規(guī)則,把數(shù)據(jù)記錄中的相應(yīng)字段轉(zhuǎn)化成同一格式。孤立點(diǎn)檢測模塊從算法庫中調(diào)用孤立點(diǎn)檢測算法,執(zhí)行記錄的孤立點(diǎn)檢測,然后根據(jù)規(guī)則庫中預(yù)定義的錯誤識別規(guī)則,來判定記錄中是否含有孤立點(diǎn);如果記錄中沒有孤立點(diǎn),則直接將該記錄經(jīng)JDBC導(dǎo)入到數(shù)據(jù)源中。如果檢測到記錄中有孤立點(diǎn),則調(diào)用規(guī)則庫中的相關(guān)規(guī)則,或者由人工來判定該孤立點(diǎn)是否為錯誤數(shù)據(jù),如果不是錯誤數(shù)據(jù),則直接將該記錄經(jīng)JDBC導(dǎo)入到數(shù)據(jù)源中;如果是錯誤數(shù)據(jù),則錯誤清理模塊從規(guī)則庫中調(diào)用相關(guān)規(guī)則來改正該記錄中的錯誤字段值,處理完的數(shù)據(jù)經(jīng)JDBC導(dǎo)入到數(shù)據(jù)源中。由于本文提出的解決方法具有較強(qiáng)的通用性,由于任何孤立點(diǎn)檢測算法都適用于其中,從而使該方法具有較強(qiáng)的適應(yīng)性;通過在規(guī)則庫中合理定義錯誤識別規(guī)則,能準(zhǔn)確地檢測出數(shù)據(jù)源中的孤立點(diǎn)。4.2.2孤立點(diǎn)檢測的相關(guān)方法通過以上分析可以看出,如何檢測數(shù)據(jù)源中的孤立點(diǎn)是基于孤立點(diǎn)檢測的錯誤數(shù)據(jù)清理方法中的一個關(guān)鍵步驟,本節(jié)分析常用的孤立點(diǎn)檢測算法。從20世紀(jì)80年代起,孤立點(diǎn)檢測問題就在統(tǒng)計學(xué)領(lǐng)域里得到廣泛研究。通常用戶用某個統(tǒng)計分布對數(shù)據(jù)點(diǎn)進(jìn)行建模,再以假定的模型,根據(jù)點(diǎn)的分布來確定是否異常。目前,已經(jīng)研究出若干種檢測孤立點(diǎn)的方法,大多數(shù)方法建立在統(tǒng)計學(xué)的基礎(chǔ)上,這些方法大致可以分為4類:基于分布的、基于深度的、基于距離的和基于密度的,每種方法都給出了相應(yīng)的孤立點(diǎn)的定義?;诜植嫉姆椒ɑ诜植嫉姆椒▽o定的數(shù)據(jù)集合假定一個分布或概率模型,如一個正態(tài)分布,然后根據(jù)模型對數(shù)據(jù)集中的每個點(diǎn)進(jìn)行不一致性測試,如果與分布不符合,就認(rèn)為它是一個孤立點(diǎn)。這種方法的缺陷是:要求知道數(shù)據(jù)集參數(shù)(如假設(shè)的數(shù)據(jù)分布)、分布參數(shù)(如平均值和方差)和預(yù)期的孤立點(diǎn)的數(shù)目。然而,在許多情況下,用戶并不知道數(shù)據(jù)集合參數(shù)的知識,況且現(xiàn)實(shí)數(shù)據(jù)也往往不符合任何一種理想狀態(tài)的數(shù)學(xué)分布?;诰嚯x的方法基于距離(Distance-based,DB)的孤立點(diǎn)的概念是由Knorr和Ng在1998年提出的。他們認(rèn)為如果一個點(diǎn)與數(shù)據(jù)集中大多數(shù)點(diǎn)之間的距離都大于某個閾值,那么這個點(diǎn)就是一個孤立點(diǎn)。也就是說,不依賴于統(tǒng)計檢驗(yàn),可以將基于距離的孤立點(diǎn)看作是那些沒有“足夠多”鄰居的對象,這里的鄰居是基于給定對象的距離來定義的?;诰嚯x的孤立點(diǎn)定義如下:如果數(shù)據(jù)集合S中對象至少有p部分與對象O的距離大于d,則對象O是一個帶參數(shù)p和d的基于距離(DB)的孤立點(diǎn),即DB(p,d)。與基于分布的方法相比,基于距離的孤立點(diǎn)檢測包含并擴(kuò)展了基于分布的思想,當(dāng)數(shù)據(jù)集不滿足任何標(biāo)準(zhǔn)分布時,基于距離的方法仍能有效地發(fā)現(xiàn)孤立點(diǎn)。而且,這種方法能夠處理任意維的數(shù)據(jù)。但不足的是,該方法要求用戶必須合理地設(shè)置參數(shù)p和d,這就需要用戶反復(fù)輸入p和d進(jìn)行測試,以確定一個滿意解,這種情況需要用戶擁有相當(dāng)?shù)念I(lǐng)域知識。基于密度的方法基于密度的孤立點(diǎn)的定義是在基于距離的基礎(chǔ)上建立起來的,這種方法將數(shù)據(jù)點(diǎn)之間的距離和某一給定范圍內(nèi)的數(shù)據(jù)點(diǎn)的個數(shù)這兩個參數(shù)結(jié)合起來,得到密度的概念,根據(jù)密度來判斷一個點(diǎn)是否是孤立點(diǎn)。基于深度的方法在基于深度的方法中,每個數(shù)據(jù)對象被映射為k維空間中的一個點(diǎn),并賦予一個特定定義的深度,根據(jù)不同的深度將數(shù)據(jù)劃分成不同層次。根據(jù)統(tǒng)計學(xué)結(jié)論,異常數(shù)據(jù)往往存在于較淺的層次中,深度小的數(shù)據(jù)對象是孤立點(diǎn)的可能性比較大?;谏疃鹊姆椒▽ΧS和三維空間上的數(shù)據(jù)比較有效,但對四維空間及四維以上的數(shù)據(jù),處理效率比較低。4.2.3基于模糊集理論的孤立點(diǎn)檢測根據(jù)上一節(jié)對常用孤立點(diǎn)檢測方法的分析,可以看出這些方法不是太復(fù)雜,就是有一定的局限性。文獻(xiàn)[96]給出一種簡單、易用的孤立點(diǎn)檢測方法,該方法使用模糊集理論來模仿人工檢測異常值,采用獨(dú)立的過程來分別檢測離散型數(shù)據(jù)和連續(xù)型數(shù)據(jù)中的孤立點(diǎn),它適用于單變量分布數(shù)據(jù)。本章中,作者把這種方法應(yīng)用到基于孤立點(diǎn)檢測的錯誤數(shù)據(jù)清理方法中,來檢測數(shù)據(jù)源中的孤立點(diǎn)。該檢測算法的原理說明如下:為了檢測數(shù)據(jù)源中的孤立點(diǎn),該檢測算法通過檢測字段值的一致性來判定一個字段值是不是孤立點(diǎn),即:首先要定義出字段值的一致性;然后,根據(jù)所定義的一致性去檢測各個字段值;如果是一致的,則不是孤立點(diǎn),否則就是孤立點(diǎn)。由于在數(shù)據(jù)源中,離散型變量和連續(xù)型變量是不一樣的,所以,把孤立點(diǎn)的檢測分成離散型變量和連續(xù)型變量兩部分分別來完成。離散型變量是指字段值的個數(shù)是有限的;連續(xù)型變量是指字段值的個數(shù)是無限的。在實(shí)際應(yīng)用中,二者并沒有嚴(yán)格的區(qū)別。這里,離散型變量主要是指布爾型變量,或者是指所包含的值有限的數(shù)值變量。4.3基于業(yè)務(wù)規(guī)則的錯誤數(shù)據(jù)清理4.3.1業(yè)務(wù)規(guī)則的重要性在進(jìn)行數(shù)據(jù)清理時,如能利用具體的業(yè)務(wù)知識,則能更好地完成數(shù)據(jù)清理。比如在表4.3中,錯誤數(shù)據(jù)的出現(xiàn)是因?yàn)閿?shù)據(jù)違反了業(yè)務(wù)規(guī)則。通過檢測記錄中各字段的值是否符合業(yè)務(wù)規(guī)則,比如是否超出了該字段的數(shù)值范圍,可以判斷該字段值是否正確。使用業(yè)務(wù)規(guī)則來清理數(shù)據(jù)源中存在的錯誤數(shù)據(jù)是最簡單、最有效的方法,如數(shù)值越界問題,可以通過給定數(shù)值的范圍,即上下界,通過比較就可以檢測出來;如屬性依賴沖突,可以簡單地通過給出一個屬性之間的對照檢查表來解決,如表4.4所示的數(shù)據(jù)表可用來檢測地方名與郵政編碼之間的正確與否。此外,通過業(yè)務(wù)規(guī)則還可以用來查找不標(biāo)準(zhǔn)的零件名稱。對于檢測出來的錯誤數(shù)據(jù),清理也非常簡單。然而,多數(shù)關(guān)于數(shù)據(jù)清理的研究“過分地”追求清理方法與具體業(yè)務(wù)的無關(guān)性,而沒有考慮、也不想考慮利用具體的業(yè)務(wù)知識,故不能很好地完成數(shù)據(jù)源的清理工作。本節(jié)研究如何利用具體的業(yè)務(wù)規(guī)則來清理錯誤數(shù)據(jù),在此基礎(chǔ)上,把該方法應(yīng)用到作者研制的數(shù)據(jù)清理軟件平臺中去,通過在規(guī)則庫中預(yù)定義業(yè)務(wù)規(guī)則來檢測數(shù)據(jù)是否滿足字段域、業(yè)務(wù)規(guī)則等,從而檢測出數(shù)據(jù)源中的錯誤數(shù)據(jù)。這種方法的清理效果取決于對具體業(yè)務(wù)的分析以及定義規(guī)則的數(shù)目。4.3.2基于業(yè)務(wù)規(guī)則的錯誤數(shù)據(jù)清理方法根據(jù)上一節(jié)的分析,作者提出一種基于業(yè)務(wù)規(guī)則的錯誤數(shù)據(jù)清理方法,其原理如圖4.2所示。采用該方法清理數(shù)據(jù)源中錯誤數(shù)據(jù)的過程簡要描述如下:首先,根據(jù)具體業(yè)務(wù)分析,在規(guī)則庫中定義業(yè)務(wù)規(guī)則;然后,把數(shù)據(jù)源中需要清理的數(shù)據(jù)通過JDBC接口調(diào)入到系統(tǒng)中來,執(zhí)行錯誤數(shù)據(jù)清理。對于數(shù)據(jù)源中的每條記錄,規(guī)則庫檢索模塊檢索規(guī)則庫中的業(yè)務(wù)規(guī)則,根據(jù)業(yè)務(wù)規(guī)則,對每條記錄作以下檢測:第一階段,對一條記錄的每個字段進(jìn)行檢測,這一階段主要是根據(jù)字段的域來檢測;第二階段,對每條記錄的多個字段進(jìn)行檢測,這一階段主要是根據(jù)同一記錄中字段之間的關(guān)系來檢測,比如函數(shù)依賴關(guān)系,業(yè)務(wù)規(guī)則等。通過以上過程可以判定每條記錄是否符合所定義的業(yè)務(wù)規(guī)則;如果記錄符合所定義的業(yè)務(wù)規(guī)則,則直接將該記錄經(jīng)JDBC導(dǎo)入到數(shù)據(jù)源中。如果記錄不符合所定義的業(yè)務(wù)規(guī)則,則該記錄含有錯誤數(shù)據(jù),錯誤清理模塊從規(guī)則庫中調(diào)用相關(guān)規(guī)則來改正該記錄中的錯誤字段值,如果沒有合適的處理規(guī)則,則由人工來處理。處理完的數(shù)據(jù)經(jīng)JDBC導(dǎo)入到數(shù)據(jù)源中。由以上分析可以看出,這種方法的清理效果取決于對具體業(yè)務(wù)的分析以及定義規(guī)則的數(shù)目。4.3.3業(yè)務(wù)規(guī)則4.3.3.1業(yè)務(wù)規(guī)則的定義與分類在本文中,業(yè)務(wù)規(guī)則是指符合業(yè)務(wù)的某一數(shù)值范圍、一個有效值的集合,或者是指某一種數(shù)據(jù)模式,如地址或日期。業(yè)務(wù)規(guī)則根據(jù)其規(guī)則內(nèi)容,可分成通用業(yè)務(wù)規(guī)則和特定業(yè)務(wù)規(guī)則。通用業(yè)務(wù)規(guī)則是指對多數(shù)信息系統(tǒng)都適用的業(yè)務(wù)規(guī)則,如工資必須大于或等于零,如果在數(shù)據(jù)表中Salary=“-100”,則表示無效的工資。特定業(yè)務(wù)規(guī)則是指針對某一種特定行業(yè)信息系統(tǒng)的業(yè)務(wù)規(guī)則,如在ERP的庫存管理系統(tǒng)中,物料的出庫日期要比入庫日期早,這種規(guī)則就屬于特定業(yè)務(wù)規(guī)則。規(guī)則的表示方式在進(jìn)行數(shù)據(jù)清理時,要根據(jù)對具體業(yè)務(wù)的分析,在規(guī)則庫中定義相應(yīng)的業(yè)務(wù)規(guī)則,然后,用這些業(yè)務(wù)規(guī)則來完成相應(yīng)的數(shù)據(jù)清理工作。在基于業(yè)務(wù)規(guī)則的數(shù)據(jù)清理中,存在著確定性業(yè)務(wù)規(guī)則的和不確定性業(yè)務(wù)規(guī)則。因此,在規(guī)則庫中,業(yè)務(wù)規(guī)則的表示也相應(yīng)地分成確定性業(yè)務(wù)規(guī)則表示和不確定性業(yè)務(wù)規(guī)則表示,分別說明如下:4.3.3.3業(yè)務(wù)規(guī)則庫的優(yōu)化策略基于業(yè)務(wù)規(guī)則的錯誤數(shù)據(jù)檢測的工作過程,就是不斷搜索規(guī)則庫,并對數(shù)據(jù)源中的記錄進(jìn)行檢查,看記錄是否符合所定義的業(yè)務(wù)規(guī)則,從而檢測出錯誤數(shù)據(jù)。由于整個規(guī)則庫中所包含的規(guī)則數(shù)目較多,搜索空間較大,勢必會降低檢測效率。為了提高檢測效率和系統(tǒng)運(yùn)行的可靠性,根據(jù)對業(yè)務(wù)規(guī)則的分類,作者把業(yè)務(wù)規(guī)則庫分成兩個子規(guī)則庫,即通用業(yè)務(wù)規(guī)則子規(guī)則庫和特定業(yè)務(wù)規(guī)則子規(guī)則庫。在完成某個清理任務(wù)時,除了需要到通用業(yè)務(wù)規(guī)則子規(guī)則庫中搜索外,具體業(yè)務(wù)只需要到該任務(wù)相關(guān)的特定業(yè)務(wù)規(guī)則子規(guī)則中搜索,這樣可以大大減小搜索空間。4.4錯誤數(shù)據(jù)的處理對于數(shù)據(jù)源中檢測出的孤立點(diǎn),一般先要采用人工方法來判定該數(shù)據(jù)是否為錯誤數(shù)據(jù)。如果是錯誤數(shù)據(jù),再對該數(shù)據(jù)進(jìn)行處理。一般說來,從數(shù)據(jù)源中檢測出的錯誤數(shù)據(jù)數(shù)量不大,所以,對于檢測出的錯誤數(shù)據(jù),可以直接由人工來處理。當(dāng)然,對于一些不重要的錯誤數(shù)據(jù),也可以采取類似于不完整數(shù)據(jù)的處理方法,比如:常量替代法常量替代法就是對所有錯誤數(shù)據(jù)用同一個常量來填充,比如用“Error”或“WrongValue”,這種方法最簡單,但是不能從根本上解決問題。平均值替代法平均值替代法就是使用一個字段的平均值來填充該字段的所有錯誤數(shù)據(jù)。最常見值替代法最常見值替代法就是使用一個字段中出現(xiàn)最多的那個值來填充該字段的所有錯誤數(shù)據(jù)。估算值替代法采用估算值替代法處理錯誤數(shù)據(jù)的過程為:首先采用相關(guān)算法,如回歸、判定樹歸納等算法預(yù)測該錯誤數(shù)據(jù)的可能值,然后用預(yù)測值替代錯誤數(shù)據(jù)。4.5本章小結(jié)數(shù)據(jù)錯誤是最重要的數(shù)據(jù)質(zhì)量問題。本章研究了如何采用孤立點(diǎn)檢測和業(yè)務(wù)規(guī)則這兩種方法來檢測數(shù)據(jù)源中的錯誤數(shù)據(jù),這兩種錯誤數(shù)據(jù)清理方法的原理分別總結(jié)如下:基于孤立點(diǎn)檢測的錯誤數(shù)據(jù)清理方法由于數(shù)據(jù)錯誤往往表現(xiàn)為孤立點(diǎn),所以,通過檢測孤立點(diǎn)的方法可以檢測數(shù)據(jù)源中的錯誤數(shù)據(jù),從而達(dá)到數(shù)據(jù)清理的目的?;谶@種思想,本章提出了一種基于孤立點(diǎn)檢測的錯誤數(shù)據(jù)清理方法,并在對常用孤立點(diǎn)檢測算法進(jìn)行比較、分析的基礎(chǔ)上,采用一種有效的孤立點(diǎn)檢測方法來檢測數(shù)據(jù)源中的孤立點(diǎn)。后面把這種檢測孤立點(diǎn)的方法應(yīng)用到作者研制的數(shù)據(jù)清理軟件平臺中,使之成為一種有效、實(shí)用的數(shù)據(jù)清理的方法。基于業(yè)務(wù)規(guī)則的錯誤數(shù)據(jù)清理方法在進(jìn)行數(shù)據(jù)清理時,如能利用具體的業(yè)務(wù)知識,則能更好地完成數(shù)據(jù)清理。故此,本章提出了一種基于業(yè)務(wù)規(guī)則的錯誤數(shù)據(jù)清理方法,該方法具有簡單、易用、清理準(zhǔn)確度高等優(yōu)點(diǎn)。但是,這種方法具有一定的局限性:它需要用戶非常熟悉具體的業(yè)務(wù),而且數(shù)據(jù)源的業(yè)務(wù)規(guī)則也比較容易獲得。所以,這種方法只能用于業(yè)務(wù)規(guī)則容易獲得的數(shù)據(jù)源中。但是,從某種程度上來說,這種方法也不失為是一種好的錯誤數(shù)據(jù)清理方法。在第七章,把這種數(shù)據(jù)清理方法應(yīng)用到作者研制的數(shù)據(jù)清理軟件平臺中去,通過在規(guī)則庫中預(yù)定義業(yè)務(wù)規(guī)則來檢測數(shù)據(jù)源中的數(shù)據(jù)錯誤,從而成為一種有效的數(shù)據(jù)清理輔助工具。值得指出的是:對于錯誤數(shù)據(jù)的清理,由于每種方法的適用范圍不同,故需要盡可能采用多種清理方法,多種方法能提高錯誤數(shù)據(jù)清理的綜合效果。作者在有限的篇幅中僅研究了部分有效的錯誤數(shù)據(jù)清理方法,其它方法仍有待于進(jìn)一步的研究。第五章多數(shù)據(jù)源集成中的數(shù)據(jù)清理5.1引言前面的章節(jié)研究了單數(shù)據(jù)源中數(shù)據(jù)清理的關(guān)鍵技術(shù)。隨著信息化的進(jìn)展,企事業(yè)單位存在很多自治(Heterogeneous)、獨(dú)立(Autonomous)的數(shù)據(jù)源需要集成。其中,自治數(shù)據(jù)源指那些具有不同的數(shù)據(jù)模型、模式、數(shù)據(jù)表示以及接口等的數(shù)據(jù)源;獨(dú)立的數(shù)據(jù)源是指每個數(shù)據(jù)源都是單獨(dú)開發(fā)的,沒有考慮其它數(shù)據(jù)源的存在,它們由不同的組織來維護(hù)。正是由于每個數(shù)據(jù)源都是為了特定應(yīng)用,單獨(dú)開發(fā)、部署和維護(hù)的,這就很大程度上導(dǎo)致數(shù)據(jù)管理系統(tǒng)、數(shù)據(jù)模型、模式設(shè)計和實(shí)際數(shù)據(jù)的不同。比如:在兩個數(shù)據(jù)源中,同一個相同的字段可能有不同的命名,或者兩個不同的字段可能有相同的命名;在一個數(shù)據(jù)源中,一個字段可能由兩列構(gòu)成,而在另一個數(shù)據(jù)源中,一個字段可以僅由一列構(gòu)成。由于多個數(shù)據(jù)源中的數(shù)據(jù)可能會出現(xiàn)不同表示、重復(fù)、沖突等現(xiàn)象,另外,每個數(shù)據(jù)源都可能含有臟數(shù)據(jù),當(dāng)多個數(shù)據(jù)源集成時,發(fā)生在單數(shù)據(jù)源中的這些問題會更加嚴(yán)重。故此,多數(shù)據(jù)源集成時的數(shù)據(jù)清理問題也應(yīng)當(dāng)引起我們的重視。為了更好地理解多數(shù)據(jù)源集成中數(shù)據(jù)清理的重要性,首先,以ERP系統(tǒng)中的“供應(yīng)商”信息為例來說明多數(shù)據(jù)源的數(shù)據(jù)集成問題。在表5.1和5.2中,兩個表示供應(yīng)商信息的數(shù)據(jù)表分別來自兩個不同的數(shù)據(jù)源,這兩個數(shù)據(jù)源都是關(guān)系數(shù)據(jù)庫格式的,但存在模式和數(shù)據(jù)沖突。在模式級上,有命名沖突,如在表5.1中供應(yīng)商編號用“ID”表示,而在表5.2中供應(yīng)商編號用“NO”表示;數(shù)據(jù)表結(jié)構(gòu)不同,如在表5.1中沒有“信用等級”和“Email”這兩個字段,而在表5.2中沒有“傳真”這個字段。在實(shí)例級上,在表5.1中,“城市”這個字段的數(shù)據(jù)是用具體城市名來表示的,而在表5.2中,“城市”這個字段的數(shù)據(jù)是用代號來表示;字段“聯(lián)系電話”的數(shù)據(jù)格式不同:在表5.1中格式為“××××-×××××××”、而在表5.2中格式為“(××××)×××××××”;關(guān)于“凍結(jié)標(biāo)志”的數(shù)據(jù)表示也不同:在表5.1中用“0/1”表示、而在表5.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 銀行工作總結(jié)勇攀高峰無往不勝
- 金融行業(yè)管理顧問工作心得
- 互聯(lián)網(wǎng)金融行業(yè)銷售工作總結(jié)
- 體驗(yàn)式餐廳設(shè)計師的文化體驗(yàn)與美食創(chuàng)新
- 家居用品采購心得體會
- 骨科護(hù)士長的工作總結(jié)
- 《消化道常見癥狀》課件
- 《健康食品排行榜》課件
- 2021年河北省張家口市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2022年四川省自貢市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 安徽省合肥中學(xué)2025屆高三第一次模擬考試數(shù)學(xué)試卷含解析
- 2024年時政熱點(diǎn)知識競賽試卷及答案(共四套)
- 幼兒園后勤主任年終總結(jié)
- 除顫儀使用護(hù)理查房
- 初級消防設(shè)施操作員實(shí)操題庫 (一)
- 2024版《糖尿病健康宣教》課件
- CURTIS1232-1234-1236-SE-SERIES交流控制器手冊
- 2024年郵政系統(tǒng)招聘考試-郵政營業(yè)員考試近5年真題集錦(頻考類試題)帶答案
- 交接試驗(yàn)合同模板
- 醫(yī)學(xué)教案SPZ-200型雙向道床配碴整形車操作保養(yǎng)維修手冊
- 期末 (試題) -2024-2025學(xué)年人教PEP版英語四年級上冊
評論
0/150
提交評論