外鍵:通常使用主鍵作為外鍵,也可以使用唯一標記行的多個列作為外鍵;
外鍵約束:為了維護表數據的完整(正確)性:
ALTER TABLE Student
ADD CONSTRAINT FK_Teacher_Id --添加約束及約束名
FOREIGN KEY (TeacherId) --約束類型:外鍵,外鍵列為TeacherId
REFERENCES Teacher(Id) --外鍵表為Teacher,外鍵列為Teacher上的Id
外鍵約束包括:
1,在主表上添加/修改數據時,不能使用從表上不存在的外鍵值;
2,在從表上更改/刪除外鍵值時,確保該值未被主表外鍵引用;
主表上的外鍵可以為null,可以重復;
當兩張表建立主/從關系,要注意操作數據的順序:
1,增:先從表,再主表
2,刪:先改主表外鍵,再刪從表
3,改:沒有順序,但主/從表要一致
三大范式:
目的:減少冗余,保證數據庫的一致性;
1,關系中的每個屬性都不可再分
2,一行數據,所有非主鍵列都只有對主鍵完全依賴
3,在第二式基礎上消除傳遞依賴
ER模型:
在關系型數據庫上實現的,分為:
實體:由屬性組成,通常就是一行數據;
屬性:實體的特征,表現成列;
關系:實體與實體之間的關聯;
所有關系被抽象為三類:
一對一(一個學生,有且僅有一個詳細地址);
一對多(一個學生,有年齡,性別,身高,體重等);
多對多(一個學生有多個老師,一個老師有多個學生);
