9299.net
大学生考试网 让学习变简单
当前位置:首页 >> 数学 >>

关系代数讲解与例题

关系代数讲解与例题


关系代数 关系代数是关系数据库系统查询语言的理论基础。 关系代数的 9 种操作: 并、交、差、乘、选择、投影、联接、除、自然联接运算。 五个基本操作: 并(∪) 差(-) 笛卡尔积(×) 投影(σ ) 选择(π ) 四个组合操作: 交(∩) 联接(等值联接) 自然联接(RS) 除法(÷) 关系代数表达式: 由关系代数运算经有限次复合而成的式子称为关系代数表达式。这种表达式的运算结果 仍然是一个关系。可以用关系代数表达式表示对数据库的查询和更新操作。 关系代数(演算)要求掌握各种语句的应用,多做书中的例题可以帮助自己熟能生巧。 关系代数表达式举例 用关系代数表示数据查询的典型例子 [例]设教学数据库中有 3 个关系: 学生关系 S(SNO,SNAME,AGE,SEX) 学习关系 SC(SNO,CNO,GRADE) 课程关系 C(CNO,CNAME,TEACHER) 下面用关系代数表达式表达每个查询语句。 (1) 检索学习课程号为 C2 的学生学号与成绩。 π SNO,GRADE(σ CNO='C2'(SC)) (2) 检索学习课程号为 C2 的学生学号与姓名 π SNO,SNAME(σ CNO='C2'(SSC)) 由于这个查询涉及到两个关系 S 和 SC,因此先对这两个关系进行自然连接,同一位学生 的有关的信息,然后再执行选择投影操作。 此查询亦可等价地写成: π SNO,SNAME(S) (π SNO(σ CNO='C2'(SC))) 这个表达式中自然连接的右分量为"学了 C2 课的学生学号的集合"。这个表达式比前一个 表达式优化,执行起来要省时间,省空间。 (3)检索选修课程名为 MATHS 的学生学号与姓名。 π SNO,SANME(σ CNAME='MATHS'(SSCC)) (4)检索选修课程号为 C2 或 C4 的学生学号。 π SNO(σ CNO='C2'∨CNO='C4'(SC)) (5)检索至少选修课程号为 C2 或 C4 的学生学号。 π 1(σ 1=4∧2='C2'∧5='C4'(SC×SC)) 这里(SC×SC)表示关系 SC 自身相乘的乘积操作,其中数字 1,2,4,5 都为它的结果

关系中的属性序号。 比较这一题与上一题的差别。 (6)检索不学 C2 课的学生姓名与年龄。 π SNAME,AGE(S)-π SNAME,AGE(σ CNO='C2'(SSC)) 这个表达式用了差运算,差运算的左分量为"全体学生的姓名和年龄",右分量为"学了 C2 课的学生姓名与年龄"。 (7)检索学习全部课程的学生姓名。 编写这个查询语句的关系代数过程如下: (a) 学生选课情况可用π SNO,CNO(SC)表示; (b) 全部课程可用π CNO(C)表示; (c) 学了全部课程的学生学号可用除法操作表示。 操作结果为学号 SNO 的集合,该集合中每个学生(对应 SNO)与 C 中任一门课程号 CNO 配在一起都在π SCO,CNO(SC)中出现(即 SC 中出现) ,所以结果中每个学生都学了全部 的课程(这是"除法"操作的含义) : π SNO,CNO(SC)÷π CNO(C) (d) 从 SNO 求学生姓名 SNAME,可以用自然连结和投影操作组合而成: π SNAME(S (π SNO,CNO(SC)÷π CNO(C))) 这就是最后得到的关系代数表达式。 (8)检索所学课程包含 S3 所学课程的学生学号。 注意:学生 S3 可能学多门课程,所以要用到除法操作来表达此查询语句。 学生选课情况可用操作 π SNO,CNO(SC)表示; 所学课程包含学生 S3 所学课程的学生学号,可以用除法操作求得: π SNO,CNO(SC)÷ π CNO(σ SNO='S3'(SC))


推荐相关:
网站首页 | 网站地图
All rights reserved Powered by 大学生考试网 9299.net
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com