关系数据库基本理论.ppt_第1页
关系数据库基本理论.ppt_第2页
关系数据库基本理论.ppt_第3页
关系数据库基本理论.ppt_第4页
关系数据库基本理论.ppt_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

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

文档简介

第2章 关系数据库基本理论,本章要点: 关系与模式、关系数据库与关系数据库模式、视图 关系的数学定义 关系代数 范式与关系的规范化,2.1 关系数据库的基本概念,2.1.1 关系与关系模式 在关系模型中,实体和实体之间的联系都由单一的数据结构关系来描述,关系型数据库是由一张或多张相关联的表(关系)组成。 对关系数据库中每一关系的结构的描述,称为该关系的关系模式,也就是一个关系的型。 元组是关系数据库中的基本概念,关系是一张表,表中的每行(即数据库中的每条记录)就是一个元组,每列就是一个属性。,一个关系的所有元组的值为其所属关系模式的一个值,一个关系模式可以取任意多个值(即包含任意条记录)。元组中的每个分量是其所对应的那个属性的值。 例如:给定一个关系名为R1,其属性为: A1,A2,AN,则关系模型可以表示为: R1( A1,A2,AN),例如:表RSDA关系模式RSDA(XM,XB,CSRQ,ZC),关系模式与关系的比较,关系 = 关系的型(结构) + 关系的值 关系模式是型,关系的值是模式的值 随着时间的变化,关系模式可能会发生变化。关系模式的值也是动态变化的。 关系模式与关系的区别: 关系模式描述了关系数据结构和语义,是关系的型; 关系是一个数据集合,是关系模式的一个关系实例,2.1.2 关系数据库与关系数据库模式,一个关系数据库的逻辑结构是所有关系模式(包括关系的名称、属性名称、关键字及可能提供的有关数据完整性约束及安全性控制要求)的集合,人们习惯称之为关系数据库模式。 关系数据库模式中所有的关系模式的具体关系的集合称之为关系数据库。 关系数据库 关系数据库模式(型) 关系数据库内容(值)。 关系数据库模式是数据“型”的表示,而关系数据库内容则是数据的“值”的表示。图示,教师信息表 JSGL(教师编号、姓名等),授课信息表KCGL(课号、课名等),2.1.3 视图,视图通常是由关系数据库模式的某个或某些关系中满足用户给定条件的若干属性列或元组组成,也可以是对若干个不同关系进行关系运算的结果,它反映的是局部逻辑结构,即能反映一个表或者若干个表的局部数据。 视图有自己的名字、属性和元组,可以把它看成一个特殊类型的表,可以对它查询、修改或者插入等,不过这种修改和插入操作最终要转换为对表的操作。 视图和表最主要的区别在于:表存放实际数据,而视图本身并不存放实际数据,它只是被定义成对应一个或多个表的部分数据。实际数据不依赖于视图而是依赖于表存放在数据库中,因此视图也称为“虚表”。,视图与表的关系示意图,视图可以定义在表或者视图之上,,视图与表的关系示意图,视图是一个可以更新的数据集合,通过视图的修改可以更新产生它的基表。,2.1.4 关键字,1超关键字 :在二维表中能够确定唯一一条记录的一个属性或几个属性的组合称为超关键字。可能多余。 2候选关键字 :如果一个超关键字去掉其中任何一个属性后不再能确定唯一一条记录,则称它为候选关键字。候选关键字包含的属性是最精炼的。 3主关键字:从候选关键字中选出一个做主关键字,每个记录不同于其他记录,不能为空。,4外部关键字:一张表的主关键字被包含在另外一张表(T2)中,称它为T2的外部关键字。 外部关键字可以用于多个关系表之间建立联系 5主属性和非主属性 :包含在任一候选关键字中的属性称主属性,不包含在任何候选关键字中的属性称非主属性。,2.2 关系的数学定义,2.2.1 一个日常生活中的关系 某小区有2男3女,男的记作集合M,女的记作集合W,即: M=赵和平, 李振华 W=李小丽, 张小琴, 王丽娅 若M集合和W集合存在着夫妻关系,则可能的夫妻关系如下: (赵和平,李小丽),(赵和平,张小琴),(赵和平,王丽娅),(李振华,李小丽),(李振华, 张小琴),(李振华,王丽娅) 在数学上把这种由两个或多个集合中的值的所有可能组合称“笛卡尔积”,本题的“笛卡尔积”可记为:MW。 笛卡尔积中的配对并不是实际夫妻关系,实际可能的夫妻关系最多只有2种,是笛卡儿积的子集,是一个实际“关系”。,2.2.2 关系的数学定义,1域 域(Domain)是值的集合。如:1到100之间的整数,男,女,Mary,Tom等都是域。域中元素的个数称为域的基数。例如: D1=王小平, 张亚, 李军,表示单位人员的集合; D2=教授,副教授,讲师,助教,表示职称的集合。 其中D1的基数是3,D2的基数是4。,2笛卡尔积 给定一组域D1 ,D2 ,Dn(这些域中可以有相同的域)则D1,D2,Dn的笛卡尔积为: D1D2Dn=(d1,d2 ,dn)|diDi,i=1,2,n 其中每一个元素=(d1,d2 ,dn)称为一个元组,元素中的每一个di称为分量。当n的值为1时称为单元组,当n的值为2时,称为二元组,以此类推。 若Di(i=1,2,n)的基数是mi,则笛卡尔积 D1D2Dn的基数M为:,3关系 D1D2Dn的子集称为在域D1D2Dn上的关系,记作: R(D1,D2,Dn) 其中:R为关系的名称,n为关系的度 关系是一个二维表,表中每行对应一个元组,表中每列对应一个域,列的名字称为属性。,【例】教师关系。有以下三个域:D1=张正义,姚小丽,教师姓名集合; D2=男,女,教师性别集合; D3=21,24,教师年龄集合。求D1D2 D3。,2.3 关系代数,数据库系统的目的就是利用计算机来维护各种有用的信息,并使之满足用户的需要,用户可以利用DBMS来操作数据库中的数据,这种操作包括增加、删除、修改与查询。(关系数据操作) 关系数据操作两个基本特点: 一次操作可以存取多个元组; 语言的非过程化。 关系代数是直接利用关系运算来表达操作目的 传统的集合运算:并、交、差、关系的笛卡儿积等运算 专门的关系运算:选择、投影、连接等运算,2.3.1 传统的集合运算,传统的集合运算是双目运算,运算在两个关系的行上进行。除了笛卡儿积外,参加运算的两个关系应具有相同的属性,且相应的属性都取自同一个域(称为并相容),运算结果是取自两个关系中若干个完整元组的集合。 1并运算(UNION) 关系R1和R2相并,产生新的关系R3,R3由全体属于R1或属于R2的元组组成,记做:R3=R1R2,REL1,REL2,REL3=REL1 REL2,REL3,去掉重复元组,2交运算(INTERSECTION) 交运算产生的新关系R3由同时属于R1和R2的所有元组组成。记做:R3=R1R2。 用于从两个关系中找出相同的元组,REL3=REL1REL2,REL3,3差运算(DIFFERENCE) 差运算产生的新关系R3由属于R1但不属于R2的所有元组组成。记做:R3=R1-R2。 用于从数据库中的某个关系中删除某些元组,REL3=REL1-REL2,REL3,4关系的笛卡尔积 设R1为M元(有M个属性)关系,R2为N元关系,R1和R2的笛卡儿积产生的新关系R3由R1与R2的所有元组连接而成的具有M+N个属性的元组组成。新的关系前M个属性是R1的一个元组,后N个属性是R2的一个元组,则称R3是关系R1和R2的笛卡儿积,记做:R3=R1R2。 笛卡儿积是双目运算,但是和交、并、差运算不同,不要求参加运算的两个关系是并相容的。,求:REL3=REL1 REL2,REL1,REL2,REL3=REL1 REL2,2.3.2 专门的关系运算,专门的关系运算包括: 1选择运算(SELECT) 2投影运算(PROJECTION) 3联接运算(JOIN) 与传统运算不同方面: 1、不是所有运算都在行上,有些在列上。 2、可以是单目也可以是双目运算。,1选择(SELECT)运算,1选择(SELECT)运算 选择运算是从某个给定的关系中选择满足限定条件的元组子集组成一个新的关系。其表现形式为: SELECT R WHERE F 其中:F是条件:由常量、变量、属性名、运算符(算术、关系、逻辑)组成的逻辑表达式;R是关系名。 选择运算还可以定义为: 其中:F是一个逻辑(布尔)表达式,其作用就是从关系R中选取满足条件的元组,t 表示元组。 表达式 F 使用的主要运算符有: (1)比较运算符:, , ,=, ; (2)逻辑运算符(非)、(与)和(或),选择运算举例,例题:在表 REL1 中找出所有讲师。,SELECT REL1 WHERE 职称“讲师”,2投影运算(PROJECTION) 投影运算是从R中选择出若干属性列A,并删除重复行,组成新的关系,记作: A(R)= t A | t R 其中:A为关系R的属性集上的一个子集, t A表示只取元组t中相应A属性中的分量。 特点: 单目运算,对一个关系进行运算, 从关系的垂直方向上(列的角度)取子集 ; 投影结果去掉重复的元组。,例 题:,列出下列关系R中所有编号和姓名:,教师编号,姓名(R),3联结运算(JOIN) 联结运算是从两个关系的笛卡尔积中选取属性间满足一定条件的元组,组成一个新的关系。可表示为: JOIN R1 AND R2 WHERE F 其中:R1,R2是关系名,F是条件表达式,联结运算例题,首先计算笛卡儿积?,16,假设有两个关系R1,R2,请写出“JOIN R1 AND R2 WHERE 工资奖金” 的执行结果?,按后按条件选取,常用的联结运算有: (1)内部联结(Inner Join) (2)自然联结运算(Natural join) (3)左外联结(Left outer join) (4)右外联结(Right outer join) (5)全外联结(Full outer join),(1)内部联结(Inner Join) 当联结条件中的运算符是“=”时,称为等值联结 若等值联结的联结属性是公共属性,且联结结果中不必消除重复属性时,称为内部联结。 步骤:按照同名属性进行等值联结; 在联结结果中不消除重复属性,内部联结例题,JOIN R1 AND R2 WHERE 学号学号,R1与R2的内部联结结果,(2)自然联结运算(Natural join) 同名等值联结 是一种特殊的等值联结;要求两个关系中进行比较的分量必须是相同的属性组(属性名相同),且同名属性上的属性值相等。 在运算结果中去掉重复的属性列(同属性只出现一次)。,自然联结运算例题,求解步骤: 求出R1与R2的笛卡尔积; 在笛卡尔积上找到R1学号与R2学号相同的记录; 去掉两个相同学号属性中的一个。,(3)左外联结(Left outer join),在联结的结果中,加上左边与联结条件不相匹配的元组,不匹配的元组右边的属性补空格。,(4)右外联结(Right outer join),在联结的结果中,加上右边与联结条件不相匹配的元组,不匹配的元组左边的属性补空格。,(5)全外联结(Full outer join),左联结与右联结的组合,2.4 关系的规范化,针对一个具体问题,选用不同的关系模式集合作为数据库模式,其性能的优劣是大不相同的。为了评价一个关系模式集合的优劣,常常使用范式(Normal Form)来描述。 可以把范式理解为符合某一级别标准的关系模式的集合。 目前提出的有第一到第五范式,只讨论第一到第三范式。 在关系数据库中,所有关系必须是规范化的,即至少是第一范式。,关系规范化概念,实际应用中的的关系模式通常比第一范式高,一个非规范化关系或低一级范式的关系模式,可以通过分解转换为若干个高一级范式的关系模式集合。这个过程称为规范化。 关系规范化的过程就是将一个非规范化关系或低级范式关系经过投影运算分解为多个高级范式关系的过程。 任何范式都可以通过分解达到3NF。 关系的分解不是唯一的,一个关系可以分解成好几组高级关系,但分解后得到的关系集合必须要和原来关系等价。,2.4.1 存储异常,一个系有若干学生,但一个学生只属于一个系;一个系只有一名负责人;一个学生可以选修多门课程,每门课程有若干学生选修;每个学生学习每一门课程有一个成绩。(学号SNO,系名SDEPT,系负责人MN,课程号CNO,成绩G)。设计如下单个关系模式:R(SNO, CNO, SDEPT, MN, G ,SNOSDEPT, SDEPTMN, SNOMN,(SNO,CNO)G ) 存在问题: 插入异常:一个系无学生或未安排课程时,无法存入系与负责人 删除异常:删除一个系的所有学生信息时,系与负责人也丢失 冗余太大:负责人姓名重复存入 更新异常:当某系负责人更换时,须更新该系所有学生信息中的信息,更新不完全时,易造成数据不一致,数据依赖存在一些不合适的性质,需寻找更好的模式,2.4.2 函数依赖的基本概念,关系规范化是围绕函数依赖进行的。在具体的关系中,函数依赖是刻画关系中各个属性之间相互制约而又相互依赖的关系。其中关键字最为重要,它决定了其它的属性值。 设R(U)是属性集U上的关系,X、Y是U的子集。若对于R(U)的任意一个可能的关系R,均有X的一个值对应于Y的惟一具体值,称为Y函数依赖于X,或称X函数决定Y ,记作XY。若进一步,有Y X,则X与Y相互依赖,记作XY,Y函数依赖于X:设X,Y是关系R的两个属性集合,当任何时刻R中的任意两个元组中的X属性值相同时,则它们的Y属性值也相同。,2.4.3 函数依赖分类,函数依赖根据其性质可分为: 1、完全函数依赖 2、部分函数依赖 3、传递函数依赖。,1、完全函数依赖 设R为任一给定关系,X,Y为其属性或属性组,若X Y,且对X中的任何真子集X都有 X Y, 则称Y完全函数依赖于X。记作:,2、部分函数依赖 设R为任一给定关系,X,Y为其属性或属性组若XY,且在X中存在一个真子集X ,满足 X Y,则称Y部分函数依赖于X。记作:,3、传递函数依赖 设R为任一给定关系,X,Y,Z为其不同属性子集,若XY,YZ,则称Z传递函数依赖于X。,例 题,关系模式 R (SNO, CNO, SDEPT, MN, G ,SNOSDEPT, SDEPTMN, SNOMN,(SNO,CNO)G ) 原因:数据依赖存在一些不合适的性质,需寻找更好的模式 S(SNO, SDEPT, SNOSDEPT ) SG(SNO, CNO, G, (SNO,CNO)G ) DEPT(SDEPT, MN, SDEPTMN ),2.4.4 关系规范化的过程,1第一范式 定义:关系R的所有属性都是不可再分的数据项,则该关系属于第一范式,记作R 1NF. 说明:1NF是关系模式的基本要求 举例: R(SNO, CNO, SDEPT, MN, G ,SNOSDEPT, SDEPTMN, SNOMN,(SNO,CNO)G ) 是1NF 主关键字是:,SNO,CNO,2第二范式,定义:任给关系R,若R1NF,且其所有非主属性都完全函数依赖于关键字,则R为第二范式,记作R2NF 。 说明:不存在非主属性部分依赖于主关键字的关系为2NF。关系模式R(SNO, CNO, SDEPT, MN, G ,SNOSDEPT, SDEPTMN, SNOMN,(SNO,CNO)G )是1NF,不满足2NF可能出现的问题,插入异常:某学生没有选课时,无法插入其系、系领导等信息 删除异常:某学生所有的选课信息都删除后,其系、系领导等信息也被删除 修改复杂(更新异常):学生转系时,除了修改其系名外,还需修改其系领导信息;另外,若该学生选修了多门课程,则其对应的重复存储的系、系领导等信息需一一修改 冗余:同系的所有学生的住处信息重复存储,同一学生选多门课程时,其系、系领导信息重复存储,分解说明,一个1NF,但非2NF的关系总是可以被分解成为一组2NF的关系 规范化过程中通过一组投影运算消除部分依赖。 已知关系R(A,B,C,D), (A,B)为主关键字,即 (A,B) C, (A,B) D,且A D, 则将R分解成为两个投影:R1(A,D), A为主关键字 R2(A,B,C), (A,B)为主关键字,A为R1外关键字 这样,R可以通过R1和R2的自然连接运算得以恢复,即满足分解的无损连接性,S-L(SNO, SDEPT, MN,SNOSDEPT,SNOMN,SDEPTMN),SC(SNO, CNO, G,(SNO,CNO)G),解决办法,模式分解 依赖关系分析,上例中的模式分解为下列两个模式 SC(SNO, CNO, G , (SNO, CNO)G) S-L(SNO, SDEPT, MN , SNO SDEPT, SNO MN, SDEPT MN ),3第三范式,定义:任给关系R,若R2NF,且它的每一个非主属性都不传递依赖于主关键字,则R属性第三范式,记作R3NF 说明:即不存在非主属性部分依赖和传递依赖于主关键字的关系为3NF 上例中得到的关系模式是2NF SC(SNO,CNO,G,(SNO,CNO)G) S-L(SNO,SDEPT,MN ,SNO SDEPT,SNOMN, SDEPTMN),不满足3NF可能存在的问题,插入异常:只有当知道某学生的系时才能插入其负责人信息 删除异常:当删除某系对应的所有学生时,有关该系学生住处的信息也被删除掉了 修改异常:一个系及其负责人信息重复出现,只更新一个元组中对应的系及其负责人时可能导致数据不一致 冗余:同系学生的负责人重复存储,S-L中存在传递传递依赖,故该模式不是3NF,分解说明,一个2NF,但非3NF的关系总是可以被分解成为一组3NF的关系 规范化过程中通过一组投影运算消除传递依赖,建议作如下分解 已知关系R(A,B,C), A为主码(AB, AC),且BC, 则将R分解成为两个投影: R1(B,C), B为主关键字 R2(A,B), A为主关键字,B为外关键字 这样,R可以通过R1和R2的自然连接运算得以恢复,分解满足分

温馨提示

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

评论

0/150

提交评论