关系型数据库核心概念

  • 关系型数据库中的几个核心概念:
    • 元组
    • 候选码
    • 主码
    • 外码
    • 主属性和非主属性

1. 基础概念

  • 元组(Tuple):
    • 关系数据库中的一行数据称为一个元组。
    • 每个元组由多个属性(列)组成,表示一个实体或关系的具体实例。
    • 例如,在一个学生表中,每个学生的信息(如学号、姓名、年龄)构成一个元组。
  • 码(Key):
    • 码是关系数据库中用于唯一标识一个元组的属性或属性组合。
    • 码的主要作用是保证数据的唯一性和完整性。

2. 码的类型

  • 候选码(Candidate Key):
    • 候选码是关系中能够唯一标识元组的属性或属性组合。
    • 一个关系可以有多个候选码,但每个候选码都必须满足唯一性和最小性。
    • 例如,在一个学生表中,学号身份证号码都可以作为候选码,因为它们都能唯一标识一个学生。
  • 主码/主键(Primary Key):
    • 主码是从候选码中选定的一个作为关系的主要标识符。
    • 主码必须满足唯一性和最小性,并且不能包含空值。
    • 选择主码时通常考虑简洁性、稳定性、无业务含义等因素。
    • 例如,在一个学生表中,通常会选择学号作为主码,因为它更简洁且易于管理。
  • 外码/外键(Foreign Key):
    • 外码是一个关系中的属性或属性组合,它在另一个关系中作为主码存在。
    • 外码用于建立和维护两个关系之间的联系。
    • 例如,在一个成绩表中,学号可以作为外码,引用学生表中的主码学号,以表示成绩与学生之间的关系。

3. 属性分类

  • 主属性(Prime Attribute):
    • 主属性是指属于某个候选码的属性。
    • 主属性在关系中具有重要的标识作用,因为它们参与唯一标识元组。
    • 如果一个关系有多个候选码,那么这些候选码中出现的所有属性都是主属性。
    • 例如,在一个学生表中,学号身份证号码都是主属性,因为它们是候选码的一部分。
  • 非主属性(Non-Prime Attribute):
    • 非主属性是指不属于任何候选码的属性。
    • 非主属性通常用于描述实体的其他特征,但它们不能唯一标识元组。
    • 例如,在一个学生表中,姓名年龄都是非主属性,因为它们不参与唯一标识学生的过程。