步驟6:確定候選鍵( Candidate Key)、主鍵(Primary Key)
這一步的目標(biāo)就是為每個(gè)實(shí)體標(biāo)識候選鍵,然后從中選擇一個(gè)作為主鍵。
從候選鍵中選擇主鍵應(yīng)遵循以下原則:
1)相對簡單的候選鍵。例如,若“A”及“(B,C)”都是候選鍵,則“A”比較簡單。
2)值很少變化的候選鍵。
3)在未來一直都具有唯一性的候選鍵。
4)關(guān)于鍵值,對文本來說選取字符最少,對數(shù)字來說選取最大值最小的候選鍵。
子表的行數(shù)一般比較多,字表的外鍵所占空間越少越好。
5)若同時(shí)存在字符、數(shù)字型候選鍵,則優(yōu)先選擇數(shù)字型候選鍵作為主鍵。
6)從用戶的觀點(diǎn)選擇最易于使用的候選鍵。
當(dāng)從候選鍵中確定了主鍵之后,其余的候選鍵則稱為替換鍵( Alternate Key)。
在上面的例子中,“機(jī)構(gòu)”實(shí)體中只有“機(jī)構(gòu)標(biāo)識”是候選鍵,因此也就是該實(shí)體的主鍵;同理, “領(lǐng)導(dǎo)班子”的“員工編號”是該實(shí)體的主鍵。實(shí)體主鍵標(biāo)識如圖4-8所示。
因?yàn)橐呀?jīng)在步驟5定義了實(shí)體間的關(guān)系,所以在添加或選定實(shí)體的主鍵時(shí),會自動依據(jù)實(shí)體間的關(guān)系產(chǎn)生有聯(lián)系的實(shí)體的外鍵。有時(shí)為了體現(xiàn)邏輯模型的可讀性,可將實(shí)體里的外鍵改名(改名后稱為外鍵的別名)。另外,可以自動維持外鍵別名與關(guān)聯(lián)的實(shí)體的主鍵之間的參照關(guān)系。