03数据库系统

05-概念模型设计-关系代数

2021-07-30 336 2

简介 关系代数涉及的运算为: 并、交、差、笛卡尔积、投影、选择、连接、除


介绍关系代数之前,首先认识一下关系(Relation)、元祖(Tuple)、属性(Attribute)


upfile

1. 关系运算符

    关系运算是一种传统的表达方式, 关系的运算来表达查询; 运算对象、运算结果都为关系

upfile


假设现有两个关系 S1 和 S2(也就是有两个表、数据库的表)

upfile

1.1 并 Union

    要求关系R和S具有相同的关系模式(结构相同)

    关系R与S并是由属于R和S的元组构成的集合, 不含重复记录

    定义:

        R ∪ S = { t | t∈R  ∨ t∈S   }  t为元组变量,t是新关系的一个元组


    关系 S1 和 S2 并的结果为

upfile


1.2 交运算 Intersection

    要求关系R和S具有相同的关系模式(结构相同)

    关系R与S的交是由属于R又属于S的元组组成的集合

    定义:

        R ∩ S = { t | t∈R  ∧ t∈S   }  t为元组变量

            或 R ∩ S = R - (R - S)

            或 R ∩ S = S - (S - R)


    关系 S1 和 S2 交的结果为

upfile


1.3 差 Set difference

    要求关系R和S具有相同的关系模式(结构相同)

    关系R与S的差由属于R但不属于S的元组构成的集合

    定义:

        R-S = { t | t∈R ∧ t∉ S  }  t为元组变量


    关系 S1 和 S2 差的结果为

upfile

1.4 广义笛卡尔积 Cross product

    两个元素分别为n目和m目的关系R和S, 广义笛卡尔积是一个n+m目的元组的集合,如果元素是单属性, 则是笛卡尔积,如果元素是多个属性,那么是广义笛卡尔积

    元组的前n列是关系R的一个元组

    元组的后m列是关系S的一个元组

    一般笛卡尔积是两个或多个元素,每个元素只有一个属性,并给定了属性的域,作笛卡尔积时,从每个元素中选取这一个属性的某个值;

    广义笛卡尔积是每个元素是一个或多个元组,作笛卡尔积时,从每个元素中选取一个元组进行排列组合。 

    定义:

upfile

upfile


1.5 投影:投影运算  Projection

    是从垂直方向进行运算, 即在关系R中选择出若干属性列组成新的关系

    定义:

        πA(R) = { t  |  t[A]  |   t∈R }    -----   只选择A列,选择多列如A,B,C使用逗号分隔, 也可以使用数字表示1,2,3 表示投影1,2,3列

    示例:注意投影会去除重复的记录


upfile

upfile


1.6 选择运算 Selection

    从水平方向进行运算

    从关系R中选择满足给定条件的诸元组

    定义:

upfile

upfile


1.7 连接运算 join

    是从两个关系R和S的笛卡尔积中选取满足条件的元组

    三种类型的连接: 自然连接是中特殊的等值连接, 等值连接是一种特殊的θ连接

        θ 连接 conditional join

        等值连接 conditional join, condition is =

        自然连接 natural join

    

    θ连接  Conditional join:

    从R与S的笛卡尔积中选取属性间满足一定条件的元组

    先进行笛卡尔积运算,然后在水平方向上进行选择运算

    定义:

upfile



    等值连接:

        当 θ 运算符为“=”时的连接,一种特殊的 θ连接

        select S.A, S.B, S.C , R.A, R.B, R.C from R, S where R.A = S.B;



    自然连接 Natural join  

    自然连接可以由基本的关系运算笛卡尔积和选择、投影运算得出:


        一种特殊的等值连接, 要求两个关系中进行比较的分量必须是相同的属性组, 并且在结果集中将重复的属性列去掉

        方法: 可以先得到广义笛卡尔积, 然后根据等值条件过滤, 最后去掉重复的列,但是可能包含重复的行

        R关系的 A列与S关系的A列相等, 属性必须同名才可以进行自然连接

upfile

upfile


1.8 除-关系运算: 除运算

    是同时在水平和垂直方向进行运算

    给定关系R(X,Y) 和 S(Y,Z) XYZ为属性组

    R÷S 应满足 关系R在属性组X的分量值 x 象集 Yx 包含关系S 在属性组 Y的 全部投影的集合

        X可以看作是一个元组

    定义:upfile


upfile


 1. 关系R的属性组X的分量值x

        x = { ( a,b ), ( b, d ), ( c, k ) }

        x = { ( a, b ) } 时, 象集 Yx1 = CD(a,b) = { ( c, d ), ( e, f ), ( h, k ) }

        x = { ( b, d ) }时, 象集 Yx2 = CD(b,d) = { ( e, f ), ( d, l ) }

        x = { ( c, k ) }时, 象集 Yx3 =  CD(c,k) = { ( c, d ), ( e, f ) }

        2. S在Y上的投影是: { ( c, d ), ( e, f ) }

        3. 上面三个象集全包含投影集合的是: Yx1 和 Yx3, 所以结果是 { ( a, b ), ( c, k ) }

    





点赞 2

文章评论

欢迎您:

纸上得来终觉浅,绝知此事要躬行!

112 文章 59390 浏览 3 评论

联系我

  •   QQ:    361352119
  •  Email:  lisimmy@sina.com
  • 微信: