溫馨提示×

溫馨提示×

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

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

MySQL中超鍵、主鍵及候選鍵的區(qū)別是什么

發(fā)布時(shí)間:2022-08-01 16:36:00 來源:億速云 閱讀:177 作者:iii 欄目:MySQL數(shù)據(jù)庫

本篇內(nèi)容主要講解“MySQL中超鍵、主鍵及候選鍵的區(qū)別是什么”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“MySQL中超鍵、主鍵及候選鍵的區(qū)別是什么”吧!

MySQL中超鍵、主鍵及候選鍵的區(qū)別是什么

關(guān)于超鍵和主鍵及候選鍵的區(qū)別

最近在看MySQL的書時(shí)遇到了一個(gè)問題:

既然已經(jīng)有了主鍵這個(gè)概念,主鍵已經(jīng)能夠滿足需求了,那為什么還要有候選鍵這種東西?候選鍵的作用是什么呢?給了它一個(gè)候選鍵的定義但是它真的并沒有什么亂用。

抱著刨根問底攔不住的心態(tài)我去網(wǎng)上搜了搜,看了看大神們的解釋,看得我還是有些懵懂,于是想在這里梳理一下,幫助自己理解的更通透,也希望如果有理解錯(cuò)的地方能有人指點(diǎn)一下 下面就是我的一些理解:

其實(shí)主鍵和超鍵還好一些,比如有這么一個(gè)表:

MySQL中超鍵、主鍵及候選鍵的區(qū)別是什么

表寫的有些糙,湊合看吧。

超鍵

在關(guān)系中能唯一標(biāo)識(shí)元組的屬性集稱為關(guān)系模式的超鍵。 注定義中的“屬性集”,超鍵可以是一個(gè)很大的集合,只要他能確定是哪一行就行,因此’id’,‘user’,‘pwd’,‘section’,'name’都可以是超鍵的集。

候選鍵

不含有多余屬性的超鍵,比如在上面的超鍵中,'id’自己就可以獨(dú)自確定是哪一行,所以他自己可以是一個(gè)候選鍵,除去它以外的另外四個(gè)也可以是候選鍵,但是這五個(gè)放在一起因?yàn)橛辛硕嘤嗟牧?,他們就不是候選鍵。(另外四個(gè)可以是候選鍵的原因是每一列都有可能有重復(fù)的內(nèi)容)

主鍵

在所有的候選鍵里面找一個(gè)作為主鍵供使用,也就是說可以是id,也可以是另外四個(gè)的合體,也有可能是其他的選擇,只要能保證選擇的集合能唯一確定即可。

總結(jié)來說,候選鍵是超鍵的子集,主鍵是候選鍵的子集。

其實(shí)整理了這么多以后我還是不明白候選鍵的作用到底是什么,其實(shí)他可能就是作為一個(gè)候車廳一樣,車上只剩下一個(gè)座位,有幾個(gè)主鍵在候車廳里坐著,告訴你:“我們幾個(gè)人都買票了,都有資格上車,你選誰上,我們誰就跟你去上車”,應(yīng)該就是這樣。

理解超鍵、候選鍵、主鍵概念及關(guān)系

基本概念

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

  • 候選鍵(candidate key):不含有多余屬性的超鍵稱為候選鍵,即其真子集不再是超鍵。

  • 主鍵(primary key):用戶選作元組標(biāo)識(shí)的一個(gè)候選鍵稱為主鍵,是候選鍵之一。

關(guān)系

候選鍵是超鍵的子集,主鍵是候選鍵中的一個(gè)。

舉個(gè)栗子

考慮屬性集(身份證號(hào),姓名 ,性別 ,年齡),假設(shè)無重名

a.其中超鍵有:

  • 身份證號(hào)、姓名、(姓名,性別)、(姓名,性別,年齡)等

  • --這里可以看出,超鍵是能唯一確定一個(gè)人的屬性組

b.超鍵中的候選鍵

  • 身份證號(hào)、姓名唯一,而且沒有多余屬性,所以是一個(gè)候選鍵

  • --這里可以看出,候選鍵是沒有多余屬性的超鍵

c.選擇主鍵

  • 用戶可根據(jù)自己喜好考慮選擇姓名或者身份證號(hào)作為主鍵

  • --主鍵是選中的一個(gè)候選鍵

還不明白?

實(shí)例:

在SQL Server數(shù)據(jù)庫中,有一個(gè)學(xué)生信息表如下所示,在該表中不能作為候選鍵的屬性集合為( ) (選擇一項(xiàng))

學(xué)號(hào) 姓名 性別 年齡 系別 專業(yè)
20020612 李輝 男 20 計(jì)算機(jī) 軟件開發(fā)
20060613 張明 男 18 計(jì)算機(jī) 軟件開發(fā)
20060614 王小玉 女 19 物理 力學(xué)
20060615 李淑華 女 17 生物 動(dòng)物學(xué)
20060616 趙靜 男 21 化學(xué) 食品化學(xué)
20060617 趙靜 女 20 生物 植物學(xué)

a){學(xué)號(hào)}
b){學(xué)號(hào)、姓名}
c){年齡、系別}
d){姓名、性別}
e){姓名、專業(yè)}

到此,相信大家對“MySQL中超鍵、主鍵及候選鍵的區(qū)別是什么”有了更深的了解,不妨來實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

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

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

AI