一、关系运算
首先定义符号,R和S分别表示为一个关系
选择:
定义:
式中,F表示选择条件,是一个逻辑表达式。
简单来说,就是只留下我想要的。满足我给出的条件F就留下,选择是对行做操作,删掉的是不满足条件规定的属性值的那一行或者几行(元组)。
投影:
定义:
式中,A为R中的属性列。
简单来说,投影只留下满足你要的的那一个或者多个属性列,A就是让你想要的列。投影操作就是从列的角度进行运算。投影不需要管列的值,而选择操作与属性值有关。
连接:
定义:
式中,中,,A和B要是分别属于关系R和S的列数相等且可比的数组,θ是比较运算符(<>=等)。
简单来说,连接就是把满足你的条件()的两个关系(表)解接在一起,组成一个表。前提是:A和B要是分别属于关系R和S的列数相等且可比的数组。
除:
除运算理解比较麻烦,加上例题理解。首先,明白什么是像集。
像集
给定一个关系R(X,Z),X、Z为属性组。当t[X]=x时,x在R中的像集定义为:
它表示R中属性组X上值为x的诸元组在Z上的属性值的集合。
简单举例:
在R中的像集为
在R中的像集为
在R中的像集为
除运算
定义:
式中,是x在Y中的像集,而
满足下列条件的元组在X属性列上的投影:元组在X上 属性值x的像集
包含在 S在Y上投影的集合 里面 。
即先计算属性X的每一个属性值对应的像集
,再计算出S在Y上的投影,最后判断投影是否被包含在像集里,找出满足条件的像集对应的
。
除运算是同时从列和行的角度进行运算。
例题:
关系R:
A | B | C |
关系S:
B | C | D |
解:
(1)首先计算像集
对于关系R,由于两个关系共有属性B和C,而属性A的取值为,所以:
a1的像集为
a2的像集为
a3的像集为
a4的像集为
(2)计算投影
S在属性集(B,C)上的投影为:
(3)分析满足条件的分量x
通过像集和投影的比较,发现只有a1的像集包含了S的投影,也就是S的投影被包含在a1的像集中。
(4)得出结果