主鍵(primary key)和候選關鍵字(candidate key)的區別

雖然主鍵是從候選鍵中選擇出來的,但是主鍵與其他候選鍵之間存在一些差異,本文將對此進行詳細討論。資料庫設計是維護和儲存資料時最重要的活動之一。在這個設計過程中,必須建立具有許多關係的不同表。為了訪問資料庫中的這些表,現代資料庫設計語言(如MYSQL、MSAccess、SQLite等)中使用了不同型別的鍵,其中候選鍵和主鍵已成為資料庫設計中必不可少的部分。...

主鍵與候選鍵

雖然主鍵是從候選鍵中選擇出來的,但是主鍵與其他候選鍵之間存在一些差異,本文將對此進行詳細討論。數據庫設計是維護和存儲數據時最重要的活動之一。在這個設計過程中,必須創建具有許多關係的不同表。為了訪問數據庫中的這些表,現代數據庫設計語言(如MYSQL、MSAccess、SQLite等)中使用了不同類型的鍵,其中候選鍵和主鍵已成為數據庫設計中必不可少的部分。

什麼是候選密鑰(a candidate key)?

候選鍵是數據庫表中的一列或一組列,可用於唯一標識任何數據庫記錄,而無需引用任何其他數據。數據庫的每個表可以有一個或多個候選鍵。可以使用函數依賴項創建一組候選鍵。候選密鑰中有一些重要的特性。他們是;

•候選關鍵字在域內應是唯一的,且不應包含任何空值。

•候選鍵不應更改,並且對於實體的特定出現,它必須保持相同的值。

候選鍵的主要用途是幫助識別大表中數百萬行中的一行。每個候選密鑰都有資格成為主鍵。然而,在所有候選鍵中,最重要和最特殊的候選鍵將成為表的主鍵,並且是候選鍵中最好的。

什麼是主鍵(a primary key)?

主鍵是表的最佳候選鍵,用於唯一標識存儲在表中的記錄。在數據庫中創建新表時,我們需要選擇主鍵。因此,為表選擇主鍵是數據庫設計者應該做的最關鍵的決定。在決定主鍵時,最重要的約束是表的選定列只應包含唯一值,而不應包含任何空值。設計表格時常用的一些主鍵是社會保險號碼(SSN)、身份證號碼和國民身份證號碼(NIC)。

程序員應該記住仔細選擇主鍵,因為它很難更改。因此,根據程序員的說法,創建主鍵的最佳實踐是使用內部生成的主鍵,例如由msaccess的AutoNumber數據類型創建的記錄ID。如果我們試圖將一條記錄**主鍵與現有記錄重複的表中,則**操作將失敗。主鍵值不應該一直變化,所以保持靜態主鍵更為重要。

主鍵(primary key)和候選關鍵字(candidate key)的區別

主鍵是最好的候選鍵。

主鍵(primary key)和候選關鍵字(candidate key)的區別

•候選鍵是限定為唯一的列,而主鍵是唯一標識記錄的列。

•沒有候選鍵的表不代表任何關係。

•數據庫中一個表可以有多個候選鍵,但一個表只能有一個主鍵。

•雖然主鍵是候選鍵之一,但有時它是唯一的候選鍵。

•一旦選擇了主鍵,其他候選鍵將成為唯一鍵。

•實際上,候選鍵可以包含空值,儘管它目前不包含任何值。因此,候選鍵不適合主鍵,因為主鍵不應包含任何空值。

•目前唯一的候選鍵也可能包含重複值,使候選鍵無法成為主鍵。

小結:

主鍵與候選鍵

候選鍵和主鍵是數據庫設計中用來唯一標識記錄中的數據和建立數據庫表之間關係的關鍵鍵。一個表應該只包含一個主鍵,並且可以包含多個候選鍵。目前大多數的主數據庫都能自動生成密鑰。因此,主鍵和候選鍵為數據庫管理系統提供了大量的支持。

 

圖片來源:

  1. SqlPac的主鍵(CC by-SA 3.0)
  • 發表於 2020-10-29 02:12
  • 閱讀 ( 52 )
  • 分類:科技

你可能感興趣的文章

候選基因(candidate gene)和gwas公司(gwas)的區別

候選基因和GWAS的關鍵區別在於,候選基因方法研究的是少數預先指定的感興趣基因的遺傳變異,而GWAS則調查特定疾病背後的共同基因變異的整個基因組。 候選基因法和全基因組關聯研究(GWAS)是檢測疾病遺傳易感性的兩種...

  • 發佈於 2020-09-26 04:00
  • 閲讀 ( 67 )

分支圖(cladogram)和二分鍵(dichotomous key)的區別

分支圖與二分鍵的關鍵區別在於分支圖用於研究一組生物之間的系統發育關係,而二分鍵用於分類和識別新物種。 分類是識別和區分生物的一個重要領域。科學家們透過實驗發現了新物種。因此,有必要根據它們的特徵和系...

  • 發佈於 2020-09-30 06:50
  • 閲讀 ( 56 )

關鍵金屬漆(the key metallic)和非金屬礦物(nonmetallic minerals)的區別

...屬元素比金屬元素更豐富。金屬礦物和非金屬礦物之間的關鍵區別在於,金屬礦物是可以熔化以獲得新產品的礦物組合,而非金屬礦物是在熔融過程中不會產生新產品的礦物組合。此外,金屬礦物主要來源於礦石,而非金屬礦物...

  • 發佈於 2020-10-23 15:06
  • 閲讀 ( 70 )

申請人(applicant)和候選人(candidate)的區別

申請人(applicant)和候選人(candidate)的區別 應聘者和應聘者是招聘過程中經常使用的兩個詞。儘管許多人傾向於交替使用這兩個詞,但申請人和候選人之間還是有細微差別的。申請者是指申請某種東西的人,通常是一份工作。可...

  • 發佈於 2020-10-25 15:36
  • 閲讀 ( 33 )

外來鍵(foreign key)和主鍵(primary key)的區別

外來鍵和主鍵之間的鍵區別在於,外來鍵是一列或一組列,它們引用另一個表的主鍵或候選鍵,而主鍵是一列或一組列,可用於唯一標識表中的行。 可以用來標識或訪問資料庫中一行或一組行的列或一組列稱為鍵。關係資料...

  • 發佈於 2020-10-26 12:19
  • 閲讀 ( 276 )

公鑰(public key)和私鑰(private key)的區別

公鑰和私鑰的關鍵區別在於,如果公鑰是鎖定金鑰,那麼它可以用來發送私密通訊(即保持機密性);如果私鑰是鎖定金鑰,則系統可以用來驗證私鑰持有者傳送的文件(即保證真實性)。 密碼學是研究隱藏資訊的學科。它...

  • 發佈於 2020-10-29 23:36
  • 閲讀 ( 60 )

二分鍵(dichotomous key)和分類關鍵字(taxonomic key)的區別

二分鍵和分類鍵的關鍵區別在於,二分鍵是最常用的識別鍵,它有助於識別未知個體,而分類鍵是用來識別特定物件的簡單工具。 金鑰是一種可以用來識別生物體的工具。它包含有關物種的資訊。因此,鑰匙的主要目的是便...

  • 發佈於 2020-11-02 16:06
  • 閲讀 ( 60 )

python字典:如何使用它編寫更好的程式碼

... 還可以使用名稱-值對作為dict()建構函式的關鍵字引數來建立和初始化字典。 ...

  • 發佈於 2021-03-14 05:15
  • 閲讀 ( 39 )

如何使用python構建twitter、instagram和reddit機器人程式

...用了兩個助手函式。Instagram在JSON響應中傳送一個影象“候選者”列表。選擇這些影象中最大的一個,以便以最高解析度顯示媒體。 ...

  • 發佈於 2021-03-21 23:06
  • 閲讀 ( 46 )

mysql資料庫模式編寫入門指南

在開發一個軟體專案時,最重要的、基本的和內在的方面之一是一個結構合理的資料庫模式。這相當於建造一所需要確保地基適當鋪設的房子,否則建造優質房屋的機會大大減少。 ...

  • 發佈於 2021-03-26 19:24
  • 閲讀 ( 56 )
rjopt31578
rjopt31578

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦