1.关系代数
- 可以用代数、逻辑等方法描述关系操作,最基本最常用的是代数方法,即:关系代数
- 关系代数也是一门代数,关系代数包括一个运算集合,这些运算以一个或者两个关系作为运算数,产生一个新的关系作为结果
- 关系代数运算的分类如下:
2.基本关系代数运算:选择
- 选择
选择运算是选出满足给定谓词(条件)的元组 ,结果关系和原关系有着相同的模式。
选择运算用希腊字母δ表示 - eg:选择出examinee表中,eesex=“男”的元组
3.基本关系代数运算:投影
-
投影
投影运算用来从给定关系产生一个只有其部分列的新关系;
所有希望在结果关系中出现的属性作为Π的右下标,作为参数的关系名紧紧跟在Π后的括号中,结果关系的模式是:Π的下标中所有列出的列出的所有属性并按照Π下标中列出的顺序出现;
投影运算用希腊字母Π表示; -
eg:
对examinee做投影,结果关系包括:eeid,eename两个属性,并且会去掉结果关系中重复的元组
-
注意:
关系代数把表看作,作为元组集合的关系,既然是集合,就不包括重复元组,也就是说,关系代数每个运算都是去重的
4.基本关系代数运算:并运算
- 关系是相容的
(1)两个关系必须是同元的,即:他们所包含的属性个数必须相同
(2)两个关系对应属性的域必须相同或相容 - eg:
找出所有肯定有组卷考官或者所有有考生报考的eid
对erexam的eid属性做投影,查询有组卷考官的试卷eid;
对eeexam的eid属性做投影,查询有考生报考的试卷eid;
最后这俩求个并
5.基本关系代数运算:集合差运算
-
集合差运算是用来查询,载一个关系中,而不在另一个关系中的那些元组, 和并运算一样,集合差运算只能在相容的关系间进行
-
eg:找出所有有考生报考但是还没有安排组卷考官的eid
对eeexam的eid属性做投影-对erexam的eid属性做投影
6.笛卡尔积运算
- 结果关系的模式是参与运算的两个关系的模式的串接
- 运算符左侧关系中的每一个元组与右侧关系的每一个元组拼接,形成结果关系中的一个元组
- eg:examinee的每个元组和department的每个元组进行拼接,3*3=9个
7.更名
-
可对关系更名,或者赋予关系代数运算结果的一个名字:
对给定关系代数表达式E,表达式 ρ x ρ_x ρx(E)返回表达式E的结果,饼吧名字赋给了他 -
假设关系代数表达式E是n元的,则表达式:
返回表达式E的结果,并赋给它名字x,同时将E的各属性更名为 ρ 1 ρ_1 ρ1 A 2 A_2 A2… A n A_n An -
eg:查询所有历史学院的考生姓名
在examinee表中,对历史学院做出选择,然后对eename进行投影