什麼是主鍵

用來唯一識別表格中一筆資料列的欄位或欄位組合。具有值不得重複、不得含NULL的限制。從能唯一識別資料列的最小欄位組合(候選鍵)中選出一個作為主鍵。

日文名稱: 主キー

「主鍵」出現在1領域的8道練習題中(資料庫基礎等)。

這個名詞所屬的領域: 資料庫基礎

練習主鍵的題目

在關聯式資料庫的表格中,被指定為主鍵的欄位(或欄位組合)必須滿足的條件是下列何者?

  1. A值必須是數值
  2. B必須是表格的第一個欄位
  3. C值在表格中不重複,且不含NULL
查看答案與解析

正確答案:C. 值在表格中不重複,且不含NULL

主鍵是用來唯一識別表格中一筆資料列的欄位或欄位組合。因此,主鍵的值不得與其他資料列重複(唯一性),也不允許代表值未定的NULL(非NULL)。在SQL的CREATE TABLE中指定PRIMARY KEY後,DBMS(資料庫管理系統)會強制遵守這兩項限制,試圖存入重複值或NULL的操作都會產生錯誤。主鍵的值可以是員工編號之類的數值,也可以是字串,欄位的位置也沒有規定。能唯一識別資料列的最小欄位組合稱為候選鍵,從候選鍵中選出的一個就是主鍵。

選課表格(學號, 課程編號, 成績)記錄哪位學生修了哪門課、成績如何。一位學生會修多門課,一門課也有多位學生修。若同一學生不會重複登記同一門課,此表格適當的主鍵是下列何者?

  1. A學號
  2. B課程編號
  3. C學號與課程編號的組合
查看答案與解析

正確答案:C. 學號與課程編號的組合

由於一位學生會修多門課,只用學號會出現多筆相同值的資料列,無法唯一識別。同樣地,一門課有多位學生修,只用課程編號也不唯一。把學號與課程編號組合起來,依據同一學生不會重複登記同一門課的條件,就能唯一決定一筆資料列。像這樣由多個欄位組合而成的主鍵稱為複合鍵,在SQL中以 PRIMARY KEY (學號, 課程編號) 的方式列出欄位來指定。選課表格的學號與課程編號,也分別是參照學生表格與課程表格主鍵的外鍵,這個表格表示了學生與課程之間的多對多關係。

解析中的「主鍵」

出現「主鍵」的題目(8題)

  1. 在關聯式資料庫的表格中,被指定為主鍵的欄位(或欄位組合)必須滿足的條件是下列何者?
  2. 選課表格(學號, 課程編號, 成績)記錄哪位學生修了哪門課、成績如何。一位學生會修多門課,一門課也有多位學生修。若同一學生不會重複登記同一門課,此表格適當的主鍵是下列何者?
  3. 客戶表格(客戶編號, 姓名)的主鍵是客戶編號,訂單表格(訂單編號, 客戶編號)的客戶編號被定義為參照客戶表格客戶編號的外鍵。客戶表格中只有客戶編號為'C1'與'C2'的資料列。在此狀態下執行 INSERT INTO 訂單 VALUES ('O9', 'C5') 的結果,下列何者正確?
  4. 訂單表格(訂單編號, 商品編號, 數量, 客戶編號, 客戶名稱)的主鍵為{訂單編號, 商品編號},函數相依為 {訂單編號, 商品編號} → 數量、訂單編號 → 客戶編號、客戶編號 → 客戶名稱。將此表格正規化到第三正規化(3NF)的結果,下列何者正確?
  5. 員工表格(員工編號, 姓名, 部門代碼, 部門名稱)的主鍵為員工編號,每個欄位都只有一個值。函數相依為 員工編號 → 姓名、員工編號 → 部門代碼、部門代碼 → 部門名稱。此表格的正規化形式,下列何者正確?
  6. 在關聯式資料庫的用語中,相當於表格(關聯)中一筆資料列的是下列何者?
  7. 在員工表格(員工編號, 電子郵件, 姓名, 部門)中,員工編號與電子郵件每位員工都不同,且不會是NULL。姓名與部門可能與其他員工相同。列出此表格所有候選鍵的是下列何者?
  8. 在E-R圖中,學生與課程之間有「一位學生修多門課,一門課有多位學生修」的多對多關係。以關聯式資料庫的表格實現此關係的適當方法是下列何者?

半導體、電子電路與資訊計算工具

相關名詞

外鍵 關聯式資料庫 SQL 正規化 第三正規化(3NF) E-R圖 交易 兩階段鎖定(2PL) 索引 隔離等級

前往名詞解釋列表