SQL 超鍵 候選鍵 主鍵 外來鍵的認識和區分

2021-08-28 10:28:48 字數 2973 閱讀 5123

前言:

對於剛學習資料庫的童鞋來說,定會遇到這麼乙個問題,那就是資料庫所說的各種鍵之間的關係以及區別,作為曾經在這個難點上有過痛苦經歷的人來說,印象是比較深刻的,所以在這裡我將我自己心中所了解到的四種鍵做乙個小小的介紹,菜鳥級別的我希望大牛們多多指教指導,不勝感謝!

關係:

超鍵、候選鍵、主鍵和外來鍵的關係:   

請留意這句關於超鍵的定義,首先得是在關係模式中,同時還要是唯一標識元組,而且還是屬性集,只有滿足這三點才能成為超鍵。比如下面這個關係模式:

學生(學號,姓名,性別,專業編號,年齡)

分析:

我們知道通過學號可以找到乙個學生的姓名、性別、專業號、年齡,但是通過姓名不一定能找到這些,比如有重名的,通過性別也不能找到,通過專業號也不行,乙個專業可以有很多學生在學習,通過年齡也不行,所以在上面這個關係模式中只有通過學號才能找到特定學生。

於是(學號,姓名)的組合屬性集就稱為超鍵。因為學號和姓名的組合能找到特定的學生。所以,在這個關係模式中

超鍵是:
(學號)、(學號,姓名、)(學號,性別)、(學號,專業編號)、(學號,年齡)、(學號,姓名,性別)、(學號,姓名,專業編號)、(學號,姓名,年齡)、(學號,姓名,性別,專業編號)、(學號,姓名,性別,年齡)、(學號,姓名,性別,專業編號,年齡)。

作用:

①保證實體的完整性

②加快資料庫的操作速度

③在表中新增新記錄時,表會自動檢查新紀錄的主鍵值,不允許該值與其他記錄主鍵值重複

④表自動按主鍵值的順序顯示表中的記錄,如果沒有定義主鍵,則按輸入記錄的順序顯示表中的記錄

首先得是在關係模式中不必多說了,跟著也是唯一標識元組,值得留意的是它是不含多餘屬性的屬性集(跟超鍵的區別)。比如按照上面給的例子(專業內學生姓名均不同):

學生(學號,姓名,性別,專業編號,年齡)

分析:

這個例子跟上乙個對比的區別就是專業內學生姓名均不同,所以不僅僅通過學號能找到特定的學生,而且還能通過姓名找到特定的學生,性別、專業號、年齡這三個屬性卻不能找到特定的學生。

於是,學號和姓名就成了這個關係模式中的候選鍵,所以在這個關係模式中

候選鍵是:
(學號)、(姓名)

作用:
①保證實體的完整性

②加快資料庫的操作速度

③在表中新增新記錄時,表會自動檢查新紀錄的主鍵值,不允許該值與其他記錄主鍵值重複

④表自動按主鍵值的順序顯示表中的記錄,如果沒有定義主鍵,則按輸入記錄的順序顯示表中的記錄

在候選鍵中隨意選取乙個就可以成為主鍵,還是上面給的例子(專業內學生姓名均不同):

學生(學號,姓名,性別,專業編號,年齡)

分析:

主鍵是建立在候選鍵的基礎上的,所以在上面候選鍵(學號)、(姓名)中隨意選取其中乙個即為主鍵

主鍵是:(學號)或者(姓名)或者(學號,姓名)

作用:

①保證實體的完整性

②加快資料庫的操作速度

③在表中新增新記錄時,表會自動檢查新紀錄的主鍵值,不允許該值與其他記錄主鍵值重複

④表自動按主鍵值的順序顯示表中的記錄,如果沒有定義主鍵,則按輸入記錄的順序顯示表中的記錄

學生(學號,姓名,性別,專業編號,年齡)

專業(專業編號,專業課程,專業老師)

分析:

關係模式學生中的(專業編號)不是關係模式學生中的候選鍵,而是關係模式專業中的候選鍵,所以這個時候稱關係模式學生中的(專業編號)為外來鍵

外來鍵有:

(專業編號)

作用:①使得一張表中的資料不要太過冗餘

②保持資料的一致性和完整性

③加快資料庫的操作速度

舉個栗子1:區別候選鍵和主鍵

公司原來的經理退休,現在有三個候選人:a,b以及c(候選鍵),最終任命選擇了c當經理(主鍵)。在c成為經理之前,他(她)一定是經理候選人,可是一旦他(她)被選為經理,那麼我們就叫他經理,而習慣上就不再稱其為經理候選人了。

舉個栗子2:區別超鍵、候選鍵、主鍵、外來鍵

超鍵(爺爺)候選鍵(爸爸)主鍵(自己)外來鍵(舅舅家的我)

我身上有爺爺的遺傳基因,但是繼承爸爸的遺傳基因更多,外公那邊的遺傳基因只有外公有遺傳,而舅舅和表弟的遺傳基因和我一點關係都沒有

超鍵 候選鍵 主鍵 外來鍵

超鍵 super key 在關係中能唯一標識元組的屬性集稱為關係模式的超鍵 候選鍵 candidate key 不含有多餘屬性的超鍵稱為候選鍵 主鍵 primary key 關係模式中使用者正在使用的候選鍵稱主鍵,主鍵是人為規定的 外來鍵 foreign key 如果關係模式r1中的某屬性集不是r1...

超鍵 候選鍵 主鍵 外來鍵

超鍵 在關係中能唯一標識元組的屬性集稱為關係模式的超鍵。乙個屬性可以為作為乙個超鍵,多個屬性組合在一起也可以作為乙個超鍵。超鍵包含候選鍵和主鍵。候選鍵 是最小超鍵,即沒有冗餘元素的超鍵。主鍵 資料庫表中對儲存資料物件予以唯一和完整標識的資料列或屬性的組合。乙個資料列只能有乙個主鍵,且主鍵的取值不能缺...

Mysql 主鍵 超鍵 候選鍵 外來鍵

超鍵 super key 在關係中能唯一標識元組的屬性集稱為關係模式的超鍵 候選鍵 candidate key 不含有多餘屬性的超鍵稱為候選鍵。也就是在候選鍵中,若再刪除屬性,就不是鍵了!主鍵 primary key 使用者選作元組標識的乙個候選鍵程式主鍵 外來鍵 foreign key 如果關係模...