內容簡介
數據是對現實世界的描述,應該符合一定的語義規則和邏輯常識,但實際套用中,由於各種原因,有些數據違反了這樣的語義規則,表現為數據值異常、不完整或相互矛盾,對於關係數據而言,還有實體異常(多條記錄對應同一實體)、包含異常(多表之間記錄不滿足包含關係)等,所有這類“髒”數據我們稱之為不一致數據。數據不一致性是指數據的矛盾性、不相容性。
產生原因
數據不一致性的原因主要有以下三種:一是由於
數據冗餘造成的;二是由於
並發控制不當造成的;三是由於各種
故障、錯誤造成的。
第一種情況的出現往往是由於重複存放的數據未能進行一致性地更新造成的。例如教師工資的調整,如果人事處的工資數據已經改動了,而財務處的工資數據未改變,就會產生矛盾的工資數。
第二種情況是由於多用戶共享資料庫,而更新操作未能保持同步進行而引起。例如,在飛機票訂購系統中,如果不同的兩個購票點同時查詢某張機票的訂購情況,而且分別為顧客訂購了這張機票,就會造成一張機票分別賣給兩名顧客的情況。這是由於系統沒有進行
並發控制,所以造成了數據的不一致性。
第三種情況下,當由於某種原因(如硬體
故障或軟體故障)而造成數據丟失或數據損壞,要根據各種
資料庫維護手段(如轉存、日誌等)和
數據恢復措施將
資料庫恢復到某個正確的、完整的、一致性的狀態下。
分類
數據集成系統中的數據不一致性主要來自兩個層次,即數據本身的不一致性和模式匹配的不確定性。
在
數據交換套用中,由於不同的套用對同一數據可能有著不同的要求,源數據的語義模型和目標數據的語義模型可能不一樣,這就導致確定一致的源數據,可能因為違反了目標數據上的語義約束而不一致。
數據集成系統處理的數據多種多樣,有些數據本身就不一致,例如通過信息抽取系統自動從文本或者半結構化的數據源中抽取的數據,由於抽取技術所限,這些數據通常不準確;還有一些數據是從線上數據源中抽取的,
數據集成系統很難保證所抽取數據的可靠性和實時性。另外,即使單個數據源是確定的,當多個自治的數據源整合到一個數據中,由於相互衝突,或違反全局語義模型,而表現為不一致。
實際舉例
數據不一致性存在於以下套用:
web
信息抽取技術將網頁中的非結構化數據或半結構化數據按照一定的需求抽取成
結構化數據。這些結構化數據往往存儲在後台
資料庫中,供用戶查詢以及進一步分析利用。但眾所周知,internet具有開放性,不一致性,互動性,逾時空性等特點。但正是因為網際網路的這些特性,網頁中的數據良莠不齊,存在著嚴重的不一致問題。
數據挖掘的目的是從大量紛繁複雜的
原始數據中獲取知識。原始數據的質量在很大程度上決定了數據挖掘的成功與否。當原始數據信息豐富、準確客觀時,所獲取的知識價值高;如果原始數據的質量不理想,例如欄位值有誤差或不一致,所獲取的知識可能並無任何借鑑意義。數據挖掘中的數據往往來自多個系統,這些數據源本身可能存在一些缺失或錯誤等質量問題,集成到一起更可能相互矛盾。
因此,在實際套用中,一般開展數據挖掘前要進行數據清洗 (data cleaning)以梗填補遺漏數據、消除異常數據、平滑噪聲數據,糾正不一致數據來提高數據質量。不一致數據的查詢處理可以為數據挖掘的髒數據處理開拓新的解決思路。
解決辦法
資料庫系統
考慮了各種破壞
數據一致性的因素,並採取了一些相應的措施來維護資料庫的一致性。例如提供了
並發控制的手段,提供了存儲、恢復、日誌等功能。由於數據面向整個系統,是有結構的數據,不僅可以被多個套用共享使用,而且容易增加新的套用,這就使得
資料庫系統易於擴充,可以適應各種用戶的要求。可以取整體數據的各種子集用於不同的套用系統,當套用需求改變或增加時,只要重新選取不同的子集或加上一部分數據便可以滿足新的需求。
基於標記的查詢回答
不一致性被看作是
數據的一個屬性,並能使用標記符號加以說明,所有資料庫及其查詢回答的單元值上都可以附上0到多個標記,如果附上的符號數為0,那么該單元值是一致可信的,反之則不一致不可信。
聚類
如果數據可以組成各種不同的聚類,則技術非常有效,反之,如果數據界線模糊,則方法無效;
數據可以分層聚類,並存儲在多層索引樹中。