文章

DBMS笔记 03 关系数据理论

关系数据理论以关系作为笛卡尔积的子集,定义了度、基数、候选码等基本概念,并通过关系代数操作(σ、π、∪、−、×、⨝、÷)对数据进行形式化处理。 这些操作与 SQL 查询一一对应,是理解数据库查询语言与优化机制的理论基础。

DBMS笔记 03 关系数据理论

第三章 关系数据理论

1. 关系数据结构的形式化定义

  • 关系:笛卡尔积的子集。
  • 域(Domain):属性的取值范围。
  • 笛卡尔积:若 D1, D2, …, Dn 为 n 个域,笛卡尔积 D1×D2×…×Dn 的元素称为 n 元组
  • 关系模式:形式化描述,记作 R(U, D, Dom, F)。
  • 度(Degree):关系中属性的个数。
  • 基数(Cardinality):关系中元组的个数。

举例:学生表 Student(Sno, Name, Age, Sex)

  • 度 = 4 (四个属性)
  • 基数 = n (多少行记录)

2. 基本术语

  • 元组(Tuple):一行。
  • 分量(Component):元组中的单个属性值(单元格)。
  • 属性(Attribute):一列。
  • 候选码(Candidate Key):能唯一标识元组的最小属性集。
  • 主码(Primary Key):候选码中选定的一个。
  • 全码(All-key):所有属性都是码。

注:候选码的每个属性均为主属性;非候选码中的属性称为非主属性


3. 关系操作

关系代数操作可分为两类:

(1) 基本操作

  1. 选择(Select):σ 条件 (R)
    • 从关系 R 中选取满足条件的元组。
    • 类似 SQL 的 WHERE
    • 符号:σ(sigma)。
  2. 投影(Project):π 属性 (R)
    • 从关系 R 中抽取若干列,去除重复。
    • 类似 SQL 的 SELECT column
    • 符号:π(pi)。
  3. 并(Union):R ∪ S
    • 要求 R 和 S 的模式相同。
    • 输出同时在 R 或 S 的元组。
  4. 差(Difference):R − S
    • 要求 R 和 S 的模式相同。
    • 输出在 R 中但不在 S 的元组。
  5. 笛卡尔积(Cartesian Product):R × S
    • 输出 R 与 S 所有元组的组合。
    • 度 = R 的度 + S 的度。
  6. 连接(Join):R ⨝ S
    • 按条件将两个关系连接。
    • 特殊形式:
      • 自然连接(同名属性自动匹配)
      • 等值连接(属性相等条件)
      • 外连接(Left/Right Outer Join,保留一边的所有元组)。
  7. 除法(Division):R ÷ S
    • 查询“在 R 中和 S 所有值都匹配的元组”。
    • 常用于“选修所有课程的学生”。

(2) 扩展

  • 交(Intersection):R ∩ S
  • 广义笛卡尔积:更复杂的连接。
  • 赋值(Assignment):给查询结果起名字。

4. 关系操作与 SQL 的对应

  • 选择 σ → SQL 的 WHERE
  • 投影 π → SQL 的 SELECT
  • 并 ∪ → SQL 的 UNION
  • 差 − → SQL 的 EXCEPTMINUS
  • 笛卡尔积 × → SQL 的 FROM R, S
  • 连接 ⨝ → SQL 的 JOIN
  • 除 ÷ → SQL 没有直接语法,一般用 NOT EXISTS 或子查询实现

5. 关系代数运算的性质

  • 交换律:R ∪ S = S ∪ R
  • 结合律:R ∪ (S ∪ T) = (R ∪ S) ∪ T
  • 投影选择可交换:π(σ(R)) = σ(π(R)) (条件中只涉及投影属性时)
  • 笛卡尔积结合性: (R × S) × T = R × (S × T)

6. 本章重点

  • 关系模式的 = 属性个数,基数 = 元组个数。
  • 属性名必须唯一,元组中属性值必须来自域,分量不可再分。
  • 候选码:唯一且最小;全码:所有属性一起是候选码。
  • 基本操作必须掌握其符号:σ、π、∪、−、×、⨝、÷。
  • 外连接要区分:
    • 左外连接:保留左边全部元组。
    • 右外连接:保留右边全部元组。
  • SQL 对应:σ→WHERE,π→SELECT,∪→UNION,−→EXCEPT,×→FROM,⨝→JOIN,÷→复杂子查询。

极简速记

  • 度=列数,基数=行数
  • 行=元组,列=属性,单元格=分量
  • 候选码=唯一最小属性集,全码=所有属性
  • 操作口诀选投并差积,交连除
  • 符号:σ 选择,π 投影,∪ 并,− 差,× 笛卡尔积,⨝ 连接,÷ 除
  • 外连接:左保左,右保右
  • SQL 对应:σ→WHERE,π→SELECT,∪→UNION,−→EXCEPT,⨝→JOIN
本文由作者按照 CC BY-NC 4.0. 进行授权
...

Comments

评论区

碎片之中

正在加载中...