数据库原理2-2.ppt
文本预览下载声明
数据库原理第二章:关系数据库 本次课学习内容 关系代数 关系运算(选择、投影、连接,除运算) 关系演算 是以数理逻辑中的谓词演算为基础的。 可分为: 元组关系演算语言(get,put等6条语句) 域关系演算语言QBE 一、关系代数 1、除运算 2、除运算示例 3、除运算练习 1、除运算÷(Division,亦称商) 用途:除法运算同时从行和列的角度进行运算,在表达某些查询时有用,适合于包含“全部”之类的短语的查询,例如“查询已注册选修了所有课程的学生名字”。 定义:给定关系 R(X,Y),S(Y,Z),X,Y,Z为属性列,关系R和关系S中的Y出自相同域集,则: R÷S={tr[X]|tr∈R∧ΠY(S)?Yx} 其中,Yx为x在R中的象集,x= tr[X]。 象集Zx 给定一个X和关系R(X,Z), Z为属性组。 当t[X]=x时,x在R中的象集(Images Set)为: Zx={t[Z]|t ?R,t[X]=x} 它表示R中属性组X上值为x的诸元组在Z上分量的集合 2、除运算示例 分析 在关系R中,A可以取四个值{a1,a2,a3,a4} 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) } 只有a1的象集包含了S在(B,C)属性组上的投影 所以R÷S ={a1} 写出R÷S= 例4:查询至少选修1号课程和3号课程的学生号码 解题思路:首先建立一个临时关系K, 然后求πSno,Cno(SC)÷K 200215121象集{1,2,3} 200215122象集{2,3} K={1,3} 于是:πSno,Cno(SC)÷K={200215121} 关系除法运算的步骤: 将被除关系属性分为象集属性和结果属性 对象集属性进行投影—目标数据集 将被除关系分组:结果属性值一样的元组分为一组 找出结果集 3、除运算练习 1、已知关系r、s、w如图所示,计算T= (r ∪s)÷w) S 2、检索学习全部课程的学生学号 3、检索学习全部课程的学生学号和姓名 4、检索所学课程包含学生S3所学课程的学生学号 综合练习 例1 查询选修了2号课程的学生的学号: πSno(σCno=’2’(SC))={95001,95002} 求解过程:先对SC关系选择Cno=‘2’的元组,再对Sno学号。 例2 查询至少选修了一门其先行课为5号课程的学生姓名: πSname(σCpno=‘5’(Course)∞SC∞πSnno,Sname(Stud))=“李勇” 求解过程:先对Course关系仅选择Cpno=‘5’的元组,再将元组构成的关系与SC自然连接(同一课程号),再与Stud的Sno学号和Sname的投影自然连接,最后对“姓名”投影。 πSname(πSno (σCpno=5(Course)∞SC)∞πSno,Sname (Stud) 和πSname(σCpno=5(Course∞SC∞Stud)) 也可以完成同样功能。 关系代数小结 传统的集合运算 并、差、交、笛卡尔积 专门的关系运算 选择、投影、连接、除 5种基本运算 并、差、笛卡尔积、投影、选择 ①关系代数 关系代数运算: 并、差、交、笛卡尔积、投影、选择、连接、除 关系代数的五个基本运算:并、差、笛卡儿积、投影、选择。其它的操作都可以由5个基本的运算导出,因此它们构成了关系代数完备的操作集。 例如:R∩S=R-(R-S) 或 R∩S=S-(S-R)-----交运算不是一个独立的运算。 ②关系代数在使用的过程中对于只涉及选择、投影、连接的查询可用表达式:πA1,A2,.....Ak(σF(S∞R)) 或 πA1,A2,....Ak(σF(S×R)) ③对于否定操作,一般要用差操作表示。如不选“操作系统”课的学生姓名,通常采用如下形式: πSname(S)-πSname(σCname=”操作系统”(S∞SC∞C)) ④对于检索具有全部特征的操作,一般要用除法操作表示,例如查询选修全部课程的学生学号采用如下形式: πSno,Cno(SC) ÷πCno(Course) 二、关系演算 关系演算是以数理逻辑中的谓词演算为基础的,通过谓词形式来表示查询表达式。 根据谓词变元的不同,可将关系演算分为元组关系演算和域关系演算。前者以元组为变量,简称元组演算;后者以域为变量,简称域演算。 元组关系演算 Tuple Relational Calculus ,
显示全部