1. 程式人生 > >關係資料庫理論,函式依賴,正規化

關係資料庫理論,函式依賴,正規化

針對一個具體的問題,應該如何構造一個適合於它的資料庫模式,即應該構造幾個關係模式,每個關係由哪些屬性組成。

由此引出了關係資料庫理論。
一個有問題的關係模式會帶來:
1.資料冗餘
2.更新異常
3.插入異常
4.刪除異常

一個好的關係模式應當不會發生以上的異常,資料冗餘儘可能的少。

因此需要規範化,由此產生了正規化(在次只說明1~3NF ,BCNF不做討論)
對於正規化,又有了一個新的名詞函式依賴 函式依賴是用來判斷正規化的。

函式依賴分為:非平凡函式依賴 平凡函式依賴 完全函式依賴 部分函式依賴 傳遞函式依賴

首先解釋說明什麼是函式依賴:
不存在兩個元組在屬性X上值相等,而在屬性Y上的值不等。則稱X函式確定Y 或Y函式依賴與X ,X—>Y。
(這有點類似於函式,即x的值確定y。類似於對映只能多個X值對應一個Y,不能一個X對應多個Y)

在這裡注重講解: 完全、部分、傳遞
完全:比如(A,B)—>C,但是A,B單獨不能確定C,則是完全
部分:比如(A,B)---->C,同時A,B當中有一個能單獨確定C,則是部分
傳遞:比如A—>B,B—>C,則存在傳遞依賴A–>C
理解了這三種依賴後對於確定關係模式是第幾正規化就簡單了
1NF:對於一個屬性,不可再分為多個屬性
2NF:基於1NF,不存在部分依賴
3NF:基於2NF,不存在傳遞依賴

最後補充一下關係模式中的碼的概念:
例如:A—>B(完全依賴),則A位候選碼(候選碼可以有多個)。從候選碼中選擇一個為主碼,候選碼是主屬性,其他為非主屬性。

如果有錯誤歡迎指正,如果對於函式依賴不熟悉可以找一些相關的題目進行練習