龍 宇
(南京郵電大學(xué) 通信與信息工程學(xué)院,,江蘇 南京 210003)
摘 要: 評(píng)估關(guān)系數(shù)據(jù)庫(kù)的質(zhì)量的過程對(duì)數(shù)據(jù)庫(kù)產(chǎn)業(yè)至關(guān)重要。評(píng)估關(guān)系數(shù)據(jù)庫(kù)的質(zhì)量包含兩種獨(dú)立的審計(jì)方式:一種是對(duì)圖表中描述的數(shù)據(jù)庫(kù)結(jié)構(gòu)的審計(jì),,另一種是在指定點(diǎn)對(duì)數(shù)據(jù)庫(kù)內(nèi)容進(jìn)行審計(jì),。數(shù)據(jù)庫(kù)圖表審計(jì)主要檢查設(shè)計(jì)缺陷,是否有違背數(shù)據(jù)庫(kù)準(zhǔn)則以及偏離原始數(shù)據(jù)模型的情況,,同時(shí)測(cè)量數(shù)據(jù)庫(kù)的大小,、復(fù)雜性和結(jié)構(gòu)質(zhì)量。數(shù)據(jù)庫(kù)內(nèi)容審計(jì)則比較選擇的數(shù)據(jù)的狀態(tài)屬性,,以確定是否有不正確的數(shù)據(jù),,并檢查是否有丟失和多余的記錄。上述兩種方式的目的都是為了啟動(dòng)數(shù)據(jù)清理過程,,以確?;蚧謴?fù)數(shù)據(jù)的質(zhì)量。
關(guān)鍵詞: 數(shù)據(jù)質(zhì)量,;數(shù)據(jù)模型,;架構(gòu)分析;數(shù)據(jù)有效性,;數(shù)據(jù)一致性
0 引言
大多數(shù)IT用戶的現(xiàn)有數(shù)據(jù)庫(kù)都是長(zhǎng)期演進(jìn)的產(chǎn)品,,許多年前就被設(shè)計(jì)出來了。當(dāng)關(guān)系數(shù)據(jù)庫(kù)剛開始進(jìn)入市場(chǎng)時(shí),,它們中很多都是從早期的分層或網(wǎng)絡(luò)數(shù)據(jù)庫(kù)中通過數(shù)據(jù)遷移生成的,。因此,從一開始,,關(guān)系數(shù)據(jù)庫(kù)的設(shè)計(jì)原則就是能適應(yīng)來自非關(guān)系型系統(tǒng)的不兼容的數(shù)據(jù),,后來,隨著數(shù)據(jù)結(jié)構(gòu)的侵蝕,,造成了不受控制的演變結(jié)果,。用戶需求隨著時(shí)間的推移發(fā)生變化,數(shù)據(jù)模型必須改變以保持同步,。如果數(shù)據(jù)模型變得過時(shí),,由于程序錯(cuò)誤以及使用方式的不一致,使得無效數(shù)據(jù)值能進(jìn)入數(shù)據(jù)庫(kù),,那么類似的錯(cuò)誤數(shù)據(jù)將會(huì)在數(shù)據(jù)庫(kù)中成倍增加,,這些問題會(huì)使得數(shù)據(jù)質(zhì)量大幅降低,并最終導(dǎo)致數(shù)據(jù)崩潰,。
1 數(shù)據(jù)質(zhì)量影響因素
數(shù)據(jù)質(zhì)量下降的主要原因有:(1)數(shù)據(jù)遷移時(shí)的妥協(xié),;(2)未能預(yù)見到未來的需求;(3)缺乏數(shù)據(jù)獨(dú)立性,;(4)規(guī)范化不當(dāng),;(5)存儲(chǔ)不當(dāng);(6)不一致和不正確的數(shù)據(jù)更新,;(7)數(shù)據(jù)測(cè)試的不準(zhǔn)確性,。
1.1 數(shù)據(jù)遷移時(shí)的妥協(xié)
許多用戶的數(shù)據(jù)庫(kù)從一開始質(zhì)量就很低,因?yàn)橛脩舻臄?shù)據(jù)源自傳統(tǒng)的數(shù)據(jù)庫(kù)系統(tǒng),,如IMS,、IDMS或ADABAS。為了使數(shù)據(jù)遷移變得更容易,,因權(quán)宜之計(jì)而犧牲了關(guān)系數(shù)據(jù)庫(kù)的部分原則,,如數(shù)據(jù)庫(kù)數(shù)組中的數(shù)據(jù)項(xiàng)放入一行或者以blob形式來隱藏改變的數(shù)據(jù)結(jié)構(gòu)或提高性能。這些妥協(xié)仍困擾著用戶,,并且成為錯(cuò)誤的根源,,同時(shí)還導(dǎo)致很難調(diào)整數(shù)據(jù)庫(kù)[1]。
1.2 未能預(yù)見未來的需求
在一個(gè)數(shù)據(jù)庫(kù)生命周期的起始,,設(shè)計(jì)者必須對(duì)數(shù)據(jù)總量以及數(shù)據(jù)的使用方式作出相關(guān)的假設(shè),,設(shè)計(jì)者還需要預(yù)見到數(shù)據(jù)將如何演變。數(shù)據(jù)庫(kù)的設(shè)計(jì)是基于這些假設(shè)的,。如果假設(shè)被證明是正確的,,該數(shù)據(jù)庫(kù)可以正常發(fā)展;如果假設(shè)不正確,,數(shù)據(jù)庫(kù)結(jié)構(gòu)很快就會(huì)過時(shí),,格式也將與內(nèi)容不一致,它還將變得越來越難以適應(yīng),,數(shù)據(jù)量的增長(zhǎng)超出預(yù)期,,數(shù)據(jù)的使用方式與原先預(yù)測(cè)的也有很大不同。因此,,它成為重新設(shè)計(jì)數(shù)據(jù)庫(kù)的一個(gè)必要條件[2],。
1.3 缺乏數(shù)據(jù)獨(dú)立性
數(shù)據(jù)庫(kù)設(shè)計(jì)人員往往無法準(zhǔn)確預(yù)測(cè)數(shù)據(jù)庫(kù)的實(shí)際增長(zhǎng),也無法預(yù)見它會(huì)如何被使用,。當(dāng)他們開始設(shè)計(jì)數(shù)據(jù)庫(kù)時(shí),,他們很可能會(huì)僅從一個(gè)單一的應(yīng)用觀點(diǎn)出發(fā)來設(shè)計(jì),,而不是從所有可能的應(yīng)用的全局觀點(diǎn)出發(fā),。因此,從一開始,,對(duì)于應(yīng)用程序來講數(shù)據(jù)就不是獨(dú)立的,。隨后,數(shù)據(jù)庫(kù)結(jié)構(gòu)需要能兼容更多的,、不同的應(yīng)用程序,,但設(shè)計(jì)的彈性越大,就越脆弱,。在某些方面它就不再足夠健壯,。
1.4 規(guī)范化不當(dāng)
數(shù)據(jù)庫(kù)結(jié)構(gòu)的每個(gè)臨時(shí)補(bǔ)丁都具有一定的負(fù)面影響。創(chuàng)建新的子表時(shí),,附加屬性是必需的,。與此不同的是,本地?cái)?shù)據(jù)庫(kù)管理員只需將它們添加到現(xiàn)有的表,。因此,,數(shù)據(jù)庫(kù)中的行變得越來越長(zhǎng),并更難處理,。當(dāng)需要增加新的鍵時(shí),,它們以索引的形式添加,于是,,索引越來越多,。當(dāng)數(shù)據(jù)組添加到現(xiàn)有行時(shí),違背了第二準(zhǔn)則,。為了避免產(chǎn)生新的子表,,會(huì)出現(xiàn)重復(fù)的數(shù)據(jù)項(xiàng),,這又違反第一準(zhǔn)則[3]。
1.5 存儲(chǔ)過程濫用
另一個(gè)導(dǎo)致數(shù)據(jù)丟失以及數(shù)據(jù)依賴性的因素就是存儲(chǔ)過程的使用,。如果存儲(chǔ)程序只用于訪問操作,,并確保數(shù)據(jù)的完整性,這是可以接受的,。然而,,它們經(jīng)常被誤用來執(zhí)行程序的邏輯,,而不是放在單獨(dú)的規(guī)則模塊中或放置在客戶端組件程序中以檢查業(yè)務(wù)規(guī)則,,開發(fā)人員在存儲(chǔ)過程中將其隱藏,使得它們對(duì)一些工具不再可見,,從而導(dǎo)致存儲(chǔ)過程充滿了選擇和循環(huán),、集和聲明,這就是濫用的典型跡象,。
1.6 不一致和不正確的數(shù)據(jù)更新
一個(gè)數(shù)據(jù)庫(kù)的內(nèi)容不僅受到錯(cuò)誤使用程序的影響,,而且受到數(shù)據(jù)不一致變化的影響。例如,,在兩個(gè)不同的表中存放有相同的數(shù)據(jù),,當(dāng)在一個(gè)表改變其數(shù)據(jù)屬性,但沒有改變另一個(gè)表中相應(yīng)字段的屬性時(shí),,該屬性就不再與該屬性的類型兼容,。法蘭克福股市一度不得不關(guān)閉了半天,就是因?yàn)閿?shù)據(jù)庫(kù)中的無效值導(dǎo)致的數(shù)據(jù)異常錯(cuò)誤[4],。與此同時(shí),,另一個(gè)問題是丟失和冗余記錄。丟失的記錄是那些仍然有用但已有意或無意刪了的記錄,。冗余記錄是那些應(yīng)該被刪除,,但由于某些原因卻沒有被刪除的記錄。它們?nèi)匀辉跀?shù)據(jù)庫(kù)中占據(jù)著寶貴的空間,,盡管它們已不再使用,。
1.7 測(cè)試數(shù)據(jù)不足
測(cè)試應(yīng)用系統(tǒng)時(shí),測(cè)試人員往往集中在他們可以很容易地看到的地方,,即用戶界面,,而忽略了他們看不到的東西,,也就是數(shù)據(jù)庫(kù),。它需要大量的單調(diào)的努力掃描幾千行的數(shù)據(jù),,以查看該內(nèi)容是什么,,它們應(yīng)該是什么,。大多數(shù)測(cè)試人員沒有時(shí)間仔細(xì)看一些隨機(jī)樣本,。實(shí)際上,,內(nèi)容檢查應(yīng)該做到自動(dòng)化,。但問題是,沒有一個(gè)公司愿意去做這件事,。一次對(duì)英國(guó)超過150名高級(jí)IT工作者的調(diào)查發(fā)現(xiàn),,超過40%的受訪者聲明他們的數(shù)據(jù)是不可靠的,可能無法滿足他們的業(yè)務(wù)需要,。但他們沒有采取措施去清理和糾正數(shù)據(jù)[5],。
2 數(shù)據(jù)質(zhì)量的研究與發(fā)展
從1980年關(guān)系數(shù)據(jù)庫(kù)的出現(xiàn)開始,數(shù)據(jù)庫(kù)的質(zhì)量一直是研究人員關(guān)注的話題,。關(guān)于這個(gè)問題的最早出版物主要設(shè)想制定一個(gè)將現(xiàn)有的層次型數(shù)據(jù)庫(kù)轉(zhuǎn)化為關(guān)系數(shù)據(jù)庫(kù)的標(biāo)準(zhǔn),,以這樣的方式來保持?jǐn)?shù)據(jù)的語義完整性,同時(shí)實(shí)現(xiàn)最佳的關(guān)系架構(gòu),。美國(guó)的Premerlani,、布拉哈以及戴維斯和歐洲的埃諾是上述理論的早期研究人員。埃諾研究的是數(shù)據(jù)庫(kù)架構(gòu)的一致性與實(shí)體關(guān)系模型數(shù)據(jù)庫(kù)模式[6],,而戴維斯研究的是將現(xiàn)有的文件系統(tǒng)轉(zhuǎn)化為適當(dāng)?shù)年P(guān)系結(jié)構(gòu)[7],。Premerlani和布拉哈研究數(shù)據(jù)庫(kù)結(jié)構(gòu)的逆向轉(zhuǎn)化工程[8]。
當(dāng)然,,關(guān)于如何更好地設(shè)計(jì)出高品質(zhì)的數(shù)據(jù)庫(kù),,已經(jīng)有了一些著作,如1972年,,E.F.Codd發(fā)表了文章“數(shù)據(jù)庫(kù)子語言的關(guān)系完整性”,,奠定了規(guī)范化數(shù)據(jù)結(jié)構(gòu)標(biāo)準(zhǔn)的基礎(chǔ)[9]。到1990年,,已經(jīng)有很多文獻(xiàn)研究如何更好地設(shè)計(jì)關(guān)系數(shù)據(jù)庫(kù),。1990年之后,他對(duì)數(shù)據(jù)質(zhì)量的研究工作轉(zhuǎn)向現(xiàn)有關(guān)系數(shù)據(jù)庫(kù),,以便提升它們的質(zhì)量,,并且在這里將質(zhì)量加入標(biāo)準(zhǔn)化規(guī)則。歐洲的埃諾和Henrard和美國(guó)的布拉哈和Premerlani在這個(gè)領(lǐng)域中具有權(quán)威,。布拉哈和Premerlani挑出了一些他們研究數(shù)據(jù)庫(kù)時(shí)發(fā)現(xiàn)的缺陷,,如缺少主鍵,不匹配的引用,,枚舉域缺少標(biāo)準(zhǔn),。
彼得和Richards于1994年刊登在通訊ACM上的文章對(duì)傳統(tǒng)的數(shù)據(jù)庫(kù)逆向過程具有里程碑意義。這篇文章中對(duì)于數(shù)據(jù)庫(kù)的關(guān)鍵不足之處進(jìn)行了描述,,并且講述了應(yīng)當(dāng)如何解決[10],。彼得于1996年出版了有關(guān)數(shù)據(jù)逆向工程的著作,也標(biāo)志著將傳統(tǒng)數(shù)據(jù)庫(kù)轉(zhuǎn)化到現(xiàn)有的關(guān)系型數(shù)據(jù)庫(kù)的研究工作達(dá)到高潮,。與彼得的研究并行的工程是新型數(shù)據(jù)研究,,用于檢測(cè)質(zhì)量比較差的企業(yè)數(shù)據(jù),。這項(xiàng)工作的早期出版物出現(xiàn)于1996年,作者是Y.Wand和R.Wang[11],。該作者指出,,他們調(diào)查的500家年銷售額超過2千萬美元的中型公司中,60%的公司數(shù)據(jù)質(zhì)量存在問題,,其中主要問題是為用戶定義的數(shù)據(jù)質(zhì)量比較差,。他們承認(rèn)數(shù)據(jù)有問題,但無法精確定義它們,。所以Y.Wand和R.Wang著手于重新定義最經(jīng)常報(bào)道的,、質(zhì)量比較差的數(shù)據(jù),包括:
?。?)表述不完整,,即現(xiàn)實(shí)世界不能完全映射到數(shù)據(jù);
?。?)模棱兩可的表示,即現(xiàn)實(shí)世界被數(shù)據(jù)歪曲,;
?。?)無意義的狀態(tài),即數(shù)據(jù)描述了一些在現(xiàn)實(shí)世界中不存在的東西,;
?。?)不正確的狀態(tài),即數(shù)據(jù)是亂碼,;
?。?)過時(shí)的狀態(tài),即數(shù)據(jù)不再是最新的,。
為了彌補(bǔ)這些缺陷,,作者提出了一套用戶應(yīng)該努力滿足的質(zhì)量標(biāo)準(zhǔn)。這些是準(zhǔn)確度和精密度,、可靠性,、及時(shí)性和流動(dòng)性、完整性,、一致性,。
除了改善數(shù)據(jù)的不足,作者還查明產(chǎn)生缺陷的原因,,并提出一種修復(fù)的方法,。兩年后,該通訊ACM中貢獻(xiàn)了很多以“檢查數(shù)據(jù)質(zhì)量”為主題的文章,。編者強(qiáng)調(diào),,這些數(shù)據(jù)構(gòu)成了信息時(shí)代的原材料,,其質(zhì)量必須認(rèn)真對(duì)待。關(guān)于這個(gè)問題的研究,,有三篇文章值得特別注意:R.Wang的總數(shù)據(jù)質(zhì)量管理,,K.Orr的數(shù)據(jù)質(zhì)量和系統(tǒng)理論和D.Kaplan、R. Krishnan,、R. Padman以及J.Peters的評(píng)估數(shù)據(jù)質(zhì)量的信息統(tǒng)計(jì)系統(tǒng),。這些文章給出了一個(gè)深刻的洞察數(shù)據(jù)質(zhì)量問題的方法以及解決這些問題的方法。
K.Orr將數(shù)據(jù)質(zhì)量定義為與現(xiàn)實(shí)世界的一致性,。數(shù)據(jù)質(zhì)量為1(100%)表明數(shù)據(jù)的表現(xiàn)形式與真實(shí)世界達(dá)到完美的一致性,,而數(shù)據(jù)質(zhì)量為0表示沒有相似性。K.Orr承認(rèn),,沒有數(shù)據(jù)庫(kù)的質(zhì)量達(dá)到100%,,數(shù)據(jù)庫(kù)總有一些差錯(cuò),并且隨著時(shí)間流逝,,數(shù)據(jù)與現(xiàn)實(shí)之間的差距還在增長(zhǎng),,因?yàn)楝F(xiàn)實(shí)是不斷變化的。也許數(shù)據(jù)內(nèi)容可以保持更新,,但數(shù)據(jù)結(jié)構(gòu)卻不能隨時(shí)改變?,F(xiàn)有的數(shù)據(jù)庫(kù)主要是靜態(tài)的,因此,,數(shù)據(jù)庫(kù)時(shí)間越久,,它們與現(xiàn)實(shí)之間的差距越大。K.Orr強(qiáng)調(diào)需要定期調(diào)整數(shù)據(jù)結(jié)構(gòu)[12],。
在ACM通信中有相似的文章,,雷德曼描述了數(shù)據(jù)質(zhì)量不佳對(duì)整個(gè)組織的影響。在操作層面,,質(zhì)量差的數(shù)據(jù)直接導(dǎo)致客戶的不滿,、成本增加和較低的工作滿意度。低數(shù)據(jù)質(zhì)量導(dǎo)致運(yùn)營(yíng)成本增加,,而且會(huì)將時(shí)間花費(fèi)在檢測(cè)和糾正錯(cuò)誤上,。據(jù)統(tǒng)計(jì),40%~60%的公司服務(wù)預(yù)算是由于數(shù)據(jù)質(zhì)量不佳而引起,。在戰(zhàn)術(shù)層面,,糟糕的數(shù)據(jù)質(zhì)量會(huì)影響管理者的決策。由不正確的數(shù)據(jù)而產(chǎn)生的一絲懷疑可以阻礙管理人員作出決定,。在戰(zhàn)略層面上,,數(shù)據(jù)質(zhì)量偏低讓人難以遵循一個(gè)給定的策略,因?yàn)闆]有人能確保數(shù)據(jù)的可靠性,。如果在無意中使用了這些低質(zhì)量的數(shù)據(jù)就會(huì)產(chǎn)生錯(cuò)誤,。綜上所述,,數(shù)據(jù)質(zhì)量不佳對(duì)整個(gè)組織的質(zhì)量有顯著影響,甚至可能威脅到整個(gè)系統(tǒng)架構(gòu)的存在[13],。Wang強(qiáng)調(diào)測(cè)量數(shù)據(jù)質(zhì)量的必要性,,為此他提出了一套IQ衡量標(biāo)準(zhǔn)。這個(gè)標(biāo)準(zhǔn)可以衡量數(shù)據(jù)的準(zhǔn)確性,、及時(shí)性,、完整性和一致性。準(zhǔn)確性基于表的每列中不正確數(shù)據(jù)的百分比,。及時(shí)性通過表的最近更新進(jìn)行測(cè)量,。完整性根據(jù)每行中丟失或默認(rèn)數(shù)據(jù)的數(shù)量計(jì)算。一致性則記錄違背完整性標(biāo)準(zhǔn)的數(shù)據(jù),。這些度量的加權(quán)用來衡量表的質(zhì)量[14],。
有關(guān)數(shù)據(jù)質(zhì)量的研究,更近的貢獻(xiàn)是艾肯,、艾倫等人的文章,。文章講述了衡量成熟的數(shù)據(jù)管理過程的方式。這篇文章中出現(xiàn)了在2007年4月發(fā)表在IEEE計(jì)算機(jī)雜志上的定義模型過程的數(shù)據(jù)管理,。在這個(gè)模型中,,強(qiáng)調(diào)了定期審計(jì)數(shù)據(jù)的必要性。這些審計(jì)應(yīng)針對(duì)缺陷的檢測(cè),,并把這件事作為日常管理。用戶組織應(yīng)根據(jù)數(shù)據(jù)的好壞程度進(jìn)行分級(jí),。
另一篇由Kim,、Kishore和Sanders寫的文章講述了在電子商務(wù)過程中數(shù)據(jù)質(zhì)量的重要性。沒有高質(zhì)量數(shù)據(jù)的保證,,電子商務(wù)將會(huì)變成不可靠的,,而不可靠的電子商務(wù)永遠(yuǎn)不會(huì)被客戶或業(yè)務(wù)合作伙伴接受。為了留住用戶的信心,,數(shù)據(jù)必須接近于100%準(zhǔn)確[15],。
最后,在一篇題為“軟件質(zhì)量改進(jìn)的一個(gè)銅子彈”中,,Michael Blaha建議先從數(shù)據(jù)出發(fā),。在花費(fèi)大量資金投入到改善軟件質(zhì)量之前,用戶應(yīng)該首先確保他們的數(shù)據(jù)是有序的,。Blaha列出在數(shù)據(jù)中的一些共同的缺陷,,例如外鍵超載,模棱兩可的主鍵,,數(shù)據(jù)冗余,,空引用,;在開始數(shù)據(jù)再造項(xiàng)目之前,首先有必要認(rèn)識(shí)到這些問題,。
綜上所述,,需要一直關(guān)注數(shù)據(jù)質(zhì)量問題,但由于用戶量的增加,,數(shù)據(jù)管理的數(shù)量也大幅增長(zhǎng),,如管理大數(shù)據(jù)時(shí),需要提升數(shù)據(jù)質(zhì)量的控制能力,。周期性的數(shù)據(jù)審計(jì)不再是浪費(fèi),,而是一項(xiàng)絕對(duì)必要的事情。
3 檢查數(shù)據(jù)庫(kù)結(jié)構(gòu)的預(yù)定義規(guī)則
數(shù)據(jù)庫(kù)的許多特征可以通過分析數(shù)據(jù)庫(kù)模式實(shí)現(xiàn)靜態(tài)檢查,。該檢查的模式是檢查數(shù)據(jù)本身的一個(gè)先決條件,。
3.1 檢查供應(yīng)商的特定功能
數(shù)據(jù)庫(kù)的許多功能源自特定的供應(yīng)商,也就是說,,它們不是標(biāo)準(zhǔn)的SQL,。因此,使用時(shí)要格外小心,,比如一些選項(xiàng)應(yīng)該禁止,,因?yàn)樗鼈儠?huì)影響性能或阻止數(shù)據(jù)的傳輸。像NULL選項(xiàng),,處于相同的原因,,也應(yīng)該禁止。具體哪些功能應(yīng)該禁止由經(jīng)驗(yàn)豐富的數(shù)據(jù)庫(kù)分析師決定,。
3.2 檢查標(biāo)準(zhǔn)形式
不使用供應(yīng)商特定的功能可能會(huì)降低性能,,但它使數(shù)據(jù)庫(kù)更獨(dú)立,即數(shù)據(jù)變得更加便攜,。SQL語言并沒有指定每個(gè)記錄都需要具有一個(gè)主鍵,,但它可以是一個(gè)強(qiáng)制要求。有一個(gè)外鍵也并非必要,,但是,,如果該表是依賴于另一個(gè)表的,則至少需要定義一個(gè)外鍵,。在任何情況下,,一個(gè)表都不應(yīng)該存在相同類型的重復(fù)數(shù)據(jù)。這種明顯違背一般準(zhǔn)則的現(xiàn)象可以被識(shí)別并很容易偵查到,。
3.3 檢查數(shù)據(jù)約束
一組數(shù)據(jù)需要多少屬性以及每一行的生命周期都是可以限定的,,這就要檢查這些約束是否超標(biāo)。
綜上所述,可以得出結(jié)論,,設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)該有一組強(qiáng)制執(zhí)行的規(guī)則,。典型的違反規(guī)則的情況如下:
(1)表中缺少唯一的標(biāo)識(shí)符,;
?。?)從屬表中丟失外鍵;
?。?)表包含重復(fù)的數(shù)據(jù)屬性,;
(4)表包含一個(gè)子組,;
?。?)表沒有外部視圖;
?。?)表沒有索引,;
(7)主鍵包含了太多的子鍵,;
?。?)空選項(xiàng)丟失;
?。?)刪除選項(xiàng)丟失,;
(10)表中有不兼容的數(shù)據(jù)類型,;
?。?1)屬性的數(shù)量超過上限;
?。?2)行的長(zhǎng)度超過了最大允許長(zhǎng)度,;
(13)架構(gòu)沒有得到充分評(píng)價(jià),。
檢查上述規(guī)則并報(bào)告相應(yīng)的違規(guī)行為是架構(gòu)審計(jì)工具的任務(wù),然后數(shù)據(jù)庫(kù)管理員可以據(jù)此修正數(shù)據(jù)庫(kù)架構(gòu),。DLIAudit,、ADAAudit和SQLAudit等工具檢查IMS、ADABAS,、DB-2,、Oracle和MS-SQL數(shù)據(jù)庫(kù)是否存在違規(guī)行為。這些結(jié)果就是數(shù)據(jù)架構(gòu)缺陷報(bào)告,,可以用于數(shù)據(jù)庫(kù)功能重建,。
4 驗(yàn)證數(shù)據(jù)庫(kù)內(nèi)容
驗(yàn)證一個(gè)給定的數(shù)據(jù)庫(kù)的內(nèi)容要求存在一種準(zhǔn)則。首先應(yīng)該規(guī)定表中應(yīng)該有哪些屬性,。通常,,企業(yè)架構(gòu)師知道正確數(shù)據(jù)的格式,。因此他們更有資格定義數(shù)據(jù)驗(yàn)證規(guī)則,這些規(guī)則俗稱業(yè)務(wù)規(guī)則(BR),。
在這里所描述的方法,,一種是對(duì)象約束語言(OCL)規(guī)范,它被用來作為驗(yàn)證數(shù)據(jù)正確性的基礎(chǔ),。OCL是一種用UML模型來指定和驗(yàn)證準(zhǔn)則的文本語言,。雖然OCL是一種用來驗(yàn)證數(shù)據(jù)合理性的功能強(qiáng)大的語言,但是對(duì)于業(yè)務(wù)架構(gòu)師以及測(cè)試工程師而言,,它的功能顯得有些不足,,僅僅是一種指定語義模型的常規(guī)語言。業(yè)務(wù)規(guī)則語言提供的概念從業(yè)務(wù)建模的角度在概念層面很容易理解,。
4.1 把數(shù)據(jù)驗(yàn)證準(zhǔn)則轉(zhuǎn)換為SQL約束
為了驗(yàn)證特定數(shù)據(jù)庫(kù)的內(nèi)容是否違反了業(yè)務(wù)定義準(zhǔn)則,,在BR語言中,將數(shù)據(jù)驗(yàn)證規(guī)則語言自動(dòng)轉(zhuǎn)換成一個(gè)SQL語句,,這個(gè)過程需要兩步,。
第一步,業(yè)務(wù)規(guī)則被轉(zhuǎn)換成OCL約束,。有人可能會(huì)問,,為什么這些規(guī)則不能直接轉(zhuǎn)換成SQL。原因是OCL含有特殊的指向規(guī)則,,它們用來描述數(shù)據(jù)實(shí)體之間的關(guān)系,。OCL的優(yōu)勢(shì)是它通過一個(gè)基本的直接圖模型實(shí)現(xiàn)“語義導(dǎo)航”。這種模型是一個(gè)域模型(如作為UML或?qū)嶓w關(guān)系模型),,是獨(dú)立的底層數(shù)據(jù)庫(kù)模型,。這樣可使數(shù)據(jù)驗(yàn)證規(guī)則適應(yīng)數(shù)據(jù)庫(kù)模式的變化。在這方面,,OCL成為業(yè)務(wù)規(guī)則和SQL之間的橋梁,。
第二步,將第一步所生成的OCL約束轉(zhuǎn)換成SQL語句,。為每個(gè)OCL約束創(chuàng)建一個(gè)完整視圖,。德穆思提出了把OCL約束轉(zhuǎn)化為SQL的方法,為將OCL表達(dá)式映射為SQL語句奠定了基礎(chǔ),。這種轉(zhuǎn)變必須考慮使用指定了OCL約束的域模型和底層數(shù)據(jù)庫(kù)模式,。因此,框架需要允許將OCL約束映射到任意數(shù)據(jù)基本模式,。
4.2 執(zhí)行SQL語句和評(píng)估SQL查詢結(jié)果
生成的SQL代碼,,即完整性視圖,在目標(biāo)數(shù)據(jù)庫(kù)上執(zhí)行。完整性視圖的目的在于鑒別關(guān)系表中所有行有哪些違反數(shù)據(jù)定義規(guī)則,。這些規(guī)則的違反記錄被存儲(chǔ)在臨時(shí)表,,即一個(gè)完整性視圖,用于進(jìn)一步評(píng)價(jià),。一般而言,,這些完整性視圖提供了信息的數(shù)據(jù)質(zhì)量,因?yàn)樗鼈兊臏y(cè)量包含其中以某種方式違反了完整性的所有的行規(guī)則,。這些違反規(guī)則的情況通過完整性視圖確定,。如果完整性視圖沒有行,則數(shù)據(jù)質(zhì)量=1,,這意味著沒有違反規(guī)則的情況,;反之,數(shù)據(jù)質(zhì)量=0,,意味著完整性視圖中的行的數(shù)目與原表是一樣的,,目標(biāo)數(shù)據(jù)庫(kù)表每行都是錯(cuò)誤的。當(dāng)兩個(gè)或多個(gè)列不能滿足同一個(gè)規(guī)則時(shí),,仍然只算一次,。
5 結(jié)束語
本文列出了數(shù)據(jù)質(zhì)量下降的原因并仔細(xì)分析了各種因素帶來的影響,介紹了數(shù)據(jù)質(zhì)量檢測(cè)研究的發(fā)展過程并給出不同階段研究人員的成果,,提出了檢查數(shù)據(jù)庫(kù)結(jié)構(gòu)的預(yù)定義規(guī)則并給出設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)該有一組強(qiáng)制執(zhí)行的規(guī)則,,提出了驗(yàn)證數(shù)據(jù)庫(kù)內(nèi)容的流程,對(duì)于以后的數(shù)據(jù)質(zhì)量研究具有指導(dǎo)意義,。
參考文獻(xiàn)
[1] KAPLAN D,, KRISHNAN R, PADMAN R,, et al. Assessing data quality in accounting information systems [C]. Comm. of ACM,, 1998:41-78.
[2] BLAHA M. A manager′s guide to database technology building and purchasing better Applications[M]. Englewood Cliffs:Prentice-Hall, 2001.
[3] DATE C J. An introduction to database systems[M]. Addison-Wesley Pub,, Reading Mass,, 1975.
[4] KUBICA J, MOORE A.Probabilistic noise identification and data cleaning[C]. In:Proc.of the Third IEEE Conference on Data Mining,,2003:22-39.
[5] HUANG K T,, LEE Y W, WANG R Y.Quality information and knowledge management[M]. New Jersey: Prentice Hall,,1998.
[6] HAINAUT J L. Strategies for data reengineering[C]. IEEE Proc. of 9th WCRE, Richmond,, 2002:26-63.
[7] DAVIS K. Step by step data model reverse engineering [C]. Proc. of 2nd WCRE,, IEEE Computer Society Press, Toronto, 1995:317-330.
[8] PREMERLENI W,, BLAHA M. An approach for reengineering of relational databases[C]. Comm. of ACM,, 1994:42-79.
[9] CODD E F. A relational model of data for large shared data banks [C]. CACM,1970:377-390.
[10] AIKEN P,, MUNTZ A,, RICHARDS R. DOD legacy systems reverse engineering data requirements[C]. Comm. of ACM,1994,,2(5):26-63.
[11] WAND Y,, WANG R. Anchoring data quality dimensions in ontological foundations[C]. Comm. of ACM, 1996,,11(11):86-125.
[12] ORR K. Data quality and system theory[C]. Comm. of ACM,, 1998,2(2):66-107.
[13] REDMAN T. The impact of poor data quality on the typical enterprise[C]. Comm. of ACM,, 1998,, 2(2):79-120.
[14] WANG R. Total data quality management[C]. Comm. of ACM, 1998,,2(2):58-99.
[15] YONG J K,, KISHORE R, SANDERS G L. From DQ to EQ-understanding data quality in the context of E-business systems[C]. Comm. of ACM,, 2005:75-123.