文章目录
关系代数是以关系为运算对象的一组高级运算的集合。由于关系定义为属性个数相同的元组的集合,因此集合代数的操作就可以引入到关系代数中。关系代数中的操作可以分为两类:传统的关系操作,并、差、交、笛卡尔积(乘)、笛卡尔积的逆运算(除);扩充的关系操作,对关系进行垂直分割(投影)、水平分割(选择)、关系的结合(连接、自然连接)等。
五中基本的关系代数操作
并(Union)
关系 R 与 S 具有相同的关系模式,即 R 与 S 的元数相同(结构相同),R 与 S 的并是属于 R 或者属于 S 的元组构成的集合,记作 R ∪ S,定义如下:
R∪S={t|t∈R∨t∈S}R∪S={t|t∈R∨t∈S}
差(Difference)
关系 R 与 S 具有相同的关系模式,关系 R 与 S 的差是属于 R 但不属于 S 的元组构成的集合,记作 R − S,定义如下:
R−S={t|t∈R∨t∉S}R−S={t|t∈R∨t∉S}
广义笛卡尔积(Extended Cartesian Product)
两个无数分别为 n 目和 m 目的关系 R 和 S 的 笛卡尔积是一个 (n+m) 列的元组的集合。组的前 n 列是关系 R 的一个元组,后 m 列是关系 S 的一个元组,记作 R × S,定义如下:
投影(Projection)
投影运算是从关系的垂直方向进行运算,在关系 R 中选出若干属性列 A 组成新的关系,记作 πA®πA®,其形式如下:
πA®={t[A]|t∈R}πA®={t[A]|t∈R}
选择(Selection)
选择运算是从关系的水平方向进行运算,是从关系 R 中选择满足给定条件的元组,记作 σF®σF®,其形式如下:
σF®={t|t∈R∧F(t)=True}
举个栗子,通过两个关系分析下:
(a)R∪S 并 (b)R-S 差 (c)R×S 笛卡尔积 (d)πC,A® 投影 (e)σB>’4’ ® 选择
说明:笛卡尔积,若R有m个元组,S有n个元组,则R×S有m×n个元组。投影,C和A为属性名,说明要选择的列。选择B>‘4’,即选择语句的条件,对关系做水平分割,选择符合条件的元组。
连接
连接(join)就是把两个表中的行按照给定的条件进行拼接而达成新表。
等值连接
通俗讲就是两个表的某些列值相等作为条件连接,称为等值连接。记为: R⋈X=YS
举个栗子,现在有A表和B表,连接条件为T1=T3。
自然连接
数据库中最常用的是自然连接进行自然连接运算要求两个表有共同的属性(列),自然连接运算的结果表是在参与操作两个表的共同属性上进行等值连接后,再去除重复的属性后获得的新表。举个栗子,现在有A表和B表进行自然连接。
实战练习
在关系代数运算中,把由五个基本操作经过有限次复合的式子称为关系代数表达式。这种表达式的运算结果仍是一个关系。我们可以用关系代数表达式表示各种数据查询操作。
例1:
有如下三个关系:
S(Sno,Sname,Ssex,Sage,Sdept)
学生关系(学号,姓名,性别,年龄,所在学院)
C(Cno,Cname,Cdept,Tname)
课程关系(课程号,课程名,课程开课学院,代课教师)
SC(Sno,Cno,Grade)
选修关系(学号,课程号,成绩)
查询至少选修了课程号为“C5”和“C9”的学生学号,正确的关系代数为_____?
答案:
此题涉及三个表,先进行选择,再进行投影,之后∩。
例2:
S(Sno,Sname,Ssex,Sage,Sdept)
学生关系(学号,姓名,性别,年龄,所在学院)
C(Cno,Cname,Cdept,Tname)
课程关系(课程号,课程名,课程开课学院,代课教师)
SC(Sno,Cno,Grade)
选修关系(学号,课程号,成绩)
查询学生“李力”所学课程的课程名与任课教师名,正确的关系代数为________?
答案:
此题涉及三个表,先连接,再选择,而后投影。
希望对您有所帮助!