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

下载本文档

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

文档简介

第二章 关系数据库,主讲教师:杨丽丽 E-mail: Tel:87091337(O),本章内容,2.1 关系数据结构及形式化定义 2.2 关系操作 2.3 关系的完整性 2.4 关系代数,2.1.1 关系,域:是一组具有相同数据类型的值的集合。 笛卡儿积:给定一组域D1、D2、Dn,这些域中可以有相同的。 D1、D2、Dn的笛卡尔积为: D1D2Dn =(d1,d2,dn)|diDi,i=1,2,n 其中每一个元素( d1,d2,dn )叫作一个n元组或简称元组 元素中的每一个值di叫作一个分量 D1D2Dn基数M为 M= 笛卡尔积可表示为一个二维表。表中的每行对应一个元组,表中的每列对应一个域。,2.1 关系数据结构及形式化定义,关系:D1D2Dn 的子集叫做在域 D1,D2,Dn上的关系(Relation) ,表示为: R(D1, D2 , Dn) R是关系名,n为关系的目。 关系是笛卡尔积的有限子集,所以关系也是一个二维表。 若关系中的某一个或多个属性的集合能唯一地标识一个元组,则称该属性或属性组为超码。 如果构成超码属性组的任意真子集都不能成为超码,这样的最小超码称为候选码。 若一个关系有多个候选码,则选定其中一个为主码。候选码的诸属性称为主属性。 不包含在任何候选码中的属性称为非主属性或非码属性。,2.1 关系数据结构及形式化定义,2.1.1 关系,D1=导师集合 = 张清玫,刘逸 D2=专业集合=计算机专业,信息专业 D3=研究生集合=李勇,刘晨,王敏 则D1,D2,D3的笛卡尔积为: D1D2D3 (张清玫,计算机专业,李勇),(张清玫,计算机专业,刘晨), (张清玫,计算机专业,王敏),(张清玫,信息专业,李勇), (张清玫,信息专业,刘晨),(张清玫,信息专业,王敏), (刘逸,计算机专业,李勇),(刘逸,计算机专业,刘晨), (刘逸,计算机专业,王敏),(刘逸,信息专业,李勇), (刘逸,信息专业,刘晨),(刘逸,信息专业,王敏) ,2.1 关系数据结构及形式化定义,2.1.1 关系,2.1 关系数据结构及形式化定义,2.1.1 关系,D1, D2, D3的笛卡尔积,在表2.1 的笛卡尔积中取出一个子集来构造关系 由于一个研究生只能师从于一个导师,学习某一个专业,所以笛卡尔积中的许多元组没有实际意义,从中取出有实际意义的元组来构造关系。 SAP(导师,专业,研究生) 假设:导师与专业:1:1,导师与研究生:1:n,于是SAP关系包含符合实际情况的三个元组 (张清玫,信息专业,李勇), (张清玫,信息专业,刘晨), (刘 逸,信息专业,王敏) ,2.1 关系数据结构及形式化定义,2.1.1 关系,假设研究生不会重名,则研究生属性的每一个值都唯一地标识了一个元组,因此可以作为SAP关系的主码。,2.1 关系数据结构及形式化定义,关系可以有三种类型: 基本关系(基本表或基表) 实际存在的表,是实际存储数据的逻辑表示 查询表 查询结果对应的表 视图表 由基本表或其他视图表导出的表,是虚表,不对 应实际存储的数据,2.1 关系数据结构及形式化定义,2.1.1 关系,基本关系具有的性质 列是同质的,每一列中的分量是同一类型的数据,来自同一个域。 不同的列可出自同一个域,其中的每一列称为一个属性,不同的属性要给予不同的属性名。 列的顺序无所谓,列的次序可以任意交换。 任意两个元组的候选码不能相同。 行的顺序无所谓,行的次序可以任意交换。 分量必须取原子值,每一个分量都必须是不可分的数据项。,2.1 关系数据结构及形式化定义,2.1.1 关系,关系与二维表的对应,2.1 关系数据结构及形式化定义,2.1.2 关系模式,关系模式是对关系的描述。 关系是元组的集合,因此关系模式必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系。 现实世界的许多已有事实限定了关系模式所有可能的关系必须满足一定的完整性约束。 这些约束或者通过对属性取值范围的限定,或者通过属性值间的相互关连反映出来。关系模式应当刻划出这些完整性约束条件。 因此一个关系模式应当是一个5元组。,2.1 关系数据结构及形式化定义,定义:关系的描述称为关系模式。它可以形式化地表示为: R(U,D,dom,F) 其中R为关系名,U为组成该关系的属性名集合,D为属性组U中属性所来自的域,dom为属性向域的映象集合,F为属性间数据的依赖关系集合。 关系模式简记为 R(U)或R(A1,A2,An) 其中R为关系名, A1,A2,An为属性名。而域名及属性向域的映象常常直接说明为属性的类型、长度。,2.1.2 关系模式,2.1 关系数据结构及形式化定义,关系模式与关系 关系模式是型,关系是值。 关系是关系模式在某一时刻的状态或内容。 关系模式是静态的、稳定的。 关系是动态的、随时间变化的。,2.1.2 关系模式,2.1 关系数据结构及形式化定义,2.2 关系操作,2.2.1 基本的关系操作 查询 选择、投影、连接、除、并、交、差、笛卡尔积等 数据更新 插入、删除、修改 查询的表达能力是其中最主要的部分,2.2.1 基本的关系操作,关系操作的特点 集合操作方式,即操作的对象和结果都是集合,一次一集合。 相应地,非关系数据模型的数据操作方式:一次一记录。,2.2 关系操作,2.2.2 关系数据语言的种类,关系代数语言 用对关系的运算来表达查询要求 典型代表:IBM-实验性系统ISBL 关系演算语言:用谓词来表达查询要求 元组关系演算语言 谓词变元的基本对象是元组变量 典型代表:APLHA, QUEL 域关系演算语言 谓词变元的基本对象是域变量 典型代表:QBE 具有关系代数和关系演算双重特点的语言 典型代表:SQL,2.2 关系操作,2.3 关系的完整性,关系模型的完整性规则是对关系的某种约束条件。 关系模型中三类完整性约束: 实体完整性 参照完整性 用户定义的完整性 实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性,应该由关系系统自动支持。,2.3.1 实体完整性,实体完整性规则:若属性A是基本关系R的主属性,则属性A不能取空值。 例:SAP(导师,专业,研究生) “研究生”属性为主码(假设研究生不会重名),则该属性不能取空值 选修(学号,课程号,成绩) “学号、课程号”为主码,则两个属性都不能取空值。 注意:实体完整性规则规定基本关系的所有主属性都不能取空值,2.3 关系的完整性,不是西北农林科技大学的学生,能选课吗? 学校没有开设的课程,学生能选吗?,课程,学生,选 课,被 选,2.3.2 参照完整性,2.3 关系的完整性,学生,课程,选 修,2.3 关系的完整性,要求1:选课的学生是在校的学生 要求2:学生选的课程是学校开设的课程,这些现实要求在数据库中如何实现呢?,2.3 关系的完整性,学生表,课程表,选课表,2.3 关系的完整性,外码:设F是基本关系R的一个或一组属性,但不是关系R的主码。如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码。,S(Ks,C,D),R(A,B,F),参照关系,被参照关系,参照,2.3 关系的完整性,外码,学生表,课程表,选课表,2.3 关系的完整性,参照完整性规则:若属性F是基本关系R的外码,它与基本关系S的主码Ks相对应,则对于R中每个元组在F上的值必须为: 或者取空值 或者等于S中某个元组的主码值,2.3 关系的完整性,学生表,课程表,选课表,2.3 关系的完整性,2.3.3 用户定义的完整性,用户定义的完整性是针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求。 例:选修(学号,课程号,成绩) 成绩的取值范围在0100之间 关系模型应提供定义和检验这类完整性的机制,以便用统一的系统的方法处理它们,而不要由应用程序承担这一功能。,2.3 关系的完整性,2.4 关系代数,1关系代数 一种抽象的查询语言 用对关系的运算来表达查询 2关系代数运算的三个要素 运算对象:关系 运算结果:关系 运算符:四类,2.4 关系代数,3关系运算符 集合运算符( ) 将关系看成元组的集合 运算是从关系的“水平”方向即行的角度来进行 专门的关系运算符( ) 不仅涉及行而且涉及列 比较运算符( ) 辅助专门的关系运算符进行操作 逻辑运算符( ) 辅助专门的关系运算符进行操作,2.4 关系代数,4关系代数运算的分类 传统的集合运算 并、差、交、广义笛卡尔积 专门的关系运算 选择、投影、连接、除,2.4.1 传统的集合运算,并 差 交 广义笛卡尔积,2.4 关系代数,1. 并、差、交,R和S满足的条件 具有相同的目n(即两个关系都有n个属性) 相应的属性取自同一个域 RS 仍为n目关系,由属于R或属于S的元组组成 RS = t|t R t S R - S 仍为n目关系,由属于R而不属于S的所有元组组成 R -S = t|tRtS RS 仍为n目关系,由既属于R又属于S的元组组成 RS = t|t Rt S RS = R (R-S),2.4 关系代数,R,S,RS,2.4 关系代数,并、交、差举例,R,S,R S,2.4 关系代数,并、交、差举例,R,S,R - S,2.4 关系代数,并、交、差举例,2.广义笛卡尔积,R:n目关系,k1个元组 S:m目关系,k2个元组 RS 列:(n+m)列的元组的集合 元组的前n列是关系R的一个元组 后m列是关系S的一个元组 行:k1k2个元组 RS = trts | trR tsS ,2.4 关系代数,R,S,R S,2.4 关系代数,广义笛卡尔积举例,2.4.2 专门的关系运算,选择 投影 连接 除,2.4 关系代数,选择操作是在关系R中选择满足给定条件的诸元组,其表示形式为: F(R)=t|tR F(t)=真 F:选择条件,是一个关系表达式,基本形式为: X1Y1 其中: :运算符(,或) X1,Y1等:属性名、常量、简单函数;属性名也可以用它的序号来代替 在基本的选择条件上可以进一步进行逻辑运算,即进行求与()、或() 、非( ),2.4.2 专门的关系运算:选择,2.4 关系代数,三个关系 Student(Sno,Sname,Ssex,Sage,Sdept) Course(Cno,Cname,Cpno,Ccredit) SC(Sno,Cno,Grade),2.4.2 专门的关系运算:选择,2.4 关系代数,Student,2.4.2 专门的关系运算:选择,2.4 关系代数,Course,2.4.2 专门的关系运算:选择,2.4 关系代数,SC,2.4.2 专门的关系运算:选择,2.4 关系代数,例1 查询植保学院(植保)全体学生 Sdept = 植保 (Student) 或 5 =植保 (Student) 结果:,2.4.2 专门的关系运算:选择,2.4 关系代数,例2 查询年龄小于20岁的男同学的信息 Sage 20Ssex=男(Student) 或 4 20 2=男(Student) 结果:,2.4.2 专门的关系运算:选择,2.4 关系代数,投影运算符的含义 从R中选择出若干属性列组成新的关系 记作: A(R) = tA | t R 其中A为R中的属性列,2.4.2 专门的关系运算:投影,2.4 关系代数,投影操作主要是从列的角度进行运算 投影之后不仅取消了原关系中的某些列,而且还可能取消某些元组(避免重复行),2.4.2 专门的关系运算:投影,2.4 关系代数,例: 1.查询学生的姓名和所在学院。 2.查询学生关系中都有哪些学院。 3.查询所有女同学的学号和姓名。,2.4.2 专门的关系运算:选择,2.4 关系代数,连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组。 R S = | tr Rts StrAtsB A和B:分别为R和S上度数相等且可比的属性组 :比较运算符 连接运算从R和S的广义笛卡尔积RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。,2.4.2 专门的关系运算:连接,2.4 关系代数,例5,R,S,2.4.2 专门的关系运算:连接,2.4 关系代数,R S,2.4.2 专门的关系运算:连接,2.4 关系代数,等值连接: 什么是等值连接 为“”的连接运算称为等值连接 等值连接的含义 从关系R与S的广义笛卡尔积中选取A、B属性值相等的那些元组,即等值连接为: R S = | tr Rts StrA = tsB ,A=B,2.4.2 专门的关系运算:选择,2.4 关系代数,例6,R,S,2.4.2 专门的关系运算:选择,2.4 关系代数,等值连接 R S,2.4.2 专门的关系运算:连接,2.4 关系代数,自然连接(Natural join) 什么是自然连接 自然连接是在等值连接的基础上做操作 两个关系中进行比较的分量必须是相同的属性组 在结果中把重复的属性列去掉 自然连接的含义 R和S具有相同的属性组B R S = | tr Rts StrB = tsB ,2.4.2 专门的关系运算:连接,2.4 关系代数,例7,R,S,2.4.2 专门的关系运算:连接,2.4 关系代数,自然连接 R S,2.4.2 专门的关系运算:连接,2.4 关系代数,例8 查询课程成绩在90分以上的学生姓名和所在学院,S,SC,2.4.2 专门的关系运算:连接,2.4 关系代数,2.4.2 专门的关系运算:连接,2.4 关系代数,悬浮元组:在做自然连接时被舍弃的元组称为悬浮元组。 外连接:如果把悬浮元组也保存在结果关系中,而在其它属性上填空值,那么这种连接就叫做外连接(outer join)。 左外连:如果只保留左边关系R中的悬浮元组就叫做左外连(left outer join) 右外连:如果只保留右边关系S中的悬浮元组就叫做右外连(right outer join),2.4.2 专门的关系运算:连接,2.4 关系代数,R,S,R S,2.4.2 专门的关系运算:连接,2.4 关系代数,外连接,2.4.2 专门的关系运算:连接,2.4 关系代数,左外连接,右外连接,2.4.2 专门的关系运算:连接,2.4 关系代数,象集的概念 给定一个关系R(X,Z),X和Z为属性组。当tX=x时,x在R中的象集(Images Set)为: Zx=tZ|t R,tX=x 它表示R中属性组X上值为x的诸元组在Z上分量的集合。,2.4.2 专门的关系运算:除,2.4 关系代数,例:,在关系SC中

温馨提示

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

评论

0/150

提交评论