回覆列表
  • 1 # 程式碼接盤俠

    碼:唯一標識實體的屬性或屬性組合稱為碼。

    超碼:某一個能夠唯一標識一條記錄的屬性或屬性集。

    候選碼:某一個屬性組的值能夠唯一的標識一個元組,而其子集不能,則稱該屬性組為候選碼,候選碼是一類特殊的超碼,包含候選碼的屬性組一定是超碼。

    主碼:若一個關係中有多個候選碼,則選定其中的一個為主碼。

    主屬性:候選碼屬性組中的各個屬性稱為主屬性。

    非主屬性:不包含在候選碼中的屬性稱為非主屬性。

    全碼:關係模式的所有屬性是這個關係的候選碼,則稱該屬性組為全碼。

    例子:學生表(學號、姓名、性別、年齡、班級、系)

    學號可以唯一的標識出一個同學的身份,我們可以設定學號為主碼。是最簡單的候選碼。

    當姓名不重複的時候姓名也可以作為唯一標識,也可以用來作為候選碼,所以姓名也可以作為候選碼。以此類推,最極端的情況是全表都用來做主碼,這時的主碼也叫全碼。

    所以這裡候選碼可以是學號,或者姓名(前提是姓名不重複),但是學號+姓名不是候選碼,由於它的子集例如學號,姓名能唯一標識一個元組,故不符合定義,它是超碼,也就是說候選碼中的所有屬性都是必須的,缺少了任何一個屬性,就不能唯一標識一個元組了,候選碼是可以唯一標識一個元組的最少的屬性集合。而超碼是沒有最少屬性這個要求的。

    由主碼的定義可知,主碼可以從這兩者者之間選擇一個即可。主屬性為候選碼屬性組之間的各個屬性,例如,候選碼:學號,主屬性為學號,非主屬性為姓名,性別,年齡,班級,系

    注意:主屬性不能唯一的標識一個元組,而主碼必定能夠標識(因為主碼必定是候選碼),兩者是不同的。

  • 中秋節和大豐收的關聯?
  • 蘋果xmax原裝充電器充電需要三個小時才能充滿,大家有什麼快充方案嗎?便宜安全?