关系模型术语

42°C 04-01-2025 notbyai
最近更新于:2025-01-06 19:50:31

1. 关系(Relation)

  • 核心定义
    关系是数据库中的核心概念,用来表示实体(对象)或实体之间的联系。关系可以看作是一个二维的表格,每一行表示一个具体的数据记录,每一列表示某种属性。
  • 数学定义
    在数学中,关系是笛卡尔积的子集。假设有两个集合 A 和 B ,它们的笛卡尔积是 A × B = {(a, b) ∣ a ∈ A, b ∈ B } 。关系是从这些对中选出的一个子集。 例如
    • 如果 A = {1, 2} 且 B = {x, y} ,笛卡尔积是:
      A × B = {(1, x), (1, y), (2, x), (2, y)}
    • 如果我们定义一个关系 R 为 R = {(1, x), (2, y)} ,这个 R 就是笛卡尔积的子集,也可以看作一个二维表格。
  • 表格化关系
    关系通常用表格表示,例如一个“学生”关系:
  学号    姓名    年龄
  S001    张三    20
  S002    李四    21
  S003    王五    19
  • 每一行是一个元组。
  • 每一列是一个属性。

2. 元组(Tuple)

  • 核心定义
    元组是关系中的一行,表示一个具体的实例或记录。每个元组都是属性值的组合,是二维表中的一条完整数据。
  • 特点
  1. 无序性:元组之间的排列顺序没有影响,即 (1, 2, 3)(2, 1, 3) 是同一个关系。
  2. 唯一性:一个关系中的每个元组必须是唯一的(即没有重复的行)。
  • 示例
    对于“学生”关系:
  学号    姓名    年龄
  S001    张三    20
  S002    李四    21
  • 元组1:(S001, 张三, 20)
  • 元组2:(S002, 李四, 21)

3. 属性(Attribute)

  • 核心定义
    属性是关系中的列,每列的名称即为属性名,表示数据的某种特性或性质。每个属性都有一个名称,并且定义了它可以存储的数据类型。
  • 特点
  1. 属性名在一个关系中必须是唯一的。
  2. 每个属性对应一个特定的域(后面会详细介绍域)。
  • 示例
    在“学生”关系中:
  学号    姓名    年龄
  S001    张三    20
  • 属性包括:学号姓名年龄
    • 学号 是一个标识性属性,它的值是唯一的。
    • 姓名 是文本属性,表示学生名字。
    • 年龄 是整数属性,表示学生年龄。

4. 码(Key)

  • 核心定义
    码又称码键或键,是一个或多个属性的集合,用来唯一标识关系中的元组(行)。码是关系模型中非常重要的概念,用于确保数据的完整性和唯一性。
  • 分类
  1. 候选码(Candidate Key)
    • 一个关系中可能存在多个可以唯一标识元组的属性集合,称为候选码。
    • 示例:对于“学生”关系,学号 是候选码。
  2. 主码(Primary Key)
    • 从候选码中选择一个最合适的码作为主码,主码用来唯一标识每个元组。
    • 示例:如果“学号”是候选码,则我们可以将它选为主码。
  3. 外码(Foreign Key)
    • 外码是一个关系中用于引用另一个关系主码的属性,用来表示两个关系之间的联系。
    • 示例:如果“选课”关系中有 学生学号课程编号 属性,其中 学生学号 是外码,引用了“学生”关系中的主码 学号

5. 域(Domain)

  • 核心定义
    域是属性的取值范围,表示属性所能接受的所有合法值。
  • 特点
  1. 一个属性的值必须来自其域。
  2. 域的定义需要满足实际需求和逻辑一致性。
  • 示例
    对于“学生”关系:
  学号    姓名    年龄
  S001    张三    20
  • 学号 的域:字母和数字的组合,例如 S001, S002
  • 姓名 的域:所有合法的中文名字。
  • 年龄 的域:整数,范围在 1-100

6. 分量(Component)

  • 核心定义
    分量是元组中的一个具体值,表示属性的取值。它是元组和属性的交点。
  • 特点
  1. 每个元组由多个分量组成。
  2. 每个分量的值来源于属性的域。
  • 示例
    在元组 (S001, 张三, 20) 中:
    • 分量1:S001 是属性 学号 的值。
    • 分量2:张三 是属性 姓名 的值。
    • 分量3:20 是属性 年龄 的值。

7. 关系模式(Relation Schema)

  • 核心定义
    关系模式是对关系结构的定义,它描述了关系的名称、属性和属性的域,但不包含具体数据。
  • 表示方法
    通常表示为:
  R(A1: D1, A2: D2, ..., An: Dn)  
  • 其中:
    • R 是关系的名称。
    • A1, A2, …, An 是属性名。
    • D1, D2, …, Dn 是属性的域。
  • 补充
    关系模式也可以表示为:
   关系名(属性1,属性2,… ,属性n)
  • 示例
    如果有一个“学生”关系,包含属性 学号(学号域)、姓名(姓名域)、年龄(年龄域),它的模式可以表示为:
  学生(学号: 学号域, 姓名: 姓名域, 年龄: 年龄域)

  或

  学生(学号, 姓名, 年龄)
  • 关系模式与关系的区别
  1. 关系模式是关系的结构定义,不包含具体数据。
  2. 关系是根据关系模式存储的具体数据实例。

综合实例

以一个“学生”关系为例:

学号    姓名    年龄
S001    张三    20
S002    李四    21
S003    王五    19
  1. 关系(Relation)
    整张表格是一个关系
  2. 元组(Tuple)
    表中每一行数据,例如 (S001, 张三, 20)
  3. 属性(Attribute)
    列名 学号姓名年龄
  4. 码(Key)
    主码是 学号,因为它唯一标识每行记录
  5. 域(Domain)
    学号 的域是所有合法的学号(如 S001, S002);年龄 的域是 1-100 的整数
  6. 分量(Component)
    S001 是第一行的 学号 属性的分量
  7. 关系模式(Relation Schema)
    学生(学号: 学号域, 姓名: 姓名域, 年龄: 年龄域) 学生(学号, 姓名, 年龄)

评论留言

欢迎您,!您可以在这里畅言您的的观点与见解!

0 条评论