候選鍵資料庫
發布時間: 2024-06-28 03:25:47
Ⅰ 資料庫候選鍵的問題
sql">候選鍵的嚴格定義:關系模式R(u)的屬性集合K∈u的候選鍵,如果
(1)R(u)的任何一個關系實例的任意兩個元素在屬性集合K上的值部不相同————唯一性
(2)K的任何真子集都不滿足條件————最小性
換句話說:選鍵(candidatekey)就是不含有多餘屬性的超鍵稱為候選鍵
示例:
在SQLServer資料庫中,有一個學生信息表如下所示,在該表中不能作為候選鍵的屬性集合為()(選擇一項)
學號姓名性別年齡系別專業
20020612李輝男20計算機軟體開發
20060613張明男18計算機軟體開發
20060614王小玉女19物理力學
20060615李淑華女17生物動物學
20060616趙靜男21化學食品化學
20060617趙靜女20生物植物學
a){學號}
b){學號、姓名}
c){年齡、系別}
d){姓名、性別}
e){姓名、專業}
答案分析:a)是主鍵,作為用戶正在使用的候選鍵來惟一標識元組
b)如果我們不使用姓名也可以惟一的標識一條數據實體,可以說姓名欄位在這里是多餘的。那麼很明顯,b選項包含了多餘欄位屬性。那麼這題答案應該選擇b
我們來看原題:個關系R裡面,有A,B→C;A,B→D;C→B;D→E
(1)由A,B可以確定C
由A,B可以確定D
可以確定是A,B是最小原則,所以A是侯選建
(2)再由C確定B,假設C是上例的name欄位,而B是一外鍵(或主鍵),那麼第二個答案不可以作為單獨的答案
原題是什麼?可以貼圖?感覺答案不對呀
Ⅱ 資料庫中什麼是候選鍵
資料庫中候選鍵的定義:
候選鍵是對具有關系鍵特性的一個或多個屬性(組)的統稱。
它需要同時滿足下列兩個條件:
1.這個屬性集合始終能夠確保在關系中能唯一標識元組。
2.在這個屬性集合中找不出合適的子集能夠滿足條件。
滿足第一個條件的屬性集合稱為超鍵,因此也可以把候選鍵定義為"最小超鍵",即不含有多餘屬性的超鍵。
例如下列學生表中「學號」或「圖書證號」都能唯一標識一個元組,則「學號」和「圖書證號」都能唯一地標識一個元組,則「學號」和「圖書證號」都可作為學生關系的候選鍵。
而在選課表中,只有屬性組「學號」和「課程號」才能唯一地標識一個元組,則候選鍵為(學號,課程號)。
Ⅲ 資料庫裡面的主鍵和外鍵及候選鍵是什麼意思啊
1、主鍵(primary key)吧:一張表(關系)的一個列(屬性)或多個列可以作為主鍵,但是前提是讓這個列作主鍵,這個列就能保證該列下的各個行(元組)的值不能相同,比如說用姓名屬性作主鍵的話,那麼這個主鍵就不一定可以,如果有兩個人是同樣的名字的話,就不能做到該屬性下的各個元組數據的值不同,如果用阿拉伯數字作主鍵就是一個很好的選擇。
2、外鍵(foreign key):一張表(關系)的列(屬性)它同時存在表1和表2中,它不是表1的主鍵,而是表2的主鍵,就可以說他是表1的外鍵。
3、候選鍵(Candidate Key):能唯一標識表(關系)中行(元組)的列(屬性),則稱該屬性為候選鍵,也稱 候選關鍵字 或 候選碼;由此來看候選鍵可以不只一個,還看一看得出的就是主鍵同時它也是候選鍵。
熱點內容