數據庫設計中各種鍵的含義


2019-07-16

關鍵字:數據庫設計、表設計、主鍵、聯合主鍵、候選鍵、自然鍵


在數據庫中“鍵”是一個很重要的概念。基本上只要我們談論某張表,就一定離不開討論它的各種鍵。而鍵的種類也不少,如果對各種鍵的概念分不清,在和他人討論時可能就會不太和諧。因此,這篇文章主要記載一下各種鍵的名稱及概念。

 

常見的鍵有以下幾種

1、主鍵

2、候選鍵

3、可選鍵

4、復合鍵

5、單鍵

6、代理鍵

7、自然鍵

8、外鍵

 

下面我們逐一了解一下這些鍵的概念。

 

在學習各種鍵之前,有必要稍微解釋一下什么是“鍵”。

 

我們都知道數據表都是二維矩陣式結構的。每一行數據代表一條記錄,每一條記錄又由多種屬性/字段組成。而我們所說的“鍵”就與這些屬性/字段有關。

 

 

1、主鍵

我們都知道,數據表中的每一行就代表一條記錄,那這么條記錄,我們要如何來分辨每一條記錄是什么呢?就比如,全中國那么多人,我們要怎么來區分哪個是哪個呢?

 

解決的辦法就是給每一條記錄都設定一個“唯一編號”。就像每一個中國公民都擁有一個全中國獨一無二的身份證號碼一樣。我們通過身份證號碼就能夠唯一確定一個人,而我們通過表記錄中的“唯一編號”也能唯一確定某一條記錄。

 

所以,主鍵就是在一張數據表中能夠唯一確定一條記錄的屬性/字段

 

數據表的主鍵通常都含有如下特性:

1、唯一性

2、強制性

3、永久性

4、最小集合

 

 

2、候選鍵

一張表中通常都會含有多個屬性/字段。能夠用來唯一確定一條記錄的屬性/字段就是候選鍵。所以候選鍵的數量可以為一個或多個。

 

舉個例子,假如我們有一份學生信息表。它包含這幾個字段:學號、姓名、性別、家庭住址、班級、成績。那明顯,我們可以通過學號來唯一確定某個學生,因此這個學號字段就是一個候選鍵。同樣,我們也可以通過姓名+性別+家庭住址+班級來唯一確定某個學生,因此這幾個字段組合也被稱為候選鍵。

 

換句話說,候選鍵就是具備成為主鍵的資格,但是目前還不是主鍵的屬性/字段。

 

 

3、可選鍵

候選鍵中沒有被選為主鍵的屬性/字段就被稱為可選鍵。

 

 

4、復合鍵

通過前面我們知道了,主鍵的數量可以為 1~n 個。如果主鍵是由多個屬性/字段確定的,那么就稱這種主鍵為復合鍵。全稱即是復合型主鍵。

 

 

5、單鍵

與上一條相對應。如果主鍵僅由 1 個屬性/字段確定,那么就稱這種主鍵為單鍵。

 

 

6、代理鍵

代理鍵通常是用來形容主鍵的。

 

如果某張數據表的主鍵是由系統自動生成的,例如我們常見的 _id 字段,它的元素值通常是一個自增的整型數值。這種主鍵就稱為是代理鍵,全稱為代理型主鍵。

 

代理鍵都是單鍵。

 

 

7、自然鍵

自然鍵通常是用來形容主鍵的。

 

如果某張數據表的主鍵即是業務相關的屬性/字段,例如使用學生信息表中的學號作為主鍵的情況我們就稱這種主鍵為自然鍵,全稱為自然型主鍵。

 

自然鍵可以為單鍵也可以為復合鍵。

 

 

8、外鍵

外鍵是指某張數據表中的某個或某部分屬性/字段是另外一張表中的主鍵。

 

設置外鍵的目的通常是為了約束當前表。因為你每次要操作當前表,它都會去查詢一下擁有這個外鍵作為主鍵的表中的數據,如果數據不對,則無法操作。

 

 


 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM