关系代数
传统的集合运算(基本的关系:选择、投影、并、差、笛卡尔积)
∪(并)、-(差)、笛卡尔积、∩(交)(其中:∩(交)可以通过∪(并)与-(差)的组合来表示)
###并差交使用的前提是: ###1.这三个操作符所操作的关系有相同的目(即:有相同数目的列属性) ###2.相应的属性取自同一个
###并交差都不改变关系的列数,但是笛卡尔积改变了关系的列数
##专门的关系运算
##选择、投影、连接、除 ##1.选择(又称为限制) ###将符合筛选要求的元组显示出来(选择:只改变表元组的数目)
##2.投影 ###从原有的表中选择出若干的列组成新的关系 ###投影不仅仅改变的是列的数据,也可能改变元组的数目 ###因为在进行投影的时候可能将原有的可以唯一的确定一个元组的列去掉之后,造成重复的行出现,从而导致投影之后元组的数目也跟着发生变化。
##3.连接 ###等值连接(连接条件为=) ###从关系的笛卡尔积中选取A,B属性值相等的那些元组,即等值连接(不去除重复的列) ###自然连接 ###与等值连接类似,但是不同点是自然连接将重复的列去掉了。
###外连接(所谓的左表右表:在sql语句中以from后的表为左表) ###左外连接:保留左表中的全部的信息,未匹配的用null代替 ###右外连接:保留右表中的全部的信息,未匹配的用null代替
##4.除 ###给定关系R (X,Y) 和S (Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。
附加的内容:除法的推导
除法公式的作用就是将在某一个前提下(这里以S为那个前提),哪种情况(哪种情况指代R中的内容)包含了前面S中的全部的情况,就将R中该情况(符合S中所有的要求的情况)保留。
例子:设关系R(A,B,C),S(B,C,D),R/S?
R与S的关系如下:
a1的象集{(b1,c2),(b2,c3),(b2,c1)}
a2的象集{(b3,c7),(b2,c3)}
a3的象集{(b4,c6)}
a4的象集{(b6,c6)}
S在(B,C)上的投影为{(b1,c2),(b2,c1),(b2,c3)}
最终的结果:
(个人理解:其中S在除法中表示一个标准,S中的内容(即:B,C,其中D是无关量,其中的B,C应该与R中的B,C相对应,A即所要求的内容)表示所要达到的标准,而A/S表示从A中筛选出符合标准的内容),A/S所的结果为达到S中的标准的内容