一、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. 必须包含尽可能多的属性
- 解析:候选码的定义是没有任何多余的属性,它是能够唯一标识每个元组的最小属性集合。