溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

數(shù)據(jù)庫(kù)中超鍵、主鍵、外鍵等的定義方法

發(fā)布時(shí)間:2020-10-12 16:03:01 來(lái)源:億速云 閱讀:394 作者:小新 欄目:MySQL數(shù)據(jù)庫(kù)

這篇文章將為大家詳細(xì)講解有關(guān)數(shù)據(jù)庫(kù)中超鍵、主鍵、外鍵等的定義方法,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

首先看看各種鍵的定義:

超鍵(super key):在關(guān)系中能唯一標(biāo)識(shí)元組的屬性集稱為關(guān)系模式的超鍵

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

主鍵(primary key):用戶選作元組標(biāo)識(shí)的一個(gè)候選鍵程序主鍵

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

結(jié)合實(shí)例的具體解釋:

假設(shè)有如下兩個(gè)表:

學(xué)生(學(xué)號(hào),姓名,性別,身份證號(hào),教師編號(hào))
教師(教師編號(hào),姓名,工資)

超鍵:

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

候選鍵:

候選鍵屬于超鍵,它是最小的超鍵,就是說(shuō)如果再去掉候選鍵中的任何一個(gè)屬性它就不再是超鍵了。學(xué)生表中的候選鍵為:(學(xué)號(hào))、(身份證號(hào))。

主鍵:

主鍵就是候選鍵里面的一個(gè),是人為規(guī)定的,例如學(xué)生表中,我們通常會(huì)讓“學(xué)號(hào)”做主鍵,教師表中讓“教師編號(hào)”做主鍵。

外鍵:

外鍵比較簡(jiǎn)單,學(xué)生表中的外鍵就是“教師編號(hào)”。外鍵主要是用來(lái)描述兩個(gè)表的關(guān)系。

主屬性和主鍵

嚴(yán)格來(lái)說(shuō)主屬性:指主鍵列,即主鍵由一列構(gòu)成主鍵定義:能夠唯一標(biāo)識(shí)一個(gè)元組的屬性或?qū)傩约?,即可以由多列組成。
在教學(xué)中,大多實(shí)例都是主鍵由一列構(gòu)成,所以也可以簡(jiǎn)單地說(shuō)主屬性與主鍵沒(méi)有什么區(qū)別。

第一范式(1NF)

第一范式是指數(shù)據(jù)庫(kù)表的每一列都是不可分割的基本數(shù)據(jù)項(xiàng),同一列中不能有多個(gè)值,即實(shí)體中的某個(gè)屬性不能有多個(gè)值或者不能有重復(fù)的屬性這就是第一范式的基本概念。

什么意思呢,舉個(gè)例子,在一個(gè)表里有一個(gè)“電話”字段,其值既有手機(jī)號(hào),又有座機(jī)號(hào) 那么這樣就不符合第一范式的要求了。此時(shí)應(yīng)該將“電話”拆分為“手機(jī)”跟“座機(jī)” 這樣一來(lái)就變成了一個(gè)符合第一范式的數(shù)據(jù)表了。

總結(jié):字段不能再分。
第二范式(2NF)
第二范式是在第一范式的基礎(chǔ)上建立起來(lái)的,即滿足第二范式必須先滿足第一范式。第二范式要求數(shù)據(jù)庫(kù)表中的每個(gè)實(shí)例或行必須可以被惟一的區(qū)分。為實(shí)現(xiàn)區(qū)分,通常需要為表加上一個(gè)列,以存儲(chǔ)各個(gè)實(shí)例的惟一標(biāo)識(shí),要求實(shí)體的屬性完全依賴于主鍵。要討論一個(gè)表符不符合第二范式的前提是,這個(gè)表的主鍵為組合主鍵,如果不是組合主鍵那就談不上符不符合第二范式了。
總結(jié):不能部分依賴,就是說(shuō)當(dāng)一個(gè)表有組合主鍵時(shí),其他非主鍵的字段必須完全依賴于主鍵。
第三范式(3NF)

第三范式是要符合第二范式,第三范式就是一個(gè)數(shù)據(jù)表中不能存在其他數(shù)據(jù)表中的非主鍵字段,也就是說(shuō)如果存在其他表中的字段,就一定得是那個(gè)表的主鍵。

假如一個(gè)表有有a b c三個(gè)字段,a—>b b—>c。 那么c與a就是傳遞依賴,這樣就不符合第三范式。而且不管a能不能直接確定c都屬于傳遞依賴,所以只有b跟c不依賴于a以外的任何字段才符合第三范式。

總結(jié):不可以有傳遞依賴,就是說(shuō)主鍵以外的字段必須依賴主鍵 而不能依賴其他字段。

關(guān)于數(shù)據(jù)庫(kù)中超鍵、主鍵、外鍵等的定義方法就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI