2

我正在尋找Python代碼,可以採取表格數據,並確定它在哪裏(如果有的話)和顯示任何功能依賴關係,等等用於確定哪些正常形式表格數據在Python代碼

+0

請解釋你在問什麼。也許包括例子。 – Brian 2010-01-28 20:01:36

+0

我認爲他在談論數據庫規範化[http://en.wikipedia.org/wiki/Database_normalization] – 2010-01-28 20:25:28

回答

0

我認爲這段代碼真的很難實現。

查看關於數據庫規範化算法的this question

2

有「標準化」的邏輯測試。但是,它們在編程中並不是小事。它們是強加在數據上的元數據中的關係。他們需要「思考」。

1NF - 無重複組。如何識別「重複組」?這將是一個強加在表的列上的數組結構。這是如何完成的? SQL不提供一種機制,所以你必須查看列名來檢查「模式」。例如,COL_1,COL_2,COL_3。

1NF - 行的一致佈局。咄。 SQL通過表定義的特性強加了這一點。

2NF - 行中的數據取決於密鑰。你必須做一個這樣的程序。

For each non-key column: 
    Query distinct pairs (Key and the non-key column) 
    Do all non-key values depend in a consistent way on a key value? 
    Can you build a simple dict mapping non-key to key? 

完整的算法是在這裏:http://en.wikipedia.org/wiki/Relational_model#Set-theoretic_formulation

3NF - 數據在一排只依賴於關鍵。這更糟糕,因爲您必須將非鍵列的所有組合與非鍵列的所有組合進行比較,以確保值之間不存在非鍵相關性。

4NF和5NF讓我迷惑,所以我會在這裏停下來。

我的觀點是 - 理論上 - 你可以做到。實際上,大量複雜的數據排列聲稱正常形式的關係實際上持有。

對某個特定的違規行爲進行假設並用一些SQL查詢和某些想法來探究這個問題要容易得多。

正式的數學是在這裏:

http://en.wikipedia.org/wiki/Relational_model

+0

我知道正常的形式是什麼,我只是想知道在Python中是否有預先存在的代碼我寫我自己的。 – 2010-01-30 03:24:37

+0

@詹姆斯陶伯:「我知道什麼是正常的形式......」並不清楚你的問題。對不起所有的冗餘。但是,這個問題似乎並不知情,因爲它通常是通過手工分析模式而不是自動磨削數據來完成的。如果您已經知道,那麼您意識到對於大型數據集,算法可能難以控制。 – 2010-01-30 13:23:46