美文网首页
关系数据库--关系代数

关系数据库--关系代数

作者: PC_Repair | 来源:发表于2018-08-28 11:52 被阅读153次

    关系代数

    关系代数是以关系为运算对象的一组高级运算的集合。由于关系定义为属性个数相同的元组的集合,因此集合代数的操作就可以引入到关系代数中。关系代数中的操作可以分为两类:传统的关系操作:并、差、交、笛卡尔积(乘)、笛卡尔积的逆运算(除);扩充的关系操作:对关系进行垂直分割(投影)、水平分割(选择)、关系的结合(连接、自然连接)等。

    注:并、差、交 3个操作需要关系R、S的属性相同才能进行(即R中的属性为A、B、C,S中的属性也为A、B、C才可以)

    五个基本的关系代数操作:并、差、笛卡尔积、投影、选择

    关系例子如下:

    关系R:

    A B C
    1 2 3
    4 5 6
    7 8 9

    关系S:

    A B C
    2 4 6
    4 5 6
    • RUS(并)
    A B C
    1 2 3
    4 5 6
    7 8 9
    2 4 6

    注:无重复元组

    • R-S(差)
    A B C
    1 2 3
    7 8 9

    注:在关系R的基础上减去R中存在且S中存在的元组

    • R×S(笛卡尔积)
    R.A R.B R.C S.A S.B S.C
    1 2 3 2 4 6
    1 2 3 4 5 6
    4 5 6 2 4 6
    4 5 6 4 5 6
    7 8 9 2 4 6
    7 8 9 4 5 6

    注:关系R与关系S的属性名可以不同

    • π C,A(R) (C,A在关系R上的投影)
    C A
    3 1
    6 4
    9 7
    • σB>'4'(R)(在关系R上选择B大于4的元组)
    A B C
    4 5 6
    7 8 9

    剩余操作:交、除、连接:

    • R∩S(R与S的交集)
    A B C
    4 5 6
    • R_÷S_(除)

      关系R_:

    A B C D
    a b c d
    a b e f
    b c e f
    e d c d
    e d e f
    a b d e

    关系S_:

    C D
    c d
    e f

    R_÷S_

    A B
    a b
    e d

    运算过程:因为C, D是关系S中的两个属性, 因此在R集合对除了C, D的属性, 即A, B两属性进行投影, 得到a, b; b, c; e, d;这三组, 然后用这个结果与关系S进行笛卡尔积运算, 发现b c c d这组在关系R中没有, 其余a, b; e, d; 做的运算在R中存在. 因此最后结果为a, b; e, d;

    • 连接

    关系R_:

    A B C
    2 4 6
    3 5 7
    4 6 8

    关系S_:

    B C D
    4 6 8
    5 6 7
    4 6 2
    6 8 5

    自然连接:只返回两个表中联结字段相等的行

    A B C D
    2 4 6 8
    2 4 6 2
    4 6 8 5

    左连接:返回包括左表中的所有记录和右表中联结字段相等的记录,不相等则用null表示。

    A B C D
    2 4 6 8
    2 4 6 2
    4 6 8 5
    3 7 5 null

    右连接:返回包括右表中的所有记录和左表中联结字段相等的记录,不相等则用null表示。

    A B C D
    2 4 6 8
    2 4 6 2
    4 6 8 5
    null 5 6 7

    外连接:左连接+右连接(或者说并)

    A B C D
    2 4 6 8
    2 4 6 2
    4 6 8 5
    3 5 7 null
    null 5 6 7

    注:R(⋈)S,R与S的先后顺序

    相关文章

      网友评论

          本文标题:关系数据库--关系代数

          本文链接:https://www.haomeiwen.com/subject/qddfwftx.html