第2章关系数据库(ch3).ppt

上传人:本田雅阁 文档编号:2252479 上传时间:2019-03-11 格式:PPT 页数:64 大小:925.01KB
返回 下载 相关 举报
第2章关系数据库(ch3).ppt_第1页
第1页 / 共64页
第2章关系数据库(ch3).ppt_第2页
第2页 / 共64页
第2章关系数据库(ch3).ppt_第3页
第3页 / 共64页
亲,该文档总共64页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

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

1、第2章 关系数据库,2,本章主要按数据模型的三个要素讲述关系数据库的一些基本理论(关系模型的数据结构、关系的定义和性质、关系的完整性、关系代数、关系数据库等 ) 掌握关系的定义及性质、关系键、外部键等基本概念以及关系演算语言的使用方法 重点掌握实体完整性和参照完整性的内容和意义、常用的几种关系代数的基本运算等,3,2.1 关系模型的数据结构及其形式化定义 2.2 关系的键与关系的完整性 2.3 关系代数 2.4 关系演算,4,2.1 关系模型的数据结构及其形式化定义,2.1.1 关系的形式化定义及其有关概念 域(Domain) 域是一组具有相同数据类型的值的集合,又称为值域 域中所包含的值的个

2、数称为域的基数(用m表示)。例如 : D1=李力,王平,刘伟,m1=3; D2=男,女;m2=2; D3=18,20,18;m3=3。,整数、实数和字符串的集合都是域,域名,5,笛卡尔积(Cartesian Product) 给定一组域D1,D2,Dn(它们可以包含相同的元素,即可以完全不同,也可以部分或全部相同)。D1,D2,Dn的笛卡尔积为 D1D2Dn=(d1,d2,dn)|diDi,i=1,2,n 每一个元素(d1,d2,dn)中的每一个值di叫做一个分量(Component) ,diDi 每一个元素(d1,d2,dn)叫做一个n元组(n-Tuple),简称元组(Tuple),6,笛卡

3、尔积D1D2Dn的基数M(即元素(d1,d2,dn)的个数)为所有域的基数的累乘之 积,即M= 。 例如,上述表示教师关系中姓名、性别两个域的笛卡尔积为: D1D2=(李力,男),(李力,女),(王平,男),(王平,女),(刘伟,男),(刘伟,女) 分量:李力、王平、刘伟、男、女 元组 :(李力,男),(李力,女) ,M=m1m2=32=6,7,笛卡尔积可用二维表的形式表示: 笛卡尔积实际是一个二维表,元组,同一域,8,关系(Relation) 笛卡尔积D1D2Dn的任一子集称为定义在域D1,D2,Dn上的n元关系(Relation) R(D1,D2,Dn),关系的名字,n是关系的目或度,如,

4、上例D1D2笛卡尔积的某个子集可以构成教师关系T1,如表2.2所示,D1D2笛卡尔积的子集(关系T1),9,在关系R中,当n=1时,称为单元关系。当n=2时,称为二元关系,以此类推 。 关系中的每个元素是关系中的元组,通常用t表示,关系中元组个数是关系的基数 由于关系是笛卡尔积的子集,因此,也可以把关系看成一个二维表 。 具有相同关系框架的关系称为同类关系 。,元组,域,属性,属性的名字惟一,10,不符合实际意义的关系,在关系模型中,关系可进一步定义为: 关系头(Heading)+关系体(Body),由属性名的集合组成,关系结构中的内容或者数据,不变,可变,11,2.1.2 关系的性质,2.1

5、.2 关系的性质 关系是一种规范化了的二维表中行的集合 每一列中的分量必须来自同一个域,必须是同一类型的数据。 不同的列可来自同一个域,每一列称为属性,不同的属性必须有不同的名字 。 列的顺序可以任意交换。 关系中元组的顺序(即行序)可任意。 关系中每一分量必须是不可分的数据项。,12,非规范化的关系 表2.8,规范化的关系 表2.9,在表2.8中,籍贯含有省、市县两项,出现了“表中有表”的现象,则为非 规范化关系,而应把籍贯分成省、市县两列,将其规范化,如表2.9所示,13,2.1.3 关系模式,2.1.3 关系模式 关系的描述称为关系模式(Relation Schema) R(U,D,DO

6、M,F) R-关系名 U-属性名集合 D-属性所来自的域 DOM-属性向域的映像集合 F-属性间数据的依赖关系集合 简记为:R(U)或R(A1,A2,An),属性名,14,关系模型,关系,关系头,关系体,静态、稳定,固定不变,随数据更新不断变化,15,例如,在第1章的图1-22所示的教学数据库中,共有五个关系,其关系模式可分别表示为: 学生(学号,姓名,性别,年龄,系别) 教师(教师号,姓名,性别,年龄,职称,工资,岗位津贴,系别) 课程(课程号,课程名,课时) 选课(学号,课程号,成绩) 授课(教师号,课程号),16,与学生关系模式对应的数据库中的实例有如下6个元组,如图2-1所示。,图2-

7、1 与学生关系模式对应的实例,17,2.1.4 关系数据库与关系数据库模式,2.1.4 关系数据库与关系数据库模式,关系数据库模型,关系数据库,型,值,静态、稳定,固定不变,随数据更新不断变化,18,2.2 关系的键与关系的完整性,2.2.1 候选键与主关系键 候选键(Candidate Key) “学生关系”中的学号能惟一标识每一个学生 “选课关系”中,只有属性的组合“学号+课程号”才能惟一地区分每一条选课记录 能惟一标识关系中元组的一个属性或属性集,称为候选键(Candidate Key),候选键,候选键,惟一性,最小性,19,主关系键(Primary Key) 从多个候选键中选择一个作为

8、查询、插入或删除元组的操作变量,被选用的候选键称为 主关系键。 每个关系必定有且仅有一个主关系键,学号,姓名,以学号作为数据操作的依据,以姓名作为数据操作的依据,主键 主码 关系键 关键字,20,主属性(Prime Attribute)与非码属性(Non-Prime Attribute) 主属性:包含在主关系键中的各个属性称为主属性 非码属性:不包含在任何候选键中的属性称为非码属性(或非主属性) 全码 :所有属性的组合是关系的候选键,教师T,课程C,1:n,n:1,学生S,课程C,1:n,n:1,教师T,学生S,课程C,n:n,n:n,n:n,候选码为 (T,C,S),全码,21,2.2.2

9、外部关系键,2.2.2 外部关系键,关系R1,关系R2,属性X,属性Y,属性X,属性Z,主码,主码,外部关系键或外码,参照关系,被参照关系,被参照关系的主码和参照关系的外码必须定义在同一个域上,22,2.2.3 关系的完整性,2.2.3 关系的完整性,完整性约束,实体完整性,参照完整性,用户自定义完整性,必须满足,体现具体领域中的语义约束,23,实体完整性(Entity Integrity) 主关系键的值不能为空或部分为空 学生关系中的主关系键“学号”不能为空 选课关系中的主关系键“学号+课程号”不能部分为空, 即“学号”和“课程号”两个属性都不能为空 参照完整性(Referential in

10、tegrity) 如果关系R2的外部关系键X与关系R1的主关系键相符,则X的每个值或者等于R1中主关系键的某一个值,或者取空值,24,未分配系别,25,用户定义完整性(User-defined Integrity) 针对某一具体关系数据库的约束条件 反映某一具体应用所涉及的数据必须满足的语义要求 如:成绩属性的取值范围在0-100之间,26,2.3 关系代数,关系数据结构,关系操作,关系完整性约束,查询,更新,插入,删除,修改,关系模型,27,2.3.1 关系代数的分类及其运算符,2.3.1 关系代数的分类及其运算符 关系代数是一种抽象的查询语言 关系代数的运算对象与运算结果都是关系 关系代数

11、运算符, , * ,, , =,, ,集合运算符,关系运算符,比较运算符,逻辑运算符,28,关系代数的运算按运算符的不同主要分为两类: 传统的集合运算: 把关系看成元组的集合,以元组作为集合中元素来进行运算,其运算是从关系的“水平”方向即行的角度进行的。 包括并、差、交和笛卡尔积等运算。 专门的关系运算: 不仅涉及行运算,也涉及列运算,这种运算是为数据库的应用而引进的特殊运算。 包括选取、投影、连接和除法等运算。,29,2.3.2 传统的集合运算,设给定两个关系R、S,若满足: () 具有相同的度n; () R中第i个属性和S中第i个属性必须来自同一个域。 则说关系R、S是相容的。 除笛卡尔积

12、外,其他的集合运算要求参加运算的关系必须满足上述的相容性定义。,30,并(Union) :RS=t | tRtS 差(Difference) :R-S = t | tRtS 交(Intersection) :RS = t | tRtS 广义笛卡尔积(Extended Cartesian Product) : RS = trts| trRtsS,RS = R-(R-S),31,【例2-4】 如图2-3(a)、(b)所示的两个关系R与S为相容关系,(c)为R与S 的并,(d)为R与S的交,(e)为R与S的差,(f)为R与S的广义笛卡尔积。,32,33,34,2.3.3 专门的关系运算,由于传统的集

13、合运算,只是从行的角度进行,而要灵活地实现关系数据库多样的查询操作,必须引入专门的关系运算。 在讲专门的关系运算之前,为叙述上的方便先引入几个概念。 (1)设关系模式为R(A1,A2,An),它的一个关系为R,tR表示t是R的一个元组,tAi则表示元组t中相应于属性Ai的一个分量。,35,(2)若A=Ai1,Ai2,,Aik,其中Ai1,Ai2,Aik是A1,A2,,An中的一部分,则A称为属性列或域列,则表示A1,A2,,An中去掉Ai1,Ai2,,Aik后剩余的属性组。tA=tAi1,tAi2,tAik表示元组t在属性列A上诸分量的集合。 (3)R为n目关系,S为m目关系,trR, tsS

14、,tr ts称为元组的连接(concatenation),它是一个n+m列的元组,前n个分量为R的一个n元组,后m个分量为S中的一个m元组。 (4)给定一个关系R(X,Z),X和Z为属性组,定义当tX=x时,x在R中的象集(image set),为Zx=tZ|tR,tX=x,它表示R中的属性组X上值为x的诸元组在Z上分量的集合。,36,象集举例,x1 在R中的象集 Zx1=Z1,Z2,Z3 x2 在R中的象集 Zx2=Z2,Z3 x3 在R中的象集 Zx3=Z1,Z3,37,选择(Selection) F(R)=t | tRF(t)=真 例2-5 查询计算机系的全体学生。 Dept=计算机 (

15、S)或 5=计算机 (S)(其中5为属性Dept的序号) 运算结果如图,从行的角度进行的运算,F为选取的条件,38,例2-6 查询工资高于1000元的男教师。 (Sal1000) (Sex= 男)(T) 运算结果如图,39,投影(Projection) A(R)=tA | tR 例2-7 查询教师的姓名、教师号及其职称。 TN,TNo,Prof(T) 或 2,1,5(T)(其中2,1,5分别为属性TN、TNo和Prof的序号) 运算结果如图,A为R中的属性列,从列的角度进行的运算,40,例2-8 查询教师关系中有哪些系。 Dept(T) 运算结果如图,41,例2-9 查询讲授C5课程的教师号。

16、 TNo( CNo=C5 (TC) 运算结果如图,42,连接(Join) = t rts |trRtsStr XtsY 为真 为算术比较运算符 自然连接: 在等值连接的情况下,当连接属性X与Y具有相同属性组时,把在连接结果中重复的属性列去掉,记为:R*S,43,例2-10 设有如图2-9(a)、(b)所示的两个关系R与S,(c)为R和S的大于连接(CD),(d)为R和S的等值连接(C=D),(e)为R和S的等值连接(R.B=S.B),(f)为R和S的自然连接。,(a),(b),44,(c),(d),(f),(e),45,等值连接与自然连接的区别 自然连接要求相等属性值的属性名相同,而等值连接不

17、要求 自然连接是去掉重复列的等值连接 例2-11 查询讲授“数据库”课程的教师姓名。 TN(CN=数据库 (C)*TC*TNo,TN(T) 或 TN(TNo(CN=数据库 (C)*TC)*TNo,TN(T) 运算结果如图,46,除法(Division) RS = trX | trRy(S)Yx 除法运算同时从行和列的角度进行运算,适合于包含“全部”之类的短语的查询。,Yx为x在R中的象集,x =trX,47,例2-13 查询选修了全部课程的学生学号和姓名。 SNo,CNo(SC)CNo(C)*SNo,SN(S) 例2-14 查询至少选修了C1课程和C3课程的学生学号。 SNo,CNo(SC)C

18、No(CNo=C1CNo=C3 (C) 只有S4同学的象集至少包含了C1课程和C3课程,因此,查询结果为S4 。,48,【例2-12】 已知关系R和S,如图2-11(a),(b)所示,则RS如图(c)所示。,49,与除法的定义相对应,本题中 X=A,B=(a1,b2),(a2,b4),(a3,b5),Y=C,D=(c3,d5),(c4,d6) Z=F=f3,f4 其中,元组在X上各个分量值的象集分别为: (a1,b2)的象集为(c3,d5),(c4,d6) (a2,b4)的象集为(c1,d3) (a3,b5)的象集为(c2,d8) S在Y上的投影为(c3,d5),(c4,d6) 显然只有(a1

19、,b2)的象集包含S在Y上的投影,所以RS=(a1,b2),50,除举例,设关系R,S,如图 (a),(b)所示 ,则RS如图(c)所示。,51,关系R中,A可以取4个值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的象集(B,C)a1包含了S在(B,C)属性组上的投影,所以 R S=a1,52,2.4 关系演算,关系代数,关系演算,过程化语言,怎样做,非过

20、程化语言,做什么,53,2.4.1 元组关系演算语言 ALPHA语言 QUEL语言,关系演算,元组关系演算,域关系演算,ALPHA, QUEL,QBE,54,2.4.1 元组关系演算语言,ALPHA语言 基本格式: ():,内存空间 (W),GET PUT HOLD UPDATE DELETE DROP,55,数据查询, 简单查询 条件查询 排序查询 定额查询 带元组变量的查询 带存在量词的查询 库函数查询,数据更新, 修改 插入 删除,DELETE,PUT,56, 简单查询 例2-16 查询所有被选修的课程号码。 GET W (SC.CNo) 条件查询 例2-17 查询计算机系工资高于100

21、0元的教师的姓名和工资。 GET W (T.TN,T.Sal):T.Dept= 计算机T.Sal1000 排序查询 例2-18 查询S3同学所选课程号及成绩,并按成绩降序排列。 GET W (SC.CNo,SC.Score):SC.SNo= S3 DOWN SC.Score 定额查询 例2-20 查询一名男教师的教师号和姓名,并使他的年龄最小。 GET W (1) (T.TNo,T.TN):T.Sex= 男 UP T.Age,57, 带元组变量的查询 例2-21 查询S3同学所选课程号。 RANGE SC X GET W (X.CNo):X.SNo= S3 带存在量词的查询 例2-23 查询至

22、少选修一门其课时数为80的课程的学生的姓名。 RANGE C CX SC SCX GET W (S.SN):SCX(SCX.SNo=S.SNoCX(CX.CNo=SCX.CNoCX.CT=80),使用RANGE来说明元组变量,X为关系SC上的元组变量,58, 库函数查询 例2-25 求学号为S1学生的平均分。 GET W (AVG(SC.Score):S.SNo= S1 例2-26 求学校共有多少个系。 GET W (COUNT(S.Dept),ALPHA常用的库函数及其功能,59,(2)数据更新 修改 例2-27 把刘伟教师转到信息系。 HOLD W(T.Dept):T.TN= 刘伟 MOV

23、E 信息 TO W.Dept UPDATE W,读数据,修改,送回,60, 插入 例2-28 在SC表中插入一条选课记录(S6,C1,85)。 MOVE S6 TO W.SNo MOVE C1 TO W.CNo MOVE 85 TO W.Score PUT W(SC),建立新元组,写数据,61, 删除 例2-29 删除学号为S6的学生的信息。 HOLD W(S):S.SNo= S6 DELETE W,读数据,删除,62,QUEL语言,数据更新,63,2.4.2 域关系演算语言QBE,QBE语言步骤,关系名,属性1,属性n,操作命令,属性值或查询条件,属性值或查询条件,P.(打印或显示) U.(修改) I.(插入) D.(删除),注:棕色字体为用户操作 蓝色字体为系统操作,64,小结,关系运算,关系代数,关系演算,传统的集合运算符,专门的关系运算符,算术比较运算符,逻辑运算符,元组关系演算,域关系演算,ALPHA,QUEL,QBE,抽象的 查询语言,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1