第2章关系数据库的基本理论精选PPT.ppt

上传人:石*** 文档编号:87642910 上传时间:2023-04-16 格式:PPT 页数:46 大小:2.46MB
返回 下载 相关 举报
第2章关系数据库的基本理论精选PPT.ppt_第1页
第1页 / 共46页
第2章关系数据库的基本理论精选PPT.ppt_第2页
第2页 / 共46页
点击查看更多>>
资源描述

《第2章关系数据库的基本理论精选PPT.ppt》由会员分享,可在线阅读,更多相关《第2章关系数据库的基本理论精选PPT.ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第2章关系数据库的基本理论第1页,此课件共46页哦2.1关系模型概述 关系模型是关系数据库的基础。关系模型有三个组成部分:数据结构、数据操作、完整性规则。(1)数据库中全部数据及其相互联系都被组织成关系(即二维表格)的形式。关系模型的基本的数据结构是关系。(2)关系模型提供一组完备的高级关系运算,以支持对数据库存量的各种操作。(3)关系模型的三类完整性规则。2.1.1 关系数据结构 关系模型的结构非常简单,在用户看来,一个关系模型的逻辑结构是一张二维表,它由行和列组成。表2.1是一张职工工资基本信息表,它是一张二维表格。第2页,此课件共46页哦表2.1职工基本信息2.1.2 关系操作 关系模型

2、中常用的关系操作有两类,一类是查询操作,包括选择(Select)、投影(Project)、连接(Join)、除(Divide)、并(Union)、交(Intersection)、差(Difference)等;另一类是更新操作,是对数据库中的数据作增添新记录,删除和作废错误记录,修改变化了的记录等数据维护操作,简称为增、删、改操作。表达(或描述)关系操作的关系数据语言可以分为三类:第3页,此课件共46页哦(1)关系代数语言(简称关系代数)关系代数是用对关系的运算来表达查询要求的方式,如ISBL(Information System Base Language)语言。(2)关系演算语言(简称关系演

3、算)关系演算是用谓词来表达查询要求的方式。关系演算又可按谓词变元的基本对象是元组变量还是域变量分为元组关系演算和域关系演算。元组演算语言的典型代表是QUEL语言,域关系演算语言的典型代表是QBE(Query By Example)语言。关系代数、元组关系演算和域关系演算三种语言在表达能力上是完全等价的。(3)具有关系代数和关系演算双重特点的语言,如SQL(Standard Query Language)关系数据库系统实际提供给用户的关系数据语言是更加高级、更加方便的实际语言,除了提供上述语言的功能外,还提供了许多附加功能,如SQL不仅具有丰富的查询功能,而且具有数据定义和数据控制功能,是集查询

4、、数据定义(DDL)、数据操纵(DML)和数据控制(DCL)于一体的关系数据语言。第4页,此课件共46页哦 2.1.3 完整性约束 关系模型可定义三类完整性规则,分别是实体完整性、参照完整性和用户定义完整性。其中实体完整性和参照完整性是关系模型必须满足的规则,应该由系统自动支持,而用户定义的完整性由应用环境所决定。第5页,此课件共46页哦2.2关系数据结构 关系模型是建立在集合代数基础上的,所以这里将从集合的角度给出关系数据结构的形式化定义。2.2.1 数学定义1域 域(Domain)是一组具有相同数据类型的值的集合。例如男,女、A,B,C、2,4,6,8,10等都可以是域。域要命名,例如:性

5、别男,女,姓名张力,阿法,胡爱军,2,4,6,8,10其中性别、姓名、称为域名。域中数据个数叫做域的基数,故性别的基数为,姓名的基数为3,的基数为。2笛卡尔积 给定一组域 ,则 的笛卡尔积定义为第6页,此课件共46页哦 其中 每个叫做一个 元组,元组中的每个 叫做一个分量,必是 域中的一个值。显然,若 为有限集,则笛卡尔积的基数等于 构成该积所有域的基数的连乘积,即 其中表示笛卡尔积基数,表示第个域基数,表示域的个数。3关系 当且仅当是 的一个子集,则称 是 上的一个关系,记为 。其中 是关系名,为 关系的度。当 时,关系仅含一个域,称单元关系;当 时,称二元关系,如此类推。在关系对应的二维表

6、中,行对应元组,列对应域。而实 际中更多地把列称为属性,将元组称为记录。第7页,此课件共46页哦 2.2.2 关系的性质 关系与二维表及传统的数据文件有类似之处,但也有区别。关系是一种规范化的二维表,作为关系的二维表必须满足下列性质:(1)同一属性(列)中的分量是相同类型的数据,即取自同一个域;(2)属性(列)的顺序可以是任意的;(3)元组(行)的顺序可以是任意的;(4)任意两个元组(即两行)不能完全相同;(5)属性必须有不同的名称,但不同的属性可以取自相同的域;(6)所有属性必须都是不可分解的,即表中不允许有子表。2.2.3 单一的数据结构关系关系模式 关系模式是对关系的描述,是一个关系的具

7、体结构,即关系模式是型。它通常被形式化定义为R(U,D,DOM,F,I)。其中是关系名,为该关系中的所有属性集合;为该关系的所有定义域的集合;DOM是属性向域映射的集合,它给出属性和域之间的对应关系;是该关系中各属性之间的数据依赖的集合;为该关系中所定义的完整性规则的集合。第8页,此课件共46页哦 在数据库系统中定义一个关系模式时,主要是给出关系名和所有属性名,其他都是辅助特性。例如属性的域被作为属性的类型和长度来定义,其中自然包含了属性向域的映射,属性之间的数据依赖的分析主要是找出关系的主键属性,关系的完整性规则的建立是为了保证数据库数据的正确性和一致性。因此,一个关系模式可以简化表示了 ,

8、其中为关系名,为各属性名。键 关系中的一个属性或属性的集合能唯一地标识了一个元组,则称该属性或属性的组合称为候选键。若一个关系有多个候选键,则选定其中一个为主键,这个属性称为主属性。如果关系 中某属性或属性组并非该关系的主键,但是其他关系模式的主键,则该属性或属性组称为关系的 外键。第9页,此课件共46页哦关系数据库关系数据库系统有如下特点:(1)数据库中的全部数据及其相互联系都被组织成关系,即二维表的形式。关系模型中单一的数据结构类型关系,具有简明性和精确性的特点。(2)关系数据库系统提供一种完备的高级关系运算,支持对数据库的各种操作。关系模型的逻辑结构和相应的操作完全独立于数据存储方式,具

9、有高度的数据独立性,应用程序完全不必关心物理存储细节。(3)关系模型有严格的数学理论,使数据库的研究建立在比较坚实的数学基础上。关系设计规范化等理论为数据库技术的成熟奠定了基础。2.2.4 关系系统 关系数据库管理系统简称关系系统,是指支持关系模型的系统。关系系统的定义 当且仅当同时满足以下两个条件时,一个系统可以定义为关系系统:支持关系数据库(关系数据结构)支持选择、投影和(自然)连接运算,对这些运算不必要求定义任何物理存取路径。第10页,此课件共46页哦关系系统的分类 按照E.F.Codd的思想,可以把关系系统分为以下三类:最小关系系统 仅支持关系数据结构和三种关系搡作。许多微机关系数据库

10、系统如FoxBASE、FoxPro等就属于这一类。关系完备的系统 这类系统支持关系数据结构和所有的关系代数操作(功能上与关系代数等价)。20世纪90年代初的许多关系数据库管理系统属于这一类。全关系系统 这类系统不仅是关系上完备的而且支持数据结构中域的概念,支持实体完整性和参照完整性,也就是说,支持关系模型的所有特征。第11页,此课件共46页哦全关系系统的十二条基本准则 关系模型的奠基人E.F.Codd具体地给出了全关系型的关系系统应遵循的十二条基本准则。准则0 一个关系型的DBMS必须能完全通过它的关系能力来管理数据库。准则0是下面十二条准则的基础。准则0的一个推论是:任何声称是关系型的DBM

11、S必须在关系这个级别上支持数据的插入、修改和删除(即一次多个记录的操作级别)。不管一个系统是否还具有非关系的管理数据的能力,它必须满足准则0。任何不满足准则0的DBMS不配称为关系型DBMS。准则0的另一个推论是:关系型DBMS必须遵循信息准则和保证访问(存取)准则。准则1 信息准则 关系型DBMS的所有信息都应在逻辑一级上用一种方法即表中的值显式地表示。此外,表名、列名和域名等都用系统内部表(即数据字典表)中的值表示。第12页,此课件共46页哦 准则2 保证访问准则 依靠表名、主码和列名的组合,保证能以逻辑方式访问关系数据库中的每个数据项(分量值)。保证访问准则表明关系系统所采用的是关联寻址

12、(Association Addressing)的访问模式,而不是那种面向机器的寻址方法。准则3 空值的系统化处理 全关系型的DBMS应支持空值的概念,并用系统化的方式处理空值。准则4 基于关系模型的动态的联机数据字典 数据库的描述在逻辑级上应该和普通数据采用同样的表示方式,使得授权用户可以使用查询一般数据所用的关系语言来查询数据库的描述信息。这一准则有两个推论。推论一是每个用户只需学习一种数据模型。推论二是授权用户可以很容易地扩充数据字典,使之变成完备的主动的关系数据字典。第13页,此课件共46页哦准则5 统一的数据子语言准则 一个关系系统可以具有几种语言和多种终端使用方式,但必须有一种语言

13、,它的语句可以表示为具有严格语法规定的字符串,并能全面地支持以下功能:数据定义,视图定义 数据操作(交互式或程序式)完整性约束 授权 事务处理功能(事务开始、提交、滚回)准则 视图更新准则 所有理论上可更新的视图也应该允许由系统更新。一个“理论上可更新的视图”是指对此视图的更新要求,存在一个与时间无关的算法,该算法可以无二义性地把更新要求转换为对基本表的更新序列。第14页,此课件共46页哦 准则7 高级的插入、修改和删除操作 关系系统的操作对象是单一的关系。以关系为操作对象不仅简化了用户查询,提高了用户生产率,而且也为系统提供了很大的余地来进行查询优化,提高了系统的运行效率。它允许系统来选择存

14、取路径,以便得到最有效的运行代码。准则8 数据物理独立性 无论数据库的数据在存储表示或存取方法上作任何变化,应用程序和终端活动都保持逻辑上的不变性。准则9 数据逻辑独立性 当对基本关系进行理论上信息不受损害的任何改变时,应用程序和终端活动都保持逻辑上的不变性。为了尽可能提高数据逻辑独立性,DBMS必须能对理论上可更新的视图执行插入、修改和删除操作,即必须满足准则6。准则l0 数据完整性的独立性 关系数据库的完整性约束条件必须是用数据库语言定义并存储在数据字典中的,而不是在应用程序中加以定义的。第15页,此课件共46页哦 准则11 分布独立性 所谓分布独立性是指关系型DBMS具有这样的数据库语言

15、,它使应用程序和终端活动无论在最初的数据还是以后的数据重新分布时都能在逻辑上保持不变。准则12 无破坏准则 如果一个关系系统具有一个低级(指一次一个记录)语言,则这个低级语言不能违背或绕过完整性准则。第16页,此课件共46页哦2.3关系的完整性 关系模型中可以有三类完整性约束:实体完整性、参照完整性和用户定义的完整性。2.3.1 实体完整性 在一个关系中,每个元组表示现实世界中的一个可描述的对象(实体或活动),而每个对象可以包含多个属性,其中至少存在一种属性或属性组,称为主键,取值是确定的,而且是互不相同的,由此主键来唯一标识相应的对象,该主键绝对不能取空值。实体完整性(EntityInteg

16、rity)规则:若属性A是关系R的主属性,则属性A不能取空值。实体完整性规则规定基本关系的所有主属性都不能取空值。例如学生选课关系“选修(学号,课程号,成绩)”中,(学号,课程号)为主键,则学号和课程号两属性都不能取空值。第17页,此课件共46页哦 2.3.2 参照完整性定义义设F是基本关系R的一个或一组属性,但不是关系R的键,如果F与基本关系S的主键Ks相对应,则称F是基本关系R的外键(Foreign key),并称基本关系R为参照关系(Referencing relation),基本关系S为被参照关系(Referenced relation)或目标关系(Target relation)。关

17、系R和S不一定是不同的关系。参照完整性规则就是定义外键与主键之间的引用规则。参照完整性(ReferentialIntegrity)规则:若属性(或属性组)F是基本关系R的外键,它与基本关系S的主键Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主键值。2.3.3 用户定义的完整性 实体完整性和参照性适用于任何关系数据库系统,并自动支持。第18页,此课件共46页哦2.4关系代数 关系代数是E.F.Codd于1972年首先提出的。它是一种抽象的查询语言,用对关系的运算来表达查询。关系代数是一种代数的符号

18、,其中的查询是通过向关系附加特定的操作符来表示的。作为研究关系数据语言的数学工具,关系代数的运算对象是关系,运算结果亦为关系。关系代数的运算主要分为传统的集合运算和专门的关系运算两类。传统的集合运算:并、差、交、笛卡尔积。扩充的关系操作:选择、投影、连接和除。241传统的集合运算 传统的集合运算是二目运算,包括并、交、差、广义笛卡尔积四种运算。设关系R和关系S具有相同的目n(即两个关系都有n个属性),且相应的属性取自同一个域。1并 关系R与关系S的并(Union)是属于R或属于S的所有元组组成。记作:其结果关系仍为n目关系。第19页,此课件共46页哦2差 关系R与关系S的差(Differenc

19、e)由属于R而不属于S的所有元组组成。记作:其结果关系仍为n目关系。3交 关系R与关系S的交(Intersection)由既属于R又属于S的所有元组组成,记作:RS=t|tRtS 其结果关系仍为n目关系。4笛卡尔积 两个分别为n目和m目的关系R和S的广义笛卡尔积(Product)是一个(n+m)列的元组的集合。元组的前n列是关系R的一个元组,后m列是关系S的一个元组。若R有k1个元组,S有k2个元组,则关系R和关系S的广义笛卡尔积有k1k2个元组。记作:第20页,此课件共46页哦【例2.3】有如图2.1所示的两个关系和,求关系R和S的并、差、交、笛卡尔积。第21页,此课件共46页哦第22页,此

20、课件共46页哦 2.4.2专门的关系运算1选择 选择运算(Selection)是在关系中选择满足某种条件的元组。其中的条件是以逻辑表达式给出的,使得逻辑表达式的值为真的元组将被选取。设关系为元关系,则关系的选择操作记作:F(R)=t|tRF(t)=真 其中F表示选择条件,它是一个逻辑表达式,取逻辑值真或假。逻辑表达式F的基本形式为:X1Y1X2Y2.其中表示比较运算符,它可以是、或。X1、Y1等是属性名或常量或简单函数。属性名也可以用它的序号来代替(1,2)。表示逻辑运算符,它可以是、或。表示任选项,即中的部分可以要也可以不要,表示上述格式可以重复下去。第23页,此课件共46页哦【例2.4】如

21、表2.8,有职工表,试找出满足条件性别“女”的元组集。选择条件为:性别女,用关系代数表示为:结果如表2.9。第24页,此课件共46页哦2投影 投影运算(Projection)是从关系中挑选出若干属性组成新的关系。经过投影运算可以得到一个新关系,其关系模式所包含的属性个数往往比原关系少,或者属性的排列顺序不同。因此,投影运算提供了垂直调整关系的手段。如果新关系中包含重复元组,则要删除重复元组。设关系为元关系,则关系的投影操作记作:A(R)=tA|tR 其中A为R中的属性列。第25页,此课件共46页哦 【例2.5】已知职工表,对职工表进行投影操作 (1)列出所有职工的职工编号、姓名、所在部门,关系

22、代数表示为:结果如表2.10第26页,此课件共46页哦 (2)列出职工表中的所有部门,关系代数表示为:结果如表2.11所示。3连接 连接(Join)是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。记作:R AB S=t r t s|t rRt sSt rAt sB 其中A和B分别为R和S上度数相等且可比的属性组。是比较运算符。连接运算是从RS中选取(R关系)在A属性组上的值与(S关系)在B属性组上值满足比较关系的元组。第27页,此课件共46页哦 连接运算中有两种连接,一种是等值连接(equi-join),另一种是自然连接(Naturaljoin)。为“”的连接运算称为等值连接。它是从关系

23、R与S的笛卡尔积中选取A、B属性值相等的那些元组。等值连接表示为:RA=BS=trts|trRtsStrA=tsB 自然连接(Naturaljoin)是一种特殊的等值连接,要求两个关系中进行比较的分量必须是相同的属性组,并且要在结果中把重复的属性去掉。即若R和S具有相同的属性组B,则自然连接可记作:RS。具体的计算过程如下:()计算 ()设R和S的公共属性是A1,Ak,挑选中满足 R.A1=S.A1,R.Ak=S.Ak的那些元组。()去掉S.A1,S.Ak的那些列。如果两个关系中没有公共属性,那么其自然连接就转化为笛卡尔积操作。第28页,此课件共46页哦4除 给定关系R(X,Y)和S(Y,Z)

24、,其中X,Y,Z为属性组。R中的Y与S中的Y可以有不同的属性名,但必须出自相同的域集。R与S的除运算(Division)得到一个新的关系P(X),P是R中满足下列条件的元组在X属性列上的投影:元组在X上分量值x的象集Yx包含S在Y上投影的集合。记作:RS=trX|trRY(S)Yx 其中Yx为x在R中的象集,x=trX。除操作是同时从行和列角度进行运算。第29页,此课件共46页哦2.5关系的规范化 关系数据库的规范化设计理论主要包括三方面的内容:数据依赖,范式(NormalForm),模式设计方法。数据依赖在此起着核心的作用。2.5.1 关系中的键 键又称为关键字、码等。通常键由一个或几个属性

25、组成,有超键、候选键、主键、外键等。超键 一个关系中,能唯一标识元组的属性或属性集称为关系的超键。一个关系可能有多个超键。候选键 如果一个属性集能唯一标识元组,且又不含有多余的属性,那么这个属性集称为关系的候选键。一个关系可能有多个候选键。第30页,此课件共46页哦主键 若一个关系中有多个候选键,则选其中一个为关系的主键。用主键实现关系定义中“表中任意两行不能相同”的约束。包含在任何一个候选键中的属性称为主属性,不包含在任何键中的属性称为非主属性。一个关系在任一时刻至多只能有一个主键,但在不同的时刻可以指定不同的候选键作为主键。外键 若一个关系中包含有另一个关系的主键所对应的属性组,则称为的外

26、键。并称关系为参照关系,关系为依赖关系。2.5.2 函数依赖 在数据库技术中,把数据之间存在的联系称为数据依赖。比如键就是一种依赖。在数据库规范化的设计中,数据依赖起着关键的作用。数据冗余的产生和数据依赖有着密切的联系。数据依赖包括函数依赖和多值依赖两种,函数依赖存在较普遍,应用较广。第31页,此课件共46页哦1函数依赖的概念 在数据库中,属性值之间会发生联系。例如每一本图书只有一个书号,每本书入库只有一个操作员等等。这类联系,称为函数依赖。关系理论中函数依赖是指关系中属性间的对应关系。如关系中对于属性(组)的每一个值,属性(组)只有唯一的值与之对应,则称函数依赖于,或称函数决定,记为。其中,

27、称为决定因素。为模式的一个函数依赖。【例2.8】设有一个职工关系(职工编号,姓名,性别,所在部门),职工编号是关系的主键。对于该关系中的每一个职工的职工编号,都对应着姓名属性中的唯一值,即该职工的姓名也就是说,一个职工的姓名由他的职工编号唯一确定,所以称职工编号函数决定姓名,或者称姓名函数依赖于职工编号,记作:职工编号姓名,职工编号为该函数依赖的决定因素。同理,职工编号决定性别、所在部门等属性,分别记作:职工编号性别,职工编号所在部门。第32页,此课件共46页哦 在一个关系中,可分析出许多依赖关系。函数依赖可区分为完全依赖、部分依赖和传递依赖三类。完全函数依赖 若、是关系中属性(组),函数依赖

28、()但函数不依赖的任一真子集,则称完全函数依赖于,记作 。【例2.9】在职工关系(职工编号,姓名,性别,所在部门)中,职工编号同其他每个属性之间的函数依赖都是完全函数依赖,即 职工编号 姓名,职工编号 性别,职工编号 所在部门。因为职工编号不可能再包含其他的任何属性,也不可能存在真子集函数决定其他每一个属性的情况。第33页,此课件共46页哦部分函数依赖 若、为关系中的属性(组),如函数依赖(),且中存在真子集(,且),满足函数依赖(),则称部分函数依赖于,记作。【例2.10】职工关系(职工编号,姓名,性别,所在部门)中,属性组(职工编号,性别)的值能够决定相应职工所在的部门,但其真子集中的职工

29、编号也能函数决定所在部门,所以所在部门部分函数依赖于(职工编号,性别)。传递函数依赖 设、是关系(U)的属性集上的子集,其中函数依赖(),函数依赖(),但不函数依赖于,则称传递函数依赖于,记作:。(注意这里必须强调不函数依赖于,因为如果同时,则为 ,这样和是等价的,在函数依赖中是可以互换的,就是直接函数依赖,而不是传递函数依赖。)第34页,此课件共46页哦 2.5.3 规范化和范式 规范化表示了从数据存储中移去数据冗余的过程。规范化避免了数据冗余,节省了空间,对数据的一致性提供了根本的保障,杜绝了数据不一致的现象,在一定范围内提高了效率。规范化有许多层次,对关系最基本的要求是每个属性值必须是不

30、可分割的数据单元,即表中不能再包含表。满足一定条件的关系模式,称为范式(Normal Form)。范式就是某一种级别的关系模式的集合,人们称某一关系模式为第n范式,就表示该关系的级别。一个低级范式的关系模式,通过分解(投影)方法可转换成多个高一级范式的关系模式的集合,这种过程称为规范化。第一范式1NF 定定义义如果一个关系的每一个属性都是不可分的数据项,则称是符合第一范式的,记做R1NF。若一个关系数据库中所有的关系都满足第一范式要求,则称为满足第一范式的数据库。第35页,此课件共46页哦 【例2.12】设某单位的职工评价信息关系:评价(职工编号,姓名,工作表现(工作态度,业绩),综合评价,评

31、价日期),对应元组如表2.18。表2.18不是一个规范化的关系,因为工作表现属性不是原子属性,包含了三个属性,因此必须把每个属性提升为一般属性,得到规范化的关系,如表2.19。第36页,此课件共46页哦第37页,此课件共46页哦2第二范式2NF定义 设关系R1NF,且它的每一非主属性完全依赖于主键,则称R是符合第二范式的,记作R 2NF。如果一个关系只满足第一范式,那么可能会带来数据冗余和操作异常,即插入异常、删除异常和修改异常。【例2.13】设有一个图书销售关系TSXS(书号,书名,出版社,作者,单价,数量,折扣,日期,操作员帐号,姓名,密码)中,每位操作员可以销售多种书,每种书可由多个操作

32、员销售。TSXS具体实例如表2.20。第38页,此课件共46页哦 在该关系中,由于书号和操作员帐号属性没有决定因素,所以它们包含在候选键中,而由这两个属性构成属性组则能够函数决定所有属性,因此(书号,操作员帐号)是关系的主键。在该关系中存在着非主属性对主键的部分依赖,其中书名、出版社、作者、单价、库存数量、折扣依赖于书号,姓名、密码依赖于操作员帐号,所以该关系中必然存在数据冗余,在对该关系进行插入、删除和修改时,也会带来意外的麻烦。我们可以通过关系分解的方法来消除部份依赖。对应的图书销售关系TSXS可分解成以下几个关系:图书(书号,书名,出版社,单价,折扣)操作员(操作员帐号,姓名,密码)销售

33、(书号,操作员帐号,数量)第39页,此课件共46页哦 【说明】不符合2NF的关系规范化为第二范式的方法:对于一个关系R(U),假定、是的互不相交的属性子集,其中(,)是主键,完全函数决定,(,)函数决定,但中不含依赖于的属性,则把R(U)分解为两个关系R1(,)和R2(,)后就取消了对(,)的部分依赖,其中是R1的主键和R2的外键,通过使R1和R自然连接仍然可得到原来的R(U)。同理,若R2(,)中仍存在着部分依赖,仍可以按此方法继续分解,直到消除全部部分依赖为止。3第三范式3NF 定义 设关系R2NF,且它的每一非主属性不传递依赖于主键,则该关系是符合第三范式的,记作R3NF。一个符合第三范

34、式的关系必须具有以下三个条件:()每个属性的值唯一,不具有多义性。()每个非主属性必须完全依赖于整个主键,而非主键的一部分。()每个非主属性不能依赖于其他关系中的属性。从以上可知,2NF可从1NF关系消除非主属性对主键的部分函数依赖后获得,3NF关系可从2NF关系消除非主属性对主键的传递函数依赖后获得。第40页,此课件共46页哦 【例2.14】图书销售关系(流水号,书号,书名,数量,入库价,销售价,入库时间,操作员账户,姓名,密码,销售日期,总金额),一个流水号只由一个操作员帐号处理,一个操作员帐号可以处理多个流水号,而操作员帐号决定操作员姓名、密码,所以图书销售关系中函数依赖关系如下:流水号

35、书号,流水号操作员帐号,书号书名,书号数量,书号入库价,书号销售价,书号入库时间,操作员帐号姓名,操作员帐号密码,流水号销售日期,流水号总金额。在图书销售关系中,只有流水号没有决定因素,所以流水号属性必然包含在候选键中,由流水号可以直接决定书号、操作员帐号、销售日期、总金额等属性,同时流水号传递决定书名、数量、入库价、销售价、入库时间、姓名、密码等属性,所以流水号能函数决定所有属性,流水号用作该关系的主键。由于该关系是单属性候选键,所以不会存在部分函数依赖,它自然满足第二范式。由于该关系中存在着书的各属性对流水号的传递依赖,存在着操作员各属性对流水号的传递依赖,所以必然会产生数据冗余和操作异常

36、。第41页,此课件共46页哦 消除关系中的传递依赖也是通过关系分解的方法来实现。设一个关系为R(U),X、是的互不相交的属性子集,其中为主键,是直接函数依赖(也可能包含部分函数依赖),是传递函数依赖,则把R(U)分解成两个关系R1(,)和R2(,),其中是的主键,是外键,这样就消除了对的传递依赖,通过对和自然连接仍可得到原来的,同样,若和中仍存在着传递依赖,则继续按此方法分解下去,直到消除全部传递依赖为止。对图书销售关系进行分解,分解得到三个关系:销售(流水号,书号,操作员账户,销售日期,总金额)图书(书号,书名,数量,入库价,销售价,入库时间)操作员(操作员账户,姓名,密码)从分解后的三个关

37、系可以看出,每个关系都没有传递依赖,所以都是第三范式。规范化的过程就是通过关系的投影分解逐步提高关系范式等级的过程。从第一范式到第三范式,其过程可以表示为 INF 2NF 3NF第42页,此课件共46页哦 2.5.4 关系模式的分解 “等价”的概念存在条不同的含义。一是分解具有“无损连接性”;二是分解要“保持函数依赖”;三是分解既要“保持函数依赖”,又要具有“无损连接性”。这三个含义也是实现分解的条不同的准则。如果对新的关系进行自然连接得到的元组的集合与原关系完全一致,则称为无损连接,即不会在分解中丢失信息。此外,分解后的新关系应该相互独立,对一个关系的更改,不会影响另一个关系。【例2.15】设有关系(职工号,部门,部门领导)2NF,如下表2.21。第43页,此课件共46页哦 显然上的函数依赖如下:职工号部门,部门部门领导。上存在传递函数依赖:职工号部门领导。将进行种形式的分解:方案将R分解为如图2.5的两个关系和。第44页,此课件共46页哦 方案将R分解为如图2.6的两个关系和。第45页,此课件共46页哦 方案将R分解为如图2.7的两个关系和 以上对关系模式的分解,不能仅着眼于提高它的范式等级,还应遵守无损分解、分解后的新关系相互独立、保持函数依赖等原则,才能保证分解的质量。第46页,此课件共46页哦

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 资格考试

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁