1. 程式人生 > >數據庫範式以及ER圖

數據庫範式以及ER圖

函數依賴 gpo 地址 每一個 可能 3nf 實例 值範圍 存在

數據庫範式包括第一、第二、第三以及BCNF範式,關於範式的探討,博主在知乎上看見了一篇很不錯的文章,分享文中,這邊就不再做闡述。地址:https://www.zhihu.com/question/24696366

在這邊列出一些數據庫的定義:

1.關系模型:用二維表格結構表示實體集,外鍵表示實體間聯系的數據模型稱為關系模型。關系模型是由若幹個關系模式組成的集合。
2.關系模式:關系模式實際上就是記錄類型。它包括:模式名,屬性名,值域名以及模式的主鍵。關系模式僅是對數據特性的描述。
3.關系實例:就是一個關系,即一張二維表格。
4.屬性:在關系模型中,字段稱為屬性。
5.域:在關系中,每一個屬性都有一個取值範圍,稱為屬性的值域。
6.元組:在關系中,記錄稱為元組。
7.候選碼:在關系中能唯一標識元組的最小屬性集稱為關系模式的候選碼。
7.主屬性:存在於候選碼(一個候選碼可能是多個屬性)中的某一屬性。
8.主碼:用戶選作元組標識的一個候選碼為主碼。
9.外碼:某個關系的主碼相應的屬性在另一關系中出現,此時該主碼在就是另一關系的外碼,如有兩個關系S和SC,其中S#是關系S的主碼,相應的屬性S#在關系SC中也出現,此時S#就是關系SC的外碼。

1NF:屬性沒有再分(例如人有電話號碼的屬性,裏面存了一個串,用的時候要求前半部是家庭號碼,後半部是公司號碼,。就不符合1NF)

2NF:非主屬性直接完全依賴或間接完全依賴候選鍵。(不可部分依賴候選鍵)(不符合就會數據冗余,更新異常,插入異常,刪除異常)

3NF:非主屬性直接完全依賴候選鍵。(不符合就會數據冗余,更新異常,插入異常,刪除異常)

BCNF:非主屬性直接完全依賴候選鍵,主屬性對不包含它的鍵是直接完全函數依賴。

數據庫設計可分為三步:

1. 畫E-R圖

2. 將E-R圖轉化為某一模式的數據(關系模式)

3. 根據範式分析調整關系模式,使其符合某一範式

對這個設計流程,博主在另外一篇博文上找到了幾個例子來幫助大家理解,地址:http://wenzongliang.iteye.com/blog/2204577

數據庫範式以及ER圖