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

下载本文档

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

文档简介

1、机械工业出版社 4.1 关系模型及其定义4.1.1 关系数据结构4.1.2 关系操作概述 4.1.3 关系的完整性 4.2 关系代数 4.2.1 传统的集合运算 4.2.2 专门的关系运算 4.2.3 用关系代数表示检索的例子 本章教学目标:使学生了解关系数据结构、关系操作、关系完整性,掌握关系代数的传统集合运算和专门关系运算的操作。学会用关系代数表示检索。教学重点:关系数据结构、关系操作和关系完整性,传统集合运算和专门关系运算。 教学难点:除法运算,用关系代数表示检索。 4.1.1 关系数据结构关系数据结构1. 关系的数学定义关系的数学定义1) 域的定义:域是一组具有相同数据类型的值的集合。

2、域的定义:域是一组具有相同数据类型的值的集合。2) 笛卡儿积(笛卡儿积(Cartesian Product)的定义:给定一组域)的定义:给定一组域D1,D2,Dn,这些域中可以有相同的部分,则,这些域中可以有相同的部分,则笛卡儿积为:笛卡儿积为: D1D2Dn =(d1,d2,dn)di Di,i1,2,n.其中:每一个元素(d1,d2,dn )称为一个n元组,简称元组。元素中的每一个值di称作一个分量)。 例如给出三个域:例如给出三个域: D1 = 姓名 = 王平,李丽,张晓刚; D2 = 性别 = 男,女; D3 = 年龄 = 19,20.则则D1,D2,D3的笛卡儿积为的笛卡儿积为D1D

3、2D3 姓名性别年龄王平男19王平男20王平女19王平女20李丽男19李丽男20李丽女19李丽女20张晓刚男19张晓刚男20张晓刚女19张晓刚女201. 关系的数学定义关系的数学定义3) 关系(关系(Relation)的定义:)的定义:D1 D2 Dn的子的子集称作在域集称作在域D1,D2,Dn上的关系,表示为:上的关系,表示为: R(D1,D2,Dn).这里:R表示关系的名字,n是关系的目或度。从D1D2D3中取出有用的元组,所构造的学生关系如表所示姓名姓名性别性别年龄年龄王平王平男男20李丽李丽女女20张晓刚张晓刚男男19 1) 元组:关系表中的每一横行称作一个元组,组成元组:关系表中的每

4、一横行称作一个元组,组成元组的元素为分量。元组的元素为分量。2) 属性:关系中的每一列称为一个属性。属性:关系中的每一列称为一个属性。3) 候选码、主码、全码:若关系的候选码中只包含候选码、主码、全码:若关系的候选码中只包含一个属性,则称它为单属性码;若候选码是由多个一个属性,则称它为单属性码;若候选码是由多个属性构成的,则称为它为多属性码。若关系中只有属性构成的,则称为它为多属性码。若关系中只有一个候选码,且这个候选码中包括全部属性,则这一个候选码,且这个候选码中包括全部属性,则这种候选码为全码。种候选码为全码。4) 主属性和非主属性:关系中,候选码中的属性称主属性和非主属性:关系中,候选码

5、中的属性称为主属性,不包含在任何候选码中的属性称为非主为主属性,不包含在任何候选码中的属性称为非主属性。属性。 3. 数据库中关系的类型 1) 基本表:关系数据库中实际存在的表,是实际存储数据的逻辑表示。2) 视图表:视图表是由基本表或其他视图表导出的表。3) 查询表:查询表是指查询结果表或查询中生成的临时表。4. 数据库中基本关系的性质1) 同一属性的数据具有同质性。2) 同一关系的属性名具有不能重复性。3) 关系中的列位置具有顺序无关性。4) 关系具有元组无冗余性。5) 关系中的元组位置具有顺序无关性。6) 关系中每一个分量都必须是不可分的数据项。 5. 关系模式的定义关系模式的定义形式化

6、地表示为:R(U,D,Dom,F)其中:R为关系名,它是关系的形式化表示;U为组成该关系的属性集合;D为属性组U中属性所来自的域;Dom为属性向域的映象的集合;F为属性间数据的依赖关系集合。关系模式通常可以简单记为:R(U)或 R(A1,A2,An).其中:R为关系名,A1,A2,An为属性名。6. 关系数据库关系数据库在某一应用领域中,所有实体集及实体之间联系所形成关系的集合就构成了一个关系数据库。1. 关系操作的基本内容关系操作的基本内容 关系操作包括数据查询、数据维护和数据控制三大功能:数据查询指数据检索、统计、排序、分组以及用户对信息的需求等功能;数据维护指数据增加、删除、修改等数据自

7、身更新的功能;数据控制是为了保证数据的安全性和完整性而采用的数据存取控制及并发控制等功能。 关系操作的数据查询和数据维护功能使用关系代数中的选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)以及广义笛卡儿积( Extended Cartesian Product)8种操作。 2. 2. 关系操作的特点关系操作的特点(1)关系操作语言操作一体化关系操作语言操作一体化 具有数据定义、查询、更新和控制一体化的特点,既可具有数据定义、查询、更新和控制一体化的特点,既可以作为宿主语言嵌入到主语言

8、中,又可以作为独立语言交互以作为宿主语言嵌入到主语言中,又可以作为独立语言交互使用。使用。(2) 关系操作的方式是一次一集合方式关系操作的方式是一次一集合方式 其他系统的操作是一次一记录方式,而关系操作的方式其他系统的操作是一次一记录方式,而关系操作的方式则是一次一集合方式。关系操作数据结构单一的特点,能够则是一次一集合方式。关系操作数据结构单一的特点,能够使其利用集合运算和关系规范化等数学理论进行优化和处理使其利用集合运算和关系规范化等数学理论进行优化和处理操作,但关系操作与其他系统配合时需要解决处理方式的矛操作,但关系操作与其他系统配合时需要解决处理方式的矛盾。盾。(3) 关系操作语言是高

9、度非过程化的语言关系操作语言是高度非过程化的语言 具有强大的表达能力。用户使用关系语言时,只需要指具有强大的表达能力。用户使用关系语言时,只需要指出做什么,而不需要指出怎么做,数据存取路径的选择、数出做什么,而不需要指出怎么做,数据存取路径的选择、数据操作方法的选择和优化都由据操作方法的选择和优化都由DBMS自动完成。自动完成。 3. 3. 关系操作语言的种类关系操作语言的种类(1) 关系代数语言关系代数语言 用对关系的运算来表达查询要求的语言。用对关系的运算来表达查询要求的语言。(2) 关系演算语言关系演算语言 用查询得到的元组应满足的谓词条件来表达查询要求的语用查询得到的元组应满足的谓词条

10、件来表达查询要求的语言。关系演算语言又可以分为元组演算语言和域演算语言两种:言。关系演算语言又可以分为元组演算语言和域演算语言两种:元组演算语言的谓词变元的基本对象是元组变量,例如元组演算语言的谓词变元的基本对象是元组变量,例如APLHA语言;域演算语言的谓词变元的基本对象是域变量,语言;域演算语言的谓词变元的基本对象是域变量,QBE(Query By Example)是典型的域演算语言。)是典型的域演算语言。(3) 基于映象的语言基于映象的语言 具有关系代数和关系演算双重特点的语言。具有关系代数和关系演算双重特点的语言。SQL是基于映是基于映象的语言。象的语言。SQL包括数据定义、数据操作和

11、数据控制三种功能,包括数据定义、数据操作和数据控制三种功能,具有语言简洁,易学易用的特点,它是关系数据库的标准语言具有语言简洁,易学易用的特点,它是关系数据库的标准语言和主流语言。和主流语言。为了维护数据库中数据与现实世界的为了维护数据库中数据与现实世界的一致性,在关系模型中加入完整性一致性,在关系模型中加入完整性规则,其中可以有三类完整性约束:规则,其中可以有三类完整性约束:实体完整性约束、参照完整性约束实体完整性约束、参照完整性约束和用户定义完整性约束。其中实体和用户定义完整性约束。其中实体完整性和参照完整性是关系模型必完整性和参照完整性是关系模型必须满足的约束条件,由关系系统自须满足的约

12、束条件,由关系系统自动支持。动支持。1. 关系模型的实体完整性(关系模型的实体完整性(Entity Integrity) 若属性A是基本关系R的主属性,则属性A的值不能为空值。说明如下:1) 实体完整性能够保证实体的唯一性。实体完整性能够保证实体的唯一性。2) 实体完整性能够保证实体的可区分性。实体完整性能够保证实体的可区分性。2. 关系模型的参照完整性关系模型的参照完整性1) 外码和参照关系外码和参照关系 设F是基本关系R的一个或一组属性,但不是关系R的主码(或候选码)。如果F与基本关系S的主码相对应,则称F是R的外码,并称R为参照关系,S为被参照关系或目标关系。例如,“基层单位数据库”中有

13、“职工”和“部门”两个关系,其关系模式如下: 职工(职工号,姓名,工资,性别,部门号); 部门(部门号,名称,领导人号).再例,在学生课程库中,关系模式表示为: 学生(学号,姓名,性别,专业号,年龄); 课程(课程号,课程名,学分); 选修(学号,课程号,成绩).其中:主码用下划线标出。2) 参照完整性规则参照完整性规则 若属性(或属性组)若属性(或属性组)F F是基本关系是基本关系R R的外码,它的外码,它与基本关系与基本关系S S的主码的主码K Ks s相对应(基本关系相对应(基本关系R R和和S S不一定不一定是不同的关系),则对于是不同的关系),则对于R R中每个元组在中每个元组在F

14、F上的值必须上的值必须取空值(取空值(F F的每个属性值均为空值)或者等于的每个属性值均为空值)或者等于S S中某个中某个元组的主码值元组的主码值。这条规则要求这条规则要求“不引用不存在的实体不引用不存在的实体”,考虑的是不,考虑的是不同关系之间或同一关系的不同元组之间的制约。同关系之间或同一关系的不同元组之间的制约。 3 用户定义的完整性。用户定义的完整性。 用户定义的完整性就是针对某一具体关系数用户定义的完整性就是针对某一具体关系数据库的约束条件,它反映某一具体应用所涉及的据库的约束条件,它反映某一具体应用所涉及的数据必须满足的语义要求。数据必须满足的语义要求。1) 集合运算符:集合运算符

15、:(并运算),(差运算),(并运算),(差运算),(交运算),(交运算),(广义笛卡儿积)。(广义笛卡儿积)。2) 专门的关系运算符:专门的关系运算符:(选择),(选择),(投影),(投影),(连接),(连接),(除)。(除)。3) 比较运算符:(大于),比较运算符:(大于),(大于等于),(大于等于),(小于),(小于),(小于等于),(等于),(小于等于),(等于),(不(不等于)。等于)。4) 逻辑运算符:逻辑运算符: (非),(非),(与),(与),(或)。(或)。 设关系R和S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域。1. 并(并(Union)运算)运算 R

16、S=t| t R t S. R和S并的结果仍为n目关系,其数据由属于R或属于S的元组组成。2. 差(差(Difference)运算)运算 R S = t | t R t S. R和S差运算的结果关系仍为n目关系,其数据由属于R而不属于S的所有元组组成。 ABC ABC ABCa1b1c1a1b2c2a1b1c1a1b2c2a1b3c2a1b2c2a2b2c1 a2b2c1 a1b3c2ABC R.AR.BR.CS.AS.BS.Ca1b1C1a1b1c1a1b2c2a2b2C1a1b1c1a1b3c2 RSa1b2c2a1b2c2a1b2c2a1b3c2ABCa2b2c1a1b2c2a1b2C2

17、a2b2c1a1b3c2R S RS RS RS 3. 3. 交(交(IntersectionIntersection)运算)运算 RS = t | tR t S . 运算的结果关系仍为n目关系,其数据由既属于R同时又属于S的元组组成。交可用差来表示: RS = R(RS) .4. 4. 笛卡儿积运算笛卡儿积运算 设n目和m目的关系R和S,它们的笛卡儿积是一个(n+m)目的元组集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡儿积应当有k1k2个元组。R和S的笛卡儿积表示为: RS = tr ts | tr R ts S

18、 . ABC ABC ABCa1b1c1a1b2c2a1b1c1a1b2c2a1b3c2a1b2c2a2b2c1 a2b2c1 a1b3c2ABC R.AR.BR.CS.AS.BS.Ca1b1C1a1b1c1a1b2c2a2b2C1a1b1c1a1b3c2 RSa1b2c2a1b2c2a1b2c2a1b3c2ABCa2b2c1a1b2c2a1b2C2a2b2c1a1b3c2R S RS RS RS 1. 记号说明记号说明(1) 关系模式、关系、元组和分量关系模式、关系、元组和分量 设关系模式为设关系模式为R(A1,A2,An),它的一个),它的一个关系设为关系设为R,t R表示表示t是是R的一

19、个元组,的一个元组,t Ai则表则表示元组示元组t中相对于属性中相对于属性Ai的一个分量。的一个分量。(2) 域列和域列非域列和域列非 若若A = A i1,A i2,A ik,其中,其中A i1,A i2,A ik是是A1,A2,An中的一部分,则中的一部分,则A称为属性列称为属性列或域列,或域列,t A = t Ai1,t A i2,t A ik 表示表示元组元组t在属性列在属性列A上诸分量的集合。上诸分量的集合。A则表示则表示 A1,A2 , , An 中去掉中去掉 A i1,A i2,A ik后剩余的后剩余的属性组,它称为属性组,它称为A的域列非。的域列非。(3) 元组连串(元组连串(

20、Concatenation) 设R为n目关系,S为m目关系,且tr R,tSS,则tr tS 称为元组的连串。连串是一个(n+m)列的元组,它的前n个分量是R中的一个n元组,后m个分量为S中的一个m元组。(4) 属性的象集(属性的象集(Images Set) 给定一个关系R(X,Z),X和Z为属性组。定义当t X=x时,x在R中的象集为: Zx = t Z | t R,t X = x . 上式表示,x在R中的象集为R中Z属性对应分量的集合,而这些分量所对应的元组中的属性组X上的值应为x。2. 2. 专门关系运算的定义专门关系运算的定义(1) 选择(选择(Selection)运算)运算选择运算又

21、称为限制运算。选择运算指在关系R中选择满足给定条件的元组,记作: F(R)= t | t R F(t)= 真真 .其中:F表示选择条件,是一个逻辑表达式,取值为“真”或“假”。F由逻辑运算符(非)、(与)和(或)连接各条件表达式组成。 条件表达式的基本形式为:条件表达式的基本形式为:X1Y1.其中:是比较运算符,它可以是、中的一种;X1和Y1是属性名、常量或简单函数;属性名也可以用它的序号来代替。 用关系代数表示下列操作 设学生课程数据库,其关系模式为: 学生(学生,姓名,年龄,所在系); 课程(课程号,课程名,学分); 选课(学号,课程号,成绩).【例4-1】用关系代数表示在学生课程数据库中

22、查询计算机系的全体学生的操作。 所在系= 计算机系 (学生)【例4-2】用关系代数表示在学生课程数据库中查询年龄小于20岁的学生的操作。 年龄20(学生)(2) 投影投影(Projection)运算运算 关系R上的投影是从R中选择出若干属性列组成新的关系,记作: A(R)= t A | t R .【例4-3】在学生课程数据库中,查询学生的姓名和所在系。表示为: 姓名,所在系(学生)(3) 连接运算连接运算(Join)连接是从两个关系的笛卡儿积中选取属性间满足一定条件的元组。记作:R S=tr ts| trR tsS tr Ats B. AB其中:A和B分别为R和S上度数相等且可比的属性组,是比

23、较运算符。等值连接表示为: R S=tr ts| trR tsS tr A=ts B. A =B 自然连接是一种特殊的等值连接: R S=tr ts| trR tsS tr A=ts B 【例4-4】设学生和选课关系中的数据如下,学生与选课之间的笛卡儿积、等值连接和自然连接的结果如表所示。 学号姓名年龄所在系 学号课程名成绩98001张三20计算机系98001数据库6298005李四21数学系98001数据结构73 98005微积分80学生.学号姓名年龄所在系选课.学号课名成绩980019800198001980059800598005张三张三张三李四李四李四202020212121计算机系计

24、算机系计算机系数学系数学系数学系980019800198005980019800198005数据库数据结构微积分数据库数据结构微积分627380627380学生 选课 学生选课 学生.学号姓名年龄所在系选课.学号课名成绩980019800198005张三张三李四202021计算机系计算机系数学系980019800198005数据库数据结构微积分627380学生.学号姓名年龄所在系课名成绩980019800198005张三张三李四202021计算机系计算机系数学系数据库数据结构微积分627380学生 选课 学生.学号=选课.学号 学生 选课 (4) 除(除(Division)运算)运算 给定关系

25、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上的投影,即: RS=tr X| t r R Y(S) Yx. 其中的Yx为x在R中的象集,x = trX。关系除法运算分下面4步进行:1) 将被除关系的属性分为象集属性和结果属性:与除关系相将被除关系的属性分为象集属性和结果属性:与除关系相同的属性属于象集属性,不相同的属性属于结果属性。同的属性属于象集属性,不相同的属性属于结果属性。2) 在除关系中,对与

26、被除关系相同的属性(象集属性)进行在除关系中,对与被除关系相同的属性(象集属性)进行投影,得到除目标数据集。投影,得到除目标数据集。3) 将被除关系分组,原则是,结果属性值一样的元组分为一将被除关系分组,原则是,结果属性值一样的元组分为一组。组。4) 逐一考察每个组,如果它的象集属性值中包括除目标数据逐一考察每个组,如果它的象集属性值中包括除目标数据集,则对应的结果属性值应属于该除法运算结果集。集,则对应的结果属性值应属于该除法运算结果集。【例4-5】给出选课、选修课和必修课3个关系,它们的关系模式为: 选课(学号,课号,成绩);选修课(课号,课名);必修课(课号,课名). 学号学号课号课号成绩成绩 课号课号课名课名S1C1AC2计算机图计算机图形学形学S1C2B必修课必修课

温馨提示

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

评论

0/150

提交评论