菜鳥學數據庫——超鍵、候選鍵、主鍵、外鍵


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

 

首先看看各種鍵的定義:

 

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

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

主鍵(primary key):用戶選作元組標識的一個候選鍵程序主鍵

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

 

結合實例的具體解釋:

 

假設有如下兩個表:

學生(學號,姓名,性別,身份證號,教師編號)

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

 

超鍵:

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

 

候選鍵:

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

 

主鍵:

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

 

外鍵:

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

 

其實這些鍵還是比較容易區分的,只是初學者一下子看到好幾個名字相似的概念,容易自己把自己搞暈,自己給自己制造困難。多讀兩遍定義,然后結合實例很容易就能把它們區分開。希望這篇文章可以給一些初學者一點點的幫助。
---------------------
作者:劉水鏡
來源:CSDN
原文:https://blog.csdn.net/liushuijinger/article/details/12832017
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM