目录
一、关系代数运算
1、集合运算、关系运算、比较运算、逻辑运算符
![](https://i-blog.csdnimg.cn/blog_migrate/9e184142adc86370657963f3c3009151.png)
2、考点:专门的关系运算
![](https://i-blog.csdnimg.cn/blog_migrate/3a30683b2897b0628a88150c35b66313.png)
二、笛卡尔积
1、概念
![](https://i-blog.csdnimg.cn/blog_migrate/1e02879bd5bb5a9a9dfd6c555b761097.png)
-
从每个集合中挑选出一个分量组成一个元组,从集合中挑选不同的分量就会组成不同的元组,所有可能的元组组成的新集合就是笛卡尔积。
-
笛卡尔积可以转换成关系数据库的二维表。
2、举例
![](https://i-blog.csdnimg.cn/blog_migrate/2f5e6cb7167982913bb85e3345c66a6c.png)
-
将笛卡尔积转换成关系数据库的二维表
![](https://i-blog.csdnimg.cn/blog_migrate/33664c3f792d439f1d300bd2b5c3296b.png)
三、广义笛卡尔积
1、概念
![](https://i-blog.csdnimg.cn/blog_migrate/61c666093b7ec5c67d1b38527321e0fb.png)
-
广义笛卡尔积本质上还是从每个集合中挑选出一个分量组成一个元组,所有可能的元组组成的新集合就是笛卡尔积。,只不过从每个元组中挑选出来的一个分量可能是由多个属性构成的。如图所示,就相当于一个分量用了三个属性来表示。
-
如果一个集合有n个列,另一个集合有m个列,那么笛卡尔积就一定有(n+m)个列。
-
笛卡尔积中如果存在相同的列名同名的列,那么一定要用对象引用的方式,标明每一列属于哪个集合(关系)。如图关系R中和关系S中三列都分别是A、B、C,那么笛卡尔积的列就需要用R.A,S.A的方式标明当前列是属于哪一个关系中的。
四、投影
1、概念
![](https://i-blog.csdnimg.cn/blog_migrate/99e2b6372ebbaace6d3cf0333675fd0f.png)
-
投影是在垂直方向做的筛选,也就是在列方向做的筛选。所以投影运算,就是在做列的筛选。
-
用所需的列名作为投影运算的下标。
-
圆括号中指定在哪个关系中挑选出所需的列。
五、选择
1、概念
![](https://i-blog.csdnimg.cn/blog_migrate/31070287888cb9b2e4e5d9fdd510f68f.png)
-
选择是在水平方向做的筛选,也就是在行方向做的筛选。所以选择运算,就是在做元组筛选。
-
筛选的条件作为选择运算的下标。
-
圆括号中指定在哪个关系中挑选所需的行。
2、在关系运算中可以用数字表示列
![](https://i-blog.csdnimg.cn/blog_migrate/4cbf6ab72453518ced711e2abe1be49f.png)
-
在第几列就用数字几表示该列。
-
如果筛选条件用到具体的数值时,需要给数值加单引号。例如第一列大于6表示为:1>'6'。
六、连接
1、概念
![](https://i-blog.csdnimg.cn/blog_migrate/601baeb99c4ed67e59fdf1666e083f28.png)
-
对两个或者两个以上的关系进行关系代数运算才需要连接运算。连接的条件写在连接符的下方。
-
连接运算可以分为先做笛卡尔积运算再做水平筛选运算(选择运算)。
2、连接的分类
-
θ连接
-
等值连接
-
自然连接。
七、θ连接
1、概念
![](https://i-blog.csdnimg.cn/blog_migrate/a8dd606af71aa3e75079078506a62ab6.png)
-
指定连接的条件就是 θ运算。
-
例如where条件中用到的>,<,>=,<=,!=都是 θ运算。
2、θ连接运算
-
先做笛卡尔积运算;
-
再基于 θ连接中的连接条件,对笛卡尔积中的数据 做水平方向筛选运算。
![](https://i-blog.csdnimg.cn/blog_migrate/ecaf683f044c34142d522475a3011726.png)
![](https://i-blog.csdnimg.cn/blog_migrate/32d8bc2690b34f8ccf970262ea6ba7fe.png)
八、等值连接
1、概念
![](https://i-blog.csdnimg.cn/blog_migrate/43ef9688c1a054fa553f7c28138d3dbb.png)
-
如果 θ运算的类型是“=”的话,那就是等值运算。
-
等值连接是 θ连接的一种特殊类型。
九、自然连接
1、概念
![](https://i-blog.csdnimg.cn/blog_migrate/5963ec3bb378d7ee74bfadedfe62e02a.png)
-
自然连接是等值连接的一种特殊类型。
-
连接符下方没有连接的条件。
2、自然连接的特点
![](https://i-blog.csdnimg.cn/blog_migrate/b8ff6fbf984711304dd6419f7423727c.png)
-
自然连接只能是不同关系中相同列名的列进行比较。 如果两个关系中,分别有两组同名的列,那么进行自然连接运算时需要同时满足,例如上图中需要 同时满足 S.A=R.A AND S.C=R.C。
-
所以图中关系R和关系S进行自然连接运算的连接条件就是: S.A=R.A AND S.C=R.C。
-
自然连接运算做了列的筛选,把笛卡尔积中重复的列去掉了,也就是说自然连接运算的结果取笛卡尔积中任意一组关系的列即可。
-
综上所述,自然连接的连接条件对两个关系得到的笛卡尔积进行了行的筛选,自然连接最终的结果对笛卡尔积做了列的筛选。
3、考点:自然连接运算的应用
![](https://i-blog.csdnimg.cn/blog_migrate/efb79e533d2a57f1dc39d17a2b3e66fd.png)
![](https://i-blog.csdnimg.cn/blog_migrate/6ba980e2ce70d9b5ea3813ce5c96c8a0.png)