選碼、主碼、全碼、外碼、主屬性、主鍵、主關(guān)鍵字、非主屬性清晰總結(jié)

一、講解

? ? ? ?首先說明 鍵字=碼字,所以 主鍵=主碼=主關(guān)鍵字,候選鍵=候選碼=候選關(guān)鍵字...

所謂關(guān)系鍵,指的是一個表中的一個(或一組)屬性,用來標識該表的每一行或與另一個表產(chǎn)生聯(lián)系。

話不多說,上圖:


  相信這個圖已經(jīng)畫得很清晰了,下面逐一解釋:

  1、碼=超鍵:能夠唯一標識一條記錄的屬性或?qū)傩约?/p>

標識性:一個數(shù)據(jù)表的所有記錄都具有不同的超鍵

非空性:不能為空

有些時候也把碼稱作“鍵”

  2、候選鍵=候選碼:能夠唯一標識一條記錄的最小屬性集

標識性:一個數(shù)據(jù)表的所有記錄都具有不同的候選鍵

最小性:任一候選鍵的任何真子集都不能唯一標識一個記錄(比如在成績表中(學(xué)號,課程號)是一個候選鍵,單獨的學(xué)號,課程號都不能決定一條記錄)

非空性:不能為空

候選鍵是沒有多余屬性的超鍵

舉例:學(xué)生ID是候選碼,那么含有候選碼的都是碼。

少部分地方也有叫超級碼的,但是見得不多

  3、主鍵=主碼:某個能夠唯一標識一條記錄的最小屬性集(是從候選碼里人為挑選的一條)

唯一性:一個數(shù)據(jù)表只能有一個主鍵

標識性:一個數(shù)據(jù)表的所有記錄都具有不同的主鍵取值

非空性:不能為空

人為的選取某個候選碼為主碼

4、主屬性 ?包含在任一候選碼中的屬性稱主屬性。簡單來說,主屬性是候選碼所有屬性的并集

? ? ??非主屬性 ?不包含在候選碼中的屬性稱為非主屬性。?非主屬性是相對于主屬性來定義的。

5、外鍵(foreign key):子數(shù)據(jù)表中出現(xiàn)的父數(shù)據(jù)表的主鍵,稱為子數(shù)據(jù)表的外鍵。

6、全碼:當所有的屬性共同構(gòu)成一個候選碼時,這時該候選碼為全碼。(教師,課程,學(xué)生)假如一個教師可以講授多門課程,某門課程可以有多個教師講授,學(xué)生可以聽不同教師講授的不同課程,那么,要區(qū)分關(guān)系中的每一個元組,這個關(guān)系模式R的候選碼應(yīng)為全部屬性構(gòu)成 (教師、課程、學(xué)生),即主碼。

7、代理鍵:當不適合用任何一個候選鍵作為主鍵時(如數(shù)據(jù)太長等),添加一個沒有實際意義的鍵作為主鍵,這個鍵就是代理鍵。(如常用的序號1、2、3)

8、自然鍵:自然生活中唯一能夠標識一條記錄的鍵(如身份證)

二、例子

下面舉例說明

課本上的定義過于籠統(tǒng),下面我用一張學(xué)生成績信息表給大家詳細的說一下:

學(xué)生成績信息表中有(學(xué)號、姓名、性別、年齡、系別、專業(yè)等)

超鍵/碼:

? 由于學(xué)號能確定一個學(xué)生,因此學(xué)生表中含有學(xué)號的任意組合都為此表的超鍵。如:(學(xué)號)、(學(xué)號,姓名)、(學(xué)號,性別)等

?若我們假設(shè)學(xué)生的姓名唯一,沒有重名的現(xiàn)象。

??????學(xué)號唯一,所以是一個超鍵

??????姓名唯一,所以是一個超鍵

?????(姓名,性別)唯一,所以是一個超鍵

?????(姓名,年齡)唯一,所以是一個超鍵

?????(姓名,性別,年齡)唯一,所以是一個超鍵

候選鍵:

???學(xué)號唯一,而且沒有多余屬性,所以是一個候選鍵

???姓名唯一,而且沒有多余屬性,所以是一個候選鍵

??(姓名,性別)唯一,但是單獨姓名一個屬性就能確定這個人是誰,所以性別這個屬性就是多余屬性,所以(姓名,性別)不是候選鍵

??(姓名,年齡),(姓名,性別,年齡)同上,也不是候選鍵

主鍵:

??主鍵就是候選鍵里面的一個,是人為規(guī)定的,例如學(xué)生表中,我們通常會讓“學(xué)號”做主鍵,學(xué)號能唯一標識這一個元組。

外鍵:

? ?外鍵就很簡單了,假如我們還有一個教師表,每個教師都有自己的編號,假設(shè)老師編號在教師表中是主鍵,在學(xué)生表中它就是外鍵。

三、練習

做一道練習題鞏固一下(假設(shè)名字可能有重復(fù)):


參考答案:

1.答案:

(1)候選關(guān)鍵字2個:(學(xué)號),(身份證號)

(2)主關(guān)鍵字:(學(xué)號)

(3)主屬性2個:學(xué)號,身份證號

(4)非主屬性2個:姓名,系別

2. 答案:

(1)候選關(guān)鍵字1個:(學(xué)號,課程號)

(2)主關(guān)鍵字:(學(xué)號,課程號)

(3)主屬性2個:學(xué)號,課程號

(4)非主屬性1個:成績

(5)外部關(guān)鍵字:學(xué)號(引用學(xué)生信息表中的學(xué)號),課程號(引用課程信息表中的課程號)

3.答案:

(1)候選關(guān)鍵字1個:(課程號)

(2)主關(guān)鍵字:(課程號)

(3)主屬性1個:課程號

(4)非主屬性2個:課程名,學(xué)分?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 第一章 緒論 一選擇題: 1.在數(shù)據(jù)管理技術(shù)的發(fā)展過程中,經(jīng)歷了人工管理階段、文件系統(tǒng)階段和數(shù)據(jù)庫系統(tǒng)階段。在這...
    孜然味的啊閱讀 2,447評論 0 0
  • MySQL這一塊的知識還是挺多的,問深度的話, 一般都是如何調(diào)優(yōu)的,當然少不了MySQL的基礎(chǔ)等知識。 數(shù)據(jù)庫引擎...
    Java余笙閱讀 452評論 0 2
  • 18.7.24一、概念在創(chuàng)建一個數(shù)據(jù)庫的過程中,必須依照一定的準則,這些準則被稱為范式,從第一到第六共六個范式。二...
    靜心安分讀書閱讀 11,241評論 0 2
  • MySQL-性能優(yōu)化-優(yōu)化設(shè)計和設(shè)計原則 MySQL性能優(yōu)化目的 如何合理的設(shè)計數(shù)據(jù)庫? 什么樣的數(shù)據(jù)庫設(shè)計才能給...
    AI喬治閱讀 592評論 1 7
  • 表情是什么,我認為表情就是表現(xiàn)出來的情緒。表情可以傳達很多信息。高興了當然就笑了,難過就哭了。兩者是相互影響密不可...
    Persistenc_6aea閱讀 129,841評論 2 7

友情鏈接更多精彩內(nèi)容