2011-04-25 43 views
1

我真的不想壓縮數據庫。這更是一個合乎邏輯的問題。有什麼算法可以獲取包含許多列和重複數據的數據表,並找到一種方法將它組織成許多帶有ID的表格,從而總共只有儘可能少的單元格,並且此表格可以是然後加入查詢以複製原始的一個。將表格組織成許多表格以減少單元格的算法?

我不關心任何特定的數據庫引擎或語言。我只想看看是否有合理的方式來做到這一點。如果你會發布代碼,我喜歡C#和SQL,但你可以使用任何。

+0

如果你的谷歌的「自動化數據庫規範化」的東西,它應該出現相當數量的文件等。底線是已經完成了相當多的(合理的)成功的研究,但至少到目前爲止,它主要是研究的主題,而不是真正拋光的商業產品。 – 2011-04-25 19:35:03

+0

我一直在讀一點。顯然,我需要的是第一種正常形式,不應該那麼辛苦。這些算法專注於達到NF3或更多我認爲。 – Juan 2011-04-26 07:15:57

回答

1

我不知道任何自動算法,但你真正需要做的是嚴重規範你的數據庫。這意味着查看您的實際功能依賴關係,並在有意義的地方將其關閉。

試圖在計算機程序中執行此操作的問題是,如果您當前的一組存儲數據代表所有可能的問題情況,並不總是很清楚。你不能只看數值的數值。例如,將布爾變成自己的桌子是沒有意義的,因爲它們只有兩個值,而這只是冰山一角。

我認爲在這一點上,沒有什麼可以打敗好的耐心,手工正常化。這是手工完成的。任何可能的計算機算法都會讓事情變得混亂,或者讓你定義關係,以至於你自己也可以自己做。