第三章关系数据库理论_第1页
第三章关系数据库理论_第2页
第三章关系数据库理论_第3页
第三章关系数据库理论_第4页
第三章关系数据库理论_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2024/3/121数据库系统基础

第一部分数据库基本原理第三章关系数据库原理2024/3/122主要内容:关系数据库的基本概念关系代数2024/3/123第一节关系数据库的基本概念一、关系的定义1.

相关术语(1)域(Domain)域(对应于实体中的元组)是一组具有相同数据类型的值的集合。例如:性别={男,女}职称={教授,副教授,讲师,助教}系名={计算机科学与技术系,工商管理系,公共管理系}

都是域。在关系数据库中,域必须命名。其中,性别、职称、系名等都是域名。2024/3/124(2)笛卡尔积(CartesianProduct)

给定一组域D1,D2,…,DN,则

D1×D2×…DN={(d1,d2,…,dn)|di∈Di,i=1,2,…,n}

称为D1,D2,…,DN的笛卡尔积。每一个元素(d1,d2,…,dn)称为一个n元组,简称元组。元组中的每一个值di是Di域中的一个值,称为一个分量。当n=1时,称为单元组,当n=2时,称为二元组,…。2024/3/125例3-1:动物集合和食物集合的笛卡儿积给出两个域:D1=animal(动物集合)={猫,狗,猪}D2=food(食物集合)={鱼,骨头,白菜}D1×D2={(猫,鱼)(狗,鱼)(猪,鱼)(猫,骨头)(狗,骨头)(猪,骨头)(猫,白菜)(猪,,白菜)(狗,白菜)}。如表3-1所示。2024/3/126表3-1动物和食物集合的笛卡儿积Animalfood猫鱼猫骨头猫白菜狗鱼狗骨头狗白菜猪鱼猪骨头猪白菜2024/3/127(3)关系给定一组域:D1,D2,…,DN,则D1×D2×…DN的子集称为在D1×D2×…DN上的关系,记作:

R(D1,D2,…,DN)其中,R称为关系名,N称为关系R的度。2024/3/128例3-2:从例3-1的D1×D2的笛卡尔积{(猫,鱼)(狗,鱼)(猪,鱼)(猫,骨头)(狗,骨头)(猪,骨头)(猫,白菜)(猪,,白菜)(狗,白菜)}中取出一个子集来构造一个关系eat(animal,food),关系名为eat(吃),属性名为animal和food,如表3-2所示。

2024/3/129表3-2eat关系animalfood猫鱼狗骨头猪白菜2024/3/1210(4)关键字关键字:用来标识某个记录的一个或一组属性。侯选关键字:能作为关键字的属性可能不只一个,这些属性称为侯选关键字。主关键字:能唯一标识一个元组的侯选关键字。如:学号、编号等。次关键字:除主关键字之外的侯选关键字。如:性别、职称等。主关键字用途:唯一地确定某个元组。次关键字用途:确定具有某种属性的有哪些元组。二、数据库中关系的类型基本表:关系数据库中实际存在的表,是实际存储数据的逻辑表示。视图表:视图表是由基本表或其他视图表导出的表。查询表:查询表是指查询结果表或查询中生成的临时表。

2024/3/12112024/3/1212三、关系的性质关系可以为空关系(即一个关系可以不包含任何元组)关系中的列称为属性,N度关系必有N个属性,属性必须命名。不同的属性可以来自同一个域,同一列中的分量只能来自同一个域,是同类型的数据。列的次序无关紧要,可以任意交换。关系中的元组的顺序无关紧要,但在同一个关系中不能有相同的元组。关系中的每个属性必须是原子的,是不可再分的数据项。随着对关系数据库的操纵,关系随时变化。若两个关系的差别只是关系名不同,属性次序不同或元组次序不同,那么就称这两个关系相等。2024/3/1213四、关系模式每个关系有一个模式,称为关系模式,由一个关系名以及它的所有属性名构成,一般形式是:R(A1,A2,…,An)其中,R是关系名,A1,A2,…,An是该关系的属性名。一个关系模式实际上是确定了这个关系的二维表的框架,具体关系是关系模式的值或实例,在数据库运行过程中,关系实例是动态变化的。例3-3eat关系的关系模式eat(Animal,Food)2024/3/1214五、关系数据库模式一个关系数据库是多个关系的集合,这些具体关系构成了关系数据库的实例。由于每个关系都有一个模式,所以,构成该关系数据库的所有关系模式的集合构成了关系数据库模式。例3-4:将第二章课堂练习题1所涉及的数据库用关系模式表达大学实行学分制,学生可根据自己的情况选修课程。每名学生可同时选修多门课程,每门课程可被多名学生选修;每门课程可由多位老师讲授,每位老师可讲授多门课程;每位老师可指导多名学生。假设学生的属性有:学号、姓名、性别、出生日期教师的属性有:编号、姓名、性别、院系课程的属性有:课程号、课程名2024/3/1215E-R图:2024/3/1216关系模式:学生(学号,姓名,性别,出生日期,导师)教师(编号,姓名,性别,院系)课程(课程号,课程名)选修(学号,课程号,成绩)讲授(编号,课程号)2024/3/1217六、关系操作1、关系操作的基本内容关系操作包括数据查询、数据维护和数据控制三大功能。数据查询指数据检索、统计、排序、分组等功能;数据维护指数据增加、删除、修改等数据自身更新的功能;数据控制是为了保证数据的安全性和完整性而采用的数据存取控制及并发控制等功能。关系操作的数据查询和数据维护功能使用关系代数中的选择、投影、连接、除、并、交、差以及广义笛卡儿积8种操作。2024/3/12182、关系操作的特点关系操作语言操作一体化数据定义、查询、更新和控制一体化,既可以作为宿主语言嵌入到主语言中,又可以作为独立语言交互使用。关系操作的方式是一次一集合方式其他系统的操作是一次一记录方式,而关系操作的方式是一次一集合方式,即关系操作的初始数据、中间数据和结果数据都是集合。关系操作数据结构单一,能够使其利用集合运算和关系规范化等数学理论进行优化和处理操作。关系操作语言是高度非过程化的语言具有强大的表达能力。用户使用关系语言时,只需要指出做什么,而不需要指出怎么做,数据存取路径的选择、数据操作方法的选择和优化都由DBMS自动完成。2024/3/12193、关系操作语言的种类关系代数语言用对关系的运算来表达查询要求的语言。ISBL(InformationSystemBaseLanguage)为关系语言的代表。关系演算语言用查询得到的元组应满足的谓词条件来表达查询要求的语言。关系演算语言又可分为元组演算语言和域演算语言两种:元组演算语言的谓词变元的基本对象是元组变量,例如ALPHA语言;域演算语言的谓词变元的基本对象是域变量,QBE(QueryByExample)是典型的域演算语言。基于映象的语言具有关系代数和关系演算双重特点的语言。SQL是基于映象的语言。SQL包括数据定义、数据操作和数据控制三种功能,具有语言简洁,易学易用的特点,它是关系数据库的标准语言和主流语言。2024/3/12204、关系的完整性(1)关系模型的实体完整性(EntityIntegrity)若属性A是基本关系R的主属性,则属性A的值不能为空值。实体完整性能够保证实体的唯一性。实体完整性能够保证实体的可区分性。2024/3/1221(2)关系模型的参照完整性外码和参照关系设F是基本关系R的一个或一组属性,但不是关系R的主码(或候选码)。如果F与基本关系S的主码相对应,则称F是R的外码,R为参照关系(外码表),S为主码表。参照完整性规则若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须取空值(F的每个属性值均为空值)或者等于S中某个元组的主码值。2024/3/1222例3-5:将例3-4中关系模式的主、外码标注出来。学生(学号,姓名,性别,出生日期,导师)教师(编号,姓名,性别,院系)课程(课程号,课程名)选修(学号,课程号,成绩)讲授(编号,课程号)对于“学生”和“教师”关系,“教师”是主码表,编号在“教师”关系中是主码,“学生”是参照关系,导师在“学生”关系中是外码。对“学生”关系中的导师属性,或者取空值,或者取“教师”关系中已有的值。2024/3/1223(3)用户定义的完整性用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。2024/3/1224课堂练习1:将第二章“工厂物资管理”数据库用关系模式表达并标出各关系的主、外键2024/3/12252024/3/1226第二节关系代数关系代数是一种抽象的查询语言,是关系操纵语言的一种传统表达方式。关系代数的运算对象是关系,运算结果也为关系。关系代数中常用以下4类运算符:集合运算符:∪(并),—(差),∩(交),×(广义笛卡儿积)专门的关系运算符:∏(投影),σ(选择),(连接),

÷(除)算术比较符:

>(大于),≥(大于等于),<(小于),≤(小于等于),=(等于),≠(不等于)。逻辑运算符:﹁(非)、∧(与)和∨(或)。2024/3/1227一、集合的基本运算并关系R与S的并记为R∪S,并运算实际上是把两个关系的所有元组合并在一起,削去重复元组所得到的集合。记为:

Q=R∪S={t|t∈R或t∈S}如图所示:2024/3/1228

交关系R与S的交记作R∩S。它是由同时属于R和S的元组组成的集合。记为:

Q=R∩S={t|t∈R且t∈S}如图所示:2024/3/1229

差关系R与S的差记作R-S。它是由属于R而不属于S的所有元组组成的集合。记为:

Q=R-S={t|t∈R但t

S}如图所示:2024/3/1230

广义笛卡儿积两个分别为n度和m度的关系R和S的广义笛卡尔积是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有A1个元组,S有A2个元组,则关系R和关系S的广义笛卡尔积有Al×A2个元组。记为:

Q=R×S={t|t=trts,tr∈R且ts∈S}2024/3/1231例3-6:R∪S

ABCa1b1c1a1b2c2a2b2c1ABCa1b1c1a1b2c2a1b3c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR∪S

2024/3/1232c1b2a2c2b2a1c1b1a1CBAc1b2a2c2b2a1CBAc1b2a2c2b3a1c2b2a1CBARSR∩S

例3-7:R∩S

2024/3/1233c1b2a2c2b2a1c1b1a1CBAc1b1a1CBAc1b2a2c2b3a1c2b2a1CBARSR-S

例3-8:R-S

2024/3/1234例3-9广义笛卡尔积ABCa1b1c1a1b2c2a2b2c1ABCa1b2c2a1b3c2a2b2c1RSR×S

c1b1a1c1b1a1c1b2a2c1b2a2c2b2a1c1b2a2c1b1a1R.C

R.BR.Ac2b2a1c2b2a1c2b2a1c2b3a1c1b2a2c2b2a1c2b3a1c1b2a2c2b2a1S.CS.BS.Ac1b2a2c2b3a12024/3/1235二、专门的关系运算对于关系数据的检索操作,有些无法用传统的集合运算完成,需要引入一些新的运算,专门的关系运算包括选择、投影、连接、除等。

2024/3/12361、选择运算选择运算是对单个关系施加的运算,它是一种水平方向上的选择,其目的是在关系R上,把满足条件的元组抽出来构成新的关系,这个关系是原关系R上的一个子集。2024/3/1237记作:

σF(R)={t|t∈R

∧F(t)='真'}其中,F表示选择条件,它是一个逻辑表达式,取逻辑值‘真’或‘假’。逻辑表达式F的基本形式为:

X1θY1[ΦX2θY2]…θ表示比较运算符,它可以是>、≥、<、≤、=、≠中的一种。X1,Y1等是属性名或常量或简单函数。属性名也可以用它的序号来代替。Φ表示逻辑运算符,它可以是﹁(非)、∧(与)和∨(或)。2024/3/1238例:设有一个学生-课程关系数据库,包括学生关系S、课程关系C和选修关系SC。如表3-3所示。下面的例3-10~例3-13将对这三个关系进行运算。2024/3/1239例3-10:查询数学系学生的信息

σSD=‘数学系'(S)或

σ5=‘数学系'(S)结果如表3-4所示。2024/3/1240表3-4:查询数学系学生的信息结果

学号

S#姓名

SN性别

SS年龄

SA所在系

SD000102王博女19数学系020101李伟男19数学系2024/3/1241例3-11:查询年龄<20的学生的信息

σ年龄<20(S)或σ4

<20(S)结果如表3-5所示。2024/3/1242表3-5查询年龄<20的学生的信息结果

学号

S#姓名

SN性别

SS年龄

SA所在系

SD000101李晨男18信息系000102王博女19数学系010101刘思思女18信息系020101李伟男19数学系2024/3/12432、投影运算投影运算也是对单个关系施加的运算,它是一种垂直方向(即列的方向)上的运算。其基本思想是:从一个关系中选择所需要的属性,并重新排列组成一个新关系。因投影后属性个数要减少,故形成新的关系型,因此,应重新给这个关系命名。设R是k度关系,Ai1,Ai2,…,Aik分别是它的第i1,i2,…,ik个属性,则关系R在Ai1,Ai2,…,Aik上的投影是一个m度关系,记作∏Ai1,Ai2,…,Aim(R)(m<k)2024/3/1244说明:投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组,因为取消了某些属性列后,就可能出现重复行,应取消这些完全相同的行。2024/3/1245例3-12:查询学生的学号和姓名

S#,

SN(S)或∏

1,

2(S)结果如表3-6所示。2024/3/1246表3-6查询学生的学号和姓名结果学号

S#姓名

SN000101李晨000102王博010101刘思思010102王国美020101李伟2024/3/1247例3-13:查询学生所在系

即查询学生关系S在所在系属性上的投影。

SD(S)或

5(S)结果如表3-7所示。2024/3/1248表3-7查询结果所在系

SD信息系数学系物理系2024/3/12493、连接运算(1)条件连接条件连接是把两个关系中按照给定的条件以一切可能的组合方式拼接起来形成一个新的关系,称为条件连接(实际上,连接运算就是在两个关系的笛卡儿积上进行选择运算)。设A是关系R中的属性,B是关系S中的属性,θ∈{>、≥、<、≤、=、},关系R和S在条件AθB下的条件连接记作:RS={trts|tr

R∧ts

S∧tr[A]θts[B]}

AθB

且RS=σ

AθB(R×S)

AθB2024/3/1250(2)自然连接当两个关系R和S具有公共的属性名时,从关系R和S的笛卡儿积中筛选出其公共属性值相等的那些元组称为自然连接。自然连接和条件连接的区别是:自然连接可以自动地删除掉重复的属性名,而只保留一个公共属性名。自然连接运算的过程为:

1)计算R×S;2)选择同时出现在R与S中属性相等的元组;

3)去掉重复属性例3-142024/3/12514、除法运算设有关系R和S,R能被S除的条件有两个:一是R中的属性包含S中的属性;二是R中的有些属性不出现在S中。R除以S表示为R/S或R÷S。设T=R/S,它也是一个关系,叫做商。T的属性由R中那些不出现在S中的属性组成,其元组则是S中所有元组在R中对应值相同的那些元组值。2024/3/1252例3-15:

给出选课、选修课和必修课3个关系,它们的关系模式为:选课(学号,课号,成绩);选修课(课号,课名);必修课(课号,课名)。2024/3/1253选课学号课号成绩S1C1AS1C2BS1C3BS2C1AS2C3BS3C1BS3C3BS4C1AS4C2AS5C2BS5C3BS5C1A2024/3/1254课号课名C2计算机图形学课号课名C1数据结构C3操作系统选修课必修课2024/3/1255学号成绩S1BS4AS5B学号成绩S3B学号S1S2S3S5选课÷选修课

选课/必修课

∏学号,课号(选课)÷必修课

2024/3/1256以“选课÷选修课”为例说明运算结果:(1)“选课÷选修课”的意义是:在选课表中查找选择了选修表中给定的全部课(本例中只有C2一门课),且成绩一样的学生学号和成绩。(2)由于选课表和选修课表中有共同的属性“课号”,所以它们能够进行除法运算,否则将不能进行除法操作。(3)由于被除关系(选课)中的属性“学号”和“成绩”不出现在除关系(选修课)中,所以除法运算的结果表中仅包含学号和成绩两个属性。(4)除法操作执行的结果是求那些包含除关系(选修课)中“课号”的全部值的学号和成绩。参见例子2024/3/1257“选课÷必修课”的含义:表示求选择了必修课表中给定的全部课(“C1”和“C3”),且成绩一样的学生的学号和成绩。2024/3/1258∏学号,课号(选课)÷必修课的含义:表示“求学过必修课中规定的全部课程的学生学号”的查询要求,应先对被除关系(选课)投影,去掉不需要的属性(成绩),再做除法操作。2024/3/1259三、用关系代数检索的例子假设学

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论