一、講解
首先說明 鍵字=碼字,所以 主鍵=主碼=主關鍵字,候選鍵=候選碼=候選關鍵字...
所謂關係鍵,指的是乙個表中的乙個(或一組)屬性,用來標識該錶的每一行或與另乙個表產生聯絡。
話不多說,上圖:
相信這個圖已經畫得很清晰了,下面逐一解釋:
1、碼=超鍵:能夠唯一標識一條記錄的屬性或屬性集。
標識性:乙個資料表的所有記錄都具有不同的超鍵
非空性:不能為空
有些時候也把碼稱作「鍵」
2、候選鍵=候選碼:能夠唯一標識一條記錄的最小屬性集
標識性:乙個資料表的所有記錄都具有不同的候選鍵
最小性:候選鍵的任何子集都不能唯一標識乙個記錄
非空性:不能為空
候選鍵是沒有多餘屬性的超鍵
舉例:學生id是候選碼,那麼含有候選碼的都是碼。
少部分地方也有叫超級碼的,但是見得不多
3、主鍵=主碼:某個能夠唯一標識一條記錄的最小屬性集(是從候選碼裡人為挑選的一條)
唯一性:乙個資料表只能有乙個主鍵
標識性:乙個資料表的所有記錄都具有不同的主鍵取值
非空性:不能為空
人為的選取某個候選碼為主碼
4、主屬性 簡單來說,主屬性是候選碼屬性的並集
非主屬性 不包含在候選碼中的屬性稱為非主屬性。 非主屬性是相對於主屬性來定義的。
5、外來鍵(foreign key):子資料表**現的父資料表的主鍵,稱為子資料表的外來鍵。
6、**鍵:當不適合用任何乙個候選鍵作為主鍵時(如資料太長等),新增乙個沒有實際意義的鍵作為主鍵,這個鍵就是**鍵。(如常用的序號1、2、3)
7、自然鍵:自然生活中唯一能夠標識一條記錄的鍵(如身份證)
二、例子
下面舉例說明
學生成績資訊表中有(學號、姓名、性別、年齡、系別、專業等)
超鍵/碼:
學生表中含有學號或者身份證號的任意組合都為此表的超鍵。如:(學號)、(學號,姓名)、(學號,性別)等
我們假設學生的姓名唯一,沒有重名的現象。
學號唯一,所以是乙個超鍵
姓名唯一,所以是乙個超鍵
(姓名,性別)唯一,所以是乙個超鍵
(姓名,年齡)唯一,所以是乙個超鍵
(姓名,性別,年齡)唯一,所以是乙個超鍵
候選鍵:
學號唯一,而且沒有多餘屬性,所以是乙個候選鍵
姓名唯一,而且沒有多餘屬性,所以是乙個候選鍵
(姓名,性別)唯一,但是單獨姓名乙個屬性就能確定這個人是誰,所以性別這個屬性就是多餘屬性,所以(姓名,性別)不是候選鍵
(姓名,年齡),(姓名,性別,年齡)同上,也不是候選鍵
主鍵: 主鍵就是候選鍵裡面的乙個,是人為規定的,例如學生表中,我們通常會讓「學號」做主鍵,學號能唯一標識這乙個元組。
外來鍵: 外來鍵就很簡單了,假如我們還有乙個教師表,每個教師都有自己的編號,假設老師編號在老師這個層次中是主鍵,在學生表中它就是外來鍵。
資料庫 外來鍵
外來鍵是什麼?外來鍵 fk 是用於建立和加強兩個表資料之間的鏈結的一列或多列。通過將儲存表中主鍵值的一列或多列新增到另乙個表中,可建立兩個表之間的鏈結。這個列就成為第二個表的外來鍵。外來鍵資料庫一級的完整性約束,由資料庫自行維護.你也可以手動建立.1如果存在外來鍵關係的話,任何修改主表主鍵欄位和刪除...
資料庫原理 鍵
鍵的定義 所有的鍵都是乙個集合,這個集合可以包括乙個集,也可以是多個集。超鍵 super key 在關係中能惟一標識元素屬性的集稱為關係模式的超鍵。候選鍵 candidate key 不含有多餘屬性的超鍵稱為候選鍵。也就是說在候選鍵中在刪除屬性,就不是鍵了。主鍵 primary key 使用者選作元...
資料庫外來鍵
主鍵 能夠唯一標識表中某一行的屬性或屬性組。乙個表只能有乙個主鍵,但是可以有多個索引。主鍵常常與外來鍵構成完整性約束,防止出現資料的不一致,資料庫管理系統對於主鍵自動生成唯一索引,所以主鍵是乙個特殊的索引。外來鍵 用於建立和加強兩個表資料之間的連線的一列或者多列。外來鍵主要是用來維護兩個表之間的資料...