第7章 关系数据库规范化理论
第7章 关系数据库规范化理论
7.2.1 关系模式中的码
例:
关系模式S(Sno,Sdept,Sage),单个属性Sno是码
SC(Sno,Cno,Grade)中,(Sno,Cno)是码 关系模式R(P,W,A)
P:演奏者
W:作品
A:听众
一个演奏者可以演奏多个作品 某一作品可被多个演奏者演奏 听众可以欣赏不同演奏者的不同作品 码为(P,W,A),即All-Key
Sno→SName
Sno→Sdept
Sno→Sage
例:SC(Sno, Cno, Grade)
(Sno, Cno)→Grade
8
7.1.2 一些术语和符号
平凡函数依赖与非平凡函数依赖
在关系模式R(U)中,对于U的子集X和Y,
如果X→Y,但Y X,则称X→Y是非平凡的函数依赖
若X→Y,但Y X,
则称X→Y是平凡的函数依赖
例:在关系SC(Sno, Cno, Grade)中,
非平凡函数依赖: (Sno, Cno) → Grade 平凡函数依赖: (Sno, Cno) → Sno
(Sno, Cno) → Cno
如不作特别说明,总是讨论非平凡函数依赖。
9
7.1.2 一些术语和符号
若X→Y,则X称为这个函数依赖的决定属性
24
7.2.1 关系模式中的码
外部码:用于关系表之间建立关联的属性(组)。 关系模式 R 中属性或属性组X 并非 R的码,但 X
是另一个关系模式的码,则称 X 是R 的外部码,也 称外码。
如在SC(Sno,Cno,Grade)中,Sno不是码,
但Sno是关系模式S(Sno,Sdept,Sage)的码, 则Sno是关系模式SC的外部码
关系数据库的规范化理论与数据库设计
关系数据库的规范化理论与数据库设计在当今数字化的时代,数据成为了企业和组织的重要资产,而关系数据库作为存储和管理数据的重要手段,其设计的合理性直接影响着数据的质量、完整性和可用性。
关系数据库的规范化理论是指导数据库设计的重要原则,它能够帮助我们避免数据冗余、更新异常等问题,从而提高数据库的性能和可靠性。
首先,我们来了解一下关系数据库的基本概念。
关系数据库是由一组二维表组成的,每张表都有一个唯一的表名,表中的每一行称为一个元组,代表一个实体;每一列称为一个属性,代表实体的一个特征。
通过在不同的表之间建立关联,我们可以实现数据的查询和操作。
那么,什么是规范化理论呢?规范化理论是一种用于设计关系数据库的方法和原则,其目的是通过对关系模式进行分解和优化,消除数据冗余和更新异常,确保数据的一致性和完整性。
规范化理论主要包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等。
第一范式要求表中的每个属性都是不可再分的原子值。
例如,如果有一个“联系人信息”表,其中包含“地址”这个属性,如果地址又分为“省”“市”“区”“详细地址”等子属性,那么就不满足第一范式,需要将其拆分成多个属性。
第二范式要求在满足第一范式的基础上,每个非主属性都完全依赖于主键。
举个例子,如果有一个“订单”表,主键是“订单号”,而“客户姓名”和“客户地址”等非主属性只依赖于“客户编号”,而不是“订单号”,那么就不满足第二范式,需要将其拆分成两个表,一个是“订单”表,一个是“客户”表。
第三范式要求在满足第二范式的基础上,每个非主属性都不传递依赖于主键。
比如说,有一个“员工”表,主键是“员工编号”,“部门名称”依赖于“部门编号”,而“部门编号”又依赖于“员工编号”,这就不满足第三范式,需要将“部门名称”这个属性移到“部门”表中。
规范化理论在数据库设计中具有重要的意义。
通过规范化设计,可以减少数据冗余,节省存储空间。
想象一下,如果一个客户的信息在多个表中重复存储,不仅浪费空间,而且当客户信息发生变化时,需要在多个地方进行更新,容易导致数据不一致。
关系数据库规范化理论
规范化可以消除数据冗余,确保每个数据只在数据库中存储一次,从而提高数据的一致性。
第一范式 (1NF)
表结构
第一范式要求每个数据表都应具有原子性,即每 个表中的列不能再进一步分解。
主键
每个表必须具有一个唯一标识记录的主键,用于 保证数据的唯一性和关联性。
第二范式 (2NF)
1 函数依赖
数据表中出现函数依赖时,就需要进行第二范式的规范化。避免冗余数据。
关系数据库规范化理论
规范化是设计关系数据库中的一项重要理论,它能使数据存储结构更加合理、 高效。通过划分数据表,规范化能够消除数据冗余、提高数据一致性和查询 性能。
规范化定义
目的明确
规范化通过一定的规则将一个大的数据表拆分成多个小的数据表,以实现数据的高内聚和低 耦合。
数据准确性
规范化能确保数据的准确性,因为数据被划分为更小的范围,每个数据表只存储特定类型的 数据。
3 学生管理系统
拆分学生、课程、成绩等信息,确保学生信息的一致性和教务管理的高效性。
规范化的局限性及未来研究方向
局限性
规范化可能导致表结构复杂,加重查询和维护 的工作量。某些情况下,冗余数据可能是必要 的。
未Hale Waihona Puke 研究方向未来的研究可以探索如何在规范化的基础上平 衡数据一致性和查询性能,以及结合其他技术 实现更灵活的数据存储。
优点 数据一致性提高 数据冗余减少 数据更新更容易
缺点 可能会导致过度分解数据表,增加查询复杂性 可能引起频繁的表连接操作,影响查询性能 增加了设计和维护的复杂性
规范化的应用举例
1 在线购物系统
将用户、订单、商品等信息拆分为多个表,确保数据的一致性和查询效率。
关系数据库的规范化理论与数据库设计
.
13
几个术语和符号
如果 X→Y,则 X 叫做决定因素(Determinant) 如果 X→Y , Y → X ,则记作: X ←→ Y
如果Y不函数依赖于X,则记作: X→Y
.
14
二、平凡函数依赖与非平凡函数依赖 如果 X→Y,但 Y X,则称 X→Y 是非平凡的函数 依赖
关系模式的规范化:解决插入、删除和更 新异常,尽量消除数据冗余,消除不合适 的数据依赖
这就要求关系模式应该满足一定的条件
关系模式满足不同的条件,称为不同的范 式
.
30
1NF范式
如果关系模式R的所有属性都是不可再分解 的,则称R属于第一范式,简称1NF,记做 R∈1NF。
满足1NF的关系为规范化的关系,否则为非规 范化的关系
U,则【1】为F所逻辑蕴含
XZ->ZY 2008.09 3、下列关于部分函数依赖的叙述中,哪条是正确的? A、若X->Y,且存在Y的真子集Y’,X->Y’,则Y对X部分函数依赖 B、若X->Y,且存在Y的真子集Y’,X->Y’,则Y对X部分函数依赖 C、若X->Y,且存在X的真子集X’,X’->Y,则Y对X部分函数依赖 D、若X->Y,且存在X的真子集X’,X’->Y,则Y对X部分函数依赖
CNAME 机械设计 高等数学 管道工程 数据结构
.
6
该关系模式可能出现如下 问题:
异常(多个记录更新,刘宏
容易产生数据不一致) 王明
插入异常:TNAME,CNO码, 李红
某个教师没上课,CNO为
空,不能插入)
ADDRESS CNO 18栋302 043
21栋503 056 18栋302 041 17栋503 002
数据库5版第七章规范化理论例题解答
关系数据库规范化理论例题解答⊄(⊆⊂∈∉)例:证明定理 Armstrong公理是正确的,即如果F成立,则由F根据Armstrong公理所推导的函数依赖总是成立的。
设有R(U,F),X、Y、Z均是U的子集,F是R的函数依赖集,推理规则如下:A1:自反律(reflexivity)如果Y ⊆X ⊆U,则X→Y为F所蕴涵。
A2:增广律(augmentation)如果X→Y为F所蕴涵,且Z⊆U,则XZ→YZ为F的所蕴涵。
(XZ代表X∪Z)A3:传递律(transitivity)如果X→Y和Y→Z为F所蕴涵,则X→Z为F的蕴涵。
证:设t1,t2是关系R中的任意两个元组。
A1:如果t1[X]=t2[X],则因Y X,有t1[Y]=t2[Y],故X→Y成立。
A2:如果t1[XZ]=t2[XZ],则有t1[X]=t2[X],t1[Z]=t2[Z]。
已知X→Y成立,因此可得t1[Y]=t2[Y],由上可知t1[YZ]=t2[YZ],故XZ→YZ成立。
A3:如果t1[X]=t2[X],则t1[Y]=t2[Y];如果t1[Y]=t2[Y],则t1[Z]=t2[Z]由上可得,如果t1[X]=t2[X],则t1[Z]=t2[Z],故X→Z成立。
例:证明定理根据三条推理规则得到下面三条推理规则是正确的。
(1) 合并规则由X→Y,X→Z,有X→YZ。
(2) 伪传递规则由X→Y,WY→Z,有XW→Z。
(3) 分解规则如果X→Y,且Z ⊆ Y,则X→Z成立。
证: (1) 如果X→Y,则X→XY (A2)如果X→Z,则XY→YZ (A2)由上可得X→YZ (A3)(2) 如果X→Y,则WX→WY (A2)WY→Z (已知条件)故得WX→Z (A3)(3) 如果Z⊆Y,则Y→Z (A1)X→Y (已知条件)故得X→Z (A3)例:证明定理 X→Y能由Armstrong公理推导出的充要条件是Y⊆X + F证:设Y={A1,A2,…,Ak},先证充分性:假定Y ⊆X +F,则根据X+F的定义,X→Ai(i=1,2,…,k)可由Armstrong公理导出,根据合并规则则有X→Y。
关系数据库规范化理论
第4章关系数据库规范化理论数据库设计的一个最基本的问题是怎样建立一个合理的数据库模式,使数据库系统无论是在数据存储方面,还是在数据操作方面都具有较好的性能。
什么样的模型是合理的模型,什么样的模型是不合理的模型,应该通过什么标准去鉴别和采取什么方法来改进,这是在进行数据库设计之前必须明确的问题。
为使数据库设计合理可靠、简单实用,长期以来,形成了关系数据库设计理论,即规范化理论。
它是根据现实世界存在的数据依赖而进行的关系模式的规范化处理,从而得到一个合理的数据库设计效果。
本章首先说明关系规范化的作用,接着引入函数依赖和范式等基本概念,然后介绍关系模式等价性判定和模式分解的方法,最后简要介绍两种数据依赖的概念。
4.1 关系规范化的作用4.1.1问题的提出从前面的有关章节可知,关系是一张二维表,它是涉及属性的笛卡尔积的一个子集。
从笛卡尔积中选取哪些元组构成该关系,通常是由现实世界赋予该关系的元组语义来确定的。
元组语义实质上是一个n目谓词(n是属性集中属性的个数)。
使该n目谓词为真的笛卡尔积中的元素(或者说凡符合元组语义的元素)的全体就构成了该关系。
但由上述关系所组成的数据库还存在某些问题。
为了说明的方便,我们先看一个实例。
【例4.1】设有一个关于教学管理的关系模式R(U),其中U由属性Sno、Sname、Ssex、Dname、Cname、Tname、Grade组成的属性集合,其中Sno的含义为学生学号,Sname为学生姓名,Ssex为学生性别,Dname为学生所在系别,Cname为学生所选的课程名称,Tname 为任课教师姓名,Grade为学生选修该门课程的成绩。
若将这些信息设计成一个关系,则关系模式为:教学(Sno,Sname,Ssex,Dname,Cname,Tname,Grade)选定此关系的主键为(Sno,Cname)。
由该关系的部分数据(如表4-1所示),我们不难看出,该关系存在着如下问题:1. 数据冗余(Data Redundancy)●每一个系名对该系的学生人数乘以每个学生选修的课程门数重复存储。
关系数据库规范化理论
第四章关系数据库规范化理论一个关系数据库模式由一组关系模式组成,一个关系模式由一组属性名组成。
关系数据库设计,就是如何把已给定的相互关联的一组属性名分组,并把每一组属性名组成关系的问题。
然而,属性的分组不是唯一的,不同的分组对应着不同的数据库应用系统,它们的效率往往相差很远。
为了使数据库设计合理可靠,简单实用,长期以来,形成了关系数据库设计的理论——规范化理论。
4.1 关系规范化的作用规范化,就是用形式更为简洁,结构更加规范的关系模式取代原有关系模式的过程。
如果将两个或两个以上实体的数据存放在一个表里,就会出现下列三个问题: 数据冗余度大插入异常删除异常所谓数据冗余,就是相同数据在数据库中多次重复存放的现象。
数据冗余不仅会浪费存储空间,而且可能造成数据的不一致性。
插入异常是指,当在不规范的数据表中插入数据时,由于实体完整性约束要求主码不能为空的限制,而使有用数据无法插入的情况。
删除异常是指,当不规范的数据表中某条需要删除的元组中包含有一部分有用数据时,就会出现删除困难。
(以P98工资表为例)解决上述三个问题的方法,就是将不规范的关系分解成为多个关系,使得每个关系中只包含一个实体的数据。
(讲例子解)当然,改进后的关系模式也存在另一问题,当查询职工工资时需要将两个关系连接后方能查询,而关系连接的代价也是很大的。
那么,什么样的关系需要分解?分解关系模式的理论依据又是什么?分解完后能否完全消除上述三个问题?回答这些问题需要理论指导。
下面,将加以讨论:4.2 函数依赖实体间的联系有两类:一类是实体与实体之间联系;另一类是实体内部各属性间的联系。
数据库建模一章中讨论的是前一类,在这里我们将学习第二类。
和第一类一样,实体内部各属性间的联系也分为1:1、1:n和m:n三类:例:职工(职工号,姓名,身份证号码,职称,部门)1、一对一关系(1:1)设X、Y是关系R的两个属性(集)。
如果对于X中的任一具体值,Y中至多有一个值与之对应,反之,对于Y中的任一具体值,X中也至多有一个值与之对应,则称X、Y两属性间是一对一关系。
数据库第7章 关系数据库理论
● 7.2 关系模式的分解算法
● 7.2.1 关系模式分解的算法基础
1. 函数依赖的逻辑蕴含 2. Armstrong公理系统 (1) Armstrong公理系统 1) 自反律:若YXU,则X→Y为F所蕴含。 2) 增广律:若X→Y为F所蕴含,且ZU,则XZ→YZ为F 所蕴含。 3) 传递律:若X→Y及Y→Z为F所蕴含,则X→Z为F所蕴 含。
={YZ,CTX,CSG,HRC,HSR,THR}.
2. 将关系转化为3NF、且既具有无损连接性又能保持函数依赖的分解 【 例 7-7】 有 关 系 模 式 R〈U , F〉 , U={C , T , H , R , S , G} , F={C→T,CS→G,HR→C,HS→R,TH→R},将R分解为3NF, 且既具有无损连接性又能保持函数依赖。 解:可以求得关系模式R的码为HS,它的一个保持函数依赖的3NF为 :
F={A→B,A→C,B→A,B→C,C→A} 2) 去掉F中冗余的函数依赖。 判断A→B。设:G1={ A→C,B→A,B→C,C→A}, 得:AG1+=AC ∵ BAG1+ ∴ A→B不冗余 判断A→C。设:G2={ A→B,B→A,B→C,C→A},
得:AG2+=ABC ∵ CAG2+ ∴ A→C冗余 判断B→A。设:G3={ A→B,B→C,C→A}, 得:BG3+=BCA ∵ ABG3+ ∴ B→A冗余 判断B→C。设:G4={ A→B,C→A}, 得:BG4+=B ∵ CBG4+ ∴ B→C不冗余 判断C→A。设:G5={ A→B,B→C }, 得:CG5+=C ∵ ACG5+ ∴ C→A不冗余
第7章 关系数据库理论
● 7.1 关系数据模式的规范化理论
关系数据库规范化理论
关系数据库规范化理论在当今数字化的时代,数据的管理和处理变得至关重要。
关系数据库作为一种广泛应用的数据存储和管理方式,其规范化理论是确保数据库设计的合理性、有效性和可靠性的重要基石。
那么,什么是关系数据库规范化理论呢?简单来说,它是一套用于设计关系数据库的原则和方法,旨在减少数据冗余、避免数据不一致性,并提高数据的完整性和存储效率。
让我们先从数据冗余这个问题说起。
想象一下,如果在一个数据库中,相同的信息被多次重复存储,这不仅会浪费存储空间,还可能导致数据更新时出现不一致的情况。
比如说,在一个学生管理系统中,如果学生的基本信息(如姓名、性别、出生日期等)在多个表中都有重复记录,当需要修改某个学生的信息时,就很容易出现有的地方改了,有的地方没改的混乱局面。
为了解决这个问题,规范化理论提出了一系列的范式,从第一范式(1NF)到第五范式(5NF),逐步提高数据库设计的质量。
第一范式要求数据表中的每个字段都应该是不可再分的原子值。
举个例子,如果有一个“地址”字段,包含了“省份、城市、区县、街道”等信息,这就不符合 1NF,应该将其拆分成多个字段,分别存储每个具体的部分。
第二范式则是在满足 1NF 的基础上,要求非主属性完全依赖于主键。
比如说,在一个订单表中,如果“订单号”是主键,而“商品名称”和“商品价格”等信息不完全依赖于“订单号”,而是还依赖于“商品编号”,那么就不符合 2NF,可能会导致数据冗余和更新异常。
第三范式进一步要求非主属性之间不存在传递依赖于主键的关系。
比如,在一个员工表中,如果“员工编号”是主键,“部门编号”依赖于“员工编号”,而“部门地址”又依赖于“部门编号”,这就存在传递依赖,不符合 3NF。
随着数据库设计的复杂度增加,还有更高阶的范式,如巴斯范式(BCNF)、第四范式(4NF)和第五范式(5NF),但在实际应用中,通常达到第三范式就能够满足大多数的需求。
规范化理论的好处是显而易见的。
关系数据库规范化理论53页PPT
6、最大的骄傲于最大的自卑都表示心灵的最软弱无力。——斯宾诺莎 7、自知之明是最难得的知识。——西班牙 8、勇气通往天堂,怯懦通往地狱。——塞内加 9、有时候读书是一种巧妙地避开思考的方法。——赫尔普斯 10、阅读一切好书如同和过去最杰出的人谈话。——笛卡儿
关系数据库规范化理论
11、获得的成功越大,就越令人高兴 。野心 是使人 勤奋的 原因, 节制使 人枯萎 。 12、不问收获,只问耕耘。如同种树 ,先有 根茎, 再有枝 叶,尔 后花实 ,好好 劳动, 不要想 太多, 那样只 会使人 胆孝懒 惰,因 为不实 践,甚 至不接 触社会 ,难道 你是野 人。(名 言网) 13、不怕,不悔(虽然只有四个字,但 常看常 新。 14、我在心里默默地为每一个人祝福 。我爱 自己, 我用清 洁与节 制来珍 惜我的 身体, 我用智 慧和知 识充实 我的头 脑。 15、这世上的一切都借希望而完成。 农夫不 会播下 一粒玉 米,如 果他不 曾希望 它长成 种籽; 单身汉 不会娶 妻,如 果他不 曾希望 有小孩 ;商人 或手艺 人不会 工作, 如果他 不曾希 望因此 而有收 益。-- 马钉路 德。
关系数据模式的规范化理论
第一范式的原则和规则
第一范式要求数据库表中的每个属性都是原子性的,不可再分解,确保数据的唯一性。
第二范式的原则和规则第二范式要数据库表中的非主键属性必须完全依赖于主键,消除了数据冗 余和更新异常。
第三范式的原则和规则
第三范式要求数据库表中的非主键属性不应相互依赖,消除了数据冗余和传递依赖。
逆范式的概念和应用
关系数据模式的规范化理论
本部分介绍关系数据模式的规范化理论,包括规范化理论的定义和关系数据 库的基本概念。
规范化理论的定义
规范化理论是数据库设计中的基本原则,用于优化数据库结构,提高数据存 储和操作的效率。
关系数据库的基本概念
关系数据库是按照关系模型组织的数据集合,具有集合、表、行和列等基本概念。
逆范式是指在某些情况下,有意将数据冗余存储在数据库中,以提高查询性 能。
规范化理论的优缺点
规范化理论的优点是提高了数据的一致性和完整性,减少了数据冗余和更新异常。缺点是增加了数据库的复杂 性和查询的复杂度。
第7章 关系数据库的规范化理论与数据库的设计
关系数据库的规范化理论与数据库设计E.F.CODD提出的数据库规范化理论1.1“不好”的关系模式中存在的问题可能存在的问题:数据冗余更新异常插入异常删除异常数据依赖:是可以作为关系模式的取值的任何一个关系所必须满足的一种约束条件,是通过一个关系中各个元组的某些属性值之间的相等与否体现出来的相互关系。
数据依赖包括:函数依赖和多值依赖和其他1.2函数依赖1.21函数依赖的定义设R(A1,A2,……..An)是一个关系模式,X,Y是{A1,A2……..An}的子集,若只要关系r是关系模式R的可能取值,则r中不可能有两个元组在X中的属性值相等,而在Y中的属性值不相等,则称”X函数决定Y”或”Y函数依赖于X”,记做X→Y。
(ps:一些属性决定另一些属性称为函数决定)只能根据语义来判断。
相关的属性:若X->Y, 但Y不属于X, 则称X->Y为非平凡依赖,否则为平凡依赖。
若X->Y, 则称X为决定元素。
若X->Y,Y->X, 则记做X←>Y若Y不函数依赖于X, 记做X不函数决定Y在关系模式R中,如果X->Y,并且对于X的任意一个真子集X` 都有X` 不函数决定Y,则称Y对X完全函数依赖,记做X__f__Y若X->Y,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记做X__p___Y若X—>Y(Y不包含于X),Y不函数决定X,Y函数决定Z,则称Z 对X传递函数依赖。
把关系模式表示为R<U,F>,其中U是一组属性,F是属性组U上的一组数据依赖,当且仅当U上的一个关系r满足F时,r称为关系模式R<U,F>的一个关系。
1.22 函数依赖的逻辑蕴含设R<U,F>是一个关系模式,X,Y是U中的属性组,若在R<U,F>的任何一个满足F中函数依赖的关系r上,都有函数依赖X->Y成立,则称F逻辑蕴含X->Y。
(ps:即是函数依赖组隐含决定的其他函数依赖关系)如关系模式R<U,F>中为F所逻辑蕴含的函数依赖的全体称作F的闭包,记做F+ .1.23 码设K为关系模式R<U,F>中的属性或属性组,若K->U在F闭包中,而找不到K 的任何一个真子集K` ,能使K`->U在F闭包中,则称K为关系模式R的候选码,当候选码多于一个时,选定其中一个做主码。
12-15第7章_关系数据库规范化理论复习题【最新精选】
第7章关系规范化理论一、单项选择题1.关系规范化中的删除操作异常是指①,插入操作异常是指②。
A.不该删除的数据被删除 B.不该插入的数据被插入C.应该删除的数据未被删除 D.应该插入的数据未被插入答案:①A ②D2.设计性能较优的关系模式称为规范化,规范化主要的理论依据是。
A.关系规范化理论 B.关系运算理论C.关系代数理论 D.数理逻辑答案:A3.规范化理论是关系数据库进行逻辑设计的理论依据。
根据这个理论,关系数据库中的关系必须满足:其每一属性都是。
A.互不相关的 B.不可分解的C.长度可变的 D.互相关联的答案:B4.关系数据库规范化是为解决关系数据库中问题而引入的。
A.插入、删除和数据冗余 B.提高查询速度C.减少数据操作的复杂性 D.保证数据的安全性和完整性答案:A5.规范化过程主要为克服数据库逻辑结构中的插入异常,删除异常以及的缺陷。
A.数据的不一致性 B.结构不合理C.冗余度大 D.数据丢失答案:C6.当关系模式R(A,B)已属于3NF,下列说法中是正确的。
A.它一定消除了插入和删除异常 B.仍存在一定的插入和删除异常C.一定属于BCNF D.A和C都是答案:B7. 关系模式1NF是指_________。
A. 不存在传递依赖现象B. 不存在部分依赖现象C.不存在非主属性 D. 不存在组合属性答案:D8. 关系模式中2NF是指_______。
A.满足1NF且不存在非主属性对关键字的传递依赖现象B.满足1NF且不存在非主属性对关键字部分依赖现象C.满足1NF且不存在非主属性D.满足1NF且不存在组合属性答案:B9. 关系模式中3NF是指___________。
A.满足2NF且不存在非主属性对关键字的传递依赖现象B.满足2NF且不存在非主属性对关键字部分依赖现象C.满足2NF且不存在非主属性D.满足2NF且不存在组合属性答案:A10.关系模型中的关系模式至少是。
A.1NF B.2NF C.3NF D.BCNF答案:A11.关系模式中,满足2NF的模式,。
关系数据库规范化理论
Neijiang Normal University
Principle and application of database system
5. 最小函数依赖集
定义 如果函数依赖集F满足下列条件,则称F为一个极小 函数依赖集。亦称为最小依赖集或最小覆盖。 (1) F中任一函数依赖的右部仅含有一个属性。 (2) F中不存在这样的函数依赖X→A,使得F与F-{X→A} 等价。 (3) F中不存在这样的函数依赖X→A, X有真子集Z使得 F-{X→A}∪{Z→A}与F等价。
Neijiang Normal University
*
Principle and application of database system
7.1 函数依赖
假设学校教务的数据库模式用一个单一的关系模式STC来表 示,则该关系模式的属性集合为:
U ={学号,班级名称,班主任,课程编号,成绩} 现实世界的已知事实(语义):
1.Armstrong公理系统
关系模式R <U,F >来说有以下的推理规则:
A1.自反律(Reflexivity):若Y X U,则X →Y为F所 蕴含。
A2.增广律(Augmentation):若X→Y为F所蕴含,且Z U,则XZ→YZ为F所蕴含。
A3.传递律(Transitivity):若X→Y及Y→Z为F所蕴含, 则X→Z为F所蕴含。
7.1 函数依赖
完全函数依赖与部分函数依赖: 在R(U)中,如果X→Y,并且对于X的任何一个真子集X’,都
有X’ Y, 则称Y对X完全函数依赖,记作 X F Y。 若X→Y,但Y不完全函数依赖于X,则称Y对X部分函数依
赖,记作X P Y。
Neijiang Normal University
第7章 关系数据库规范化
若R∈3NF,则R不一定∈BCNF
பைடு நூலகம்
BCN F
例: C(cid,CNAME,Pcid)
cid是唯一的码,且没有任何属性对cid部分依赖或传 递依赖,所以C∈3NF。
cid是C中唯一的决定因素,所以C∈BCNF。
第七章 关系数据库规范化理论
➢1 问题的提出:从数据库逻辑设计中如何构造一个好 的数据库模式这一问题出发,阐明了关系规范化 理论研究的实际背景。
➢2 规范化理论:讨论各种范式及可能存在的插入、 删除等毛病,并直观地描述解决办法。
问题的提出
数据依赖对关系模式的影响
例:建立一个描述学校的数据库:
学生的学号(sid)、所在系(dept) 系主任姓名(Mname)、课程名(Cname) 成绩(Grade)
(sid, cid) → cid
函数依赖
三、完全函数依赖与部分函数依赖
定义7.3 在关系模式R(U)中,
如果X→Y,并且对于X的任何一个真子集X’,都有X’ Y, 则称Y完全函数依赖于X,记作 X f Y。
若X→Y,但Y不完全函数依赖于X,则称Y部分函数依赖于 X,记作X P Y。 例: 在关系SC(sid, cid, Grade)中
Sloc
SL的码为sid
SL存在的问题:
插入异常 、删除异常、数据冗余度大、修改复杂
原因:
Sloc传递函数依赖于sid,即SL中存在非主属性对码
3NF
3NF的定义 定义6.8 若关系模式R∈2NF,R<U,F> 中若不存
在这样的码X、属性组Y及非主属性Z(Z Y),使 得X→Y,(Y→X),Y→Z 成立,即R中任一非主属性 都不传递函数依赖于码,则称R <U,F> ∈3NF。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
删去了。 即在删除一行时,删除了关于两个实体的数据。
第7章 关系数据库规范化理论
7.1.2 解决方法
上述现象的产生,是由于关系模式不合理。 如果一个关系中,存储了两个或两个以上实体的数 据,一般应将它分解为多个关系,使每个关系只有一个实 体。 将表 7 -1 分解为两个模式表达: 职工级别(姓名, 级别),级别工资(级别,工资),如表 7 -2、 表 7 -3 所 示。
数依赖。 如职称与部门之间即如此。
第7章 关系数据库规范化理论
关系模式学生课程属性间的函数依赖:
学生课程(学生号,课程号,成绩,教师,教师办公室) 该关系中,成绩要由学生号和课程号共同确定,但教 师和教师办公室由课程号决定, 关系中包含了以下四种 函数依赖关系:
(学生号,课程号)→成绩; 课程号→教师;
那么,什么样的关系模式需要分解? 分解关系模
式的理论依据又是什么? 分解后能完全消除上述三 种问题吗?回答这些问题需要理论的指导。 下面将 加以讨论。
第7章 关系数据库规范化理论
7.2 函数依赖
7.2.1 属性间的关系 前面章节讲到客观世界的事务间有着错综复杂的联 系。 实体间的联系:实体与实体之间的联系; 实体内部各属性间的联系。
第7章 关系数据库规范化理论
定义 3 设有两个关系模式R和S,X是R的属性或属性 组,并且X不是R的码,但X是S的码(或与S的码意义相 同),则称X是R的外部码(Foreign Key),简称外码。 设有如下两个关系模式:
职工(职工号 ,姓名,性别,职称,部门号) 部门(部门号 ,部门名,电话,负责人) 其中部门号不是职工表的码,但是部门表的码,所以 部门号在职工表中称为外码。 关系间的联系可通过同时存在于两个或多个关系中 的主码和外码的取值来建立。 主码和外部码提供了一个表示关系间联系的途径。
· 关系模式中,最简单的情况,单个属性是码,称为单码 (Single Key); 最极端的情况,整个属性组是码,称为全码(All―Key)。
第7章 关系数据库规范化理论
有关演员、 制片公司、 电影的关系模式如下:
签约(演员名,制片公司名,电影名)
该关系模式反映了某个演员为某部电影与某制片 公司的签约情况。 由于一个制片公司可以为一部电影 和多个演员签约,一个演员可以和多个制片公司签约饰 演多部电影中的角色,一部电影可由不同的制片公司制 作。 所以此关系模式的码为(演员名,制片公司名,电影 名),即全码。
姓名 级别 工资
周诚
刘老师 陈头
10
10 7
6500
6500 6800
胡院
任老师 犀利哥
8
11 11
6650
6300 6300
第7章 关系数据库规范化理论
7.1.1 存在的问题
1. 数据冗余度大 表 7 -1 中,工资是从级别推导出的,但却重复存放。 数据在数据库中的重复存放称为数据冗余。 冗余度大, 不仅浪费存储空间,重要的是在对数据进行修改时,又易
第7章 关系数据库规范化理论
表 7 -2 职工级别
姓名 周诚 级别 10
表 7 -3 级别工资 级别 10 7 工资 6500 6800
刘老师
陈头 胡院 任老师 犀利哥10Biblioteka 8 8 11 78
11
6650
6300
第7章 关系数据库规范化理论
改进后,有如下好处:
(1) 数据量减少 设有n个职工,m个工资级别,则表 7 -1 有3n个数据,表 7 -2 和表 7 -3 共有2n+2m个数据,显然后者的数据量要少。 (2) 表达能力强
个姓名,一个姓名也可决定唯一的职工号。
设X、 Y是关系R的两个属性(集)。 如果对于X 中的任一具体值,Y中至多有一个值与之对应,且反之亦
然,则称X、 Y两属性间是一对一关系。
第7章 关系数据库规范化理论
2. 一对多关系(1∶m)
职工模式中,职工号和职称间是一对多关系。一个 职工号只对应一种职称(如胡一民只能对应工程师), 但一种职称却可对应多个职工号(如工程师可对应多 名职工)。 设X、Y是关系R的两个属性(集)。如果对于X中 的任一具体值,Y中至多有一个值与之对应,而Y中的一 个值却可以和X中的n个值(n≥0)相对应,则称Y对X是
第7章 关系数据库规范化理论
看关系模式:
学生课程(学生号,课程号,成绩,教师,教师办公室) 关系中包含的四种函数依赖为: (学生号,课程号)→成绩; 课程号→教师; 课程号→教师办公室;教师→教师办公室
其中,课程号是决定因素,但它不是唯一的。 因为它
能决定教师和教师办公室,但不能决定属性成绩。 但决 定因素(学生号,课程号)除了能决定成绩外,当然也能 决定教师和教师办公室,所以它是唯一的。 关系的码应取(学生号,课程号)。
第7章 关系数据库规范化理论
函数依赖性是一个与数据有关的事物规则的概念。 如果属性B函数依赖于属性A,那么,若知道了A的值,则 完全可以找到B的值。 这并不是说可以导算出B 的值, 而是逻辑上只能存在一个B 的值。
例如,在人这个实体中,如果知道某人的唯一标识符, 如身份证号,则可以得到此人的性别、 身高、 职业等信 息,所有这些信息都依赖于确认此人的唯一标识符。 通过非主属性如年龄,无法确定此人的身高 从关系数据库的角度:身高不依赖于年龄。 意味着码 是实体实例的唯一标识符。 因此,在以人为实体来讨论 依赖性时,如果已经知道是哪个人,则身高、 体重等等就 都知道了。 码指示了实体中的某个具体实例。
则称属性Y函数依赖于属性X。
或者说,属性X函数决定属性Y,记作X→Y。 其中X 叫决定因素,Y叫被决定因素。
第7章 关系数据库规范化理论
此定义可简单表述为: 如果属性X的值决定属性Y 的值,那么属性Y函数依赖于属性X。 换一种说法是,如 果知道X的值,就可以获得Y的值。 (1) 若Y函数不依赖于X,记作X→Y。
第7章 关系数据库规范化理论
7.3 关系模式的规范化
7.3.1 非规范化的关系 当一个关系中的所有分量都是不可分的数据项时,该关系是规范化 的。 表 7 -4 具有组合数据项,表 7 -5 具有多值数据项,因此都不是规范化 的表。
工号 姓名 职 系名 系办 学历 毕业
称
001 陈头 教 软件
公地
501 本科
在数据库建模(E-R)中主要讨论了前一类联系,现
在讨论第二类联系。
第7章 关系数据库规范化理论
属性间的联系可分为以下三类:
1. 一对一关系(1∶1) 以职工模式为例: 职工(职工号,姓名,职称,部 门),如果该企业(或单位)中职工无重名,则属性职工 号与姓名之间是1∶1关系。 一个职工号唯一地决定一
一对多关系。
第7章 关系数据库规范化理论
3. 多对多关系(m∶m)
在职工模式中,职称和部门之间是多对多关系。 一 种职称可分布在多个部门中(如每一个部门中均可有 工程师),而一个部门中也可有多个职称。 设X、 Y是关系R的两个属性(集)。 如果对于X 中的任一具体值,Y中有m(m≥0)个值与之对应,而Y中 的一个值也可以和X中的n个值(n≥0)相对应,则称Y对 X是多对多关系。
Dependency,简称MVD)和连接依赖(Join Dependency, 简称JD),其中最重要的是函数依赖和多值依赖。
第7章 关系数据库规范化理论
7.2.2 函数依赖
函数依赖是属性之间的一种联系。 假设给定一个 属性的值,就可以唯一确定(查到)另一个属性的值。 例如,知道职工号的值,可以得出其对应的职称的值。 如 果这种情况成立, 就可以说职称函数依赖于职工号。 定义 1: 所谓函数依赖是指在关系R中,X、 Y为R 的两个属性或属性组,如果对于R的所有关系r都存在: 对于X的每一个具体值,Y都只有一个具体值与之对应,
年份
80
授
002 周诚 讲
工程
数字 516
研究生
本科
83
90
师
媒体
第7章 关系数据库规范化理论
7.3.2 第一范式(1NF)
定义 4 如果关系模式R中属性具有原子性(不可 分 ) , 则 R 满 足 第 一 范 式 , 简 称 1NF ( First Normal
Form),记作R∈1NF。
1NF是对关系的最低要求,不满足1NF的关系是非规 范化关系,如表 7 -4、 表 7 -5 所示。 非规范化关系转化为1NF的方法很简单,当然也不 是唯一的。 对表 7 -4、 表 7 -5分别进行横向和纵向展
为R的候选码(Candidate Key)。
· 若候选码多于一个,则选定其中的一个为主码 (Primary Key);
· 包含在任一候选码中的属性,叫主属性(Prime
Attribute);
第7章 关系数据库规范化理论
· 不包含在任何码中的属性称为非主属性(Nonprime
Attribute)或非码属性(Non―key Attribute);
(2) 若X→Y,Y→X,记作XY。
前面讨论的属性间的三种关系,并不是每一种关系 中都存在函数依赖。
第7章 关系数据库规范化理论
(1) 如果两属性集X、Y间是1∶1关系,则存在函数依
赖: XY。 如职工关系模式中,如果不允许同名职
工存在,则有: 职工号姓名。 (2) 如果两属性集X、Y间是1∶m关系,则存在函数 依赖: X→Y。 如: 职工号→职称,职工号→部门。 (3) 如果两属性集X、Y间是m∶n关系,则不存在函
表 7 -1 中无法进入的信息(如9级工资),而在采用改进
后的两个模式表达时则可加入;当删除职工犀利哥时,也不 会丢失7级工资信息。 (3) 修改方便 改进后,修改某一级别工资时只要修改一处。
第7章 关系数据库规范化理论
改进后的关系模式存在另外一个问题,当查询某