2011-03-28 85 views
2

我們在不斷更新外部資源的多個mysql數據庫中有大量的數據。 是否有一些軟件(最好是基於PHP的),我們可以根據數據庫定義規則來測試,例如數據的正則表達式,更新頻率,缺失數據等等。)並定期運行檢查以報告出現了問題或數據中的趨勢發生了變化?是否有數據完整性測試軟件?

+2

是的。這就是所謂的程序。壞消息是你必須自己寫!嚴重的是,您的數據與您的業務規則。難道這些檢查和限制是否已經到位以強制執行完整性和清潔? – 2011-03-28 09:33:04

+0

我沒有問題寫它,但然後我必須保持它,照顧重複警報和東西。因爲我知道業務規則,所以爲此編寫整個基礎結構沒有任何意義。業務規則很容易定義,當它有一個用戶界面。 – Nir 2011-03-28 09:40:17

回答

0

STFW怎麼樣?谷歌搜索「MySQL數據質量」所帶來的(等等)的鏈接, http://www.talend.com

否則,我會看一下數據倉庫工具 - Oracle倉庫構建例如有數據審覈的機制。

親切的問候,弗蘭克

0

如果您有不與外鍵連接多個數據庫表,那麼你應該添加和使用他們的數據的完整性。

如果你有很多的PL/SQL代碼,那麼你需要進行單元測試(是的,DB也需要測試)。所以最終你會最終得到定期運行你的測試的「持續集成」。是的,你必須自己寫它

請參閱http://www.slideshare.net/antonkeks/database-refactoring欲瞭解更多信息。

如果你不得不同步數據庫,那麼我建議使用SQLYog。

+0

OP在詢問MySQL,所以我猜他們沒有任何PL/SQL代碼(對於那些不熟悉它的人:PL/SQL是Oracle對SQL語言的程序擴展) – 2011-03-28 10:37:52

+0

MySQL確實有存儲過程並且擁有由Oracle提供。你可以說它有它的程序語言。 – 2011-03-28 11:22:42

0

如果您已經正確設計了數據庫,則不存在許多數據完整性問題。這意味着要完成設置PK/FK關係,數據約束,正確的數據類型,觸發器等的工作。這尤其意味着你永遠不會認爲應用程序會處理所有這些。這可能意味着設置工作來檢查某些類型的數據輸入並通知某人可能存在問題。這可能意味着修改所有數據導入以使用標準的一組清理例程。這可能意味着創建一種識別和合並重復記錄的方法(所有複雜的數據庫都應該有一個寫入的重複數據刪除應用程序,以便用戶可以創建關於保留哪些數據的信息以及發現重複信息時保存哪些數據)。

如果您沒有正確設計數據庫,則需要根據業務規則逐個設置數據庫中的數據,隨時修復不良數據。開發人員無法正確設計的問題並不容易。由於每個數據庫的需求都非常不同,我所知道的任何人都沒有自動化的方法來執行所有完整性規則,這是數據庫設計人員在設計數據庫時所做的大部分工作。我根本不相信任何COTS計劃要做到這一點,要麼是基於我曾經有過不愉快的支持的每個COTS數據庫設計得有多糟糕。