《第6讲关系演算.ppt》由会员分享,可在线阅读,更多相关《第6讲关系演算.ppt(34页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第3章 关系数据库理论 关系演算1第第6讲讲 关系演算关系演算本章内容关系模型关系代数关系演算2第第6讲讲 关系演算关系演算关系操作语言关系演算语言关系演算语言用数理逻辑中的谓词演算来表达关系的操作 用查询的结果应满足的谓词条件来表达查询要求。3.3 关系演算3第第6讲讲 关系演算关系演算关系操作语言关系关系R R的表示的表示用集合描述法建立谓词与关系间的联系。关系R可以看成是满足一定条件的元组或属性域的集合。R=u R(u)u u 可为元组变量或域变量可为元组变量或域变量 R R(u u)是一个谓词)是一个谓词3.3 关系演算4第第6讲讲 关系演算关系演算元组关系演算关系关系R R的表示的表
2、示查询的形式 t (t)t为元组变量,即查询的目标为元组变量,即查询的目标 称为元组演算公式,即查询的条件称为元组演算公式,即查询的条件用到变量用到变量t (t)是布尔值)是布尔值true或或false t (t)表示使表示使(t)为真的元组)为真的元组t的集合。的集合。3.3 关系演算5第第6讲讲 关系演算关系演算元组关系演算元组演算公式元组演算公式 原子公式原子公式R(t):表示:表示t是是R中的元组。中的元组。t i u j:表示表示“元组元组t的第的第i个分量与元组个分量与元组u 的的第第j个分量进行比较运算个分量进行比较运算”。t i C:表示:表示“元组元组t的第的第i个分量与常量
3、个分量与常量C进行进行比较运算比较运算”3.3 关系演算6第第6讲讲 关系演算关系演算元组关系演算元组演算公式元组演算公式 递归定义递归定义原子公式是公式。原子公式是公式。设设 1(t1)和和 2(t2)是公式,则是公式,则 1(t1),1(t1)2(t2),1(t1)2(t2)也是公式。也是公式。设设(t)是公式,)是公式,t是是(t)中的元组变量,)中的元组变量,则(则(t)(t),),(t)(t)也是公式。)也是公式。有限次使用上述规则得到的式子都是公式。有限次使用上述规则得到的式子都是公式。3.3 关系演算(t)(t)表示表示“若有一个若有一个 t 使使 为真,则为真,则(t)(t)为
4、真,否则为为真,否则为假假(t)(t)表示表示“如果对如果对所有所有 t 都使都使 为真,则为真,则(t)(t)为真,否则为为真,否则为假假7第第6讲讲 关系演算关系演算元组关系演算元组演算公式元组演算公式约束变量与自由变量约束变量与自由变量若元组演算公式中的一个元组变量前有若元组演算公式中的一个元组变量前有“全称量词全称量词”和和“存在量词存在量词”,则称该变量为约束元组变量,则称该变量为约束元组变量,否则称自由元组变量。否则称自由元组变量。在公式(在公式(t)(t)和()和(t)(t)中)中,称为称为是量词的辖域。是量词的辖域。t出现在出现在(t)或或(t)的辖域内,的辖域内,t 为约束元
5、组变量,被量词所绑定。任何没有以这种为约束元组变量,被量词所绑定。任何没有以这种方法显示绑定的变量都称为自由变量。方法显示绑定的变量都称为自由变量。3.3 关系演算8第第6讲讲 关系演算关系演算元组关系演算元组演算公式元组演算公式 公式运算符公式运算符算术比较符:算术比较符:,=存在量词存在量词 和全称量词和全称量词 逻辑运算符:逻辑运算符:,3.3 关系演算高高低低9第第6讲讲 关系演算关系演算RSR S元组关系演算与关系代数的等价性与关系代数的等价性 t R(t)S(t)ABCdafbgaABCabcdafcbdbgaABCabcdafcbd3.3 关系演算10第第6讲讲 关系演算关系演算
6、RSRS t R(t)S(t)元组关系演算与关系代数的等价性与关系代数的等价性 ABCabccbdABCbgadafABCabcdafcbd3.3 关系演算11第第6讲讲 关系演算关系演算t(2)(u)(R(u)t1=u1t2=u3)ABCabcdafcbdRA,C(R)ACacdfcd元组关系演算与关系代数的等价性与关系代数的等价性 3.3 关系演算12第第6讲讲 关系演算关系演算ABCabcdafcbdRB=b(R)ABCabccbd t R(t)t2=b 元组关系演算与关系代数的等价性与关系代数的等价性 3.3 关系演算13第第6讲讲 关系演算关系演算ABCa1b1C1a1b2C3DEb
7、1c1b1c1b2c2RSABCDEa1b1c1b1c1a1b1c1b1c1a1b1c1b2c2a1b2c3b1c1a1b2c3b1c1a1b2c3b2c2RxSt(5)(u)(v)(R(u)S(v)t1=u1t2=u2 t3=u3t4=v1t5=v2)元组关系演算与关系代数的等价性与关系代数的等价性 3.3 关系演算14第第6讲讲 关系演算关系演算3.3 关系演算元组关系演算用元组演算表达式实现查询用元组演算表达式实现查询给定一个数据库,元组关系演算查询的结果是数据库给定一个数据库,元组关系演算查询的结果是数据库中能使中能使查询条件为真的查询条件为真的变量变量t 的值的的值的所有选择的集合所
8、有选择的集合。根据查询条件书写关系演算表达式,要分析查询的语根据查询条件书写关系演算表达式,要分析查询的语义,用相应的公式去表达。并注意约束变量和自由变义,用相应的公式去表达。并注意约束变量和自由变量的使用。量的使用。15第第6讲讲 关系演算关系演算3.3 关系演算元组关系演算用元组演算表达式实现查询用元组演算表达式实现查询语句形式化过程需要注意如下问题语句形式化过程需要注意如下问题准确地从查询语句中提取谓词,即元组变量和元准确地从查询语句中提取谓词,即元组变量和元组分量所满足的谓词条件。组分量所满足的谓词条件。涉及某个关系上的全部个体或某个个体时,使用涉及某个关系上的全部个体或某个个体时,使
9、用限于该关系的限于该关系的“限定谓词限定谓词”。准确确定量词和量词的辖域,当辖域中多于一个准确确定量词和量词的辖域,当辖域中多于一个谓词时必须注意括号的使用谓词时必须注意括号的使用。16第第6讲讲 关系演算关系演算【例】应用实例数据库中的关系模式 学生关系:S(学号、姓名、性别、年龄)课程关系:C(课程号、课程名、先修课程号)选课关系:SC(学号、课程号、成绩)3.3 关系演算17第第6讲讲 关系演算关系演算(1)查询学生年龄大于等于)查询学生年龄大于等于20岁的学生姓名岁的学生姓名学生关系:S(学号、姓名、性别、年龄)课程关系:C(课程号、课程名、先修课程号)选课关系:SC(学号、课程号、成
10、绩)t(1)(u)(S(u)u4 20 t1=u2)学号学号姓名姓名性别性别年龄年龄S1S1王小艳王小艳女女1818S2S2李明李明男男2020S3S3司马南司马南男男1818S4S4李昕李昕女女1919S5S5成功成功男男2121u3.3 关系演算18第第6讲讲 关系演算关系演算(2)查询学号为)查询学号为“S1”的学生选修的课程中其成绩为的学生选修的课程中其成绩为“98”的所有课程的所有课程号号学生关系:S(学号、姓名、性别、年龄)课程关系:C(课程号、课程名、先修课程号)选课关系:SC(学号、课程号、成绩)u t(1)(u)(SC(u)u1=S1u3=98 t1=u2)学号学号课程号课程
11、号成绩成绩S1S1C1C19898S1S1C4C47878S2S2C1C18888S1S1C2C29898S1S1C3C389893.3 关系演算19第第6讲讲 关系演算关系演算学生关系:S(学号、姓名、性别、年龄)课程关系:C(课程号、课程名、先修课程号)选课关系:SC(学号、课程号、成绩)t(1)(u)(v)(w)(S(u)SC(v)C(w)w2=操作操作系统系统 v2=w1u1=v1 t1=u2)(3)查询选修了课程名为)查询选修了课程名为“操作系统操作系统”课程的所有学生的姓名课程的所有学生的姓名3.3 关系演算20第第6讲讲 关系演算关系演算学号姓名性别年龄S1王小艳女18S2李明男
12、20S3司马南男18S4李昕女19S5成功男21课程号课程名先修课程号C1数据库C2C2操作系统C1C3数据结构C1C4微机原理C3学号课程号成绩S1C198S1C478S2C288S1C298S1C389SC(v)C(w)S(u)t(1)(u)(v)(w)(S(u)SC(v)C(w)w2=操作系统操作系统 v2=w1u1=v1t1=u2)(u)(S(u)u1=v1 Q)w(w)(C(w)w2=操作系统操作系统)用用P P表示表示(v)(SC(v)v2=w1 P)用用Q Q表示表示vu21第第6讲讲 关系演算关系演算学生关系:S(学号、姓名、性别、年龄)课程关系:C(课程号、课程名、先修课程号
13、)选课关系:SC(学号、课程号、成绩)t(1)(u)(v)(w)(S(u)C(v)SC(w)u1=w1 w2=v1t1=u2)(4)查询选修所有课程的学生姓名)查询选修所有课程的学生姓名3.3 关系演算22第第6讲讲 关系演算关系演算学号姓名性别年龄S1王小艳女18S2李明男20S3司马南男18S4李昕女19S5成功男21课程号课程名先修课程号C1数据库C2C2操作系统C1C3数据结构C1C4微机原理C3学号课程号成绩S1C198S1C478S2C288S1C298S1C389SC(w)C(v)S(u)t(1)(u)(v)(w)(S(u)C(v)SC(w)u1=w1 w2=v1t1=u2)u(
14、v)C(v)(v)(w)(C(v)SC(w)w2=v1)(u)(v)(w)(S(u)C(v)SC(w)u1=w1 w2=v1)23第第6讲讲 关系演算关系演算学生关系:S(学号、姓名、性别、年龄)课程关系:C(课程号、课程名、先修课程号)选课关系:SC(学号、课程号、成绩)t(2)(u)(S(u)(v)(SC(v)(u1=v1v2C2)t1=u2t2=u4)(5)查询不学)查询不学“C2”课程的学生姓名与年龄;课程的学生姓名与年龄;3.3 关系演算24第第6讲讲 关系演算关系演算学生关系:S(学号、姓名、性别、年龄)课程关系:C(课程号、课程名、先修课程号)选课关系:SC(学号、课程号、成绩)
15、(6)查询至少选修学号为)查询至少选修学号为“S1”的学生所选修的所有课程的学生的学的学生所选修的所有课程的学生的学号号3.3 关系演算本查询可以用逻辑蕴涵来表达:本查询可以用逻辑蕴涵来表达:查询学号为查询学号为X X的学生,对所有的课程的学生,对所有的课程Y Y,只要,只要S S1 1学生选修课程学生选修课程Y Y,则,则X X也也选修了选修了Y Y。用用p p表示谓词表示谓词“S1S1学生选修课程学生选修课程Y Y”用用q q表示谓词表示谓词“学生学生X X选修了课程选修了课程Y Y”则查询为:则查询为:(y y)pqpq25第第6讲讲 关系演算关系演算学号姓名性别年龄S1王小艳女18S2
16、李明男20S3司马南男18S4李昕女19S5成功男21学号课程号成绩S1C198S1C478S2C188S2C498S3C389SC(v)SC(w)S(u)uV学号课程号成绩S1C198S1C478S2C188S2C498S3C389w t(1)(u)(S(u)(v)(SC(v)(v1=S1 (w)(SC(w)w1=u1 w2=v2)t1=u1)26第第6讲讲 关系演算关系演算学生关系:S(学号、姓名、性别、年龄)课程关系:C(课程号、课程名、先修课程号)选课关系:SC(学号、课程号、成绩)t(1)(u)(S(u)(v)(SC(v)(v1=S1 (w)(SC(w)w1=u1 w2=v2)t1=
17、u1)(6)查询至少选修学号为)查询至少选修学号为“S1”的学生所选修的所有课程的学生的学的学生所选修的所有课程的学生的学号号3.3 关系演算27第第6讲讲 关系演算关系演算域关系演算关系关系R R的表示的表示 t1t2tk (t1,t2,tk)t1,t2,t1,t2,tktk为元组变量为元组变量t t的各个分量,称为域变量。的各个分量,称为域变量。是域演算公式。是域演算公式。3.3 关系演算28第第6讲讲 关系演算关系演算域关系演算域演算公式域演算公式 原子公式 R(t1t2tk)t iu j t iC 3.3 关系演算29第第6讲讲 关系演算关系演算域关系演算域演算公式域演算公式 递归定义
18、原子公式是公式。原子公式是公式。设设 1和和 2是公式,则是公式,则 1,1 2,1 2也是也是公式。公式。设设(t1,t2,tk)是公式,是公式,(ti)(t1,t2,tk),(t i)(t1,t1,tk)也是公式。也是公式。有限次使用上述规则得到的式子都是公式。有限次使用上述规则得到的式子都是公式。3.3 关系演算30第第6讲讲 关系演算关系演算3.3 关系演算【例例】用域关系演算公式表达如下查询:用域关系演算公式表达如下查询:(1)查询)查询1990年以后出生的学生姓名年以后出生的学生姓名;t1 (u1)(u2)(u3)(u4)(u5)(S(u1u2u3u4 u5)u41990-12-3
19、1 t1=u2)(2)查询学号为)查询学号为“S1”的学生选修的课程中其成绩为的学生选修的课程中其成绩为“98”的所有课程的所有课程号;号;t1 (u1)(u2)(u3)(SC(u1u2u3)u1=S1 u3=98 t1=u2)(3)查询选修了课程名为)查询选修了课程名为“操作系统操作系统”的所有学生的姓名;的所有学生的姓名;t1 (u1)(u2)(u3)(u4)(u5)(v1)(v2)(v3)(w1)(w2)(w3)(S(u1u2u3u4 u5)SC(v1v2v3)C(w1w2w3)w2=操作系统操作系统 v2=w1 u1=v1 t1=u2)学生关系:S(学号、姓名、性别、出生时间、专业)课
20、程关系:C(课程号、课程名、先修课程号)选课关系:SC(学号、课程号、成绩)31第第6讲讲 关系演算关系演算小结关系数据模型是目前大多数关系数据模型是目前大多数DBMS所采用的数据所采用的数据模型。模型。关系数据结构关系数据结构关系操作关系操作关系完整性关系完整性关系数据模型是以集合论中的关系概念为基础发关系数据模型是以集合论中的关系概念为基础发展起来的数据模型。展起来的数据模型。在关系模型中,实体以及实体之间的联系均用单一的在关系模型中,实体以及实体之间的联系均用单一的结构类型即关系来表示。结构类型即关系来表示。32第第6讲讲 关系演算关系演算小结 关系数据模型中关系操作表达方式:关系代数关系代数基本关系代数运算基本关系代数运算并、差、广义笛卡尔乘积、投影和选择组合关系代数运算组合关系代数运算交、除、连接关系演算关系演算元组关系演算元组关系演算域关系演算域关系演算 33第第6讲讲 关系演算关系演算小结关系模型中有三类完整性约束:实体完整性实体完整性参照完整性参照完整性用户定义的完整性用户定义的完整性以关系代数为基础的数据库语言非过程性较弱,以关系演算为基础的数据库语言非过程性较强。34