当前位置:文档之家› 数据库系统第五章.ppt

数据库系统第五章.ppt

若X->Y ,则X叫做决定因素。 若X->Y ,Y->X,则记作X ←→Y。 若Y不函数依赖于X,则记作X->Y 。
例:在关系S(Sno,SName,SDept,SAge)中, Sno -> SName , Sno -> SDept , Sno -> SAge
Sno:决定因素, Sno ←→ SName(若无重名)
5.11
©Silberschatz, Korth and Sudarshan
传递和直接函数依赖
定义5-3
在R(U)中,如果X->Y,(YX),Y->X,Y->Z,则
称Z对X传递函数依赖。
若不包括:Y->X , 则当Y->X时Z对X直接函数依赖。
例:在关系S(Sno,SName,SDept,SAge)中, Sno -> SDept 若每个系有唯一的一个电话号码DT,即 SDept -> DT,
上述讨论表明:
关系数据库中,关系模式设计方案可以有多个,但是并
不是任何一种关系模式设计方案都是可行的,它们之间 有“好”“坏”之分。
要设计一个“好”的关系模式方案,关键要摸清属性间
内在的语义联系,特别是依赖关系
一个好的关系数据库模式设计方案,它的每个关系中属
性一定要满足某种内在语义ቤተ መጻሕፍቲ ባይዱ件,即满足一定的规范。
第一范式(1NF):每个分量必须是不可 分的数据项。
Database System Concepts
5.8
©Silberschatz, Korth and Sudarshan
5.2 规范化
5.2.1 函数依赖
定义5-1
设有关系模式R(U),X、Y是属性集U的子集。若对于 R(U)的任一可能的关系r,r中不可能存在两个元组在X 上的属性值相等,而在Y上的属性值不等,则称X函数 决定Y或Y函数依赖于X,记作X->Y。
满足不同要求的为不同范式。满足最低要求的为 第一范式,简称1NF,以次类推。我们主要讨论 1NF,2NF,3NF,BCNF,4NF。
范式间的关系
1NF 2NF 3NF BCNF 4NF
5NF 4NF BCNF 3NF 2NF 1NF
5NF
Database System Concepts
101 A 102 B
102 5 105 5
103 C 103 C 105 D 107 E
105 4
105 3
107 3

4
缺点:
冗余度大、插入异常 删除异常、更新异常
Database System Concepts
5.4
©Silberschatz, Korth and Sudarshan
方案二
插入异常:
删除异常:
数据冗余:
更新异常:
Database System Concepts
5.6
©Silberschatz, Korth and Sudarshan
由以上分析知道,要设计一个“好”的关系模式 方案,关键是要摸清属性间的内在语义联系。
目前,属性间存在的两种依赖关系:函数依赖和多 值依赖
Database System Concepts
5.14
©Silberschatz, Korth and Sudarshan
外码
定义5-5
在R(U)中,属性或属性组X并非R的码,但X是另一个 关系模式的码,则X是R的外部码(Foreign key),也 称外码。
例:关系模式SC (Sno ,Cno ,G)
非主属性
主属性 ( Sno ,Cno )F ->( Grade)
(Sno)、(Cno)、 (Sno,Cno) 均是码
(Sno, SName)-P >(Sno,SName,SDept,SAge) (Sno, SDept)-P>(Sno,SName,SDept,SAge)
(Sno, SName), (Sno, SDept)均不是码
SNO 0001 002 003
SNANEM 王晓 李名 张华
SNO 0001 0001 0001 0002 0002 0003
CNO GRADE 101 5 102 5 103 4 103 3 105 3 107 4
SDEPT SAGE
评价
CS
18
MA
19
CS
18
CNO CNAME 101 A 102 B 103 C 105 D 107 E
5.1 问题提出
数据库中,如何构造合适的数据模式,是数据库 设计的关键问题。
例:设计一个学生数据库D,包含下列8个属性
SNO,SNAME,SDEPT,SAGE,CNO,GRADE,CNAME,PCNO
问题:
1.如何利用这些属性构造一个合适的关系模式 2.是否随便构造的关系模式都一样
Database System Concepts
Database System Concepts
5.7
©Silberschatz, Korth and Sudarshan
关系模式的表示方法
基本的关系表示方法:五元组
R<U,D,dom,F>
进行关系操作时的表示方法:二元组
R<U>
关系模式设计时:
主要考虑的是关系属性之间的联系 R<U,F>
满足第一范式
5.18
©Silberschatz, Korth and Sudarshan
分量是否需要再分,与具体应用有关。如果用 到值的一部分,则需要进一步分割。
姓名
生日
姓名

王军
68.7.10
分解
王军
68
张立
69.7.10
张立
69
李明
80.3.28
李明
80
月日 7.10 7.10 3.28
如果只是查询出生日期,则它满足1NF。
(Sno ,SName) SName是平凡的函数依赖
Database System Concepts
5.10
©Silberschatz, Korth and Sudarshan
完全和部分函数依赖
定义5-2
在R(U)中,如果X->Y ,并且对于X的任何一个真子集
X’,都有X’->Y,则称Y对X完全函数依赖。记作:
• Sno、 Cno不是SC的关键字, •他们分别是关系模式S和C的关键字 •Sno 、Cno是关系模式SC的外码。
Database System Concepts
5.15
©Silberschatz, Korth and Sudarshan
5.2.3 范式
范式:是对关系的不同数据依赖程度的要求。
Sno -> DT,即:DT对Sno传递函数依赖。
Database System Concepts
5.12
©Silberschatz, Korth and Sudarshan
5.2.2 码
定义5-4
用函数依赖的概念
在R(U)中都有K U ,且满足K-F>U,则称K为R的候
选码(Candidate key)或关键字。
范式。
Database System Concepts
5.17
©Silberschatz, Korth and Sudarshan
1NF特点
关系中每一分量不可再分 即不能以集合、序列等值作为属性值。
S#
C#
S1 {C1,C2,C3}
不满足第一范式
S#
C#
S1
C1
S1
C2
S1
C3
Database System Concepts
5.3
©Silberschatz, Korth and Sudarshan
•问题2
方案一
SNO 0001 0001 0001 002 002 003
SNAME 王晓 王晓 王晓 李名 李名 张华
SDEPT SAGE
CS
18
CS
18
CS
18
MA
19
MA
19
CS
18
CNO CNAME PCNO GRADE
非主属性有两种,一种完全依赖于码,一种部分依赖于码。
将S分解为:SC(Sno , Cno , Grade) 非主属性完全
显然, (Sno,Cno)为码。但不是2NF。
Database System Concepts
5.20
©Silberschatz, Korth and Sudarshan
存在的几个问题
插入异常:如果学生没有选课,关于他的个人信息
及所在系的信息就无法插入。
删除异常:如果删除学生的选课信息,则有关他的
如果查询两人生日是否相同,则只比较月、日,需要将生日分解,
就不满足1NF。
Database System Concepts
5.19
©Silberschatz, Korth and Sudarshan
5.2.4 第二范式
定义
设有关系模式R(U) ,若R 1NF,且每一个非主属性完 全函数依赖于码,则R 2NF。
PCNO 102 105 105 107 -
冗余度
仅有少量冗余,大大 少于方案一中的模式
插入异常
不会产生插入异常
删除异常
也不会产生删除异常
更新异常
不存在
Database System Concepts
5.5
©Silberschatz, Korth and Sudarshan
关系数据库设计中存在的问题
相关主题