关系模式的规范化设计

合集下载

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值有一对一联系;

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

第7章 关系数据库规范化理论
20
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的外部码

第3章 关系模式设计理论

第3章 关系模式设计理论

• 4.模式分解的缺点
• (1)分解后,检索操作需要做笛卡尔积或连接操作,将付出时间 代价。 • (2)有泛关系假设时,连接可能产生寄生元组,即损失了信息; 在无泛关系假设时,可能存在悬挂元组,有可能不存在泛关系。
3.3 关系模式的分解特性
• 4.无损分解的测试方法
• 算法3:有关系模式R=A1…An,F是R上成立的函数依赖集,ρ ={R1,…,Rk}是R的一个分解。判断其是否为无损分解。
数据库系统原理
第3章 关系模式设计理论
第3章 关系模式设计理论
• 3.1 关系模式的设计准则
• 3.2 函数依赖 • 3.3 关系模式的分解特性
• 3.4 范式
•Байду номын сангаас3.5 多值依赖和第四范式
3.1 关系模式的设计准则
• 关系数据库的规范化理论最早是由关系数据库的创始人 E.F.Codd提出的,后经许多专家学者进一步深入的研究 和发现,形成了一整套有关关系数据库设计的理论。 • 在该理论出现以前,层次和网状数据库设计知识遵循其模 型本身固有的原则,而无具体的理论依据,带有一定盲目 性,可能在以后的运行和使用中发生许多与想不到的问题。
3.1 关系模式的设计准则
• 2.关系模式的非形式化设计准则
• 1.关系模式的设计应尽可能只包含有直接联系的属性,不要包含有 间接联系的属性。 • 2.关系模式的设计应尽可能使得相应关系不出现插入、删除和修改 等操作异常现象。 • 3.关系模式的设计应尽可能使得相应关系中避免放置经常为空值的 属性。 • 4.关系模式的设计应尽可能使得关系的等值连接在主键和外键的属 性上进行,并且保证连接以后不会生成额外的元组。
• (1)G中每个FD的右边都是单属性; • (2)G中没有冗余的FD,即G中不存在这样的函数依赖XY,使得G{XY}与G等价; • (3)G中每个FD的左边没有冗余的属性,即G中不存在这样的函数依 赖XY,X有真子集W使得G-{XY}∪{WY}与G等价。

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

关系数据库的规范化理论与数据库设计
记作: Sname Sdept
.
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

关系规范化理论在数据库设计中的应用

关系规范化理论在数据库设计中的应用
黼 fn a
a l l 由 o 州 衄 拿 t f岫 蛳 . b L h a J 0 陷ete 聃 t吕5 t^ ae
a d 眦a 酶 时 舶P 地a I 州 l a g 昭d 帕 七 。
1关系数据库的设计 目 . 标
在关 系数据 库中 ,一个 数据 是由 一 组 关 系模式组 成的 ,关 系数据庠 的设计 目标就 是要从各种可能的 关系模式组合 中 选取 一组关暴漠式来构成一个数据库模式 . 使我们既不必存 储不必要的重 复信 息,叉 可以方便地 获取 信息。一般而言.这样 的 数据库模式就是 好的数据 库模 式。 I : 面我 们结台一个实侧来评价数 据库 模式 设计的 好与坏 .例如有一个反映 轮船 信息 勺 微据 库、 由以下 8 个属性组成:船 号、船名 力 部件 号、揶件名 型号 重量, 量, 量 将遗8 个属性构造成一 个合适的共 系模式, 从而构造一个荧系数据库 ,典构造方法很 多。最 简单的是 .将 8个属性组成 &下关 n
等价 的关系模式来代 替原有的关 系模式 潲除数据库依赖中的不舍理部分,使得一 个 关系仪描述一 个实体或者实体间的一种 联 系.这一过程 必须在保证无捅连接性 . 保持 函数依赖的前提下进行 ,即确保 破 坏原 来的数据 .井町将分解后的关系通过 自然连接恢复成原有关系 .具体的 蜕,规 范 化的过程就是按不同的范式 ,将一个关 系模式不断分解成 多个关系模式,最终达 到一个关 系模式 只描述一个实俸或者实体 间的一种联 系的 目标 .下面结合实例来说 明如何耐关 系模式进 行规范他 。 22 1 . . 规范化为 f NF) l 规范化的第一步就是消除关 系模式 中 的非原子属性 ,例如 : 系Rf 关 系名称 , 高级 职 称人数) 中,高级职称包括 教授 和副教 授 .规 范成 为 f N l F)的方法一般是将高 级职称 人数 分为教授人数和副教授人数两

第三章 关系模式理论(简略)

第三章 关系模式理论(简略)

7
3.3 规范化理论-范式
BCNF关系模式比满足:所有非主属性对每一 个码都是完全函数依赖;所有的主属性对不包 含它的码也是完全函数依赖;没有任何属性完 全函数依赖于非码的任何一组属性。 BCNF是改进的3NF,3NF仅考虑了非主属性 对码的依赖情况,BCNF把主属性对码的依赖 情况也考虑进去了,即主属性之间是一种完全 函数依赖。 4NF和5NF属于多值依赖。(略)
9
3.4 模式分解
设有泛模式R(U) ,其分解的关系模式集合为 Ρ={R1, R2, …, Rn},且R= R1∪R2 ∪ …∪ Rn称 用Ρ代替R为关系模式分解。 无损连接:设r是R(U)的关系实例,U= A1∪ A2 ∪… ∪ An, Ρ={R1(A1), R2 (A2), …, Rn (An)} 是R的一个模式分解,如果对每一个r都有如下 投影连接变换: r= πA1(r) πA2(r) … πAn(r),则称分解Ρ 是无损连接分解。

3
3.2 函数依赖



函数依赖实际上就是关系模式上的某个属性子 集的值决定另一个属性子集的值。例如课程名 和学分是课程关系模式上的函数依赖,课程名 决定了本课程的学分。 函数依赖是语义范畴的概念,难以用推理证明 的方法确定,主要通过了解属性的现实意义来 推断。 完全函数依赖: R(U) 的X→Y,且对于X的任 何一个真子集X’,都没有X’ →Y,则称Y对X完 全函数依赖,X F Y。

1
3.1问题的提出


例如:学生修课的关系模式(姓名,宿舍,课程名, 学分,成绩),虽然只有5个属性,但明显存在问题: 1)数据冗余:若一个学生选修了多门课,那么宿舍 数据就要在表中存储多次。 2)更新异常:若学生搬动了宿舍,所有存储都要改 3)插入异常:对于一个新同学由于其没有选修课程 (不允许空值),就不能插入。 4)删除异常:如果有的同学本学期没有选课,就要 删除宿舍等全部信息。

数据库设计与应用教学资料PPT课件( 36页)

16
从1NF到3NF
一个关系只要其分量都是不可分的数据项, 就可称作规范化的关系,也称作1NF。
消除1NF关系中非主属性对候选码的部分函 数依赖,得到2NF;
消除2NF关系中非主属性对候选码的传递函 数依赖,得到3NF。
17

有一商品供应的关系模式SP(SNO,PNO,SCITY,
STATUS,PRICE,QTY)其中各属性的含义如下:
SP的侯选候选键是:(SNO,PNO) SP的非主属性为:SCITY,STATUS,PRICE,QTY 非主属性SCITY,PRICE对侯选候选键是部分函数依赖,STATUS对侯选候选键是传递 函数依赖,为除去部分函数依赖可将关系模式SP分解为: SP1(SNO,SCITY,STATUS) SP2(PNO,PRICE) SP3(SNO,PNO,QTY) 在SP1的侯选候选键是SNO,在其中存在着非主属性对侯选候选键的传递函数依赖性, 为除去传递函数依赖,可将SP1分解为: SP11(SNO,SCITY) SP12(SCITY,STATUS) 所以关系模式分解为3NF范式的结果为: SP11(SNO,SCITY) SP12(SCITY,STATUS) SP2(PNO,PRICE) SP3(SNO,PNO,QTY)
23
二、数据库设计主要阶段的任务 -概念结构设计
概念模式独立于数据库系统的逻辑结构,独立于具体的 DBMS产品,也独立于计算机系统。
概念模式是面向现实世界的数据模型
24
二、数据库设计主要阶段的任务 -逻辑结构设计
将概念设计阶段产生的概念模式变换为逻辑 模式。
数据库运行与维护阶段 数据库运行与维护是指对数据库系统实际正常运行 使用,并时时实时进行评价、调整与修改。

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

在上面的例中,关系模式: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的关系模式有如下特性:
● 每个非主属性对每个码都是完全函数依赖;
● 所有的主属性对每一个不包含它的码,也是完全函数依赖;

关系模式的分解举例


1NF
消除非主属性对码的部分函数依赖
2NF
消除非主属性对码的传递函数依赖
3NF
消除非主属性对码的部分和传递函数依赖
BCNF
消除非平凡且非函数依赖的多值依赖
4NF
消除不是由候选码所蕴涵的连接依赖
5NF
二、关系模式的分解
关系模式SL(Sno,Sdept,Sloc) 有函数依赖集: 关系模式SL(Sno,Sdept,Sloc) 有函数依赖集: Sno Sdept Sdept Sloc Sno Sloc SL∈2NF,该关系存在插入异常、删除异常、数据 2NF,该关系存在插入异常、删除异常、数据 冗余大和修改异常。因此需要分解成为更高范式 冗余大和修改异常。因此需要分解成为更高范式 的关系模式。
分解后的关系为: 第四种分解: ND Sno Sdept DL Sdept
ND(Sno,Sdept) DL(Sdept,Sloc)
04001 04002 04003 04004 04005 CS IS MA IS PH CS IS MA PH
Sloc
A B C B
NL ⋈DL
这种分解保 持了函数依 赖,也做到 了无损连接。 了无损连接。
Sno
04001 04002 04003 04004 04005
Sdept
CS IS MA CS PH
Sloc
A B C B B
Sno
04001 04002 04003 04004 04005
SD Sdept CS IS MA PH
Sloc
A B C
分解后的关系为: 第二种分解: NL Sno
NL(Sno,Sloc) DL(Sdept,Sloc)
04001 04002 04003 04004 04005

第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。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档