- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
都是不可分的数据项,它就是规范化的关系,但这只是最基
* * 一个关系只要其分量都是不可分的数据项,它就是规范化的关系,但这只是最基本的规范化。规范化程度可心有6个不同级别,即6个范式。一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式集合,这种过程就叫关系模式的规范化。 4.3.1 关系模式规范化的步骤 在4.2中已经看到,规范化程度过低的关系不一定能够很好地描述现实世界,可能会存在插入异常、删除异常、修改复杂、数据冗余等问题,解决方法就是对其进行规范化,转换成高级范式。 规范化的基本思想是逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”,即采用“一事一地”的模式设计原则,让一个关系描述一个概念、一个实体或者实体间的一种联系。若多于一个概念就把它“分离”出去。因此所谓规范化实质上是概念的单一化。 关系模式规范化的基本步骤如图4-10所示。 ①对1NF关系进行投影,消除原关系中非主属性对码的函数依赖,将1NF关系转换为若干个2NF关系。 ②对2NF关系进行投影,消除原关系中非主属性对码的传递函数依赖,从而产生一组3NF关系。 4.3 关系模式的规范化 ③对3NF关系进行投影,消除原关系中主属性对码的部分函数依赖和传递函数依赖(也就是说,使决定属性都成为投影的候选码),得到一组BCNF关系。 1NF ↓ 消除非主属性对码的部分函数依赖 消除决定属性 2NF 集非码的非平 ↓ 消除非主属性对码的传递函数依赖 凡函数依赖 3NF ↓ 消除主属性对码的部分和传递函数依赖 BCNF ↓ 消除非平凡且非函数依赖的多值依赖 4NF ↓ 消除不是由候选码所蕴含的连接依赖 5NF 图4-10 规范化 以上三步也可以合并为一步:对原关系进行投影,消除决定属性不是候选码的任何函数依赖。 ④对BCNF关系进行投影,消除原关系中非平凡函数依赖的多值依赖,从而产生一组4NF关系。 ⑤对4NF关系进行投影,消除原关系中不是由候选码所蕴含的连接依赖,即可得到一组5NF关系。5NF是最终范式。 诚然,规范化程度过低的关系可能会存在插入异常、删除异常、修改复杂、数据冗余等问题,需要对其进行规范化,转换成高级范式。但这并不意味着规范化程度越高的关系模式就越好。在设计数据库模式结构时,必须对现实世界的实际情况和用户应用需求作进一步分析,确定一个合适的、能够反映现实世界的模式。这也就是说,上面的规范化步骤可以在其中任何一步终止。 4.3.2 关系模式的分解 关系模式的规范化过程是通过对关系模式的分解来实现的,但是把低一级的关系模式分解为若干个高一级的关系模式的方法并不是唯一的。在这些分解方法中,只有能够保证分解后的关系模式与原关系模式等价的方法才有意义。 将一个关系模式RU,F分解为若干个关系模式R1U1 ,F1,R2U2 ,F2,…,RnUn ,Fn(其中U=U1∪U2∪…∪Un ,且不存在 Ui ?Uj ,Ri为F在Ui上的投影),意味着相应地将存储在一个二维表t中的数据分散以若干个二维表t1 ,t2 , …,tn中去(其中ti是t在Ui上的投影)。 例如,对于2.2.2节例子中的关系模式SL(Sno,sdept,Sloc),SL中有下列函数依赖: Sno→Sdept Sdept→Sloc Sno→Sloc 我们已经知道SL∈2NF,该关系模式存在插入异常、删除异常、
原创力文档


文档评论(0)