第4章 关系数据库规范化理论

合集下载

DBS第四章

DBS第四章
X→Y∧W→Z X∪(W-Y)→YZ
第四章 关系数据库的规范化设计 4.2 函数依赖
例1:设有关系模式R(A,B,C,D,E),其上的 函
数依赖集F={AB→CD, A→B, D→E}. 求证F必蕴涵A→E。
证明:∵A→B (已知) ∴A→AB (扩展律) ∵AB→CD (已知) ∴A→CD (传递律) ∴A→C,A→D (分解规则) ∵D→E (已知) ∴A→E (传递律)
X→Ai(i=1,2,…,n)中Ai的集合为X的属性闭包
记为
X
+ F
,即:
X
+ F
={Ai|AiU,且X→Ai在F+中}
第四章 关系数据库的规范化设计 4.2 函数依赖
定理4.4: 函数依赖X→Y能从F推出的充分必要条件是
YX+F ; (能用推理规则从F推出的所有X→Y的Y都在X +F中。
第四章 关系数据库的规范化设计 4.2 函数依赖
3
0003 C107
4
第四章 关系数据库的规范化设计 4.1 关系模式的设计问题
分析: (1)出现冗余和各种异常的原因
事物及事物的各个属性之间有一定的联系、约束 关系模式应尽量准确地反映这种内在的语义 不应把关系不密切或具有“排它”性的属性集中 (2)数据之间的联系→数据依赖→函数依赖(多对一)√
S#,
G
F={(S#, , C,#→T#} T#→TD C#
C#)→G
T#
T D
第四章 关系数据库的规范化设计
4.2 函数依赖
例2:设关系模式R(ABCD),在R的关系中,属性 值
间具有联系:
B→A
A值与B值有一对多联系; C值与D值有一对一联系;

数据库原理 第四章关系数据库理论期末习题与答案

数据库原理 第四章关系数据库理论期末习题与答案

1、设计性能较优的关系模式称为规范化,规范化主要的理论依据是()。

A.关系规范化理论B.关系运算理论C.关系代数理论D.数理逻辑正确答案:A2、下列关于规范化理论各项中正确的是()。

A.对于一个关系模式来说,规范化越深越好B.满足第二范式的关系模式一定满足第一范式C.第一范式要求---非主码属性完全函数依赖关键字D.规范化一般是通过分解各个关系模式实现的,但有时也有合并正确答案:B3、X→Y能从推理规则导出的充分必要条件是()。

A.B.C.D.正确答案:D4、两个函数依赖集F和G等价的充分必要条件是()。

A.B.C.D.5、设有关系模式R(A,B,C,D,E),函数依赖集F={A→B,B→C,C→D,D→A},ρ={AB,BC,AD}是R上的一个分解,那么分解ρ相对于F()。

A.既是无损连接分解,又是保持函数依赖的分解B.是无损连接分解,但不是保持函数依赖的分解C.不是无损连接分解,但是保持函数依赖的分解D.既不是无损连接分解,也不是保持函数依赖的分解正确答案:D6、关系模式中,满足2NF的模式()。

A.可能是1NFB.必定是1NFC.必定是3NFD.必定是BCNF正确答案:B7、不能使一个关系从第一范式转化为第二范式的条件是()。

A.每一个非主属性都完全函数依赖于主码B.每一个非主属性都部分函数依赖于主码C.关系中没有非主属性D.主码由一个属性构成正确答案:B二、判断题1、关系模式的分解是唯一的。

(错)2、一个关系模式属于BC范式,它一定属于第三范式。

(对)3、在关系模式R(U,F)中,如果X→Y,且存在X的真子集X1,使X1→Y,称函数依赖X→Y为完全函数依赖。

(错)4、函数依赖集F={A→B,B→C,C→A,C→B,A→C,BC→A},它的最小函数依赖集Fmin={A→B,B→C,A→C}。

(错)三、填空题1、被函数依赖集F逻辑蕴涵的函数依赖的全体构成的集合,称为。

正确答案:函数依赖集F的闭包2、设有关系模式R(A,B,C,D,M,N),函数依赖集F={N→D,M→D,D→B,BC→D,DC→N},R的候选码为。

关系数据库的规范化理论与数据库设计

关系数据库的规范化理论与数据库设计

关系数据库的规范化理论与数据库设计在当今数字化的时代,数据成为了企业和组织的重要资产,而关系数据库作为存储和管理数据的重要手段,其设计的合理性直接影响着数据的质量、完整性和可用性。

关系数据库的规范化理论是指导数据库设计的重要原则,它能够帮助我们避免数据冗余、更新异常等问题,从而提高数据库的性能和可靠性。

首先,我们来了解一下关系数据库的基本概念。

关系数据库是由一组二维表组成的,每张表都有一个唯一的表名,表中的每一行称为一个元组,代表一个实体;每一列称为一个属性,代表实体的一个特征。

通过在不同的表之间建立关联,我们可以实现数据的查询和操作。

那么,什么是规范化理论呢?规范化理论是一种用于设计关系数据库的方法和原则,其目的是通过对关系模式进行分解和优化,消除数据冗余和更新异常,确保数据的一致性和完整性。

规范化理论主要包括第一范式(1NF)、第二范式(2NF)、第三范式(3NF)等。

第一范式要求表中的每个属性都是不可再分的原子值。

例如,如果有一个“联系人信息”表,其中包含“地址”这个属性,如果地址又分为“省”“市”“区”“详细地址”等子属性,那么就不满足第一范式,需要将其拆分成多个属性。

第二范式要求在满足第一范式的基础上,每个非主属性都完全依赖于主键。

举个例子,如果有一个“订单”表,主键是“订单号”,而“客户姓名”和“客户地址”等非主属性只依赖于“客户编号”,而不是“订单号”,那么就不满足第二范式,需要将其拆分成两个表,一个是“订单”表,一个是“客户”表。

第三范式要求在满足第二范式的基础上,每个非主属性都不传递依赖于主键。

比如说,有一个“员工”表,主键是“员工编号”,“部门名称”依赖于“部门编号”,而“部门编号”又依赖于“员工编号”,这就不满足第三范式,需要将“部门名称”这个属性移到“部门”表中。

规范化理论在数据库设计中具有重要的意义。

通过规范化设计,可以减少数据冗余,节省存储空间。

想象一下,如果一个客户的信息在多个表中重复存储,不仅浪费空间,而且当客户信息发生变化时,需要在多个地方进行更新,容易导致数据不一致。

关系数据库规范化理论

关系数据库规范化理论
数据一致性
规范化可以消除数据冗余,确保每个数据只在数据库中存储一次,从而提高数据的一致性。
第一范式 (1NF)
表结构
第一范式要求每个数据表都应具有原子性,即每 个表中的列不能再进一步分解。
主键
每个表必须具有一个唯一标识记录的主键,用于 保证数据的唯一性和关联性。
第二范式 (2NF)
1 函数依赖
数据表中出现函数依赖时,就需要进行第二范式的规范化。避免冗余数据。
关系数据库规范化理论
规范化是设计关系数据库中的一项重要理论,它能使数据存储结构更加合理、 高效。通过划分数据表,规范化能够消除数据冗余、提高数据一致性和查询 性能。
规范化定义
目的明确
规范化通过一定的规则将一个大的数据表拆分成多个小的数据表,以实现数据的高内聚和低 耦合。
数据准确性
规范化能确保数据的准确性,因为数据被划分为更小的范围,每个数据表只存储特定类型的 数据。
3 学生管理系统
拆分学生、课程、成绩等信息,确保学生信息的一致性和教务管理的高效性。
规范化的局限性及未来研究方向
局限性
规范化可能导致表结构复杂,加重查询和维护 的工作量。某些情况下,冗余数据可能是必要 的。
未Hale Waihona Puke 研究方向未来的研究可以探索如何在规范化的基础上平 衡数据一致性和查询性能,以及结合其他技术 实现更灵活的数据存储。
优点 数据一致性提高 数据冗余减少 数据更新更容易
缺点 可能会导致过度分解数据表,增加查询复杂性 可能引起频繁的表连接操作,影响查询性能 增加了设计和维护的复杂性
规范化的应用举例
1 在线购物系统
将用户、订单、商品等信息拆分为多个表,确保数据的一致性和查询效率。

数据库课件第4章关系数据库(RDB)规范化设计理论

数据库课件第4章关系数据库(RDB)规范化设计理论


3. 完全函数依赖与部分函数依赖
完全函数依赖: 在关系模式R(U)中,如果X→Y,并且对于X的任何一 个真子集X′,都有X′ Y,则称Y完全函数依赖于X, 记作X f Y。 部分函数依赖: 若X→Y,但Y不完全函数依赖于X,则称Y部分函数依 p Y。 赖于X,记作X



例8: 学生(学号,姓名,所在系,系主任姓名,课程号,成绩) 学生关系模式存在的部分函数依赖: p (学号,课程号) 姓名 p 所在系 (学号,课程号) p (学号,课程号) 系主任姓名
教师姓 名
李林 78号
住址
课程号
C1
课程名
N1
李林
李林 汪佳 吴仪
78号
78号 59号 79号
C2
C3 C4 C5
N2
N3 N4 N5
师帆
76号
C6
N6

⑷当执行数据插入时,DB中的数据不能产生插入 异常现象 所谓“插入异常”是指希望插入的信息由于不 能满足数据完整性的某种要求而不能正常地被 插入到DB中的异常问题。 比如:上例中插入一个尚未安排授课的新进教师 信息. 原因: 因多种信息混合放在一个表中,可能造成因一 种信息被捆绑在其他信息上而产生的信息之间 相互依附存储的问题,使得信息不能独立插入。
第4章
关系数据库(RDB)规范化理论
4.1 关系模式规范化的必要性 4.2 数值依赖 4.3 范式与规范化 、关系分解原则






RDB规范化理论的目的是要设计“好的”RDB模式。要设计 好的关系模式,必须是关系满足一定的约束条件,此约束 形成了规范。 范式(Normal Form):衡量DB规范的层次或深度,DB规范化 层次由范式来决定。简记作NF. 根据关系模式满足的不同性质和规范化的程度,将关系模 式分为第一范式(1NF)、第二范式(2NF)、第三范式(3NF)、 BC范式、第四范式(4NF)、第五范式(5NF),范式越高规范 化程度越高。 规范化:低级关系模式通过模式分解转换为若干高级范式 的关系模式集合的过程。 规范化是在RDB中减少数据冗余的过程。

关系数据库规范化理论

关系数据库规范化理论

第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

第4章 关系数据库理论1
若X(X∈R)是L类属性,则X必为R的任一候选键的
成员;
若X(X∈R)是L类属性,且X+包含了R的全部属性,
则X必为R的唯一候选键;
若X(X∈R)是R类属性,则X不在任何候选键中; 若X(X∈R)是N类属性,则X包含在R的任一候选键
中;
若X(X∈R)是R的N类和L类属性组成的属性集,且
} while (result有所改变) ;
4.2.7 候选键的求解理论和算法

关键码的定义
定义4.7 设关系模式R的属性集是U,X是U的一
个子集,F是在R上成立的一个函数依赖集。
如果
X→U 在R上成立(即X→U在F+中),那么称X 是R的一个超键。 如果 X→U 在R上成立,但对X的任一真子集X'都有 f X'→U不成立(即X'→U不在F+中,或者X→U),那么 称X是R上的一个候选键。
SNo 决定函数(SN,Age,Dept) (SN,Age,Dept)函数依赖于 SNo
定义4.1 设关系模式R(U,F),U是属性全集,F是 U上的函数依赖集,X和Y是U的子集,如果对于R(U) 的仸意一个可能的关系r,对于X的每一个具体值, Y都有唯一的具体值与之对应,则称X决定函数Y, 或Y函数依赖于X,记作X→Y。我们称X为决定因素, Y为依赖因素。当Y不函数依赖于X时,记作:X→Y。 当X→Y且Y→X时,则记作:X Y。
SN Age Dept MN
SNO
Score
f
CNO
P
P
图4.4 SCD中的函数依赖关系
由此可见,在SCD中,既存在完全函数依赖,又存在部 分函数依赖和传递函数依赖。
4.4.2 第二范式

第四章 数据库规范化理论(第二节)

第四章 数据库规范化理论(第二节)
在上面的例中,关系模式:COURSE(C#, TITLE, LNAME, ROOM#)
其中存在非主属性ROOM#对码的传递依赖, 即:
C#→LNAME, LNAME→ROOM# 因此COURSE不属于3NF。
将COURSE分解为:COURSE1(C#, TITLE, LNAME) 和 LECTURE(LNAME, ROOM#),
则关系模式COURSE1和LECTURE中都没有传递函数依赖,
因此 COURSE1 和 LECTURE 都属于3NF。
16
第四章 数据库规范化理论
第二节、 范式理论
三、 第三范式(3NF)
至此,关系模式REPORT分解为下列3个属于3NF的一组关系模式:
REPORT1 (S#, C#, MARKS) COURSE1 (C#, TITLE, LNAME) LECTURE (LNAME, ROOM#)
非第一范式的例子如表4-4,可以转换为第一范式如表4-5。
表4-4
研究生
导师
专业
第一个研究生 第二个研究生
表4-5
导师 专业 第一个研究生 第二个研究生
几乎所有的商用关系DBMS都要求关系为第一范式
4
第四章 数据库规范化理论
第二节、 范式理论
一、 第一范式(1NF)
如果关系仅仅满足第一范式的条件是不够的,可能会存在更新异常。
定义:关系模式R∈1NF,若X→Y,且Y⊈ X 时,X必含有候选码,则R∈BCNF。
即 在关系模式R中,若R的每一个决定因素都包含候选码,则R∈BCNF。
由BCNF的定义可知,一个满足BCNF的关系模式有如下特性:
● 每个非主属性对每个码都是完全函数依赖;
● 所有的主属性对每一个不包含它的码,也是完全函数依赖;

第4章 关系规范化理论

第4章 关系规范化理论
f f f
t
4.3
范式和规范化方法
4.3
范式和规范化方法
范式(Normal Forms,NF)的概念是E.F.Codd在
1971年提出的。1971—1972年,E.F.Codd提出了1NF、
2NF与3NF。1974年,Codd与Boyce又共同提出了 BCNF。1976年,Fagin提出了4NF,后来又有人提出了 5NF。在这些范式中,最重要的是3NF和BCNF,它们是 进行规范化的主要目标,基本保证了防止冗余问题和异常
【例4-7】 分析关系模式T(Tno, Tname, Tsex)中,各属性 分别代表教师号、教师姓名、性别。
解:T只有一个主键Tno,没有任何属性对Tno部分依赖或
传递依赖,所以T↔3NF。同时Tno是T中唯一的决定因素, 所以T↔BCNF。
4.3.4 BCNF
【例4-8】 分析关系模式STC(S, T, C)中,S表示学生,T表 示教师,C表示课程。每一教师只教一门课。
【例4-5】 分解例4-4中的关系S1,使其满足3NF的要求。
解:在关系S1中,院长(Dean)传递函数依赖于学号(Sno),即Sno Dean,所以S1不属于3NF。
将关系S1(Sno, Sname, Ssex, Sdept, Dean)进一步分解,消除传递依赖。 分解步骤如下:
(1)对于不是候选键的每个决定因素,从关系中删除依赖它的所有属性。 在关系S1中,学院(Sdept)不是候选键,但却是决定因素,从关系S1 中删除依赖它的属性院长(Dean),得到新的关系S11(Sno, Sname, Ssex, Sdept)。 (2)新建一个关系,该关系中包含原关系中不是候选键的决定因素以及 所有依赖该决定因素的属性,并将决定因素作为该关系的主键。对于关系 S1,新建的关系为S12(Sdept, Dean),主键为Sdept。 关系S1分解后消除了传递函数依赖,因此S11和S12都满足3NF。

关系数据库规范化理论

关系数据库规范化理论

第四章关系数据库规范化理论一个关系数据库模式由一组关系模式组成,一个关系模式由一组属性名组成。

关系数据库设计,就是如何把已给定的相互关联的一组属性名分组,并把每一组属性名组成关系的问题。

然而,属性的分组不是唯一的,不同的分组对应着不同的数据库应用系统,它们的效率往往相差很远。

为了使数据库设计合理可靠,简单实用,长期以来,形成了关系数据库设计的理论——规范化理论。

4.1 关系规范化的作用规范化,就是用形式更为简洁,结构更加规范的关系模式取代原有关系模式的过程。

如果将两个或两个以上实体的数据存放在一个表里,就会出现下列三个问题: 数据冗余度大插入异常删除异常所谓数据冗余,就是相同数据在数据库中多次重复存放的现象。

数据冗余不仅会浪费存储空间,而且可能造成数据的不一致性。

插入异常是指,当在不规范的数据表中插入数据时,由于实体完整性约束要求主码不能为空的限制,而使有用数据无法插入的情况。

删除异常是指,当不规范的数据表中某条需要删除的元组中包含有一部分有用数据时,就会出现删除困难。

(以P98工资表为例)解决上述三个问题的方法,就是将不规范的关系分解成为多个关系,使得每个关系中只包含一个实体的数据。

(讲例子解)当然,改进后的关系模式也存在另一问题,当查询职工工资时需要将两个关系连接后方能查询,而关系连接的代价也是很大的。

那么,什么样的关系需要分解?分解关系模式的理论依据又是什么?分解完后能否完全消除上述三个问题?回答这些问题需要理论指导。

下面,将加以讨论:4.2 函数依赖实体间的联系有两类:一类是实体与实体之间联系;另一类是实体内部各属性间的联系。

数据库建模一章中讨论的是前一类,在这里我们将学习第二类。

和第一类一样,实体内部各属性间的联系也分为1:1、1:n和m:n三类:例:职工(职工号,姓名,身份证号码,职称,部门)1、一对一关系(1:1)设X、Y是关系R的两个属性(集)。

如果对于X中的任一具体值,Y中至多有一个值与之对应,反之,对于Y中的任一具体值,X中也至多有一个值与之对应,则称X、Y两属性间是一对一关系。

关系数据库规范化理论

关系数据库规范化理论

关系数据库规范化理论在当今数字化的时代,数据的管理和处理变得至关重要。

关系数据库作为一种广泛应用的数据存储和管理方式,其规范化理论是确保数据库设计的合理性、有效性和可靠性的重要基石。

那么,什么是关系数据库规范化理论呢?简单来说,它是一套用于设计关系数据库的原则和方法,旨在减少数据冗余、避免数据不一致性,并提高数据的完整性和存储效率。

让我们先从数据冗余这个问题说起。

想象一下,如果在一个数据库中,相同的信息被多次重复存储,这不仅会浪费存储空间,还可能导致数据更新时出现不一致的情况。

比如说,在一个学生管理系统中,如果学生的基本信息(如姓名、性别、出生日期等)在多个表中都有重复记录,当需要修改某个学生的信息时,就很容易出现有的地方改了,有的地方没改的混乱局面。

为了解决这个问题,规范化理论提出了一系列的范式,从第一范式(1NF)到第五范式(5NF),逐步提高数据库设计的质量。

第一范式要求数据表中的每个字段都应该是不可再分的原子值。

举个例子,如果有一个“地址”字段,包含了“省份、城市、区县、街道”等信息,这就不符合 1NF,应该将其拆分成多个字段,分别存储每个具体的部分。

第二范式则是在满足 1NF 的基础上,要求非主属性完全依赖于主键。

比如说,在一个订单表中,如果“订单号”是主键,而“商品名称”和“商品价格”等信息不完全依赖于“订单号”,而是还依赖于“商品编号”,那么就不符合 2NF,可能会导致数据冗余和更新异常。

第三范式进一步要求非主属性之间不存在传递依赖于主键的关系。

比如,在一个员工表中,如果“员工编号”是主键,“部门编号”依赖于“员工编号”,而“部门地址”又依赖于“部门编号”,这就存在传递依赖,不符合 3NF。

随着数据库设计的复杂度增加,还有更高阶的范式,如巴斯范式(BCNF)、第四范式(4NF)和第五范式(5NF),但在实际应用中,通常达到第三范式就能够满足大多数的需求。

规范化理论的好处是显而易见的。

关系数据库的规范化理论.ppt

关系数据库的规范化理论.ppt








4、Boyce-Codd范式(BCNF) 定义:设有关系模式R及其函数依赖集F,X和A是R的 属性集会,且 。如果只要R满足X A,X就必 包含R的一个候选关键字,则称R满足BCNF。 或:若一个关系为R(U),它是满足1NF的,当R中 不存在任何属性对候选码的传递函数依赖时,则称R 是符合BCNF的。 或:若R中的所有属性都完全直接依赖于候选码,或 说R的所有函数依赖的决定因素都是候选码。 没有任何属性完全函数依赖于非码的任何一组属性。


3、第三范式(3NF) 定义:如果一个关系模式R属于1NF,且每一个非主 属性不传递依赖于任一候选关键字,则称R满足第三 范式。
消除关系的传递函数依赖也是通过关系分解的方法来实现的。 设一个关系R(U),假定X、Y、Z 、W是U的互不相交的属性 子集,其中 X是主码,YZ是直接函数依赖(也可能包含部分函 数依赖), XZ 是传递函数依赖,则把 R(U)分解为两个关 系R1(Y,Z)和R2(X,Y,W),其中Y是R1的主码,R2的 外码,这样就消除了Z对X的传递依赖。





定义:所有被一个已知函数依赖集(F) 逻辑蕴涵的那些函数依赖的集合称为F的 闭包。 P109 如何由一个已知函数依赖集找出它的闭 包呢?1974年,Armstrong提出了用 推理方法计算闭包的一套规则,具体包 括三个推理规则和三条推论,及一定的 算法。





函数依赖的一些常用规则: 自反性: 增广性 传递性 合并规则 分解规则 伪传递性
P109—p110

实际上计算推导出函数依赖集的闭包是 一件非常繁琐复杂的事情,所以引入的 属性集闭包的概念。

关系数据模式的规范化理论

关系数据模式的规范化理论

第一范式的原则和规则
第一范式要求数据库表中的每个属性都是原子性的,不可再分解,确保数据的唯一性。
第二范式的原则和规则第二范式要数据库表中的非主键属性必须完全依赖于主键,消除了数据冗 余和更新异常。
第三范式的原则和规则
第三范式要求数据库表中的非主键属性不应相互依赖,消除了数据冗余和传递依赖。
逆范式的概念和应用
关系数据模式的规范化理论
本部分介绍关系数据模式的规范化理论,包括规范化理论的定义和关系数据 库的基本概念。
规范化理论的定义
规范化理论是数据库设计中的基本原则,用于优化数据库结构,提高数据存 储和操作的效率。
关系数据库的基本概念
关系数据库是按照关系模型组织的数据集合,具有集合、表、行和列等基本概念。
逆范式是指在某些情况下,有意将数据冗余存储在数据库中,以提高查询性 能。
规范化理论的优缺点
规范化理论的优点是提高了数据的一致性和完整性,减少了数据冗余和更新异常。缺点是增加了数据库的复杂 性和查询的复杂度。

第4章 关系规范化理论(正式)

第4章 关系规范化理论(正式)
关系规范化理论41问题的提出42函数依赖和范式43数据依赖的公理系统44关系模式的分解方法小结41规范化问题的提出411规范化理论的主要内容关系数据库的规范化理论最早是由关系数据库的创始人efcodd提出的后经许多专家学者对关系数据库理论作了深入的研究和发展形成了一整套有关关系数据库设计的理论
数据库技术及应用
例:要求设计一个研究生管理系统,包含的对 象有:研究生的学号、姓名、学院名称、院长姓 名、项目编号、项目名称、承担任务、导师姓名 等。 根据分析,可得到属性集U和属性之间的依赖关 系图。 U={学号,姓名,学院名称,院长姓名,项目 编号,项目名称,承担任务,导师姓名} 根据实际情况,这些数据有如下语义规定??
成员
职务
根据2NF的要求
任务(编号,成员,任务情况)
项目(编号,项目名称,负责人,职务)
任务
编号 任务情况 成员
项目
编号
项目名称 负责人
职务
根据3NF的要求
任务
编号 任务情况 成员
项目
项目名称
编号
负 责 人 职 务
负责人
职务
负责人
例:分析下列关系属于第几范式
学生情况: (学号,姓名,班级,年龄,宿舍,系 部,系主任,课程号,课程名,先修课 程,成绩)
由定义可以导出下列基本概念:
1、决定因素:若X →Y,则X叫做决定因素
2、互相依赖:若X →Y, Y →X, 则记作X ←→Y。 3、若Y不函数依赖于X,则记作X → Y。
在R(U)中,一个函数依赖如果满足Y X,则称此函数依赖是非平凡函数依赖,否则 称为平凡函数依赖。
学号 学生姓名
定义4.3 :平凡(非平凡)函数依赖
导师姓名
学生姓名 项目名称
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
4.4.3 无损分解的测试方法
输入:关系模式R(A1 ,A2 ,…,An),它的函数依赖集F以及分解ρ={R1 , R2,…,Rk}。 输出:确定ρ是否具有无损分解。
方法: (1)构造一个k行n列的表,第i行对应于关系模式Ri,第j列对应于属性Aj。 如果Aj∈Ri,则在第i行第j列上放符号ai,否则放符号bij。
4.3 范式和规范化
3. 第三范式(3NF)
定义12:设R是一个关系模式,R属于第三范式当且仅当R
是2NF,且每个非主属性都非传递函数依赖于主码。 由定义可知:第三范式是在第一范式的基础上消除了非主 属性对主键的部分函数依赖和传递函数依赖。 部分函数依赖和传递函数依赖是数据冗余的主要原因,第
三范式消除了很大的存储异常。
请问如何解决这些问题?
4.1 问题的提出
为了克服这些异常,将S关系分解为如下3个关系: S1(NO, NAME, SEX) S2(NO, CNO, DEGR) S3(CNO, CNAME) 主码为{NO}或简写为NO 主码为{NO, CNO} 主码为{CNO}或简写为CNO
通过SQL语言可பைடு நூலகம்查询课程信息
是否属于第一范式?
练习题:
• 下表是否可以做为关系数据库中的关系, 为什么?请进行改进。
第二范式引入
请写出函数依赖集!
• 学号→姓名,学号→系别,学号→专业
• 专业→系别,(学号,课程号)→成绩
该关系的主键是什么?
• 可以看出,该关系模式的主键是(学号,课程号),
对于非主属性:姓名,系别,专业,成绩而言,除了
例题:
有以下学生关系: 学生(学号,姓名,出生年月,系名,班号,宿舍区),主码学号。 请分析其中的函数依赖关系。
学号→姓名,学号→出生年月, 学号→班号,班号→系名,系名→宿舍区 学号→系名,系名→学号,系名→宿舍区,所以:学号→宿舍区 班号→系名,系名→班号,系名→宿舍区,所以:班号→宿舍区 学号→班号,班号→学号,班号→系名,所以:学号→系名
4.4 关系模式的分解
(2)逐个检查F中的每一个函数依赖,并修改表中的元素。其方法如下:取F 中一个函数依赖X→Y,在X的分量中寻找相同的行,然后将这些行中Y的分量
改为相同的符号,如果其中有aj,则将bij改为aj;若其中无aj,则改为bij。
(3)这样反复进行,如果发现某一行变成了al,a2,…,ak,则分解ρ具有
学号→姓名/专业
专业→系别
由第一范式转化到第三范式的过程
4. BC范式(BCNF) 定义13:对于关系模式R,若R中的所有非平凡的、完全 的函数依赖的决定因素是码,则R属于BCNF。
4.4 关系模式的分解
4.4.2 无损分解的定义和性质
1. 无损分解的概念 无损分解指的是对关系模式分解时,原关系模式下任一合 法的关系值在分解之后应能通过自然联接运算恢复起来。 定义14:设ρ ={R1,R2,…,Rk}是关系模式R<U,F>的一
t
4.2 函数依赖
4.2.2 函数依赖与属性关系 设R(U)是属性集U上的关系模式,X、Y是U的子集: • 如果X和Y之间是1∶1关系(一对一关系),则存在函数依赖X→Y和Y→X。 • 如果X和Y之间是1∶n关系(一对多关系),则存在函数依赖X→Y。 • 如果X和Y之间是m∶n关系(多对多关系),则X和Y之间不存在函数依赖。
f 因此,(NO,NO)→DEGR是完全函数依赖。 f
X,X'→Y都不成立(记
为Y→Z),则称X→Y是一个完全函数依赖。即Y函数依赖于整个X,记作
4.2 函数依赖
定义4:设X→Y是一个函数依赖,但不是完全函数依赖,则称X→Y是一个部分
p 函数依赖,或称Y函数依赖于X的某个真子集,记作X→Y。
定义5:设R(U)是一个关系模式,X,Y,Z U,如果X→Y(Y X,Y→X), \ \ t Y→Z成立,则称Z传递函数依赖于X,记为X→Z。 例如:班级(班号,专业名,系名,人数,入学年份),主码是班号。 有:班号→专业名,班号→人数,班号→入学年份,专业名→系名。 因为:班号→专业名,专业名∕班号,专业名→系名,所以,班号→系名。
一个较低范式的关系,可以通过关系的无损分解转换为若干较高级范式关系 的集合,这一过程就叫作关系规范化。
4.3 范式和规范化
4.3.2 范式的判定条件与规范化 1. 第一范式(1NF) 定义10:设R是一个关系模式,R属于第一范式当且仅当R中每一个属性A的值 域只包含原子项,即不可分割的数据项。 是否属于第一范式?
4.2 函数依赖
4.2.1 函数依赖的定义
定义1:设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意
一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的 属性值不等,则称X函数确定Y或Y函数依赖于X,记作X→Y。 例如:不存在职工号相同,但名字不同的元组。则职工号→姓名 关系S中有哪些函数依赖?
定义7:被F逻辑蕴涵的函数依赖的全体构成的集合,称为F的闭包,记为F+。
4.2 函数依赖
定义8:设F是属性集U上的一组函数依赖,X U,则属性集X关于F的闭包X定 义为X={A|A∈U且X→A可由F经Armstrong公理导出},即X={A|X→A∈F+}。
定义9:一个关系模式R(U)上的两个依赖集F和G,如果F+=G+ ,则称F和G是等 价的,记作F≡G。
4.4 关系模式的分解
4.4.4 保持函数依赖的分解
定义15:设有关系模式R,F是R的函数依赖集,Z是R的一个属性集合,则称Z 所涉及到的F+中所有函数依赖为F在Z上的投影,记为πZ(F),有: πZ(F)={x→y|x→y∈F+且xy Z}
定义16:设关系模式R的一个分解ρ={R1,R2,…,Rk},F是R的依赖集,如果 F等价于 ,则称分解ρ具有依赖保持性。
无损分解;如果F中所有函数依赖都不能再修改表中的内容,且没有发现这样
的行,则分解ρ不具有无损分解。
例题:
• 设有关系模式R(U,F),其中
• U=ABCDE,
• F={A→C,B →C,C →D,DE →C,CE →A}
• 分解为:R1(AD),R2(AB),R3(BE), R4(CDE),R5(AE) 判断是否为无损分解。
个分解,如果对于R的任一满足F的关系r都有:
则称这个分解ρ 是函数依赖集F的无损分解。
例题:
• 设有关系模式R(U),其中U={ACB},将其
分解为R1(AB),R2(AC).如下图所示。
r r1 r2
A B C 1 1 1 1 2 1
A B 1 1 1 2
A C 1 1
r
r1
r2
A B 1 1 1 2
练习题
•设有关系模式R(U),其中
U={A,B,C,D,E,G,H,P}函数依赖集
F{AB→CE,A →C,GP →B,EP →A,CDE
→P,HB →P,D →HG,ABC →PG},计算关 于F的闭包X+F。令X=DB。
4.3 范式和规范化
4.3.1 什么叫范式 满足最低要求的关系称它属于第一范式的,在此基础上又满足了某种条件, 达到第二范式标准,则称它属于第二范式的关系,如此等等,直到第五范式。
f (学号,课程号)→成绩
学号→姓名/系别/专业 专业→系别
练习题:
• 以下关系是第几范式?存在什么问题? 如何改进。
第三范式的引入
学号→姓名/系别/专业 专业→系别
出现问题如下: (1)无法正确登记一个尚未招生的系的专业设置情况; (2)如果要删除某些学生,可能会删除专业设置情况
请问:如何解决这个问题?
C 4 3
A B 1 1 1 2
A C 1 4 1 3
4.4 关系模式的分解
2. 验证无损分解的充要条件 如果R的分解为ρ={R1 ,R2},F为R所满足的函数依赖集合,则分解ρ具有无 损分解的充分必要条件为: R1∩R2 →(R1-R2) 或 R1∩R2 →(R2-R1)
4.4 关系模式的分解
F 有(学号,课程号)→成绩,同时还有: P
• (学号,课程号) →姓名 • (学号,课程号) →系别 • (学号,课程号) →专业
P P
• •
2. 第二范式(2NF) 定义11:设R是一个关系模式,R属于第二范式当且仅当R是1NF,且每个 非主属性都完全函数依赖于主码。

由定义可以知道,第二范式的实质是要从第一范式中消除非主属性对主 键的部分函数依赖。
第4章 关系数据库规范化理论
4.1 问题的提出
主 要 内 容
4.2
4.3 4.4
函数依赖
范式和规范化 关系模式的分解
4.1 问题的提出
假定有如下关系S: S(NO, NAME, SEX, CNO, CNAME, DEGR)
请问这个关系存在什么问题?
• • • • •
这个关系模式存在如下问题: (1)数据冗余 (2)不一致性 (3)插入异常(在设置主键之后,无法插入重复数据) (4)删除异常
4.2 函数依赖
由Armstrong公理可以得到以下推论。 • 自合规则:A→A。 • 分解规则:如果A→BC,则A→B且A→C。 • 合并规则:如果A→B,A→C,则A→BC。 • 复合规则:如果A→B,C→D成立,则AC→BD。
4.2 函数依赖
4.2.4 闭包及其计算
定义6:设F是关系模式R的一个函数依赖集,X,Y是R的属性子集,如果从F中 的函数依赖能够推出X→Y,则称F逻辑蕴涵X→Y。
t t t
4.2 函数依赖
4.2.3 Armstrong公理 Armstrong公理:设A、B、C、D是给定关系模式R的属性集的任意子集,并把A 和B的并集A∪B记为AB,则其推理规则可归结为3条。 • 自反律:如果B A,则A→B。这是一个平凡的函数依赖。 • 增广律:如果A→B,则AC→BC。 • 传递律:如果A→B且B→C,则A→C。
相关文档
最新文档