一、AI 講解
候選碼、主碼、全碼、外碼、主屬性、主鍵、主關鍵字、非主屬性是數據庫設計和數據建模中的基本概念,特別是在關系數據庫模型中。下面將對這些概念進行簡單講解,并給出相應的例子。
概念講解
- 候選碼(Candidate Key):一個關系中能唯一標識每個元組(行)的屬性集合。一個關系可以有多個候選碼。
- 主碼(Primary Key):從一個關系的候選碼中選定一個作為主要的標識符的候選碼。每個關系只能有一個主碼。
- 全碼(Super Key):在一個關系中,能唯一標識每個元組的一個屬性集合,包括候選碼和可能包含其他屬性的超級鍵。
- 外碼(Foreign Key):一個關系中的屬性,它是另一個關系的主碼。
- 主屬性(Prime Attribute):包含在任何候選碼中的屬性。
- 主鍵(Primary Key):主碼的另一個稱呼,用于唯一標識數據庫中的每條記錄。
- 主關鍵字(Key Attribute):組成主鍵的屬性。
- 非主屬性(Non-prime Attribute):不包含在任何候選碼中的屬性。
例子
假設有一個學生信息的關系表:
學號 | 姓名 | 年級 | 班級 |
---|---|---|---|
S001 | 張三 | 三年級 | 1班 |
S002 | 李四 | 三年級 | 2班 |
- 候選碼:這里的“學號”可以唯一標識每個學生,是一個候選碼。
- 主碼:如果我們選擇“學號”作為主要的標識符,那么它就是主碼。
- 全碼:在這個例子中,“學號”本身就足夠標識每個學生,所以它也是一個全碼。
- 外碼:如果這個學生信息表和另一個表(如班級信息表)關聯,“班級”可能就是一個外碼,假設它在班級信息表中是主碼。
- 主屬性:“學號”是主屬性,因為它是候選碼的一部分。
- 主鍵:就是“學號”。
- 主關鍵字:也是“學號”。
- 非主屬性:“姓名”、“年級”和“班級”都是非主屬性,因為它們不是候選碼的一部分。
二、AI 出題
-
關系數據庫中能唯一標識每個元組的屬性集合稱為:
- A. 外碼
- B. 候選碼
- C. 非主屬性
- D. 全碼
-
在關系數據庫中,以下哪項不是主屬性的特征?
- A. 包含在任何候選碼中
- B. 能唯一標識每個元組
- C. 不包含在任何候選碼中
- D. 可以作為關系的標識符
-
如果一個屬性集合能夠標識關系中的每個元組,并且它的任何子集都不能標識每個元組,這樣的屬性集合稱為:
- A. 全碼
- B. 外碼
- C. 候選碼
- D. 非主屬性
-
在數據庫中,用于在兩個關系表之間建立聯系的屬性稱為:
- A. 主碼
- B. 主屬性
- C. 外碼
- D. 非主屬性
-
主碼與候選碼的關系是:
- A. 每個關系只能有一個主碼,但可以有多個候選碼
- B. 每個關系只能有一個候選碼,但可以有多個主碼
- C. 主碼和候選碼是同義詞
- D. 主碼和候選碼沒有直接關系
-
哪一項不是候選碼的特性?
- A. 唯一標識每個元組
- B. 可以有多個候選碼
- C. 必須包含盡可能多的屬性
- D. 沒有任何多余的屬性
答案及解析
-
答案:B. 候選碼
- 解析:候選碼能唯一標識每個元組,是關系數據庫中重要的概念。
-
答案:C. 不包含在任何候選碼中
- 解析:主屬性的特征是包含在任何候選碼中,而非主屬性不包含在候選碼中。
-
答案:C. 候選碼
- 解析:候選碼的定義就是能夠唯一標識每個元組的最小屬性集合。
-
答案:C. 外碼
- 解析:外碼用于在兩個關系表之間建立聯系,指向另一個表的主碼。
-
答案:A. 每個關系只能有一個主碼,但可以有多個候選碼
- 解析:主碼是從候選碼中選出的一個,用作唯一標識符,每個關系只能選定一個。
-
答案:C. 必須包含盡可能多的屬性
- 解析:候選碼的定義是沒有任何多余的屬性,它是能夠唯一標識每個元組的最小屬性集合。