数据库技术第2章-的关系模型-课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《数据库技术第2章-的关系模型-课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库技术 关系 模型 课件
- 资源描述:
-
1、u 2.1 关系模型的基本概念 u 2.2 关系代数 u 2.3 关系演算 u 2.4 关系系统的十二条准则 u 2.5 关系系统的查询优化 u 2.6 关系数据库管理系统简介 u 2.7 小结第2章 关系模型本章主要内容本章主要内容11/10/20221 关系模型是目前最流行并且是最重要的数据模型。自从EFCodd于1970年提出关系模型以来,已占有了相当重要的地位,相对于以前的层次模型和网状模型,关系数据模型在许多方面对以前的数据模型进行了改进,这些改进简化了数据管理、数据检索等工作。11/10/20222u 2.1 关系模型的基本概念 u 2.2 关系代数 u 2.3 关系演算 u 2.
2、4关系系统的十二条准则 u 2.5 关系系统的查询优化 u 2.6 关系数据库管理系统简介 u 2.7 小结第2章 数据模型11/10/20223关系模型的组成:数据结构+关系操作+完整性约束表结构 8个运算 三类完整性关系代数语言关系演算语言SQL语言实体完整性参照完整性自定义完整性数据库技术数据库技术Concept and Technology of DataBase 11/10/20224 关系模型是目前广泛应用的一种数据模型。关系模型中涉及到的基本元素包括关系、关系操作以及对关系的完整性约束条件。1.关系 关系是关系模型的数据结构。在关系模型中,数据用关系来表示,数据之间的联系仍用关系
3、来表示,对数据的操作就是对关系的运算,而且关系运算的结果还是关系。通俗地讲,关系就是一张二维表,如下所示:11/10/20225编号姓名性别年龄职称部门200305001李男47教授计通200305002张男43副教授计通200305003李女35副教授计通200305004王女35讲师计通表中的每一行称为元组,指关系表所表示对象的实例表中的每一列称为属性。列标题是属性名该列属性的值,称为分量11/10/20226关系的形式化定义关系的形式化定义(从集合论的角度)(从集合论的角度)(1)域 域是一组具有相同数据类型的值的集合。(2)笛卡尔积 给定一组域 ,这些域中可以有相同的。的笛卡尔积为:其
4、中每一个元素 叫作一个n元组或简称元组。元素中每一个值 叫作一个分量。若 为有限集,其基数为 ,则nDDD,.,21nDDD,.,21,.,2,1,|),.,(.2121niDddddDDDiinn),.,(21ndddid),.,2,1(niDi),.,2,1(niminDDD.2111/10/20227的基数M为:inimM1 例如给出3个域:1D=导师集合=张清玫,刘逸=专业集合=计算机专业,信息专业=研究生集合=李勇,刘晨2D3D11/10/20228则 的笛卡尔积为:=(张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨),(张清玫,信息专业,李勇),(张清玫,信息专业,刘晨),
5、(刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨),(刘逸,信息专业,李勇),(刘逸,信息专业,刘晨)由上述笛卡尔积表示的二维表为:321,DDD321DDD11/10/20229 导 师 专业 研究生 张清玫 计算机专业 李勇 张清玫 计算机专业 刘晨 张清玫 信息专业 李勇 张清玫 信息专业 刘晨 刘逸 计算机专业 李勇 刘逸 计算机专业 刘晨 刘逸 信息专业 李勇 刘逸 信息专业 刘晨11/10/202210()关系 的子集称作域上的关系,表示为:。这里R表示关系的名字,n是关系的目或度。当n=1时,称该关系为单元关系。当n=2时,称该关系为二元关系。nDDD.21nDDD,.,21
6、),.,(21nDDDR11/10/202211 关系可分为以下三种类型:基本表:实际存在的表,它是实际存储数据的逻辑表示。查询表:查询结果对应的表。视图表:由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据。11/10/202212关系模式、关系实例和关系数据库 关系模式是对关系表中每个列的描述。关系模式需要给出关系名、每个属性的名称、属性的域及属性和域之间的映射关系。教师关系表对应的关系模式可以描述为:教师(编号,姓名,性别,年龄,职称,部门)关系实例是关系模式在某一个时刻的状态和内容。关系数据库是对应于一个关系模型的某应用领域全部关系的集合。它是基于关系模型的数据库。11/10/
7、202213码 码是关系模型完整性约束的一个体现。在一个关系中,若某一属性集合的值可唯一地标识每一个元组,即其值对不同的元组是不同的,这样的最小属性集合称为候选码(Candidate key),简称为码(Key)。若一个关系中有多个候选码,则选定其中一个作为主码(Primary key)。在定义关系模式时,为了体现出关系的主码,通常在选为主码的属性下面加下划线。例如教师关系:教师(编号,姓名,性别,年龄,职称,部门)11/10/2022142.关系操作关系数据模型定义了关系上的一组操作,常用的关系操作包括查询(Query)操作和插入(Insert)、删除(Delete)、修改(Update)操
8、作。关系的查询表达能力很强,是关系操作中最主要的部分。查询操作可以分为:选择、投影、连接、除、并、差、交、笛卡尔积等。关系操作的特点是集合操作方式,即操作的对象和结果都是集合。11/10/2022153.关系的完整性规则 关系模型的完整性规则是对关系的某种约束条件,目的在于控制并确保数据内容的有效性和一致性。关系模型的完整性规则包括实体完整性、参照完整性和用户自定义的完整性。实体完整性规则 在关系表中,所有元组主码的值都不能为空。下面的教师表违背了实体完整性规则 11/10/202216编号姓名性别年龄职称部门200305001李男47教授计通张男43副教授计通200305003李女35副教授
9、计通王女35讲师计通参照完整性 在关系模型中,采用给关系定义外键的形式进行关系间属性的引用,从而实现参照完整性。外键,也称为外码。它是关系的一组属性,但不是主码属性,它的取值与另外一个关系中主码属性的取值相匹配,也就是说,属性的数目以及数据类型都要相同。11/10/202217例2.1教师和研究生可以用下面的关系来表示,其中主码用下划线标识:教师(编号,姓名,性别,年龄,职称,部门)研究生(学号,姓名,导师编号,导师姓名,专业)教 师 信 息 表PK 编号 姓名 性别 年龄 职称 部门研究生信息表PK 学号 姓名 导师编号 导师姓名 专业外键11/10/202218参照完整性规则 关系中每个元
10、组在外键上的取值,或者为空值,或者等于与该关系相匹配的关系的主码值。用户自定义的完整性实体完整性和参照完整性是关系模型必须满足的完整性约束条件。除此之外,还需要有能反映某一具体应用所涉及的数据必须满足的语义要求的约束条件。这种约束条件,称为用户自定义的完整性。例如:人的身高不能超过3米,学生成绩应该大于等于零,职工的工龄应该小于年龄。11/10/202219u 2.1 关系模型的基本概念 u 2.2 关系代数 u 2.3 关系演算 u 2.4关系系统的十二条准则 u 2.5 关系系统的查询优化 u 2.6 关系数据库管理系统简介 u 2.7 小结第2章 数据模型11/10/202220数据库原
11、理与应用数据库原理与应用Principle and Application of DataBase 关系数据语言(也称数据库操作语言)是数据库管理系统提供的用户接口,是用户用来操作数据库的工具,通常包括查询语句和非查询语句。关系数据语言大体分为三类:关系数据语言关系代数ISBL关系演算语言元组关系演算语言ALPHA域关系演算语言QBE具有关系代数和关系演算双重特点的语言SQL11/10/202221说明:(1)关系代数语言:由一个或多个关系表行列的数学操作组成。在一系列操作中,各操作都生成一个结果关系表。(2)关系演算语言:将数理逻辑的谓词演算应用到关系运算中。关系演算语言又可分为元组关系演算
12、语言和域关系演算语言。元组关系演算语言:谓词变元的基本对象是元组变量。域关系演算语言:谓词变元的基本对象是元组变量的分量即域变量。11/10/202222(3)结构化查询语言(SQL):SQL不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)于一体的关系数据语言。11/10/2022231.关系代数的基本操作 关系代数是与关系模型相关的两种形式化查询语言之一。它包括一个运算集合,这些运算以一个或两个关系为输入,产生一个新的关系作为结果。关系代数的基本运算有:选择、投影、并、差、笛卡儿积。在基本运算以外,还有一些其他
13、运算,包括交、连接和除。这些运算可以由关系代数的基本运算定义。11/10/202224关系运算的一些记号:1设关系模式为。它的一个关系设为,表示 是 的一个元组。则表示元组中相应属性的一个分量。2若,其中是中的一部分,则称为属性列或属性组。表示元组在属性列上诸分量的集合。则表示 中去掉 后剩余的属性组。3为n目关系,为m目关系。称为元组),.,(21nAAARRt RtRiAtiAt,.,21ikiiAAAAikiiAAA,.,21nAAA,.,21A),.,(21ikiiAtAtAtAttAA,.,21nAAA,.,21ikiiAAARSsrsrttStRt,11/10/202225的连接。
14、它是一个n+m列的元组,前n个分量为中的一个n元组,后m个分量为中的一个m元组。4给定一个关系,和为属性列。当时,在中的象集定义为:它表示中属性组上值为 的诸元组在上分量的集合。RS),(ZXRXZxXtR,|xXtRtZtZxRXZx11/10/202226ABCa1b155a2b245a4b235ABCa1b255a2b245a3b135a4b235ADa1101a2101a2102a3102假设、和是三个关系 1R2R3R1R2R3R11/10/202227关系代数的基本操作(1)选择(Selection)选择运算是从输入关系中选择满足给定条件的元组,记作:其中表示选择条件,它是一个逻辑
15、表达式。通常,允许在逻辑表达式中进行比较,使用=,。另外,还可以使用逻辑连接词与(),或()和非()把多个表达式连接合并成为一个较大的表达式。R)(|)(真tFRttRFF11/10/202228经过运算后的结果为:(2)投影(Projection)关系上的投影是从中选择出若干属性列组成新的关系。记作:例如:从关系中选择属性B的值等于b2的所有元组,可以表示为:结果为:1R)(1B2RbABCa2b245a4b235RR|)(RtAtRA)(1,RBAABa1b1a2b2a4b2(3)并(Union)并运算是传统的集合运算。它的运算结果包含了参加运算的两个关系中的所有元组。11/10/2022
16、29的结果为:关系和关系的并记作:两个关系要能够进行并运算,必须是相容关系,即必须满足以下两个条件:(1)两个关系的属性数必须相同(2)从左向右,对应的属性要有相同的取值范围。RS|StRttSR21RR ABCa1b155a2b245a4b235a1b255a3b13511/10/202230(4)差(Difference)差运算也是传统的集合运算。它的结果包括出现在一个关系中而不出现在另一个关系中的元组。关系和关系的差记作:RS|StRttSR的结果为:21RR ABCa1b155(5)笛卡儿积(Cartesian Product)笛卡儿积运算可以将任意两个关系的信息组合在一起。两个分别为
17、n目和m目的关系和的笛卡尔积是一个(n+m)列的元组的集合。SR11/10/202231元组的前n列是关系的一个元组,后m列是关系的一个元组。假如关系中有个r元组,关系中有s个元组。那么关系和关系的笛卡儿积中将有(r*s)个元组。关系和关系的笛卡儿积记作:RSRSRSRS|StRtttSRsrsr21RR 的结果为:11/10/202232R1.AR1.BR1.CR2.AR2.BR2.Ca1b155a1b255a1b155a2b245a1b155a3b135a1b155a4b235a2b245a1b255a2b245a2b245a2b245a3b135a2b245a4b235a4b235a1b
18、255a4b235a2b245a4b235a3b135a4b235a4b23511/10/202233的结果为:2.关系代数的其他操作(1)交(Intersection)交运算也是传统的集合运算。它的运算结果包含了同时在两个关系中出现的所有元组。关系和关系的交记作:RS|StRttSR21RR ABCa2b245a4b23511/10/202234(2)连接(Join)连接运算在关系代数中是最有用的运算之一,最常用的方式是合并两个或者多个关系的信息。连接运算是从两个关系的笛卡儿积中选取满足一定条件的元组。记作:其中,A和B是关系和上度数相等并且可比的属性组。是比较运算符。连接运算从和的笛卡儿积
19、中选取关系在A属性组上的值与关系在B属性组上的值满足比较关系的元组。|S B ABtAtStRtttRsrsrsrRSRRSS11/10/202235的结果为:121.2 1R CRCRRR1.A R1.B R1.C R2.A R2.B R2.Ca2b245a1b255a4b235a1b255a4b235a2b245连接运算有两种最重要且应用最广泛的连接:等值连接和自然连接。等值连接是连接运算的一种特殊情况,一般指连接条件是相等表达式,即为“=”的连接运算。11/10/202236的结果为:等值连接要求连接的两个关系中对应属性相等。记作:|S B ABtAtStRtttRsrsrsr121.2
20、 1R CRCRRR1.AR1.BR1.CR2.AR2.BR2.Ca1b155a1b255a2b245a2b245a4b235a3b135a4b235a4b23511/10/202237自然连接是一种特殊的等值连接。它要求两个关系中所有同名属性都相等,并且在结果中必须把重复的属性列删除。一般的连接操作是从行的角度进行运算。但自然连接还需要取消重复列,所以是同时从行和列的角度进行运算。假如关系和关系具有相同的属性组A,则自然连接记作:RS|AtAtStRtttSRsrsrsr11/10/2022383 1R R的结果为:ABCDa1b155101a2b245101a2b24510211/10/2
21、02239(3)除除运算适合于包含了“对所有的”的查询。假如两个关系和,其中为属性组,中的和中的可以有不同的属性名,但必须出自相同的域集。除运算定义为如下的所有属性组列上值的集合:对于中的属性列上的每个值,在中都有相同的与之对应。另一种理解除操作的方式为:对于中的每个 属性组列上的值,考虑具有该值的所有 属性列上的值的集合。如果该集合包含了 中的所有 属性组列上的值,那么这个 的值就包含在 的结果中。关系和关系的除运算记作:),(YXR),(ZYSZYX,RYYSSR XxSYRxRXxYSYxSR 11/10/202240)(|xyrrYSRtXtSR其中 为 在 中的象集,。xYxRXtx
22、r设关系 、和 如下所示,则 、的结果图为:R1S2SABa1b1a1b2a1b3a2b1a2b2a3b2a3b3Bb3Bb1b2b3R1S2S1SR 2SR Aa1a3Aa11SR2SR11/10/202241关系代数运算举例 设有一个学生-课程数据库,包括学生关系Student,课程关系Course和选修关系SC。其关系模式分别为:Student(Sno,Sname,Ssex,Sage,Sdept);Course(Cno,Cname,Cpno,Ccredit)SC(Sno,Cno,Grade)11/10/202242例1:查询信息系(IS)全体学生;例2:查询年龄小于20岁的学生;例3:查
23、询学生的姓名和所在系;例4:查询学生关系中都有哪些系;例5:查询学生95001的所有信息;例6:查询学生95001的姓名和所在系;例7:查询选修了1号课程的学生的学号;例8:查询选修了1号课程的学生的姓名;11/10/202243例9:查询至少选修了1号课程和3号课程的学生的学号;例10:查询至少选修了一门其直接先修课为5号课程的学生的学号;例11:查询没有选修1号课程的学生姓名;例12:查询选修了全部课程的学生的学号和姓名;例13:查询最少选修了学生95002所选课程的学生学号;11/10/2022443.扩展的关系代数运算(1)广义投影广义投影运算通过允许在投影列表中使用算术函数来对投影进
24、行扩展。广义投影运算形式为:例2.10将编号为200305003的教师的年龄改为36岁 (2)赋值运算通过赋值给临时关系变量的方法把关系代数表达式分成几个部分写会很简单。赋值运算用表示,与程序语言中的赋值相类似。)(,.,21EnFFF)Teacher(200305003Tno36TageTname,Tno,11/10/202245例2.11 删除编号为200305003的教师的相关信息(Teacher)(TeacherTeacher200305003Tno(TP)(TPTP200305003Tno(3)外连接外连接运算是连接运算的扩展,可以处理缺失的信息。外连接运算有三种:左外连接、右外连接
展开阅读全文