- 1、本文档共122页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
06关系规范化
目录;关系模式
数据依赖
关系模式的问题
;五元组 R U , D , dom , F ;三元组 R U ,F
是五元组的简化形式
在本章中常用;举例:描述学校教务的数据库;;属性组U上的一组函数依赖F:
F ={ Sno → Sdept, Sdept → Mname,
(Sno, Cno) → Grade }
;定义:通过一个关系中属性间值的相等与否体现出来的数据间的相互关系。
是现实世界属性间相互联系的抽象
是数据内在的性质
是语义的体现
举例:已知某属性A的值就可以确定另一属性B的值,即属性A制约属性B。;种类:;
冗余太大
更新异常
插入异常
删除异常
;
Student关系模式不是一个好的关系模式。
“好”的关系模式:
不会发生插入异常、删除异常、更新异常,
数据冗余应尽可能少。;解决: 模式分解;Student分解成3个关系模式;
规范化理论正是用来改造关系模式,通过分解关系模式来消除数据依赖所存在的不好性质,以解决插入异常、删除异常、更新异常和数据冗余问题。;6.2 规范化;6.2.1 函数依赖;记号:
R(U)——关系模式
U , X , Y——关系的属性集,X,Y是U的子集
r——R(U)的任意一个可能的关系;1.定义
条件 :r中不存在2个元组在X上属性值相等在Y上属性值不等
结论 :Y函数依赖于X或X函数确定Y ;3.举例 已知关系:系(系名,系负责人)
系关系中不存在这样的2个元组:系名相同,而系负责人不同。 即系名的值确定后,系负责人的值就被唯一确定了。
∴ 系名→ 系负责人 ;术语和记号:;二、完全函数依赖;
3.举例 已知关系:SC { SNO , CNO , G },{ (SNO,CNO) → G }
∵ (SNO,CNO) → G
又 ∵ SNO → G且CNO → G
∴ (SNO,CNO) G;三、部分函数依赖 ;3.举例 已知关系R {A , B , C } , {AB→ C , A→ C}
∵ (A,B) → C
又∵ A → C
∴ (A,B) C;3.举例 已知关系Student U ,F
U= {SNO , SDEPT , MNAME , CNO , GRADE } ,
F= {SNO→ SDEPT , SDEPT→ MNAME ,
(SNO, CNO) → GRADE}
∵ (SNO,CNO) → SDEPT
又∵ SNO → SDEPT
∴ (SNO,CNO) SDEPT;四、传递函??依赖;3.举例 已知关系Student U ,F
U= {SNO , SDEPT , MNAME , CNO , GRADE } ,
F= {SNO→ SDEPT , SDEPT→ MNAME ,
(SNO, CNO) → GRADE}
∵ SNO → SDEPT , SDEPT → MNAME
∴ SNO MNAME ;注:X → Y ,Y X 则X → Y 是非平凡的函数依赖 。
X → Y, Y → X 则X,Y之间是一一对应 ,即X ? Y 。
那么X出现的地方可用Y替换。 X → Y, Y → Z 就只能得到X → Z,而不是X Z。;6.2.2 码;定义:若 K U ,K为R U, F 的属性或属性组,则K为R的候选码。 ; 举例:
关系 S ( SNO , SDEPT , SAGE )
关系 SC ( SNO , CNO , G )
关系 R ( P , W , A );二、主码(Primary Key);学生(学号,姓名,性别,年龄)
课程(课程号,课程名,学分)
选修(学号,课程号,成绩);主属性集(X)——所有码中的属性构成的集合。
非主属性集(Y)——其余属性构成的集合。
Y=U - X , X U Y=U
主属性——主属性集包含的属性。
非主属性——非主属性集包含的属性。;学生(学号,姓名,性别,年龄)
课程(课程
文档评论(0)