數據庫範式記錄

異常

不符合範式的關係,會產生很多異常,主要有以下四種異常:

冗餘數據:例如 學生-2 出現了兩次。

修改異常:修改了一個記錄中的信息,但是另一個記錄中相同的信息卻沒有被修改。

刪除異常:刪除一個信息,那麼也會丟失其它信息。例如刪除了 課程-1 需要刪除第一行和第三行,那麼 學 生-1 的信息就會丟失。

插入異常:例如想要插入一個學生的信息,如果這個學生還沒選課,那麼就無法插入。

 

範式

範式理論是爲了解決以上提到四種異常。 第一範式(1NF)、第二範式(2NF)、第三範式(3NF)、巴斯-科德範式(BCNF)、第四範式(4NF)、第五範式(5NF)。高級別範式的依賴於低級別的範式,1NF 是最低級別的範式。

1NF:

屬性不可分。

2NF:

第二範式(Second Normal Form,2nd NF)是指每個表必須有一個(而且僅有一個)數據元素爲主關鍵字(Primary key),其他數據元素與主關鍵字一一對應。

通常稱這種關係爲函數依賴(Functional dependence)關係,即表中其他數據元素都依賴於主關鍵字,或稱該數據元素惟一地被主關鍵字所標識。其改進是,2NF在1NF的基礎之上,消除了非主屬性對於碼的部分函數依賴

3NF:

第三範式(Third Normal Form,3rd NF)就是指表中的所有數據元素不但要能惟一地被主關鍵字所標識,而且它們之間還必須相互獨立,不存在其他的函數關係。也就是說,對於一個滿足 2NF 的數據結構來說,表中有可能存在某些數據元素依賴於其他非關鍵字數據元素的現象,必須消除。

通俗的說,第三範式(3NF)3NF在2NF的基礎之上,消除了非主屬性對於碼的傳遞函數依賴。也就是說, 如果存在非主屬性對於碼的傳遞函數依賴,則不符合3NF的要求。

BCNF:

在某些特殊情況下,即使關係模式符合 3NF 的要求,仍然存在着插入異常,修改異常與刪除異常的問題,仍然不是 ”好“ 的設計。

造成此問題的原因:存在着主屬性對於碼的部分函數依賴與傳遞函數依賴。

解決辦法就是要在 3NF 的基礎上消除主屬性對於碼的部分與傳遞函數依賴

這樣,之前的插入異常,修改異常與刪除異常的問題就被解決了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章