文档详情

2-1第二章关系数据库讲解.ppt

发布:2017-02-05约字共72页下载文档
文本预览下载声明
* * * * * * * * * * * * * * * * * * * * * * * 例1:查询学生关系中有哪些系 πSdept(Student) 或 π5(Student) 例2:查询学生关系中学生的姓名和所在系 πSname,Sdept(Student) 例3:查询男同学所在的系 πSdept(σSEX=’男’ ( Student)) 例4:查询学号为95001的学生的课程号及成绩 πCno,Grade(σSno=’95001’ ( S C)) 其中π5(Student) 表示关系Student只取第5列,组成新的关系。 3)连接(Join) 从R×S的笛卡尔积结果集中选取在指定的属性集上满足θ条件的元组,组成新的关系。 R S = { | tr ? R∧ts ?S∧tr[A]θts[B] } A和B:分别为R和S上度数相等且可比的属性组 θ是比较运算符 AθB tr ts R S是在R和S的笛卡尔积中挑选第a个分量和S中第b个分量满足θ运算的元组。 两类常用连接运算 等值连接(θ为“=”的连接运算) 自然连接(一种特殊的等值连接) AθB 不等连接 则 结果为 等值连接 R S R.B=S.B 自然连接 R S 等值连接与自然连接的区别 1. 等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同。即两关系只有在同名属性才能进行自然连接。如上例R中的C列和S中的D列可进行等值连接,但因为属性名不同,不能进行自然连接。 2. 等值连接不将重复属性去掉,而自然连接去掉重复属性。也可以说,自然连接是去掉重复列的等值连接。如上例R中的B列和S中的B列进行等值连接时,结果有两个重复的属性列B,而进行自然连接时,结果只有一个属性列B。 等值连接与自然连接的区别 1. 等值连接中不要求相等属性值的属性名相同,而自然连接要求相等属性值的属性名必须相同。即两关系只有在同名属性才能进行自然连接。 2. 等值连接不将重复属性去掉,而自然连接去掉重复属性。也可以说,自然连接是去掉重复列的等值连接。 R S 自然连接 3、关系代数的应用实例 例:数据库中有三个关系 S(S#,SNAME,AGE,SEX) C(C#,CNAME,TEACHER) SC(S#,C#,GRADE) 查询讲授数据库课程的教师 检索学习课程号为C2的学生的学号与成绩 检索学习课程号为C2的学生的学号与姓名 检索选修课程名为Maths的学生学号与姓名 检索选修课程号为C2或C4的学生学号 检索不学C2课的学生姓名与年龄 * * * * * * * * * * * * * * * * * * * * * * 外码(Foreign Key) 设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码。 基本关系R称为参照关系(Referencing Relation) 基本关系S称为被参照关系(Referenced Relation)或目标关系(Target Relation) 规则2.2 参照完整性规则 若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为: 或者取空值(F 的每个属性值均为空值) 或者等于S 中某个元组的主码值 例1: 学生关系中每个元组的“专业号”属性只取两类值: (1)空值,表示尚未给该学生分配专业 (2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,该学生不可能分配一个不存在的专业。 例2: 选修(学号,课程号,成绩) “学号”和“课程号”可能的取值 : (1)选修关系中的主属性,不能取空值 (2)只能取相应被参照关系中已经存在的主码值 例3: 学生(学号,姓名,性别,专业号,年龄,班长) “班长”属性值可以取两类值: (1)空值,表示该学生所在班级尚未选出班长 (2)非空值,该值必须是本关系中某个元组的学号值 3、用户定义的完整性 针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求(属性的数据约束)。 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。 例: 1)选修关系中成绩的取值范围为0~100之间 2)某个属性(如:课程名)必须取唯一值 最后,关系模型的优点: 结构简单,具有高度的简明性和高度性 可直接处理多对多关系 一次处理一个元组集合 数据独立性很高 坚实的数学理论基础 四、关系代数 关系数据库的数据操纵语言(DML)的语句分成查询语句和更新
显示全部
相似文档