多張表的數據庫設計

模式(SCHEMA)是對數據庫內的數據描述(列和表),以及任何相關對象和各種連接方式的描述。

1 外鍵

外鍵是表中的某一列,它引用用另一個表的主鍵
關於外鍵:
(1)外鍵可能與它引用的主鍵名稱不同
(2)外鍵使用的主鍵也稱爲父鍵,主鍵所在的表又稱爲父表
(3)外鍵能用於確認一張表中的行與另一表中的行相對應
(4)外鍵的值可以值NULL,即使主鍵值不可爲NULL
(5)外鍵值不需要唯一,事實上,外鍵通常不唯一
外鍵爲NULL,表示在父表中沒有相符的主鍵,要確認外鍵包含意義、已存儲在父表中,可以通過約束實現。
插入外鍵列的值必須已經存在父表的來源表中,這是引用完整性
創建外鍵的方法
方法一:

create table emp(
emp_id char(8) primary key, 
emp_name char(30) 
);
create table salary(
id char(8), 
salary float, 
foreign key (id) references emp (emp_id) 
);

方法二:

alter table TABLE_NAME
add constraint FK_TABLE_NAME 
foreign key (AA) references TABLE_NAME2 (AA);

2 表與表之間的關係

表間的關係:一對一、多對一、多對多
連接表(junction table):遇到多對多關係,可以在中間新建表以滿足範式的要求,減少重複數據。
組合鍵由多個列組成的主鍵。

3 函數依賴

當某列的數據必須隨着另一列的數據的改變而改變時,表示第一列函數依賴於第二列。
T.xT.y  表示在關係表T  中,y  列函數依賴於x 
部分函數依賴指非主鍵的列依賴於組合主鍵的某個部分(但不是完全依賴於組合主鍵)
傳遞函數依賴指如果改變任何非鍵列可能造成其他列的改變

4 範式

第一範式(1NF)
規則1:每個數據行必須包含具有原子性的值
規則2:每個數據行必須有獨一無二的識別項——主鍵
第二範式(2NF)
規則1:先符合1NF
規則2:沒有部分函數依賴性
只要所有列都是主鍵的一部分或者表中有唯一主鍵列符合1NF的表也符合2NF
第三範式(3NF)
規則1:符合2NF
規則2:沒有傳遞函數依賴性

發佈了76 篇原創文章 · 獲贊 26 · 訪問量 19萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章