1. 資料庫求關系模式中的候選鍵問題
選擇B。
詳解:
超鍵(super key):在關系中能唯一標識元組的屬性集稱為關系模式的超鍵
候選鍵(candidate key):不含有多餘屬性的超鍵稱為候選鍵
根據定義來說講也就是說我們沒有C列的值也可以唯一的標識一條數據實體。
具體的解說:
選擇A的話(第二列數據實例A1B1與第四列數據實例相同)不符合定義所以錯誤
選擇C的話(第一列數據實例A1C1D1與第三列數據實例相同)不符合定義所以錯誤
選擇D的話(第二列數據實例A2B1C1與第四列數據實例相同)不符合定義所以錯誤
希望能幫到你!
2. 資料庫候選鍵的問題
候選鍵的嚴格定義:關系模式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是一外鍵(或主鍵),那麼第二個答案不可以作為單獨的答案
原題是什麼?可以貼圖?感覺答案不對呀
3. 在關系資料庫中,候選鍵到底是什麼,有什麼用,與通常說的聯合主鍵有何區別
候選鍵就是表中的唯一鍵,因為主鍵可以唯一標識數據行,所以把唯一鍵又稱作候選鍵
唯一鍵是一種約束,可以強制鍵值唯一,跟主鍵差不多
聯合主鍵則是由多個鍵值共同唯一確定數據行,比如列1與列2為聯合主鍵,那麼他們的值可以是(1,1)(1,2)(2,1)(2,2)
只有列1與列2同時與已有值重復才是違反約束
4. 超鍵(super key)、候選鍵(candidate key)和主鍵(primary key) 外鍵(foreign key)的區別
超鍵(super key):在關系中能唯一標識元組的屬性集稱為關系模式的超鍵
候選鍵(candidate key):不含有多餘屬性的超鍵稱為候選鍵
主鍵(primary key):用戶選作元組標識的一個候選鍵程序主鍵
比如一個小范圍的所有人,沒有重名的,考慮以下屬性
身份證 姓名 性別 年齡
身份證唯一,所以是一個超鍵
姓名唯一,所以是一個超鍵
(姓名,性別)唯一,所以是一個超鍵
(姓名,性別,年齡)唯一,所以是一個超鍵
--這里可以看出,超鍵的組合是唯一的,但可能不是最小唯一的
身份證唯一,而且沒有多餘屬性,所以是一個候選鍵
姓名唯一,而且沒有多餘屬性,所以是一個候選鍵
--這里可以看出,候選鍵是沒有多餘屬性的超鍵
考慮輸入查詢方便性,可以選擇 身份證 為主鍵
也可以 考慮習慣 選擇 姓名 為主鍵
--主鍵是選中的一個候選鍵