数据库系统概念02关系模型.ppt
文本预览下载声明
* * 数据库系统概念----关系模型 2.3.3除运算 张军 ? 物理 数学 课程 = 物理 王红 数学 张军 数学 王红 物理 张军 课程 姓名 王红 张军 姓名 没有选修全部课程的学生 所有学生选修全部课程 ? = 数学 张军 数学 王红 物理 张军 课程 姓名 物理 王红 数学 张军 数学 王红 物理 张军 课程 姓名 姓名 王红 姓名 王红 姓名 王红 ? = 姓名 张军 选修了全部课程的学生 * * 数据库系统概念----关系模型 2.3.3除运算 A B C D a b c d a b e f a b d e b c e f e d c d e d e f C D c d e f A B a b e d d e c b b a B A d c c b f e d e d c d e f e c b f e b a d c b a D C B A R ?AB (R) S ?AB (R) ? ?CD (S) ?AB (R) ? ?CD (S)-R A B C D b c c d R ? S= d e c b b a B A A B b c - = * * 数据库系统概念----关系模型 2.3.3除运算 示例 求同时选修了001和002号课程的学生号 方案1: ∏S#,C#(SC) ? ?C# = 001? C# = 002 (C) 方案2: ∏S#(SC ? ?C# = 001? C# = 002 (C)) 哪一个正确? * * 数据库系统概念----关系模型 2.3.3除运算 ? 课程 数学 物理 = 92 物理 王红 93 86 93 成绩 数学 张军 数学 王红 物理 张军 课程 姓名 ? 课程 数学 物理 物理 王红 数学 张军 数学 王红 物理 张军 课程 姓名 姓名 张军 王红 = 姓名 成绩 张军 93 选修了全部课程并且成绩都相同的学生 选修了全部课程的学生 * * 数据库系统概念----关系模型 2.3.3除运算 示例,求学了所有课的学生学号: 思考1:使用÷,有几种写法? 思考2:不使用÷,如何书写? S SC C Sno Sname Dept Sno Cno Score Cno Cname S1 甲 计 S1 C1 80 C1 DS S2 乙 软 S1 C2 90 C2 DB S3 丙 软 S2 C1 70 S4 丁 计 S3 C2 60 * * 数据库系统概念----关系模型 2.3.4赋值运算 定义 为使查询表达简单、清晰,可以将一个复杂的关系代数表达式分成几个部分,每一部分都赋予一个临时关系变量,该变量可被看作关系而在后面的表达式中使用 临时关系变量?关系代数表达式 赋值给临时关系变量只是一种结果的传递,而赋值给永久关系则意味着对数据库的修改 * * 数据库系统概念----关系模型 2.3.4赋值运算 示例 R?S = ?X(R) ? ?X(?X(R) ? ?Y(S) ? R) 用赋值重写为: temp1 ? ?X(R) temp2 ? ?X(temp1 ? ?Y(S) ? R) result ? temp1 ? temp2 * * 数据库系统概念----关系模型 2.3附加运算:练习 1、求计算机系学生的“DB”成绩(sno,sname,score) 2、使用÷,求学了s5 所学全部课程的学生 3、不使用÷,求学了s5 所学全部课程的学生 S SC C Sno Sname Dept Sno Cno Score Cno Cname S1 甲 计 S1 C1 80 C1 DS S2 乙 软 S1 C2 90 C2 DB S3 丙 软 S2 C1 70 S4 丁 计 S3 C2 60 * * 数据库系统概念----关系模型 2.5空值,Null 空值的语义 不知道 或 不存在 空值的表现 参与算术运算:结果为Null 参与比较运算:结果为Null 参与逻辑运算: 1、Null or true=ture 2、Null and false=false 3、其它情况结果为null 空值是一种状态,不是一个明确的值 S Sno Sname Dept Sage S1 甲 计 20 S2 乙 软 21 S3 丙 软 S4 丁 20 * * 数据库系统概念----关系模型 2.5关系代数对空值的处理 不是总有道理,更多的时候是定义 σθ(E) 保留使θ确定地为真的元组 求20岁的学生 求不是20岁的学生 ΠA1,A2…(E) 元组表现相同(认为表示的语义相同),则保留一个元组 求各系年龄分布(dept,sage) ∪∩-:与Π的处理原则一致 S Sno Sname Dept Sage S1 甲 计 20 S2 乙 软 21 S3 丙 软 S
显示全部