关系代数运算——(软考三)

     之前在学习数据库时接触过关系代数,只是在经过很长一段时间不应用之后,不能很快从大脑中将知识调出来,今天就来了个再次学习总结加深自己的印象。

     关系代数:是一种抽象的查询语言,用对关系的运算来表达 查询。关系代数运算的是关系,运算结果亦是关系。关系代数的基本关系包括:并、交、差、笛卡尔积、选择、投影、连接、除法运算。由于并、交、差运算很简单,这里不再赘述,只说明了几个容易遗忘和混淆的运算。

     1、笛卡尔积

      计算两个关系R和S的笛卡尔积,R的元数为r,S的元数为s,则R×S是一个(r+s)元的元组集合,如下例所示:

                  

      结果:

            

      由结果分析:笛卡尔积得到的结果元数为r+s即:3+3=6;记录数为:R中的记录数与S中的记录数相乘,即:3×2=6。

     2、选择

       选择是根据某些条件对关系做水平切割,例如δ2 > '4'(R),表示从R中挑选第二个分量值(也就是R中B列的值)大于4的元组所构成关系。

       结果:

            

     3、投影π

       投影与选择正好相反,是对关系的一种垂直切割,消去某列,并重新安排列的顺序。投影用(π)表示。例如:π3,1(R)表示的结果如下:

       

      由结果可以看出:查询表达式中的下标可以用数字表示,也可以用列的名字表示,返回列的名字,而其他的列在结果关系中被去掉,也可以通过投影来重新布局关系的排列。

     4、连接

       连接运算:从两个关系的笛卡尔积中选取属性间满足一定条件的元组,用(R ⋈ S)表示,连接分为两种,一种是等值连接(有的书上写的是连接),另一种是自然连接。等值连接:条件AθB中的θ为‘=’的连接;自然连接:关系R与S选取A、B属性值相等的那些元组。

      看个例子就很容易明白了:

      等值连接:如下有关系R和S,则是什么呢?

                    

               结果:

                           

                  

       自然连接:一般自然连接使用在R和S有公共属性时,如果没有公共属性,自然连接就转为笛卡尔积操作。

             例如:关系R和S,则自然连接的结果呢?

                      

                结果:

                  

       5、除法         

        例子:R÷S

         R:                           S:

                     

         结果:

                         

         计算过程:

          (1)T=π1,2(R),从R中选取除去与S中相同的属性,即选择S#,SName

          (2)W=(T ×S)-R,将上面得到的T与S进行笛卡尔积,再减去R,即计算T×S中不在R的元组

          (3)V=π1,2(W),从W中选取1,2对应的属性列,即:S#,SName

          (4)R ÷ S = T-V

       总结:

       经过总结之后,发现其实关系之间的运算并不难,关键在于要认真分析,将符号与我们的实际找到联系,只有对各种符号印象深刻之后,这些关系之间的运算也就变得很简单。在平时要多找联系多总结,方是正道。     

             

           

           

原文地址:https://www.cnblogs.com/zsswpb/p/5771634.html