1、第第2章章 关系数据库关系数据库2.1 关系模型关系模型2.2 关系数据结构关系数据结构2.3 关系的完整性关系的完整性2.4 关系代数关系代数工 号 姓 名 年 龄 性 别 工 资 4001 zhang 50 M 2000 4002 li 40 F 1500 4124 liu 35 M 2000 5018 wang 25 M 1000 关系模型:关系模型:用二维表格表示实体集,用关键码进行用二维表格表示实体集,用关键码进行数据导航数据导航的数据模型称为关系模型。的数据模型称为关系模型。数据导航:数据导航:从已知数据查找未知数据的过程和方法。从已知数据查找未知数据的过程和方法。2.1 关系模型
2、关系模型1.常用的关系操作常用的关系操作2.关系操作的特点关系操作的特点3.关系数据语言的种类关系数据语言的种类4.关系数据语言的特点关系数据语言的特点1. 常用的关系操作常用的关系操作查询:查询:选择、投影、连接、除、并、交、差选择、投影、连接、除、并、交、差更新:更新:插入、删除、修改插入、删除、修改2. 关系操作的特点关系操作的特点集合操作集合操作操作的对象和结果操作的对象和结果非关系数据模型:一次一记录非关系数据模型:一次一记录3. 关系数据语言的种类关系数据语言的种类关系代数语言:关系代数语言:用关系的运算来表达查询要求用关系的运算来表达查询要求关系演算语言:关系演算语言:用谓词来表
3、达查询要求用谓词来表达查询要求SQL(Structure Query Language)关系数据库的标准语言关系数据库的标准语言结构化查询语言:结构化查询语言:介于关系代数和关系演算之介于关系代数和关系演算之间语言间语言是一种高度非过程化的语言是一种高度非过程化的语言l存取存取路径路径的选择由的选择由DBMS的优化机制来完成的优化机制来完成l用户不需要使用循环结构就可以完成数据操作用户不需要使用循环结构就可以完成数据操作能够嵌入高级语言中使用能够嵌入高级语言中使用关系代数、元组关系演算和域关系演算三种语言关系代数、元组关系演算和域关系演算三种语言在表达能力上完全等价在表达能力上完全等价4.关系
4、数据语言的特点关系数据语言的特点2.1 关系模型概述关系模型概述2.2 关系数据结构关系数据结构2.3 关系的完整性关系的完整性2.4 关系代数关系代数一、关系一、关系2.2 关系数据结构关系数据结构1. 1. 域(域(DomainDomain)2. 2. 笛卡尔积(笛卡尔积(Cartesian ProductCartesian Product)3. 3. 关系(关系(RelationRelation)二、关系模式二、关系模式三、关系数据库三、关系数据库 域(域(Domain)域域是一组具有相同数据类型的值的集合。是一组具有相同数据类型的值的集合。例例 给出三个域给出三个域 D1=SUPERV
5、ISOR = 张清玫,刘逸张清玫,刘逸 D2=SPECIALITY=计算机专业,信息专业计算机专业,信息专业 D3=POSTGRADUATE=李勇,刘晨,王敏李勇,刘晨,王敏2. 笛卡尔积(笛卡尔积(Cartesian Product)(1)笛卡尔积)笛卡尔积给定一组域给定一组域D1,D2,Dn,则它们的,则它们的笛卡尔积笛卡尔积为:为:D1D2Dn(d1,d2,dn)di Di,i1,2,nD1,D2,Dn域可以相同域可以相同 表示所有域的所有取值的一个组合表示所有域的所有取值的一个组合 不能重复不能重复 无实际意义,只有它的子集才有意义无实际意义,只有它的子集才有意义例例 给出三个域:给出
6、三个域: D1=SUPERVISOR = 张清玫,刘逸张清玫,刘逸 D2=SPECIALITY=计算机专业,信息专业计算机专业,信息专业 D3=POSTGRADUATE=李勇,刘晨,王敏李勇,刘晨,王敏则则D1,D2,D3的笛卡尔积为:的笛卡尔积为:D1D2D3 (张清玫,计算机专业,李勇张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏张清玫,计算机专业,王敏),(张清玫,信息专业,李勇张清玫,信息专业,李勇), (张清玫,信息专业,刘晨张清玫,信息专业,刘晨),(张清玫,信息专业,王敏张清玫,信息专业,王敏), (刘逸,计算机专业
7、,李勇刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏刘逸,计算机专业,王敏),(刘逸,信息专业,李勇刘逸,信息专业,李勇), (刘逸,信息专业,刘晨刘逸,信息专业,刘晨),(刘逸,信息专业,王敏刘逸,信息专业,王敏) D1域域导师集合导师集合张清玫张清玫刘逸刘逸D2域域专业集合专业集合计算机专业计算机专业信息专业信息专业D3域域研究生研究生集合集合李勇李勇刘晨刘晨王敏王敏导师导师专业专业研究生研究生张清玫张清玫计算机专业计算机专业李勇李勇张清玫张清玫计算机专业计算机专业刘晨刘晨张清玫张清玫计算机专业计算机专业王敏王敏张清玫张清玫信息专业信
8、息专业李勇李勇张清玫张清玫信息专业信息专业刘晨刘晨张清玫张清玫信息专业信息专业王敏王敏刘逸刘逸计算机专业计算机专业李勇李勇刘逸刘逸计算机专业计算机专业刘晨刘晨刘逸刘逸计算机专业计算机专业王敏王敏刘逸刘逸信息专业信息专业李勇李勇刘逸刘逸信息专业信息专业刘晨刘晨刘逸刘逸信息专业信息专业王敏王敏= (2)元组)元组(Tuple)笛卡尔积中每一个元素(笛卡尔积中每一个元素(d1,d2,dn)叫作一)叫作一个个n元组元组(n-tuple)或简称)或简称元组元组。 (3)分量()分量(Component)笛卡尔积元组(笛卡尔积元组(d1,d2,dn)中的每一个值)中的每一个值di叫作一个叫作一个分量分量。
9、 (4)基数()基数(Cardinal number)若若Di(i1,2,n)为有限集,其基数为)为有限集,其基数为mi(i1,2,n),则),则D1D2Dn的基数的基数M为:为:mMini 13. 关系(关系(Relation)(1)关系)关系D1D2Dn的子集叫作在域的子集叫作在域D1,D2,Dn上上的的关系关系,表示为:,表示为:R(D1,D2,Dn)R关系名关系名n关系的关系的目目或或度度(Degree)注意:关系是笛卡尔积的有限子集注意:关系是笛卡尔积的有限子集无限关系在数据库系统中是无意义的无限关系在数据库系统中是无意义的(2)元组)元组关系中的每个元素是关系中的元组,通常用关系中
10、的每个元素是关系中的元组,通常用 t 表示。表示。R(D1,D2,Dn)当当n=1时,称该关系为时,称该关系为单元单元关系关系(Unary relation)当当n=2时,称该关系为时,称该关系为二元二元关系关系(Binary relation)(3)元)元主码:主码:从多个候选码选出标识元组的码;候选码的从多个候选码选出标识元组的码;候选码的所有属性称为所有属性称为主属性主属性;其它的属性称为;其它的属性称为非码属性非码属性。(4)码)码候选码候选码:能唯一标识关系中的一个元组的能唯一标识关系中的一个元组的属性组属性组全码全码:简单:简单的候选码只包含一个属性,但在的候选码只包含一个属性,但
11、在极端极端的的情况下,关系模式的所有属性组是这个关系模式的候情况下,关系模式的所有属性组是这个关系模式的候选码,称为选码,称为全码(全码(All-key)基本关系基本关系(基本表或基表)(基本表或基表)实际存在的表,是实际存储数据的逻辑表示实际存在的表,是实际存储数据的逻辑表示查询表:查询表:查询结果对应的表查询结果对应的表视图表:视图表:由基本表或其他视图表导出的表,是虚表,由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据不对应实际存储的数据(5)三类关系)三类关系(6)基本关系的性质)基本关系的性质 列同质列同质 域可同域可同 行列无序行列无序 元组不同(不完全遵守)元组不同(不
12、完全遵守) 原子分量原子分量一、关系一、关系2.2 关系数据结构关系数据结构 域(域(DomainDomain) 2. 2. 笛卡尔积(笛卡尔积(Cartesian ProductCartesian Product) 3. 3. 关系(关系(RelationRelation)二、关系模式二、关系模式1关系模式的定义关系模式的定义2. 关系模式与关系关系模式与关系1关系模式的定义关系模式的定义R 关系名关系名U 属性名集合属性名集合D U的的属性域属性域dom 属性向域的映像属性向域的映像F 属性间的依赖关系属性间的依赖关系R(U,D,dom,F)R (U) R (A1,A2,An)通常简记:通
13、常简记:2. 关系模式与关系关系模式与关系 对关系的描述对关系的描述 静态的、稳定的静态的、稳定的关系关系模式模式关系关系关系关系模式在某一时刻的模式在某一时刻的状态状态动态的、随时间不断变化的动态的、随时间不断变化的(通过上下(通过上下文加以区别)文加以区别)统称统称关系关系2.1 关系模型概述关系模型概述2.2 关系数据结构关系数据结构2.3 关系的完整性关系的完整性2.4 关系代数关系代数不能为空不能为空基本关系基本关系 现实世界的现实世界的实体集实体集主码唯一主码唯一 现实世界实现实世界实体是可区分体是可区分为什么必须遵守实体完整性?为什么必须遵守实体完整性?一一 实体完整性实体完整性
14、学生(学生(学号学号,姓名,性别,姓名,性别,专业号专业号,年龄),年龄)专业(专业(专业号专业号,专业名),专业名)学生(学生(学号学号,姓名,性别,专业号,年龄)姓名,性别,专业号,年龄)课程(课程(课程号课程号,课程名,学分),课程名,学分)选修(选修(学号学号,课程号课程号,成绩),成绩)二二 参照完整性参照完整性外码(外码(Foreign Key)设设F是基本关系是基本关系R的一个或一组属性,但不是关的一个或一组属性,但不是关系系R的码。如果的码。如果F与基本关系与基本关系S的主码的主码Ks相对应,则相对应,则称称F是关系是关系R的的外码外码基本关系基本关系R称称为为参照关系参照关系
15、(Referencing Relation)基本关系基本关系S称称为为被参照关系被参照关系(Referenced Relation)或或目标关系目标关系(Target Relation)。)。外码外码R(Kr,F,) S(Ks,)基本关系基本关系R称称为为参照关系参照关系基本关系基本关系S称称为为被参照关系被参照关系或或目标关系目标关系规则:规则:F上的值:上的值: 空值空值(F的每个属性值均为空值)的每个属性值均为空值) 等于等于S中某个元组的主码值中某个元组的主码值F是关系是关系R的外码的外码参照的关系参照的关系被参照的关系被参照的关系被参照的关系被参照的关系学生关系学生关系 -选修关系选
16、修关系课程关系课程关系学生(学生(学号学号,姓名,性别,专业号,年龄)姓名,性别,专业号,年龄)课程(课程(课程号课程号,课程名,学分),课程名,学分)选修(选修(学号学号,课程号课程号,成绩),成绩)说明:说明:1、R和和S可以相同(自身参照)可以相同(自身参照)2、外码与被参照的主码同域、外码与被参照的主码同域3、外码与被参照的主码可不同名(一般取同名)、外码与被参照的主码可不同名(一般取同名)三三 用户定义的完整性用户定义的完整性检验:检验:DBMS例例:课程课程(课程号课程号,课程名,学分,课程名,学分)“课程名课程名”属性必须取唯一值属性必须取唯一值非主属性非主属性“课程名课程名”也
17、不能取空值也不能取空值“学分学分”属性只能取值属性只能取值1,2,3,42.1 关系模型概述关系模型概述2.2 关系数据结构关系数据结构2.3 关系的完整性关系的完整性2.4 关系代数关系代数1.1. 概念概念2.2. 传统的集合传统的集合运算运算3.3. 专门的关系运算专门的关系运算 运算对象:关系运算对象:关系 运算结果:关系运算结果:关系 运算符:四类运算符:四类1关系运算关系运算的三个要素的三个要素l 集合运算符:行集合运算符:行l 专门的关系运算符:专门的关系运算符:行行+列列l 算术比较符:算术比较符:辅助关系运算辅助关系运算l 逻辑运算符:逻辑运算符:辅助关系运算辅助关系运算一、
18、概念一、概念运算符运算符含义含义运算符运算符含义含义集合集合运算运算符符-并并差差交交广义笛卡尔积广义笛卡尔积比较比较运算运算符符、 大于、小于大于、小于大于等于大于等于小于等于小于等于等于、不等于等于、不等于关系关系运算运算符符 选择选择投影投影连接连接除除逻辑逻辑运算运算符符 非非与与或或(1) R,t R,tAi 设关系模式为设关系模式为R(A1,A2,An)它的一个关系设为它的一个关系设为Rt R:t是是R的一个元组的一个元组tAi:元组元组t中相应于属性中相应于属性Ai的一个分量的一个分量2表示符号表示符号student(Sno,Sname,Ssex,Sage,Sdept)t stu
19、dent:t是是student的一个元组的一个元组tSname:元组元组t中中Sname的一个分量的一个分量(2)A, tA若若A=Ai1,Ai2,Aik,其中,其中Ai1,Ai2,Aik是是A1,A2,Ai ,An中的一部分,则中的一部分,则A称为称为属属性列或域列性列或域列。tA=(tAi1,tAi2,tAik)表示元组表示元组t在属性列在属性列A上的分量的集合。上的分量的集合。(3) tr ts R为为n目关系,目关系,S为为m目关系。目关系。tr R,ts S, tr ts称为元组的连接。它是一个称为元组的连接。它是一个n + m列的元组,前列的元组,前n个个分量为分量为R中的一个中的
20、一个n元组,后元组,后m个分量为个分量为S中的一个中的一个m元组。元组。 (4)象集)象集Zx给定一个关系给定一个关系R(X,Z),),X和和Z为属性组。当为属性组。当tX=x时,时,x在在R中的中的象集象集(Images Set)为:)为:表示表示R中属性组中属性组X上值为上值为x的诸元组在的诸元组在Z上分量的集合上分量的集合 Zx=tZ|t R,tX=x学学 号号课课 程程 号号成成 绩绩SnoCnoGrade9500119295001285950013889500229095002380Z学号学号=t课程课程号,成绩号,成绩|t 选课表选课表,t学号学号=“95001”ZX选课表选课表Z
21、x=tZ|t R,tX=xABCa1b1c2a2b3c7a3b4c6a1b2c3a4b6c6a2b2c3a1b2c1RBCb1c2b2C3b2c1R R中中X XA A=a1=a1的的象集象集Z Zx1二二 传统的集合运算传统的集合运算1. 并并2. 差差3. 交交4. 广义笛卡尔积广义笛卡尔积1. 并(并(Union)RSRUSABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSRS R和和S条件条件相同的目相同的目n属性域相同属性域相同RS 结果结果仍为仍为n目关系目关系RS = t|t Rt S 2
22、. 差(差(Difference)RSRSABCa1b1c1R-S S-R? ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR - S 结果结果 R -S = t|t Rt S RSR SRS = R (R-S)RSRR-(R-S)3. 交(交(Intersection)ABCa1b2c2a2b2c1R S ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSRS = t|t Rt S RS = R (R-S)4. 广义笛卡尔积广义笛卡尔积R:n目关系,目关系,k1个元组个元组S:m目关系,目关系,k2个元组个元组R
23、S 列:(列:(n+m)行:行:k1k2个元组个元组RS = tr ts |tr R ts S R.AR.BR.Ca1b1c1a1b1c1a1b1c1a1b2c2a1b2c2a1b2c2a2b2c1a2b2c1a2b2c1R S S.AS.BS.Ca1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1a1b2c2a1b3c2a2b2c1ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RS三三 专门的关系运算专门的关系运算1. 选择选择2. 投影投影3. 连接连接4. 除除1. 选择(选择(Selection) 又称为限制,是根据条件对关系做
24、又称为限制,是根据条件对关系做水平分割水平分割。运算符的含义:运算符的含义:F(R) = t|t RF(t)= 真真F称为条件表达式。称为条件表达式。学学 号号Sno姓姓 名名Sname性性 别别Ssex年年 龄龄Sage所所 在在 系系Sdept95001李勇李勇男男20CS95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS Student例例:设有一个学生:设有一个学生-课程数据库,包括学生关系课程数据库,包括学生关系Student、课程关系课程关系Course和选修关系和选修关系SC。Course课程号课程号课程名课程名先行课先行课学分学分CnoC
25、nameCpnoCcredit1数据库数据库542数学数学 23信息系统信息系统144操作系统操作系统635数据结构数据结构746数据处理数据处理 27PASCAL语言语言64SC学学 号号课课 程程 号号成成 绩绩SnoCnoGrade9500119295001285950013889500229095002380例例1 查询信息系(查询信息系(IS系)全体学生系)全体学生 Sdept = IS (Student)或或 5 =IS (Student)结果:结果:SnoSnameSsexSageSdept95002刘晨刘晨女女19IS95004张立张立男男19IS例例2 查询年龄小于查询年龄小
26、于20岁的学生岁的学生 Sage 20(Student) 或或 4 20(Student)结果:结果: SnoSnameSsexSageSdept95002刘晨刘晨女女19IS95003王敏王敏女女18MA95004张立张立男男19IS 2. 投影(投影(Projection) 是对关系进行是对关系进行垂直垂直分割,消去分割,消去重复行重复行 A(R) = tA | t R A:R中的属性列中的属性列例例3 查询学生的姓名和所在系查询学生的姓名和所在系Sname,Sdept(Student)或或 2,5(Student)结果:结果:SnameSdept李勇李勇CS刘晨刘晨IS王敏王敏MA张立张
27、立IS例例4 查询学生关系查询学生关系Student中都有哪些系。中都有哪些系。 Sdept(Student)结果:结果:SdeptCSISMA3. 连接(连接(Join) 从两个关系的笛卡尔积中选取满足条件的元组从两个关系的笛卡尔积中选取满足条件的元组A和和B:为为R和和S上有比性的属性上有比性的属性组组:比较:比较运算符(常见运算符(常见=) ABtr tsR S = | tr Rts StrAtsB (1)等值连接)等值连接为为“”的连接称为的连接称为等值连接等值连接 含义:含义:R与与S的广义笛卡尔积中选取的广义笛卡尔积中选取A=B的元组的元组 A=Btr tsR S = | tr R
28、ts StrA=tsB (2)自然连接()自然连接(Natural join) 是两个关系连接结果中去掉重复的属性列是两个关系连接结果中去掉重复的属性列tr tsR S = | tr Rts StrB=tsB 例例 ABCa1b15a1b26a2b38a2b412BEb13b27b310b32b52RSAR.BCS.BEa1b15b27a1b15b310a1b26b27a1b26b310a2b38b310 R S CE 等值连接等值连接 R S AR.BCS.BEa1b15b13a1b26b27a2b38b310a2b38b32 自然连接自然连接 R S ABCEa1b153a1b267a2b3810a2b382笛卡尔积笛卡尔积连接(连接()等值连接等值连接自然连接自然连接RS = tr ts |tr R ts S ABtr tsR S = | tr Rts StrAtsB A=Btr tsR S = | tr Rts StrA=tsB tr tsR S = | tr Rts StrB=tsB
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。