1、关系数据库模型1.关系数据模型概述2.关系数据模型的结构3.关系数据模型的完整性规则4.关系代数5.关系演算1. 关系数据模型的数据结构 2. 关系数据模型的操纵(运算)3. 关系数据模型的完整性约束 *关系数据模型的操作*查询*选择、投影、连接、除、并、交、差*数据更新*插入、删除、修改* 概述* 传统的集合运算* 专门的关系运算1. 关系代数2. 运算的三要素3. 关系代数运算的三个要素4. 关系代数运算的分类5. 表示记号1.关系代数一种抽象的查询语言用对关系的运算来表达查询2关系代数运算的三个要素运算对象:关系运算结果:关系运算符:四类*集合运算符*将关系看成元组的集合*运算是从关系的
2、“水平”方向即行的角度来进行*专门的关系运算符*不仅涉及行而且涉及列*算术比较符*辅助专门的关系运算符进行操作*逻辑运算符*辅助专门的关系运算符进行操作集合运算符-并差交广义笛卡尔积比较运算符 大于大于等于小于小于等于等于不等于运算符含义运算符含义表表 关系代数运算符关系代数运算符 专门的关系运算符 选择投影连接除逻辑运算符 非与或运算符含义运算符 含义表表 关系代数运算符(续)关系代数运算符(续) 4关系代数运算的分类 传统的集合运算 并、差、交、广义笛卡尔积专门的关系运算 选择、投影、连接、除5表示记号 (1) R,tR,tAi 设关系模式为R(A1,A2,An)它的一个关系设为R。tR表
3、示t是R的一个元组tAi则表示元组t中相应于属性Ai的一个分量(2) A,tA, A 若A=Ai1,Ai2,Aik,其中Ai1,Ai2,Aik是A1,A2,An中的一部分,则A称为属性列或域列。tA=(tAi1,tAi2,tAik)表示元组t在属性列A上诸分量的集合。A则表示A1,A2,An中去掉Ai1,Ai2,Aik后剩余的属性组。 *(3) tr ts R为n目关系,S为m目关系。tr R,tsS, tr ts称为元组的连接。它是一个n + m列的元组,前n个分量为R中的一个n元组,后m个分量为S中的一个m元组。 *4)象集Zx 给定一个关系R(X,Z),X和Z为属性组。当tX=x时,x在
4、R中的象集(Images Set)为: Zx=tZ|t R,tX=x 它表示R中属性组X上值为x的诸元组在Z上分量的集合。 * 概述* 传统的集合运算* 专门的关系运算*并*差*交*广义笛卡尔积*R和S*具有相同的目n(即两个关系都有n个属性)*相应的属性取自同一个域*RS *仍为n目关系,由属于R或属于S的元组组成 RS = t|t Rt S ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSRS *R和S*具有相同的目n*相应的属性取自同一个域*R - S *仍为n目关系,由属于R而不属于S的所有元
5、组组成 R -S = t|tRtS ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1ABCa1b2c2a1b3c2a2b2c1RSR-S *R和S*具有相同的目n*相应的属性取自同一个域*RS*仍为n目关系,由既属于R又属于S的元组组成 RS = t|t Rt S RS = R (R-S)ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR S *R*n目关系,k1个元组*S*m目关系,k2个元组*RS *列:(n+m)列的元组的集合*元组的前n列是关系R的一个元组*后m列是关系S的一个元组*行:k1k2个元组*R
6、S = tr ts |tr R tsS ABCa1 b1 c1a1 b2 c2a2 b2 c1ABCa1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1ABCa1 b2 c2a1 b3 c2a2 b2 c1RSR S ABCa1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1*概述*传统的集合运算*专门的关系运算*选择*投影*连接*除*1) 选择又称为限制(Restriction)*2) 选择运算符的含义*在关系R中选择满足给定条件的诸元组 F(R) = t|tRF(t)= 真*F:
7、选择条件,是一个逻辑表达式,基本形式为: ( X1Y1 ) ( X2Y2 )*:比较运算符(,或)*X1,Y1等:属性名、常量、简单函数;属性名也可以用它的序号来代替;*:逻辑运算符(或)* :表示任选项*:表示上述格式可以重复下去*3) 选择运算是从行的角度进行的运算 *4) 举例设有一个学生-课程数据库,包括学生关系Student、课程关系Course和选修关系SC。学学 号号Sno姓姓 名名Sname性性 别别Ssex年年 龄龄Sage所所 在在 系系Sdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS(a)
8、Student例1例2例4例3例9(b)Course课程号课程号课程名课程名先行课先行课学分学分CnoCnameCpnoCcredit1数据库数据库542数学数学 23信息系统信息系统144操作系统操作系统635数据结构数据结构746数据处理数据处理 27PASCAL语言语言64例9 (c)SC学学 号号课课 程程 号号成成 绩绩SnoCnoGrade9500119295001285950013889500229095002380例7例9例1 查询信息系(IS系)全体学生 Sdept = IS (Student)或 5 =IS (Student)结果: SnoSnameSsexSageSdep
9、t95002刘晨刘晨女女19IS95004张立张立男男19IS例2 查询年龄小于20岁的学生 Sage 20(Student) 或 4 20(Student)结果: SnoSnameSsexSageSdept95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS *1)投影运算符的含义*从R中选择出若干属性列组成新的关系 A(R) = tA | t R A:R中的属性列 *2)投影操作主要是从列的角度进行运算*但投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行)*3) 举例例3 查询学生的姓名和所在系即求Student关系上学生姓名和所
10、在系两个属性上的投影 Sname,Sdept(Student)或 2,5(Student)结果:SnameSdept李勇李勇CS刘晨刘晨IS王敏王敏MA张立张立IS例4 查询学生关系Student中都有哪些系 Sdept(Student)结果:SdeptCSISMA*1)连接也称为连接*2)连接运算的含义*从两个关系的笛卡尔积中选取属性间满足一定条件的元组 R S = | tr Rts StrAtsB *A和B:分别为R和S上度数相等且可比的属性组*:比较运算符 *连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。 ABtr ts*
11、3)两类常用连接运算*等值连接(equijoin) *什么是等值连接*为“”的连接运算称为等值连接 *等值连接的含义*从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为: R S = | tr Rts StrA = tsB A=Btr ts*自然连接(Natural join) *什么是自然连接*自然连接是一种特殊的等值连接*两个关系中进行比较的分量必须是相同的属性组*在结果中把重复的属性列去掉*自然连接的含义R和S具有相同的属性组B R S = | tr Rts StrB = tsB tr ts*4)一般的连接操作是从行的角度进行运算。 自然连接还需要取消重复列,所以是
12、同时从行和列的角度进行运算。 ABRS*5)举例 例5 ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RS R S AR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310 CE 等值连接 R S R.B=S.B AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32 自然连接 R S ABCEa1b153a1b267a2b3810a2b382 给定一个关系R(X,Z),X和Z为属性组。当tX=x时,x在R中的象集(Images Set)为: Zx=tZ|t R,tX=x 它表示
13、R中属性组X上值为x的诸元组在Z上分量的集合。 ABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RSAa1RS给定关系给定关系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上投影的集
14、合。上投影的集合。 RS = tr X | tr RY (S) Yx Yx:x在在R中的象集,中的象集,x = trX*2)除操作是同时从行和列角度进行运算 RSABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1BCDb1c2d1b2c1d1b2c3d2RSAa1RS在关系在关系R中,中,A可以取四个值可以取四个值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)上的投影为上
15、的投影为 (b1,c2),(b2,c1),(b2,c3) 只有只有a1的象集包含了的象集包含了S在在(B,C)属性组上的投影属性组上的投影所以 RS =a1 以学生以学生-课程数据库为例课程数据库为例例7 查询至少选修1号课程和3号课程的学生号码 首先建立一个临时关系K: 然后求:Sno.Cno(SC)KCno 1 3*例 7续 Sno.Cno(SC)95001象集象集1,2,395002象集象集2,3 Cno(K)=1,3 于是:Sno.Cno(SC)K=95001SnoCno950011950012950013950022950023例 8 查询选修了2号课程的学生的学号。 Sno(Cno
16、=2(SC) 95001,95002 例9 查询至少选修了一门其直接先行课为5号课程的课程的学生姓名。 Sname(Cpno=5(Course SC Student)或 Sname(Cpno=5(Course) SC Sno,Sname(Student)或 Sname (Sno (Cpno=5 (Course) SC) Sno,Sname (Student) 例10 查询选修了全部课程的学生号码和姓名。 Sno,Cno(SC)Cno(Course) Sno,Sname(Student) l 关系代数运算*关系代数运算并、差、交、笛卡尔积、投影、选择、连接、除*基本运算并、差、笛卡尔积、投影、选
17、择*交、连接、除可以用5种基本运算来表达 引进它们并不增加语言的能力,但可以简化表达l 关系代数表达式*关系代数运算经有限次复合后形成的式子l 典型关系代数语言*ISBL(Information System Base Language)*由IBM United Kingdom研究中心研制*用于PRTV(Peterlee Relational Test Vehicle)实验系统 6/9/2022An Introduction to Database System62*Reading:*C. J. Date, An Introduction to Database Systems page 200-238*R. Ramakrishnan, J. Gehrkepp,100-129*丁宝康 pp44-66 练习*R. Ramakrishnan, J. Gehrkepp,128-129,Exercise 4.1-4.5
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。