- 1、本文档共20页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 第3章(4)范式及无损分解 * 一.范式:2NF、3NF和BCNF 二. 其它设计考虑 * 范式:2NF、3NF和BCNF * 范式:2NF、3NF和BCNF 范式(Normal Forms) 范式的定义: 关系数据库中符合某一级别的关系模式的集合。所谓“第几范式”,是表示关系的某一种级别,R为第几范式就可以写成 R ∈ xNF 各范式之间的联系有 5NF ? 4NF ? BCNF ? 3NF ? 2NF ? 1NF 并不总是需要达到最高范式 * 范式:2NF、3NF和BCNF 实例? 例,有一个关系模式S-L-C(S#,SD,SL,C#,G),其中S#为学生的学号,SD为学生所在系,SL为学生的住处,并且每个系的学生住在同一个地方,C#为课程号,G为成绩。这里键为(S#,C#)。 函数依赖有: ? S# → SD, S# → SL, SD → SL, (S#,C#)→ G F (S#,C#)→ SD P (S#,C#)→ SL P G C# S# SL SD 图示 * 范式:2NF、3NF和BCNF 第一范式(INF) 第一范式(First Normal Form,简写为1NF) —— 如果一张表不含有多值属性(有时称为重复字段)和内部结构(比如记录类型)的列, 则称该表为第一范式 关系模式S-L-C(S#,SD,SL,C#,G)∈1NF 关系模式S-L-C存在更新异常、插入异常和删除异常 * 范式:2NF、3NF和BCNF 第二范式(2NF) 第二范式(Second Normal Form,简称2NF) —— 若R∈ INF,且每一个非主属性完全函数依赖于键,则R ∈2NF。 S-L-C: 分析:存在非主属性对键的部分函数依赖 结果:S-L-C∈1NF,但S-L-C ? 2NF 分解:将S-L-C分解为:S-L(S#,SD,SL),和S-C(S#,C#,G) G C# S# SL SD * 范式:2NF、3NF和BCNF 第二范式(2NF) S-C S-L 分析: S-C的键为(S#,C#), S-L的键为S#,不存 在非主属性对键的部分函数依赖。 结果: S-C ∈ 2NF ; S-L ∈ 2NF 问题: G C# S# S# SL SD S-C和S-L中消除了1NF中的某些更新异常,但仍然存在更新异常 * 范式:2NF、3NF和BCNF 第二范式(2NF) 在S-L(S#,SD,SL)和S-C(S#,C#,G)中 结论:2NF可以消除一些1NF中存在的更新异常, 但不能彻底消除更新异常 ☆ 一个学生修很多课程 ☆ 一个学生转系 ☆ 插入一个尚未选课的学生信息 ☆ 一个学生只选修了一门课,但现在决定不选了 ☆ 一个系有很多学生,且同系学生住在一个地方 ☆ 一个学生转系 ☆ 一个新系创建但新生尚未注册 ☆ 一个系所有学生毕业了 √ √ √ √ × × × × * 范式:2NF、3NF和BCNF 第三范式(3NF) 第三范式(Third Normal Form,简称3NF) —— 若R∈2NF,且每一个非主属性不传递函数依赖于键,则R∈3NF。 S-C S-L 分析: S-C的键为(S#,C#),不存在非主属性对键的传递函数依赖。S-L的键为S#,存在非主属性对键的传递函数依赖S#→SL。 结果: S-C ? 3NF ; S-L ? 3NF 分解:将S-L分解为:S-D(S#,SD)和 D-L(SD,SL) G C# S# S# SL SD * 范式:2NF、3NF和BCNF 第三范式(3NF) S-D D-L 分析: S-D的键为S#, D-L的键为SD,不存在非主属性对键的传递函数依赖。 结果: S-D∈3NF ; D-L∈3NF 问题: SL SD S-D和D-L中消除了前面的更新异常了吗? 3NF存在更新异常吗? S# SD * 范式:2NF、3NF和BCNF 第三范式(3NF) 在S-D(S#,SD)和 D-L(SD,SL)中: ☆ 一个系有很多学生,且同系学生住在一个地方 ☆ 一个学生转系 ☆ 一个新系创建但新生尚未注册 ☆ 一个系所有学生毕业了 √ √ √ √ 结论:3NF可以消除一些2NF中存在的更新异常, 3NF不能彻底消除更新异常 * 范式:2NF、3NF和BCNF Boyce-Codd范式(BCNF) Boyce-Codd范式(Boyce-Codd Normal Fo
文档评论(0)