複製鏈接
請複製以下鏈接發送給好友

候選鍵

鎖定
在關係模型中,候選鍵又稱候選碼(英語:candidate key),是某個關係變量的一組屬性所組成的集合,它需要同時滿足下列兩個條件:
1.這個屬性集合始終能夠確保在關係中能唯一標識元組。
2.在這個屬性集合中找不出合適的真子集能夠滿足條件。
滿足第一個條件的屬性集合稱為超鍵,因此我們也可以把候選鍵定義為"最小超鍵",即不含有多餘屬性的超鍵。
中文名
候選鍵
外文名
Candidate key
別    名
候選碼
應用學科
數據庫

目錄

候選鍵定義

候選鍵集合

如果關係模式R(u)的屬性集合K ∈u 的候選鍵。
(1)R(u)的任何一個關係實例的任意兩個元素在屬性集合K上的值部不相同————唯一性
(2)K的任何真子集都不滿足條件 ————最小性
通俗點,候選鍵在每一行數據裏的值都不相同,可以説成是候選的主鍵。

候選鍵二維表

候選鍵是唯一標識表中每一行的鍵。候選鍵可以是單列鍵,也可以是複合鍵。
例如下列學生表中“學號”或“圖書證號”都能唯一標識一個元組,則“學號”和“圖書證號”都可作為學生關係的候選鍵。
學號
姓名
性別
年齡
圖書證號
所在系
S3001
張明
22
B20050101
外語
S3002
李靜
21
B20050102
外語
S4001
趙麗
21
B20050301
管理
而在選課表中,只有屬性組“學號”和“課程號”才能唯一地標識一個元組,則候選鍵為(學號,課程號)。 [1] 
學號
課程號
S3001
C1
S3001
C2
S3002
C1
S4001
C3
一個關係可以有多個候選鍵,可以從中選擇一個作為查詢、插入或刪除元組操作了,被選用的候選鍵稱為主關鍵字,或簡稱主鍵,是DBMS用於唯一標識表中每一行的候選鍵。 [2] 

候選鍵相關概念

從超鍵的定義來解釋什麼是候選鍵。
候選鍵 候選鍵
超鍵(super key):在關係中能唯一標識元組的屬性集稱為關係模式的超鍵
候選鍵(candidate key):不含有多餘屬性的超鍵稱為候選鍵。
主鍵(primary key):用户選作元組標識的一個候選鍵作為主鍵。 [3] 

候選鍵應用

在SQL Server數據庫中,有一個學生信息表如下所示,在該表中能作為候選鍵的屬性集合為( ) (選擇一項)
學號 姓名 性別 年齡 系別 專業
20020612 李輝 男 20 計算機 軟件開發
20060613 張明 男 18 計算機 軟件開發
20060614 王小玉 女 19 物理 力學
20060615 李淑華 女 17 生物 動物學
20060616 趙靜 男 21 化學 食品化學
20060617 趙靜 女 20 生物 植物學 
a){學號}
b){學號、姓名}
c){年齡、系別}
d){姓名、性別}
e){姓名、專業}
候選鍵要求是不能包含多餘屬性的超鍵,那麼很明顯,a選項不包含了多餘字段屬性,能夠唯一標識元組。那麼這題答案應該選擇a,那麼其他的4個選項都不能作為候選鍵。
參考資料
  • 1.    周屹 李豔娟.數據庫原理及開發應用(第二版):清華大學出版社,2013:45
  • 2.    2.2.2 候選鍵與主鍵  .讀書頻道[引用日期2016-09-30]
  • 3.    網管之家  .菜鳥從零學習數據庫(四)——超鍵、候選鍵、主鍵、外鍵[引用日期2016-09-30]