Skip to content

关系数据库

关系模型

关系模型由关系数据结构关系操作集合关系完整性约束三部分组成。每个关系是一个二维表,每行对应一个元组,每列对应一个,对于不同关系的相同域,需要起别名以区分,即属性

能唯一标识元组的属性组(且其子集不能)被称为候选码,选定其中一个作为主码。一个关系的主码作为另一个关系的属性时,如果该属性在另一个关系中不是主码, 那它就是外码

QQ_1729861536446.png

QQ_1729861572307.png

最极端的情况,当关系模式的所有属性都为候选码的时候,就称这个关系为“全码”。

完整性规则

关系模型中的三类完整性约束:实体完整性、参照完整性和用户定义的完整性。

  1. 实体完整性规则:主属性不能为空。
  2. 参照完整性规则:外码要么为空,要么为其对应的主码值。
  3. 用户定义的完整性:反映某一具体应用所涉及的数据必须满足的语义要求。

关系代数

运算符

  1. 集合运算符

    运算符含义
    ×笛卡尔积
  2. 专门的关系运算符

    运算符含义
    σ选择
    Π投影
    连接
    ÷

集合运算

对于集合运算而言,除了笛卡尔积外,均要求两个关系的属性各取自同一个域。

差(RS)就是删除 R 中在 S 出现的元组。

笛卡尔积的做法是把两个关系的元组各自”拼接“,元组的前 n 列是前一个关系的一个元组,后 m 列是后一个关系的一个元组(对应 连接)。如果两个元组各有 k1k2 个元组,则笛卡尔积的结果会有 k1×k2 个元组。

QQ_1729780639606.png

关系运算

设关系模式为 R(A1,A2,,An),它的一个关系设为 R

tR 表示 tR 的一个元组,t[Ai] 则表示元组 t 中属性 Ai 上的一个分量。

如果有一属性组 At[A]=(t[Ai1],t[Ai2],,t[Aik]) 表示元组 t 在属性列 A 上诸分量的集合。A¯ 表示 {A1,A2,,An} 中去掉 {Ai1,Ai2,,Aik}后剩余的属性组。

QQ_1729862461999.png

  • 选择 σ:在关系 R 中选择满足给定条件的诸元组,是从行的角度进行的运算。

  • 投影 π:从 R 中选择出若干属性列组成新的关系,是从列的角度进行运算,为避免重复行可能还删掉了一些元组。

  • 连接 :从两个关系的笛卡尔积中选取属性间满足一定条件的元组。

    • 等值连接 A=B:从笛卡尔积中选取 A, B属性值相等的那些元组进行比较、连接,保留两个属性列。
    • 自然连接 :特殊的等值连接,两个关系中具有相同的属性组,进行等值连接后去掉重复的属性列。
    • 外连接:保留被舍弃的元组,在其他属性上填空值(NULL)。如果保留左边关系的就是左外连接,右外连接同理。

    QQ_1729863004716.png

  • 除运算:R÷S 得到的属性列是 R 包含而 S 不包含的,对 R 剩下的属性列取象集,只保留在 S 中有出现的。

    image.png