天天看點

菜鳥學資料庫——超鍵、候選鍵、主鍵、外鍵

這些年的一些經曆告訴我,很多初學者搞不清超鍵、候選鍵等,被資料庫中的各種鍵搞的一頭霧水。下面就跟大家一起聊聊資料庫中的那些鍵。

首先看看各種鍵的定義:

超鍵(super key):在關系中能唯一辨別元組的屬性集稱為關系模式的超鍵

候選鍵(candidate key):不含有多餘屬性的超鍵稱為候選鍵

主鍵(primary key):使用者選作元組辨別的一個候選鍵程式主鍵

外鍵(foreign key)如果關系模式r1中的某屬性集不是r1的主鍵,而是另一個關系r2的主鍵則該屬性集是關系模式r1的外鍵。

結合執行個體的具體解釋:

假設有如下兩個表:

學生(學号,姓名,性别,身份證号,教師編号)

教師(教師編号,姓名,工資)

超鍵:

由超鍵的定義可知,學生表中含有學号或者身份證号的任意組合都為此表的超鍵。如:(學号)、(學号,姓名)、(身份證号,性别)等。

候選鍵:

候選鍵屬于超鍵,它是最小的超鍵,就是說如果再去掉候選鍵中的任何一個屬性它就不再是超鍵了。學生表中的候選鍵為:(學号)、(身份證号)。

主鍵:

主鍵就是候選鍵裡面的一個,是人為規定的,例如學生表中,我們通常會讓“學号”做主鍵,教師表中讓“教師編号”做主鍵。

外鍵:

外鍵比較簡單,學生表中的外鍵就是“教師編号”。外鍵主要是用來描述兩個表的關系。

其實這些鍵還是比較容易區分的,隻是初學者一下子看到好幾個名字相似的概念,容易自己把自己搞暈,自己給自己制造困難。多讀兩遍定義,然後結合執行個體很容易就能把它們區分開。希望這篇文章可以給一些初學者一點點的幫助。

---------------------

作者:劉水鏡

版權聲明:本文為部落客原創文章,轉載請附上博文連結!