簡介
在關係資料庫系統中,基於數據依賴機率可以更嚴格地定義鍵碼如下:設有關係模式R,若有屬性組K使得對於R的任意屬性A,K 函式決定A,而K的任何真子集K′都不能函式決定A,則稱K為R的候選鍵碼。當候選鍵碼多於一個時,則選定其中一個為主鍵碼。
在關係資料庫系統中,如果關係R2的一個屬性(或屬性組)的值與另一個關係R1的主鍵碼的值相對應,則稱 R2中的這個屬性(或屬性組)為外鍵碼。例如,有下面的兩個關係:
部門(部門號,部門名,部門地址)
職工(職工號,職工名,部門號)
“職工”關係的“部門號”與“部門”關係的主鍵碼“部門號”相對應,因此“職工”關係中的“部門號”為外鍵碼。鍵碼是資料庫系統中的重要概念。它是信息檢 索的依據。給定鍵碼值作為檢索條件,則檢索的結果是至多一個記錄或元組值。關係資料庫中外鍵碼與主鍵碼的對應是關係之間聯繫的體現,它反映了一個關係中的元組對另一個關係中的元組的參照。
具體介紹
超鍵(super key):在關係中能獨立標識元組的屬性集稱為關係模式的超鍵。
候選鍵(candidate key):不含有多餘屬性的超鍵稱為候選鍵。
主鍵(primary key):用戶選作元組標識的一個候選鍵程式主鍵。
外鍵(foreign key):如果關係模式R1中的某屬性集不是R1的主鍵,而是另一個關係R2的主鍵則該屬性集是關係模式R1的外鍵。
主屬性:候選鍵中的屬性為主屬性。
非主屬性:不包含在候選鍵中的屬性為非主屬性。
假設有如下兩個表:
學生(學號,姓名,性別,身份證號,教師編號)
教師(教師編號,姓名,工資)
超鍵:
由超鍵的定義可知,學生表中含有學號或者身份證號的任意組合都為此表的超鍵。如:(學號)、(學號,姓名)、(身份證號,性別)等。
候選鍵:
候選鍵屬於超鍵,它是最小的超鍵,就是說如果再去掉候選鍵中的任何一個屬性它就不再是超鍵了。學生表中的候選鍵為:(學號)、(身份證號)。
主鍵:
主鍵就是候選鍵裡面的一個,是人為規定的,例如學生表中,我們通常會讓“學號”做主鍵,教師表中讓“教師編號”做主鍵。
外鍵:
外鍵比較簡單,學生表中的外鍵就是“教師編號”。外鍵主要是用來描述兩個表的關係。