Presentation is loading. Please wait.

Presentation is loading. Please wait.

第四章关系数据库设计理论 4.1 数据依赖 4.2 范式 4.3 关系模式的规范化.

Similar presentations


Presentation on theme: "第四章关系数据库设计理论 4.1 数据依赖 4.2 范式 4.3 关系模式的规范化."— Presentation transcript:

1 第四章关系数据库设计理论 4.1 数据依赖 4.2 范式 4.3 关系模式的规范化

2 4.1 数据依赖 4.1.1 关系模式中的数据依赖 完整的关系模式的描述:R(U,D,DOM,F)
D是U的取值范围,是域的集合 DOM是属性向域映象的集合 F是属性间数据的依赖关系集合 关系模式是静态的、稳定的;关系是动态的,不同时刻关系模式中的关系可能不同,但关系都必须满足关系模式中数据依赖关系集合F指定的完整性约束 影响数据库模式设计的主要是U和F,所以一般关系模式简化为:R(U, F)

3 4.1.2 数据依赖对关系模式的影响 数据依赖有: 一个关系模式示例 该关系模式存在如下问题 : 函数依赖、多值依赖和连接依赖
U={Sno,Sdept,Mname,Cname,Grade} F={Sno->Sdept, Sdept->Mname, (Sno,Cname)->Grade} 该关系模式存在如下问题 : 数据冗余太大:系主任名字重复出现,和所有学生的所有课程成绩次数一样 更新异常:更换系主任必须修改每一个学生信息 插入异常:刚成立的系如果还没有招生就无法存储系主任信息 删除异常:某个系的学生全部毕业删除时会丢失系主任信息

4 4.1.3 相关概念 函数依赖 平凡的和非平凡的函数依赖
R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集,对于R(U)的任意一个可能的关系r,如果r中不存在两个元组w,v,使得w[X]=v[X]而w[Y]<>v[Y],称X函数决定Y,或Y函数依赖于X,记X->Y 平凡的和非平凡的函数依赖 关系模式R(U), X和Y是U的子集,如果X->Y,且YX,则称X->Y是非平凡的函数依赖,否则称平凡的函数依赖,我们讨论的都是非平凡的函数依赖

5 完全函数依赖和部分函数依赖 传递函数依赖 码的重新定义
关系模式R(U),如果X Y,且对于任意的X的真子集X’都有X’ \ Y,则称Y完全函数依赖于X,记X f Y。反之则Y不完全依赖于X,称Y部分依赖于X,记X P Y 传递函数依赖 关系模式R(U),如果X->Y,Y->Z,且Y \ X,则称Z传递函数依赖于X,记X t Z 码的重新定义 关系模式R(U,F),K为属性组合,若K f U,则K是一个候选码。

6 4.2 范式 范式定义 数据依赖满足某种条件级别的关系模式的集合 目前共6种范式: 1NF2NF3NFBCNF4NF5NF

7 例:SCL(S#, SN, SA, CLS, MON, C#, CN, CRD, GR) 属于1NF它有以下问题:
数据冗余大,如MON,CRD等 插入异常,当无课程时学生信息无法插入 删除异常,当某个学生的选课信息全部删除时无法保留学生基本信息

8 SCL存在的函数依赖关系 (S#,C#) f GR (S#,C#) P SN S# f SN (S#,C#) P SA S# f SA
(S#,C#) P CLS S# f CLS (S#,C#) P CN C# f CN (S#,C#) P CRD C# f CRD CLS MON S# t MON

9 例:S_L(S#,SN,SA,CLS,MON) C(C#,CN,CRD) S_C(S#,C#,GR)都属于2NF 存在问题:
如果一个关系模式R1NF,并且每一非主属性都完全依赖于R的码,则R2NF。 显然码只包含一个属性的R如果是1NF,则必是2NF 例:S_L(S#,SN,SA,CLS,MON) C(C#,CN,CRD) S_C(S#,C#,GR)都属于2NF 存在问题: 数据冗余大,如MON 插入异常,无学生信息无法插入班长信息 删除异常,当学生的信息删除无法保存班长

10 函数依赖关系: S# f SA S# f CLS S# f SN CLS MON S# t MON C# f CN C# f CRD
(S#,C#) f GR

11 4.2.3 第三范式(3NF) 3NF定义 例:S(S#,SN,SA,CLS) L(CLS,MON) C(C#,CN,CRD)
如果一个关系模式R中不存在非主属性对码的传递依赖,则R3NF 例:S(S#,SN,SA,CLS) L(CLS,MON) C(C#,CN,CRD) S_C(S#,C#,GR)都属于3NF

12 例:STC(S,T,C) S学生 T教师 C课程 (S,C)->T (S,T)->C T->C 所以STC不是BCNF
4.2.4 BC范式(BCNF) BCNF定义 如果一个关系模式R(U,F)1NF,对R中的任意一个非平凡的函数依赖X->Y,X都含有候选码,则RBCNF 例:STC(S,T,C) S学生 T教师 C课程 (S,C)->T (S,T)->C T->C 所以STC不是BCNF 分解为:ST(S,T),TC(T,C) 则都属于BCNF

13 4.2.5 第四范式(4NF) 多值依赖 关系模式R(U)属性集U,X、Y和Z是U不相交的子集,且Z=U-X-Y,若关系模式R的任一关系r对于X的一个给定值,存在Y的一组值与之对应,且Y的这一组值与Z无关,称Y多值依赖于X,记X->->Y。当Z非空时称非平凡的多值依赖 4NF定义 如果一个关系模式R(U,F)1NF,对R中的任意一个非平凡的多值依赖X->->Y,X都含有候选码,则R4NF 第四范式一般尽量将一个3元关系分解为两个2元关系,若不能在不丢失信息的前提下分解则称已达4NF。

14 例: CTX(C,T,X) C 课程, T 教师, X 参考书 候选码:(C,T,X) C->->T,C->->X,C不是候选码,故CTX不属于4NF 分解为CT(C,T),CX(C,X),则都满足4NF

15 4.2.6 第五范式(5NF) 定义 关系模式R,其属性集U,X1,X Xn分别为U的子集,Xi=U,如果对于R的每一个关系r都有r=Xi,则称连接依赖(JD)在关系模式R上成立,记为*(X1,X2,......Xn),若某个Xi就是R,称平凡的连接依赖。 如果一个关系模式R(U,F)1NF,对R中的任意一个连接依赖都都由候选码蕴涵,则R5NF 第五范式建议,最好把现有的三元关系分解为3个二元关系,但某些情况下不可以再分解,则称已处于5NF,若某个关系所有的链接依赖要么是平凡的,要么是每个分解都蕴含候选键,则称满足5NF。

16 4.3 关系模式的规范化 4.3.1 关系模式的规范化步骤 1NF 消除决定属性集非码的非平凡函数依赖 消除非主属性对码的部分函数依赖关系
消除非主属性对码的传递函数依赖关系 3NF 消除主属性对码的部分函数依赖关系 BCNF 消除非平凡的多值依赖 4NF 消除非候选码蕴涵的连接依赖 5NF

17 4.3.2 关系模式的分解 关系模式的规范化 通过对关系模式的分解来实现的 把低级别的关系模式分解为高级别的关系模式
分解不唯一,只有保证分解后的关系模式与原关系模式等价,才有意义

18 例: 关系模式SL(Sno,Sdept,Sloc) Sno->Sdept,Sdept->Sloc, Sno->Sloc
95001 CS A 95002 IS B 95003 MA C 95004 95005 PH

19 分解方法一: SN(Sno)、SD(Sdept)、SO(Sloc) SN、SD、SO都是很高的范式,属于5NF,但分解后 丢失很多信息 SN
95001 CS A 95002 IS B 95003 MA C 95004 95005 PH

20 分解方法二: NL(Sno,Sloc)、DL(Sdept,Sloc) 分解后的关系 NL和DL的自然连接结果 NL DL Sno Sloc
95001 A CS 95002 B IS 95003 C MA 95004 PH 95005 Sno Sdept Sloc 95001 CS A 95002 IS B PH 95003 MA C 95004 95005

21 定义 NL和DL的自然连接结果 多出三个元组,而实际上无法确定哪个是多余的,因此丢失了信息
如果关系模式R(U,F)在分解为若干个关系模式Ri(Ui,Fi)后(其中U=Ui),若Ri的自然连接和原关系相等,则称该分解具有无损连接性

22 分解方法三 ND(Sno,Sdept)、NL(Sno,Sloc) 分解后关系 ND NL Sno Sdept Sloc 95001 CS A
95002 IS B 95003 MA C 95004 95005 PH

23 NL和DL的自然连接结果 和原关系相同,但当某个学生转系后需要修改两个表,如95005转为CS系后需PH->CS,B->A。原因是分解时丢失了Sdept->Sloc的函数依赖关系。 定义 如果在分解过程中原函数依赖F被每个分解后的某个关系函数依赖Fi所逻辑蕴涵,则称该分解是保持函数依赖的

24 分解方法四 ND(Sno,Sdept)、DL(Sdept,Sloc) 分解后关系
95001 CS A 95002 IS B 95003 MA C 95004 PH 95005 NL和DL的自然连接结果和原关系相同,该分解是保持函数依赖的

25 衡量关系分解有两个标准 关系分解理论定理 是否具有无损连接性 是否保持了函数依赖 若要求关系模式分解具有无损连接性,则分解一定可达到4NF
若要求关系模式分解保持函数依赖,则分解一定可达到3NF,但不一定达到BCNF 若要求关系模式分解既具有无损连接性,又保持函数依赖,则分解一定可达到3NF,但不一定达到BCNF

26 谢 谢

27 例:关系AFP AFP AF FP AP A F P a1 f1 p1 p2 f2 a2 f3 A F a1 f1 f2 a2 f3 F P

28 只有AF、FP、AP 三个关系连接才可以得到AFP,因此称 AFP具有连接依赖JD*(A,F,P)

29 第四范式总是尽量将一个3元关系分解为两个2元关系
4NF S001 S002 S003 班级 教师 学生 Class1 S001 S002 S003 Class1 班级 学生 Class1 S001 S002 S003 班级 教师 Class1 非4NF 第四范式总是尽量将一个3元关系分解为两个2元关系

30 第五范式总是尽力把三元关系分解为3个二元关系
5NF 教师 学生 S001 S002 教师 学生 课程 S001 语文 S002 数学 S002 语文 教师 课程 语文 数学 第五范式总是尽力把三元关系分解为3个二元关系 非5NF 教师 学生 S001 S002 教师 课程 语文 数学 学生 课程 S001 语文 S002 数学


Download ppt "第四章关系数据库设计理论 4.1 数据依赖 4.2 范式 4.3 关系模式的规范化."

Similar presentations


Ads by Google