数据库关系模式详细说解.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库关系模式详细说解

转 数据库关系模式的范式(详细解说) 2007-01-24 10:19 关系模式的范式 ????主要有4种范式,1NF,2NF,3NF,BCNF,按从左至右的顺序一种比一种要求更严格。要符合某一种范式必须也满足它前边的所有范式。一般项目的数据库设计达到3NF就可以了,而且可根据具体情况适当增加冗余,不必教条地遵守所谓规范。 简单而言,1NF就是要求一张表里只放相互关联的字段,一个字段里只放一条信息,这只是最基本的要求。至于2NF,3NF,BCNF虽然描述的内容不同,但表现在数据特点上很相似,就好比在说不要为了向某厂订购一批货记下来,就把的厂的面积、电话等都放在同一张表里,而应该用两张表,以尽量避免浪费数据存储空间。因为和同一个厂可能会交易好几次,但没必要每次交易都记录全部的信息。? 从范式所允许的函数依赖方面进行比较,四种范式之间的关联如下图所示。 ? ? 以下对每种范式作一一说明。 2.3.4.2??第一范式 在关系模式R中的每一个具体关系r中,如果每个属性值?都是不可再分的最小数据单位,则称R是第一范式的关系。 例:如职工号,姓名,电话号码组成一个表(一个人可能有一个办公室电话?和一个家里电话号码)?规范成为1NF有三种方法:? 一是重复存储职工号和姓名。这样,关键字只能是电话号码。? 二是职工号为关键字,电话号码分为单位电话和住宅电话两个属性? 三是职工号为关键字,但强制每条记录只能有一个电话号码。? 以上三个方法,第一种方法最不可取,按实际情况选取后两种情况。? 2.3.4.3??第二范式 关系的第二范式(2NF)定义:?如果关系模式R为1NF,并且R中的每一个非主属性都完全依赖于R的某个候选关键字,则称R是第二范式的,简记为2NF。 【例2.40】?设有关系模式R(学号S#,课程号C#,成绩G,任课教师TN,教师专长TS),基于R的函数依赖集F={(S#,C#)→G,C#→TN,TN→TS},判断R是否为2NF。 解: (1)?容易看出,关系模式R是1NF。因为R符合关系的定义,R的所有属性值都是不可再分的原子值。 R是否为2NF,应根据2NF的定义来判断。?????????????????????????????????????????? 首先要确定关系模式R中各属性间的函数依赖情况。如果没有直接给出R的函数依赖集,就要按照语义把它确定下来。在本例中,已直接给出基于R的函数依赖集F,我们可使用阿氏推理规则并结合下面介绍的方法,进一步确定R中哪些是主属性、哪些是非主属性、侯选关键字由哪些属性构成。 方法①??写出函数依赖集F中的各个函数依赖以帮助分析。方法①的特点是直接。 F={(S#,C#)→G, C#→TN, TN→TS } ????方法②??用有向图表示属性间函数依赖,结点表示属性,方框包含若干个结点表示属性组合,有向箭头表示函数依赖。本例的函数依赖图如图2.9所示。方法②的特点是直观。 ? 图2.9?函数依赖图例子 ????方法③??把关系模式R与函数依赖集F结合起来,属性组合用下划线(或上划线)表示,函数依赖用有向箭头表示。本例的函数依赖简图如图2.10所示。方法③的特点是简单。 ? 图2.10函数依赖简图例子 ????用阿氏推理规则由F可推出:(S#,C#)→{S#,C#,G,TN,TS},即属性组合(S#,C#)是R的候选关键字(R只有这一个候选键)。(S#,C#)的一个值可惟一标识R中的一个元组(并且没有多余的属性)。 在R中,S#,C#是主属性;其余的属性G,TN,TS为非主属性。 借助上面的图,我们可以看到,非主属性G对键是完全依赖:(S#,C#)→G。但非主属性TN,TS对键是部分依赖(他们仅依赖于键的真子集C#)。由于R中存在非主属性对候选键的部分依赖,所以关系模式R不是2NF。 R中存在非主属性对候选键的部分依赖,将会引起数据冗余、数据操作异常等问题。可以把关系R无损联接地分解成两个2NF的关系模式: ρ={R1,R2},R1={S#.C#,G},R2={C#,TN,TS}。 【例2.41】选课关系?SCI(SNO,CNO,GRADE,CREDIT)其中SNO为学号,?CNO为课程号,GRADEGE?为成绩,CREDIT?为学分。? 由以上条件,关键字为组合关键字(SNO,CNO)? 在应用中使用以上关系模式有以下问题:? a.数据冗余,假设同一门课由40个学生选修,学分就?重复40次。? b.更新异常,若调整了某课程的学分,相应的元组CREDIT值都要更新,有可能会出现同一门课学分不同。? c.插入异常,如计划开新课,由于没人选修,没有学号关键字,只能等有人选修才能把课程和学分存入。? d.删除异常,若学生已经结业,从当前数据库删除选修记录,就会可能连课程号及学分完全从数据库中删除,则此

文档评论(0)

3774384 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档