博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关系代数运算——(软考三)
阅读量:5247 次
发布时间:2019-06-14

本文共 1106 字,大约阅读时间需要 3 分钟。

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

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

     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

你可能感兴趣的文章
android一些细节问题
查看>>
KDESVN中commit时出现containing working copy admin area is missing错误提示
查看>>
利用AOP写2PC框架(二)
查看>>
【动态规划】skiing
查看>>
java定时器的使用(Timer)
查看>>
ef codefirst VS里修改数据表结构后更新到数据库
查看>>
boost 同步定时器
查看>>
[ROS] Chinese MOOC || Chapter-4.4 Action
查看>>
简单的数据库操作
查看>>
iOS-解决iOS8及以上设置applicationIconBadgeNumber报错的问题
查看>>
亡灵序曲-The Dawn
查看>>
Redmine
查看>>
帧的最小长度 CSMA/CD
查看>>
xib文件加载后设置frame无效问题
查看>>
编程算法 - 左旋转字符串 代码(C)
查看>>
IOS解析XML
查看>>
Python3多线程爬取meizitu的图片
查看>>
树状数组及其他特别简单的扩展
查看>>
zookeeper适用场景:分布式锁实现
查看>>
110104_LC-Display(液晶显示屏)
查看>>