1

這個問題來自關係數據庫的設計理論。關係數據庫的分解是否可逆

我們知道,接受的方式來消除異常冗餘更新和刪除異常)是分解關係。分解的目標是用幾個不存在異常的關係來代替關係。並且有像BCNF,3NF和用於將數據庫分解成該形式的算法。

那麼我們通常可以說分解過程總是可逆的(即能夠恢復db的初始狀態)?如果是,如何從理論上證明它?

回答

3

模式的「分解」是模式的集合,每個模式都有其屬性的子集。通常情況下,模式伴隨着約束。 「無損」分解是指如果組件中的值是原始屬性在其屬性上的投影,那麼這些組件將回到原始屬性。 (有損分解的組成部分的連接實際上具有原始行的適當超集。)當且僅當某個連接依賴關係成立時,分解纔是無損的。

因此正態化約爲nonloss分解。

雖然我們喋喋不休,只是在上下文中談論「分解」,但我們都知道它是非損失的。

有時候我們發現一個設計是錯誤的,因爲它記錄了更多的數據庫狀態,而不是或者除了原始的我們想要使用有損分解。 (我們可以注意到它正火,但它不是原來的歸一化版本。)

任何學院/大學教科書將這些定義和明確性,可能勾勒出證明。對於證明,參見the Alice book,Abiteboul的數據庫基礎,Hull & Vianu。

+0

您的回答給我帶來了正確的方法。我在「數據庫系統 - 完整的書」中找到了我的答案。謝謝 :) –