软考高级:候选码、主码、全码、外码、主属性、主键、主关键字、非主属性概念和例题

2024-05-24 15:30:52 浏览数 (1)

作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。

一、AI 讲解

候选码、主码、全码、外码、主属性、主键、主关键字和非主属性是数据库设计中的关键概念,它们在数据库的逻辑设计和物理实现中扮演着重要的角色。下面我将逐一解释这些概念,并通过表格形式展示它们之间的关系和区别。

概念

解释

例子

候选码

一个关系中能唯一标识每个元组的属性集合,候选码的任一子集不能唯一标识元组。一个关系可以有多个候选码。

学生表中的学号、身份证号都可以作为候选码,因为它们都能唯一标识一个学生。

主码

在一个关系的所有候选码中选定一个作为主要的标识手段,称为主码。

如果选择学号作为学生表的主码,则每个学生将通过学号进行唯一标识。

全码

如果一个关系中的所有属性集合都是候选码,即整个属性集合才能唯一标识每个元组,这样的码称为全码。

在一个只有两个属性且都需要用来唯一标识元组的关系中,这两个属性的集合就是全码。

外码

一个关系中的属性或属性集,它与另一个关系的候选码相对应,用于实现两个关系之间的引用。

学生表中的班级编号可能是外码,它对应班级表中的班级编号候选码,用于关联学生和班级。

主属性

包含在任何一个候选码中的属性称为主属性。

如果学号和身份证号都是候选码,那么学号和身份证号都是主属性。

主键

在关系型数据库中,主键是一种约束,它确保了数据库表中每条记录的唯一性。通常选择一个候选码作为主键。主键不允许重复,且不允许为NULL。

如果学号被定义为主键,则每个学生的学号都是唯一的,且学号字段不允许为空。

主关键字

主键中的属性称为主关键字。

如果学号是主键,那么学号就是主关键字。

非主属性

不包含在任何候选码中的属性称为非主属性。

如果学生表的候选码是学号和身份证号,那么学生的姓名、年龄等就是非主属性。

二、 AI 出题

  1. 在关系数据库中,能够唯一标识每一条记录的属性集合是什么? A. 外码 B. 候选码 C. 非主属性 D. 全码
  2. 如果一个属性集合中的任何子集都不能唯一标识元组,这个属性集合称为什么? A. 候选码 B. 全码 C. 主属性 D. 主码
  3. 在一个关系中,用于与另一个关系进行连接的属性称为什么? A. 主键 B. 外码 C. 主属性 D. 非主属性
  4. 下列哪个选项不是选择主码时的考虑因素? A. 唯一性 B. 简洁性 C. 可修改性 D. 稳定性
  5. 在数据库设计中,通常不允许主键的值是什么? A. 唯一的 B. 空(NULL) C. 重复的 D. 稳定的
  6. 以下哪个不是主属性的特征? A. 包含在候选码中 B. 可以是全码 C. 不包含在任何候选码中 D. 用于唯一标识元组

答案与讲解:

  1. B. 候选码。候选码是能够唯一标识每一条记录的属性集合。
  2. B. 全码。如果整个属性集合都需要来唯一标识元组,那么这个属性集合称为全码。
  3. B. 外码。外码是用于与另一个关系进行连接的属性。
  4. C. 可修改性。选择主码时,通常考虑其唯一性、简洁性和稳定性,而不是可修改性。
  5. B. 空(NULL)。主键的值不允许为空,确保了每条记录的唯一性。
  6. C. 不包含在任何候选码中。非主属性是不包含在任何候选码中的属性,而不是主属性的特征。

0 人点赞