第三章关系数据库理论课件.ppt

上传人:牧羊曲112 文档编号:1843840 上传时间:2022-12-21 格式:PPT 页数:66 大小:1.10MB
返回 下载 相关 举报
第三章关系数据库理论课件.ppt_第1页
第1页 / 共66页
第三章关系数据库理论课件.ppt_第2页
第2页 / 共66页
第三章关系数据库理论课件.ppt_第3页
第3页 / 共66页
第三章关系数据库理论课件.ppt_第4页
第4页 / 共66页
第三章关系数据库理论课件.ppt_第5页
第5页 / 共66页
点击查看更多>>
资源描述

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

1、2022/12/21,1,数据库系统基础第一部分 数据库基本原理,第三章 关系数据库原理,2022/12/21,2,主要内容:,关系数据库的基本概念关系代数,2022/12/21,3,第一节 关系数据库的基本概念,一、关系的定义1 相关术语 (1)域(Domain)域(对应于实体中的元组)是一组具有相同数据类型的值的集合。例如:性别=男,女职称=教授,副教授,讲师,助教系名=计算机科学与技术系,工商管理系,公共管理系 都是域。在关系数据库中,域必须命名。其中,性别、职称、系名等都是域名。,2022/12/21,4,(2) 笛卡尔积(Cartesian Product),给定一组域D1,D2,D

2、N,则 D1D2DN=(d1,d2,dn)|diDi,i=1,2,n 称为D1,D2,DN的笛卡尔积。每一个元素(d1,d2,dn)称为一个n元组,简称元组。元组中的每一个值di是Di域中的一个值,称为一个分量。当n=1时,称为单元组,当n=2时,称为二元组,。,2022/12/21,5,例3-1:动物集合和食物集合的笛卡儿积,给出两个域:D1animal(动物集合)猫,狗,猪D2food(食物集合)鱼,骨头,白菜D1D2(猫,鱼) (狗,鱼) (猪,鱼) (猫,骨头) (狗,骨头) (猪,骨头) (猫,白菜)(猪,,白菜) (狗,白菜)。如表3-1所示。,2022/12/21,6,表3-1

3、动物和食物集合的笛卡儿积,2022/12/21,7,(3)关系,给定一组域: D1,D2,DN,则D1D2DN的子集称为在D1D2DN上的关系,记作: R(D1,D2,DN)其中,R称为关系名,N称为关系R的度。,2022/12/21,8,例3-2:,从例3-1的D1D2的笛卡尔积 (猫,鱼) (狗,鱼) (猪,鱼) (猫,骨头) (狗,骨头) (猪,骨头) (猫,白菜)(猪,,白菜) (狗,白菜) 中取出一个子集来构造一个关系eat(animal,food),关系名为eat(吃),属性名为animal和food,如表3-2所示。,2022/12/21,9,表3-2 eat关系,2022/12

4、/21,10,(4)关键字,关键字:用来标识某个记录的一个或一组属性。侯选关键字:能作为关键字的属性可能不只一个,这些属性称为侯选关键字。主关键字:能唯一标识一个元组的侯选关键字。如:学号、编号等。次关键字:除主关键字之外的侯选关键字。如:性别、职称等。主关键字用途:唯一地确定某个元组。次关键字用途:确定具有某种属性的有哪些元组。,二、数据库中关系的类型,基本表:关系数据库中实际存在的表,是实际存储数据的逻辑表示。视图表:视图表是由基本表或其他视图表导出的表。查询表:查询表是指查询结果表或查询中生成的临时表。,2022/12/21,11,2022/12/21,12,三、关系的性质,关系可以为空

5、关系(即一个关系可以不包含任何元组)关系中的列称为属性,N度关系必有N个属性,属性必须命名。不同的属性可以来自同一个域,同一列中的分量只能来自同一个域,是同类型的数据。列的次序无关紧要,可以任意交换。关系中的元组的顺序无关紧要,但在同一个关系中不能有相同的元组。关系中的每个属性必须是原子的,是不可再分的数据项。随着对关系数据库的操纵,关系随时变化。若两个关系的差别只是关系名不同,属性次序不同或元组次序不同,那么就称这两个关系相等。,2022/12/21,13,四、关系模式,每个关系有一个模式,称为关系模式,由一个关系名以及它的所有属性名构成,一般形式是:R(A1,A2,An)其中,R是关系名,

6、 A1,A2,An是该关系的属性名。一个关系模式实际上是确定了这个关系的二维表的框架,具体关系是关系模式的值或实例,在数据库运行过程中,关系实例是动态变化的。例3-3 eat关系的关系模式 eat(Animal,Food),2022/12/21,14,五、关系数据库模式,一个关系数据库是多个关系的集合,这些具体关系构成了关系数据库的实例。由于每个关系都有一个模式,所以,构成该关系数据库的所有关系模式的集合构成了关系数据库模式。,例3-4:将第二章课堂练习题1所涉及的数据库用关系模式表达,大学实行学分制,学生可根据自己的情况选修课程。每名学生可同时选修多门课程,每门课程可被多名学生选修;每门课程

7、可由多位老师讲授,每位老师可讲授多门课程;每位老师可指导多名学生。假设学生的属性有:学号、姓名、性别、出生日期教师的属性有:编号、姓名、性别、院系课程的属性有:课程号、课程名,2022/12/21,15,E-R图:,2022/12/21,16,关系模式:,学生(学号,姓名,性别,出生日期,导师)教师(编号,姓名,性别,院系)课程(课程号,课程名)选修(学号,课程号,成绩)讲授(编号,课程号),2022/12/21,17,六、关系操作,1、关系操作的基本内容关系操作包括数据查询、数据维护和数据控制三大功能。数据查询指数据检索、统计、排序、分组等功能;数据维护指数据增加、删除、修改等数据自身更新的

8、功能;数据控制是为了保证数据的安全性和完整性而采用的数据存取控制及并发控制等功能。关系操作的数据查询和数据维护功能使用关系代数中的选择、投影、连接、除、并、交、差以及广义笛卡儿积8种操作。,2022/12/21,18,2、关系操作的特点,关系操作语言操作一体化数据定义、查询、更新和控制一体化,既可以作为宿主语言嵌入到主语言中,又可以作为独立语言交互使用。关系操作的方式是一次一集合方式其他系统的操作是一次一记录方式,而关系操作的方式是一次一集合方式,即关系操作的初始数据、中间数据和结果数据都是集合。关系操作数据结构单一,能够使其利用集合运算和关系规范化等数学理论进行优化和处理操作。关系操作语言是

9、高度非过程化的语言具有强大的表达能力。用户使用关系语言时,只需要指出做什么,而不需要指出怎么做,数据存取路径的选择、数据操作方法的选择和优化都由DBMS自动完成。,2022/12/21,19,3、关系操作语言的种类,关系代数语言用对关系的运算来表达查询要求的语言。ISBL(Information System Base Language)为关系语言的代表。关系演算语言用查询得到的元组应满足的谓词条件来表达查询要求的语言。关系演算语言又可分为元组演算语言和域演算语言两种:元组演算语言的谓词变元的基本对象是元组变量,例如ALPHA语言;域演算语言的谓词变元的基本对象是域变量,QBE(Query B

10、y Example)是典型的域演算语言。基于映象的语言具有关系代数和关系演算双重特点的语言。SQL是基于映象的语言。SQL包括数据定义、数据操作和数据控制三种功能,具有语言简洁,易学易用的特点,它是关系数据库的标准语言和主流语言。,2022/12/21,20,4、关系的完整性,(1)关系模型的实体完整性(Entity Integrity)若属性A是基本关系R的主属性,则属性A的值不能为空值。实体完整性能够保证实体的唯一性。实体完整性能够保证实体的可区分性。,2022/12/21,21,(2)关系模型的参照完整性,外码和参照关系设F是基本关系R的一个或一组属性,但不是关系R的主码(或候选码)。如

11、果F与基本关系S的主码相对应,则称F是R的外码,R为参照关系( 外码表),S为主码表。参照完整性规则若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。,2022/12/21,22,例3-5:将例3-4中关系模式的主、外码标注出来。,学生(学号,姓名,性别,出生日期,导师)教师(编号,姓名,性别,院系)课程(课程号,课程名)选修(学号,课程号,成绩)讲授(编号,课程号)对于“学生”和“教师”关系,“教师” 是主码表,编号在“教师”关系中是主码,“

12、学生” 是参照关系,导师在“学生”关系中是外码。对“学生”关系中的导师属性,或者取空值,或者取“教师”关系中已有的值。,2022/12/21,23,(3)用户定义的完整性,用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。,2022/12/21,24,课堂练习1:将第二章“工厂物资管理”数据库用关系模式表达并标出各关系的主、外键,2022/12/21,25,2022/12/21,26,第二节 关系代数,关系代数是一种抽象的查询语言,是关系操纵语言的一种传统表达方式。关系代数的运算对象是关系,运算结果也为关系。关系代数中常用以下4类运算符:集

13、合运算符:(并),(差),(交),(广义笛卡儿积)专门的关系运算符:(投影),(选择), (连接), (除)算术比较符: (大于),(大于等于),(小于),(小于等于),(等于),(不等于)。逻辑运算符: (非)、(与)和(或)。,2022/12/21,27,一、集合的基本运算,并关系R与S的并记为R S,并运算实际上是把两个关系的所有元组合并在一起,削去重复元组所得到的集合。记为: Q = RS = t | t R 或 t S如图所示:,2022/12/21,28,交,关系R与S的交记作R S。它是由同时属于R和S的元组组成的集合。记为: Q = RS = t | t R 且 t S如图所示

14、:,2022/12/21,29,差,关系R与S的差记作R-S。它是由属于R而不属于S的所有元组组成的集合。记为: Q = RS = t | t R 但 t S如图所示:,2022/12/21,30,广义笛卡儿积,两个分别为n度和m度的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有A1个元组,S有A2个元组,则关系R和关系S的广义笛卡尔积有AlA2个元组。记为: Q = R S = t |t =tr ts,trR 且 tsS,2022/12/21,31,例3-6: RS,R,S,RS,2022/12/21,32,例3-7:

15、 R S,2022/12/21,33,例3-8: R - S,2022/12/21,34,例3-9 广义笛卡尔积,R,S,R S,2022/12/21,35,二、专门的关系运算,对于关系数据的检索操作,有些无法用传统的集合运算完成,需要引入一些新的运算,专门的关系运算包括选择、投影、连接、除等。,2022/12/21,36,1、选择运算,选择运算是对单个关系施加的运算,它是一种水平方向上的选择,其目的是在关系R上,把满足条件的元组抽出来构成新的关系,这个关系是原关系R上的一个子集。,2022/12/21,37,记作:,F(R)t|tR F(t)真其中,F表示选择条件,它是一个逻辑表达式,取逻辑

16、值真或假。逻辑表达式F的基本形式为: X1Y1X2Y2表示比较运算符,它可以是、 中的一种。X1,Y1等是属性名或常量或简单函数。属性名也可以用它的序号来代替。表示逻辑运算符,它可以是(非)、(与)和(或) 。,2022/12/21,38,例:,设有一个学生课程关系数据库,包括学生关系S、课程关系C和选修关系SC。如表3-3所示。下面的例3-10例3-13将对这三个关系进行运算。,2022/12/21,39,例3-10:查询数学系学生的信息,SD=数学系 (S)或 5=数学系 (S)结果如表3-4所示。,2022/12/21,40,表3-4:查询数学系学生的信息结果,2022/12/21,41

17、,例3-11:查询年龄20的学生的信息,年龄20(S)或4 20(S)结果如表3-5所示。,2022/12/21,42,表3-5查询年龄20的学生的信息结果,2022/12/21,43,2、投影运算,投影运算也是对单个关系施加的运算,它是一种垂直方向(即列的方向)上的运算。其基本思想是:从一个关系中选择所需要的属性,并重新排列组成一个新关系。因投影后属性个数要减少,故形成新的关系型,因此,应重新给这个关系命名。设R是k度关系,Ai1,Ai2,Aik分别是它的第i1,i2,ik个属性,则关系R在Ai1,Ai2,Aik上的投影是一个m度关系,记作 Ai1,Ai2,Aim (R) (mk),2022

18、/12/21,44,说明:,投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行。,2022/12/21,45,例3-12:查询学生的学号和姓名, S#, SN(S)或 1, 2(S)结果如表3-6所示。,2022/12/21,46,表3-6 查询学生的学号和姓名结果,2022/12/21,47,例3-13:查询学生所在系,即查询学生关系S在所在系属性上的投影。 SD(S)或 5(S)结果如表3-7所示。,2022/12/21,48,表3-7 查询结果,2022/12/21,49,3、连接运算,(1)条件连接条件连接是把两

19、个关系中按照给定的条件以一切可能的组合方式拼接起来形成一个新的关系,称为条件连接(实际上,连接运算就是在两个关系的笛卡儿积上进行选择运算)。设A是关系R中的属性,B是关系S中的属性, 、,关系R和S在条件A B下的条件连接记作:R S=tr ts| trR tsS tr Ats B AB且R S= A B (RS) A B,2022/12/21,50,(2)自然连接,当两个关系R和S具有公共的属性名时,从关系R和S的笛卡儿积中筛选出其公共属性值相等的那些元组称为自然连接。自然连接和条件连接的区别是:自然连接可以自动地删除掉重复的属性名,而只保留一个公共属性名。自然连接运算的过程为: 1) 计算

20、R S; 2) 选择同时出现在R与S中属性相等的元组; 3) 去掉重复属性例3-14,2022/12/21,51,4、除法运算,设有关系R和S,R能被S除的条件有两个:一是R中的属性包含S中的属性;二是R中的有些属性不出现在S中。R除以S表示为R/S或RS。设T=R/S,它也是一个关系,叫做商。T的属性由R中那些不出现在S中的属性组成,其元组则是S中所有元组在R中对应值相同的那些元组值。,2022/12/21,52,例3-15:,给出选课、选修课和必修课3个关系,它们的关系模式为:选课(学号,课号,成绩);选修课(课号,课名);必修课(课号,课名)。,2022/12/21,53,选课,2022

21、/12/21,54,选修课,必修课,2022/12/21,55,选课选修课,选课/必修课,学号,课号(选课)必修课,2022/12/21,56,以“选课选修课”为例说明运算结果:,(1)“选课选修课”的意义是:在选课表中查找选择了选修表中给定的全部课(本例中只有C2一门课),且成绩一样的学生学号和成绩。(2)由于选课表和选修课表中有共同的属性“课号”,所以它们能够进行除法运算,否则将不能进行除法操作。(3)由于被除关系(选课)中的属性“学号”和“成绩”不出现在除关系(选修课)中,所以除法运算的结果表中仅包含学号和成绩两个属性。(4)除法操作执行的结果是求那些包含除关系(选修课)中“课号”的全部

22、值的学号和成绩。参见例子,2022/12/21,57,“选课必修课”的含义:,表示求选择了必修课表中给定的全部课(“C1”和“C3”),且成绩一样的学生的学号和成绩。,2022/12/21,58,学号,课号(选课)必修课 的含义:,表示“求学过必修课中规定的全部课程的学生学号”的查询要求,应先对被除关系(选课)投影,去掉不需要的属性(成绩),再做除法操作。,2022/12/21,59,三、用关系代数检索的例子,假设学生选课库的关系模式为:学生(学号,姓名,性别,年龄,所在系)课程(课程号,课程名,先行课)选课(学号,课程号,成绩),2022/12/21,60,例:求选修了课程号为“C2”课程的

23、学生学号,学号(课程号=C2(选课)说明:当需要投影和选择时,应先选择后投影。,2022/12/21,61,例:求选修了课程号为“C2”课的学生学号和姓名,学号,姓名(课程号=C2(选课 学生)说明:通过选课表与学生表的自然连接,得出选课表中学号对应的姓名和其他学生信息。本题也可以按先选择、再连接的顺序安排操作。,2022/12/21,62,例:求没有选修课程号为“C2”课程的学生学号,学号(学生)- 学号( 课程号=C2(选课)说明:在全部学号中去掉选修“C2”课程的学生学号,就得出没有选修课程号为“C2”课程的学生学号。由于在并、交、差运算时,参加运算的关系应结构一致,故应先投影、再执行差

24、运算。,2022/12/21,63,例:求既选修“C2”课程,又选修“C3”课程的学生学号,学号(课程号=C2(选课) 学号( 课程号=C3(选课)说明:先求出选修“C2”课程的学生,再求出选修“C3”课程的学生,最后使用交运算求解。,2022/12/21,64,例:求选修课程号为“C2”或“C3”课程的学生学号,学号(课程号=C2(选课)学号( 课程号=C3(选课)或:学号(课程号=C2课程号=C3(选课),例:求选修了全部课程的学生学号,学号(选课课程)例:一个学号为“98002”的学生所学过的所有课程可能也被其他学生选修,求这些学生的学号和姓名学号,姓名(学号,课程号(选课) 课程号(学号= 98002(选课) (学生),2022/12/21,65,课堂练习二:,课堂练习二,2022/12/21,66,

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号