数据库第2章 关系数据.ppt

上传人:小飞机 文档编号:6578562 上传时间:2023-11-14 格式:PPT 页数:131 大小:1.55MB
返回 下载 相关 举报
数据库第2章 关系数据.ppt_第1页
第1页 / 共131页
数据库第2章 关系数据.ppt_第2页
第2页 / 共131页
数据库第2章 关系数据.ppt_第3页
第3页 / 共131页
数据库第2章 关系数据.ppt_第4页
第4页 / 共131页
数据库第2章 关系数据.ppt_第5页
第5页 / 共131页
点击查看更多>>
资源描述

《数据库第2章 关系数据.ppt》由会员分享,可在线阅读,更多相关《数据库第2章 关系数据.ppt(131页珍藏版)》请在三一办公上搜索。

1、2023/11/14,兰彬制作,1,第二章 关系数据库,2.1 关系模型概述2.2 关系数据结构2.3 关系的完整性2.4 关系代数,2023/11/14,兰彬制作,2,关系数据库简介,1970年,美国IBM公司的E.F.Codd提出关系数据模型,之后,提出了关系代数和关系演算的概念1971-1972年,E.F.Codd提出了关系的第一、第二、第三范式1974年,E.F.Codd提出了关系的BC范式1976年,Fagin提出了第四范式,后来又有人提出第五范式 80年代后,关系数据库系统成为最重要、最流行的数据库系统,2023/11/14,兰彬制作,3,关系数据库的典型实例,典型实验系统Syst

2、em RUniversity INGRES典型商用系统ORACLESYBASEINFORMIXDB2INGRES,2023/11/14,兰彬制作,4,国产支柱型关系数据库管理系统:东软集团有限公司的OpenBase、人大金仓的Kingbase ES、武汉达梦公司的DM4和中国航天科技集团公司OSCAR,2023/11/14,兰彬制作,5,第二章 关系数据库,2.1 关系模型概述2.2 关系数据结构2.3 关系的完整性2.4 关系代数,2023/11/14,兰彬制作,6,2.1 关系模型概述,关系数据库系统是支持关系模型的数据库系统关系模型的三大组成部分关系数据结构关系操作集合关系完整性约束,2

3、023/11/14,兰彬制作,7,1.关系模型的数据结构,单一的数据结构-关系现实世界的实体以及实体间的各种联系均用关系来表示数据的逻辑结构-二维表从用户角度,关系模型中数据的逻辑结构是一张二维表。,2023/11/14,兰彬制作,8,2023年11月14日,8,二维表,表2-1学生基本情况表,表有表名,2023/11/14,兰彬制作,9,2.关系操作集合,1)关系操作的种类2)关系操作的特点3)关系数据语言的种类4)关系数据语言的特点,2023/11/14,兰彬制作,10,关系操作集合(续),1)常用的关系操作数据查询选择、投影、连接、除、并、交、差数据更新插入、删除、修改,2023/11/

4、14,兰彬制作,11,关系操作集合(续),2)关系操作的特点集合操作方式,即操作的对象和结果都是集合。关系模型操作的方式:一次一集合非关系模型操作的方式:一次一记录,2023/11/14,兰彬制作,12,关系操作集合(续),3)关系数据语言的种类,2023/11/14,兰彬制作,13,关系操作集合(续),4)关系数据语言的特点关系语言是一种高度非过程化的语言具备完备的表达能力,功能强能够嵌入高级语言中使用,2023/11/14,兰彬制作,14,3.关系的三类完整性约束,实体完整性参照完整性这2种完整性通常由关系系统自动支持用户定义的完整性反映应用领域需要遵循的约束条件,体现了具体领域中的语义约

5、束用户定义后由系统支持,2023/11/14,兰彬制作,15,第二章 关系数据库,2.1 关系模型概述2.2 关系数据结构2.3 关系的完整性2.4 关系代数,2023/11/14,兰彬制作,16,2.2 关系数据结构,关系模型建立在集合代数的基础上关系数据结构的基本概念关系关系模式关系数据库,2023/11/14,兰彬制作,17,2.2 关系数据结构,2.2.1 关系2.2.2 关系模式2.2.3 关系数据库,2023/11/14,兰彬制作,18,2.2 关系数据结构,2.2.1 关系2.2.2 关系模式2.2.3 关系数据库,2023/11/14,兰彬制作,19,2.2.1 关系,域(Do

6、main)2.笛卡尔积(Cartesian Product)3.关系(Relation),2023/11/14,兰彬制作,20,域(Domain),域:例:整数实数大于 0 并且小于 100 的正整数所有同学的名字男,女,是一组具有相同数据类型的值的集合。,数字、字符及其子集。,2023/11/14,兰彬制作,21,2.笛卡尔积(Cartesian Product),笛卡尔积:给定一组域 D1,D2,Dn,这些域中可以有相同的。D1,D2,Dn的笛卡尔积为:D1D2Dn(d1,d2,dn)diDi,i1,2,n,域的积,分量,2023/11/14,兰彬制作,22,笛卡尔积 例1,有3个域,A(

7、a1,a2),B(b1,b2,b3),C(c1,c2),则A,B,C的笛卡儿积为:ABC(a1,b1,c1),(a1,b1,c2),(a1,b2,c1),(a1,b2 c2),(a1,b3,c1),(a1,b3,c2),(a2,b1,c1),(a2,b1,c2),(a2,b2,c1),(a2,b2,c2),(a2,b3,c1),(a2,b3,c2),元 组分 量基 数,2023/11/14,兰彬制作,23,笛卡尔积 例2,有3个域:D1=SUPERVISOR=张清玫,刘逸,D2=SPECIALITY=计算机专业,信息专业,D3=POSTGRADUATE=李勇,刘晨,王敏则 D1D2D3(张清玫

8、,计算机专业,李勇),(张清玫,计算机专业,刘晨),(张清玫,计算机专业,王敏),(张清玫,信息专业,李勇),(张清玫,信息专业,刘晨),(张清玫,信息专业,王敏),(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),(刘逸,计算机专业,王敏),(刘逸,信息专业,李勇),(刘逸,信息专业,刘晨),(刘逸,信息专业,王敏),2023/11/14,兰彬制作,24,笛卡尔积(续),笛卡尔积的表示方法二维表表中的每行对应一个元组,每列对应一个域。在例2 中,12个元组可列成一张二维表,2023/11/14,兰彬制作,25,2023/11/14,兰彬制作,26,3.关系(Relation),1)关系

9、 D1D2Dn的子集叫作在域D1,D2,Dn上的关系,表示为 R(D1,D2,Dn)R:关系名;n:关系的目或度(Degree),例如:D1=导师=张清玫,刘逸 D2=专业=计算机专业,信息专业 D3=研究生=李勇,刘晨,王敏则 SAP(导师,专业,研究生)就是一个关系,2023/11/14,兰彬制作,27,有意义的关系及其值:,候选码,主码,2023/11/14,兰彬制作,28,码,超码能唯一标识实体的属性或属性组称作超码超码的任意超集也是超码候选码(Candidate Key)关系中的一个属性组,其值能唯一标识一个元组。若从属性组中去掉任何一个属性,它就不具有这一性质了,这样的属性组称作候

10、选码任何一个候选码中的属性称作主属性主码(Primary Key)进行数据库设计时,从一个关系的多个候选码中选定一个作为主码外部码(Foreign Key)关系R中的一个属性组,它不是R的码,但它与另一个关系S的码相对应,则称这个属性组为R的外部码,2023/11/14,兰彬制作,29,关系(续),2)关系的表示关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域(属性)。,2023/11/14,兰彬制作,30,关系(续),3)三类关系基本关系(基本表或基表):实际存在的表,是实际存储数据的逻辑表示查询表:查询结果对应的表视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数

11、据,2023/11/14,兰彬制作,31,4)对关系的几点说明,笛卡尔积不满足交换律,即(d1,d2,dn)(d2,d1,dn)但关系满足交换律,即(d1,d2,,di,dj,,dn)=(d1,d2,,dj,di,dn)(i,j=1,2,n)例如:(学号,姓名,性别,年龄)(学号,姓名,年龄,性别),2023/11/14,兰彬制作,32,4)对关系的几点说明,关系可以是一个无限集合但无限关系在数据库系统中是无意义的因此,数据库中的关系必须是 有限集合。,2023/11/14,兰彬制作,33,5)基本关系的性质,列是同质的(Homogeneous)不同的列可出自同一个域 列的顺序无所谓 任意两个

12、元组不能完全相同 行的顺序无所谓分量必须取原子值,2023/11/14,兰彬制作,34,2.2 关系数据结构,2.2.1 关系2.2.2 关系模式2.2.3 关系数据库,2023/11/14,兰彬制作,35,2.2.2 关系模式,1什么是关系模式2定义关系模式3.关系模式与关系,2023/11/14,兰彬制作,36,1什么是关系模式,关系模式 是 型关系 是 值关系模式是对关系的描述,2023/11/14,兰彬制作,37,2定义关系模式,关系模式可以形式化地表示为:R(U,D,dom,F)R 关系名U 组成该关系的属性名集合D 属性组 U 中属性所来自的域dom 属性向域的映象集合F 属性间的

13、数据依赖关系集合,2023/11/14,兰彬制作,38,定义关系模式(续),例:D1人(张清玫,刘逸,李勇,刘 晨,王 敏)D2专业(计算机专业,信息专业),R(导师,专业,研究生,人,专业,导师人,研究生人,专业专业,F),关系模式的表示如下:,2023/11/14,兰彬制作,39,定义关系模式(续),关系模式通常可以简记为 R(U)或 R(A1,A2,An)R:关系名A1,A2,An:属性名注:域名及属性向域的映象常常直接说明为 属性的类型、长度,学号:定义为 8位整数,2023/11/14,兰彬制作,40,3.关系模式与关系,关系模式对关系的描述,静态的、稳定的关系 是关系模式在某一时刻

14、的状态或内容,是数据库中数据的具体值,是动态的、随时间不断变化的关系模式和关系往往统称为关系,2023/11/14,兰彬制作,41,2.2 关系数据结构,2.2.1 关系2.2.2 关系模式2.2.3 关系数据库,2023/11/14,兰彬制作,42,2.2.3 关系数据库,关系数据库的定义:在一个给定的应用领域中,所有实体及实体之间联系的 关系的集合 构成一个关系数据库。关系数据库模式:关系数据库的型称为关系数据库模式,是对关系数据库的描述 关系数据库的值:是指数据库中在某一时刻对应的关系的集合,2023/11/14,兰彬制作,43,第二章 关系数据库,2.1 关系模型概述2.2 关系数据结

15、构2.3 关系的完整性2.4 关系代数,2023/11/14,兰彬制作,44,2.3 关系的完整性,关系模型的完整性规则:是对关系的某种约束条件。关系模型中三类完整性约束:实体完整性参照完整性用户定义的完整性,2023/11/14,兰彬制作,45,2.3.1 实体完整性,规则2.1 若属性 A 是基本关系 R 的主属性,则属性 A 不能取空值例:学生(学号,姓名,系别)课程(课程号,课程名,学分)选课(学号,课程号,成绩),2023/11/14,兰彬制作,46,实体完整性(续),关系模型必须遵守实体完整性规则的原因:(1)实体完整性规则是针对基本关系而言的。一个基本表通常对应现实世界的一个实体

16、集。(2)现实世界中的实体和实体间的联系都是可区分的,即它们具有某种唯一性标识。(3)相应地,关系模型中以主码作为唯一性标识。(4)主码中的属性即主属性不能取空值。,2023/11/14,兰彬制作,47,2.3.2 参照完整性,1.关系间的引用2.外码3.参照完整性规则,2023/11/14,兰彬制作,48,2023年11月14日,48,关系间的引用,例1 学生实体、专业实体以及专业与学生间的一对多联系 学生(学号,姓名,性别,专业号,年龄)专业(专业号,专业名)学生关系中属性“专业号”要参照专业关系中属性的值。,例2 学生、课程及学生与课程之间的多对多联系 学生(学号,姓名,性别,专业号,年

17、龄)课程(课程号,课程名,学分)选修(学号,课程号,成绩),2023/11/14,兰彬制作,49,2023/11/14,兰彬制作,50,学生,学生选课,课程,2023/11/14,兰彬制作,51,关系间的引用(续),例 3 学生实体表示如下:学生(学号,姓名,性别,专业号,年龄,班长),2023/11/14,兰彬制作,52,2023年11月14日,52,外码(Foreign Key),设F是基本关系R的一个或一组属性,但不是关系R的码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码 基本关系R称为参照关系(Referencing Relation)基本关系S称为被参照关系(Ref

18、erencedRelation)或目标关系(Target Relation)。,2023/11/14,兰彬制作,53,说明关系R和S不一定是不同的关系目标关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上外码并不一定要与相应的主码同名 当外码与相应的主码属于不同关系时,往往取相同的名字,以便于识别,2023/11/14,兰彬制作,54,参照完整性规则,定义:若属性(或属性组)F 是基本关系 R 的外码,它与基本关系 S 的主码 Ks 相对应(基本关系 R 和 S 不一定是不同的关系),则对于 R 中每个元组在 F 上的值必须为:或者取空值(F 的每个属性值均为空值)或者等于 S

19、 中某个元组的 主码值。,2023/11/14,兰彬制作,55,参照完整性规则(续),例1:学生关系中,每个元组的“专业号”属性只能取下面两类值:(1)空值,表示尚未给该学生分配专业(2)非空值,这时该值必须是专业关系中某个元组的“专业号”值,表示该学生不可能分配到一个不存在的专业中,2023/11/14,兰彬制作,56,参照完整性规则(续),例2 选修(学号,课程号,成绩)“学号”和“课程号”是选修关系中的主属性按照实体完整性和参照完整性规则,它们只能取相应被参照关系中已经存在的主码值,2023/11/14,兰彬制作,57,关系的完整性(续),2.3.1 实体完整性2.3.2.参照完整性2.

20、3.3.用户定义的完整性,2023/11/14,兰彬制作,58,2.3.3 用户定义的完整性,用户定义的完整性:是针对某一个具体数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。,2023/11/14,兰彬制作,59,第二章 关系数据库,2.1 关系模型概述2.2 关系数据结构2.3 关系的完整性2.4 关系代数,2023/11/14,兰彬制作,60,2.4 关系代数,概述 传统的集合运算 专门的关系运算,2023/11/14,兰彬制作,61,概述,1.关系代数:,一种抽象的

21、查询语言,用对关系的运算来表达查询,3.关系代数运算的三个要素:,2.运算的三要素:,运算对象,运算符,运算结果,4.关系代数运算的分类:,运算对象关系,运算结果关系,运算符四类,传统的集合运算并、差、交、广义笛卡尔积专门的关系运算选择、投影、连接、除,2023/11/14,兰彬制作,62,表2.4 关系代数运算符,2023/11/14,兰彬制作,63,2.4 关系代数,概 述传统的集合运算 专门的关系运算,2023/11/14,兰彬制作,64,1.并(Union),设关系 R 和 S:具有相同的目 n(即两个关系都有 n 个属性)相应的属性取自同一个域则:1)关系 R 和 S 的 并 记为:

22、RS=t|t R t S 结果仍为 n 目关系,由 属于R 或者属于S 的元组组成,2023/11/14,兰彬制作,65,并(续),R,S,RS,2023/11/14,兰彬制作,66,2.差(Difference),设关系 R 和 S:具有相同的目 n(即两个关系都有 n 个属性)相应的属性取自同一个域则:2)关系 R 和 S 的 差 记为:R-S=t|t R t S 结果仍为 n 目关系,由 属于R 而不属于S 的元组组成,2023/11/14,兰彬制作,67,差(续),R,S,R-S,2023/11/14,兰彬制作,68,3.交(Intersection),设关系 R 和 S:具有相同的目

23、 n(即两个关系都有 n 个属性)相应的属性取自同一个域则:3)关系 R 和 S 的 交 记为:RS=t|t R t S 用差表示:RS=R(R-S)仍为n 目关系,由既属于 R 又属于 S 的元组组成,2023/11/14,兰彬制作,69,交(续),R,S,R S,2023/11/14,兰彬制作,70,4.广义笛卡尔积(Extended Cartesian Product),有2个关系 R 和 S,若关系 R:n 目关系(有n个属性),有k1个元组 关系 S:m 目关系(有m个属性),有k2个元组则:关系R和S的广义笛卡尔积 记作:RS=tr ts|tr R ts S 共有 k1k2 个元组

24、(行),每个元组有 nm 列:前 n 列是关系 R 的一个元组 后 m 列是关系 S 的一个元组,2023/11/14,兰彬制作,71,广义笛卡尔积(续),R,S,R S,2023/11/14,兰彬制作,72,2.4.2 专门的关系运算,概述传统的集合运算专门的关系运算,2023/11/14,兰彬制作,73,常用的几个记号,(1)R,tR,tAi 设关系模式为R(A1,A2,An),它的一个关系设为R。tR 表示 t 是 R 的一个元组,tAi 则表示元组 t 中相应于属性 Ai 的一个分量,关系R:学生(学号,姓名,性别,院系)R的一个元组 t:(1001,李明,男,信息学院)tA1表示分量

25、1001,tA2表示分量李明,2023/11/14,兰彬制作,74,常用的几个记号,(2)A,tA,A,若 A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik 是A1,A2,An中的一部分,则A 称为 属性列 或 域列;,tA=(t Ai1,t Ai2,t Aik)表示元组 t 在属性列 A 上诸分量的集合。,2023/11/14,兰彬制作,75,例如:,R的一个元组 t:(1001,李明,男,信息学院)tA=(1001,李明),2023/11/14,兰彬制作,76,常用的几个记号,R 为 n 目关系,S 为 m 目关系,tr R,tsS,称为元组的连接。,它是一个 n+m 列 的元组,前

26、 n 个分量为 R 中的一个 n 元组,后 m 个分量为 S 中的一个 m 元组。(R 和 S 的广义笛卡尔积),2023/11/14,兰彬制作,77,R,S,2023/11/14,兰彬制作,78,1.选择(Selection),选择:指的是 在关系R中选择满足给定条件的元组,记作:F(R)=t|tR F(t)=真这里,F 是逻辑表达式。选择运算 实际上是 从关系 R 中选取使逻辑表达式 F 为真的元组。是从行的角度进行的运算:,2023/11/14,兰彬制作,79,选择(续),举例设有一个学生-课程数据库,包括:学生关系 Student课程关系 Course选修关系 SC,2023/11/1

27、4,兰彬制作,80,选择(续),(a)Student,2023/11/14,兰彬制作,81,选择(续),(b)Course,2023/11/14,兰彬制作,82,选择(续),(c)SC,2023/11/14,兰彬制作,83,选择(续),例1 查询信息系(IS系)全体学生,Sdept=IS(Student)或 5=IS(Student)结果:,2023/11/14,兰彬制作,84,选择(续),例2 查询年龄小于20岁的学生。,Sage 20(Student)或 4 20(Student),结果:,2023/11/14,兰彬制作,85,2.投影(Projection),投影:从 R 中选择出若干

28、属性列 组成新的关系,A(R)=tA|t R A:R中的属性列是从 列 的角度进行运算:,2023/11/14,兰彬制作,86,投影(续),即求 Student 关系在学生姓名和 所在系两个属性上的投影。,例3 查询 学生的 姓名 和 所在系:,结果:,Sname,Sdept(Student)或 2,5(Student),2023/11/14,兰彬制作,87,投影(续),例4 查询学生关系Student中都有哪些系。,结果:,Sdept(Student),即查询Student关系在所在系属性上的投影:,注意:投影结果中,取消重复的元组。,2023/11/14,兰彬制作,88,投影(续),例5

29、查询开设了哪些课程(课程名)。,即查询 Course 关系在课程名上的投影:,Cname(Course),2023/11/14,兰彬制作,89,2023年11月14日,89,例,查询学生姓名和所在系:Sname,Sdept,(Student),b.查询学生所在系:Sdept,(Student),投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行),2023/11/14,兰彬制作,90,3.连接(Join),也称为连接,是从两个关系的笛卡尔积中选取属性间满足一定条件的元组,记作:,其中,A 和 B 分别为 R 和 S 上度数相等且可比的属性组,为比较运算符。,连接运算从 R

30、和 S 的广义笛卡尔积 RS 中选取 R 关系在 A 属性组上的值与 S 关系在 B 属性组上值 满足比较关系的元组。,2023/11/14,兰彬制作,91,连接的分类 等值连接,等值连接(equijoin)是指为“”的连接运算从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为:,2023/11/14,兰彬制作,92,连接的分类 自然连接,自然连接(Natural join)是一种特殊的等值连接要求两个关系中进行比较的分量必须是相同的属性组并且在结果中把重复的属性列去掉若 R 和 S 具有相同的属性组 B,则自然连接表示如下:,2023/11/14,兰彬制作,93,连接(

31、续),关系R和关系S如下,R,S,2023/11/14,兰彬制作,94,连接(续),把满足条件“R中C 属性值 S中E属性值”的元组连接起来:,2023/11/14,兰彬制作,95,连接(续),把满足条件“R中B属性值 S中B属性值”的元组连接起来:,2023/11/14,兰彬制作,96,连接(续),由于 R 和 S 中有相同的属性组 B,自然连接 就是:把满足条件“R中 B 属性值 S 中 B 属性值”的元组连接起来,并且去掉一个重复的 B 属性组:,2023/11/14,兰彬制作,97,连接(续),由 例6 和 例7 中看出,一般的连接操作是从 行 的角度进行运算。,在例8中,自然连接还需

32、要 取消重复列,所以是同时从行 和 列 的角度进行运算。,2023/11/14,兰彬制作,98,学生情况student,选课情况xk,以编号为关键字连接,Select student.编号,student.姓名,student.系名,xk.选课 from student,xk where student.编号=xk.编号,连接举例:,2023/11/14,兰彬制作,99,2023年11月14日,99,例,2023/11/14,兰彬制作,100,2023年11月14日,100,等值连接举例,2023/11/14,兰彬制作,101,2023年11月14日,101,自然连接举例,2023/11/14

33、,兰彬制作,102,2023年11月14日,102,查询至少选修了一门先修课程为5号课程的学生姓名。,综合举例,2023/11/14,兰彬制作,103,常用的几个记号,(4)象集 Zx 给定一个关系R(X,Z),X 和 Z 为属性组。当 tXx 时,x 在 R中的象集(Images Set)为:Zx=tZ|t R,tX=x 它表示 R 中属性组 X 上值为 x 的诸元组在 Z上分量的集合。,2023/11/14,兰彬制作,104,象集举例,例 给定关系R(X,Z)如下:,a1 的象集为 b1,b2 a2 的象集为 b3,a1 的象集为(b1,c1),(b2,c2)a2 的象集为(b3,c2),

34、2023/11/14,兰彬制作,105,4.除(Division),给定关系R(X,Y)和S(Y,Z),其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合,表示如下:RS=tr X|tr RY(S)Yx Yx:x在R中的象集,x=trX,2023/11/14,兰彬制作,106,例9 除 RS,R,S,2023/11/14,兰彬制作,107,除运算,除定义R(X,Y)S(Y)=x|x=rx rR YxSRS=X(R)X(X(R)

35、Y(S)R),2023/11/14,兰彬制作,108,除运算,没有选修全部课程的学生,所有学生选修全部课程,选修了全部课程的学生,2023/11/14,兰彬制作,109,除运算,R,AB(R),S,AB(R)CD(S),AB(R)CD(S)-R,R S=,-,=,2023/11/14,兰彬制作,110,除运算,选修了全部课程并且成绩都相同的学生,选修了全部课程的学生,2023/11/14,兰彬制作,111,5综合举例,以学生-课程数据库为例(P 59)例7 查询至少选修1号和3号课程的学生号码,2)求出选课关系SC在“学号,课程号”上的投影 Sno.Cno(SC),3)进行除运算:Sno.Cn

36、o(SC)K 95001 象集 1,2,3,95002 象集 2,3,1)首先建立一个临时关系K:,所以 Sno,Cno(SC)K=95001,2023/11/14,兰彬制作,112,综合举例(续),例 8 查询选修了2号课程的学生的学号。,1)在SC关系上把课程号Cno 2的元组找出来:Cno=2(SC),2)再求出其在学号Sno上的投影:Sno(Cno=2(SC),3)Sno(Cno=2(SC)95001,95002,2023/11/14,兰彬制作,113,综合举例(续),例9 查询至少选修了一门其直接先行课为5号课程的学生姓名。,Sname(Cpno=5(Course SC Studen

37、t)或 Sname(Cpno=5(Course)SC Sno,Sname(Student)或 Sname(Sno(Cpno=5(Course)SC)Sno,Sname(Student),2023/11/14,兰彬制作,114,综合举例(续),例10 询选修了全部课程的学生号码和姓名。,(Sno,Cno(SC)Cno(Course))Sno,Sname(Student),2023/11/14,兰彬制作,115,赋值运算,定义为使查询表达简单、清晰,可以将一个复杂的关系代数表达式分成几个部分,每一部分都赋予一个临时关系变量,该变量可被看作关系而在后面的表达式中使用临时关系变量关系代数表达式赋值给临

38、时关系变量只是一种结果的传递,而赋值给永久关系则意味着对数据库的修改,2023/11/14,兰彬制作,116,赋值运算,示例RS=X(R)X(X(R)Y(S)R)用赋值重写为:temp1 X(R)temp2 X(temp1 Y(S)R)result temp1 temp2,2023/11/14,兰彬制作,117,赋值运算,求未选修001号课程的学生号 方案1:S#(S)S#(C#=1(SC)方案2:S#(C#1(SC),哪一个正确?,2023/11/14,兰彬制作,118,更名运算,定义给一个关系表达式赋予名字x(E)返回表达式E的结果,并把名字x赋给Ex(A1,A2,An)(E)返回表达式E

39、的结果,并把名字x赋给E,同时将各属性更名为A1,A2,An 关系被看作一个最小的关系代数表达式,可以将更名运算施加到关系上,得到具有不同名字的同一关系。这在同一关系多次参与同一运算时很有帮助,2023/11/14,兰彬制作,119,更名运算,示例求数学成绩比王红同学高的学生,S.姓名(R.成绩S.成绩 R.课程=数学 S.课程=数学 R.姓名=王红(RS(R),R,2023/11/14,兰彬制作,120,聚集函数,定义求一组值的统计信息,返回单一值使用聚集的集合可以是多重集,即一个值可以重复出现多次。如果想去除重复值,可以用连接符-将distinct附加在聚集函数名后,如sum-distin

40、ctsum:求和 求全体教工的总工资sumSAL(PROF)求95001号学生的总成绩sumSCORE(S#=95001(SC),2023/11/14,兰彬制作,121,聚集函数,avg:求平均 求001号同学选修课程的平均成绩。avgSCORE(S#=95001(SC)count:计数 求001号同学选修的课程数。countC#(S#=95001(SC),2023/11/14,兰彬制作,122,聚集函数,max:求最大值 min:求最小值 求学生选修数学的最高成绩maxSCORE(CN=数学(C)SC)分组将一个元组集合分为若干个组,在每个分组上使用聚集函数。属性下标 G 聚集函数属性下标(

41、关系),对此属性在每个分组上运用聚集函数,按此属性上的值对关系分组,2023/11/14,兰彬制作,123,聚集函数,分组运算G 的一般形式G1,G2,.,Gn G F1,A1,F2,A2,Fm,Am(E)Gi是用于分组的属性,Fi是聚集函数,Ai是属性名。G 将E分为若干组,满足:1)同一组中所有元组在G1,G2,.,Gn上的值相同。2)不同组中元组在G1,G2,.,Gn上的值不同。示例求每位学生的总成绩和平均成绩S#G sumSCORE,avgSCORE(SC),2023/11/14,兰彬制作,124,数据库修改,删除将满足条件的元组从关系中删除r r E是对永久关系的赋值运算例:删除95

42、001号学生所选的课程SC SC C#=001(SC),关系,关系代数表达式,2023/11/14,兰彬制作,125,数据库修改,插入插入一个指定的元组,或者插入一个查询结果r r E示例:新加入一个课程Course Course(8,“计算机网络”,5,3),2023/11/14,兰彬制作,126,数据库修改,更新利用广义投影改变元组的某些属性上的值r F1,F2,Fn(r)PROF(P#,PN,D#,SAL)示例:给每位老师上调10%的工资PC P#,PN,SAL SAL*1.1,D#(PC),2023/11/14,兰彬制作,127,选择(续),举例设有一个学生-课程数据库,包括:学生关系

43、 Student课程关系 Course选修关系 SC,2023/11/14,兰彬制作,128,选择(续),(a)Student,2023/11/14,兰彬制作,129,选择(续),(b)Course,2023/11/14,兰彬制作,130,选择(续),(c)SC,补充习题,查询选修课程名为数学的学生姓名和学号;查询至少选修课程号为“1”和“3”的学生学号;查询选修“操作系统”或“数据库”课程的学生学号;查询年龄在1820之间(含18和20)的女生的姓名和年龄;查询选修“数据库”课程的学生学号、姓名和成绩;查询选修全部课程的学生姓名和所在系;查询选修课程包括“95002”号学生所选的课程的学生学号查询不选修“2”号课程的学生姓名和所在系;,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号