資料庫健
發布時間: 2023-07-08 03:41:44
A. SQL關系資料庫設計理論中提到的超健和候選鍵的概念怎麼理解,很抽象。
超鍵就是指一組欄位可以唯一確定一條數據,而候選鍵是最簡潔的超鍵,也就是只有必要欄位,
舉例來說明,假如有一個班級,班級中沒有同名的學生,有如下一張表。
std_id last_name first_name gender score
10001 張 三 男 85
10002 李 四 男 86
10005 妹 子 女 95
10006 李 三 男 88
這張表裡,因為我們前面說到這個班級里沒有同名的學生。
因此last_name+first_name就是一個超鍵,因為可以唯一確定一行數據,同時也是一個候選鍵,因為這兩個欄位去掉任何一個都不再能唯一確定一行數據。
更明顯的區別在於,last_name+first_name+gender還是一個超鍵,但是已經不再是候選鍵了,因為在確定唯一一條數據的時候,gender不是必要的欄位。
也就是說候選鍵是可以唯一確定一條數據的必要欄位的最小集合,而候選鍵加上任何的額外欄位都是超鍵。
在上面的例子中,std_id自己就是一個候選鍵,std_id+任何額外的欄位都是候選鍵。
同時從習慣而言,一般會把這種std_id欄位定義為主鍵,主鍵並不一定只是一個欄位,如果我們上面的表增加一列班級id(class_id),同時加入每個班級中的std_id都是從10001開始的話,我們就可以用class_id+std_id來作為主鍵。
自己的理解,希望可以幫到題主。
熱點內容