第5章:关系数据库设计理论.ppt

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

2NF(续) 采用投影分解法将一个1NF的关系分解为多个2NF的关系,可以在一定程度上减轻原1NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。并不能完全消除关系模式中的各种异常情况和数据冗余。第二范式的关系模式可能还不是最优模式,因此还需要对此关系模式进一步进行分解。 3NF 3NF的定义 定义5.8 关系模式RU,F 中若不存在这样的码X、属性组Y及非主属性Z(Z ? Y), 使得X→Y,Y → X,Y→Z,成立,则称RU,F ∈ 3NF。 若R∈3NF,则R的每一个非主属性既不部分函数依赖于候选码也不传递函数依赖于候选码。 如果R∈3NF,则R也是2NF。 3NF(续) 关系模式P没有传递依赖,而关系模式D因为有:医生号→科室,科室→科室位置,得到科室位置传递依赖于医生号,从前面分析可知,当关系模式中存在传递函数依赖时,这个关系模式仍然有操作异常,因此关系模式P∈3NF,而关系模式D∈3NF,对于D还需要进行进一步分解,使其成为3NF关系。 3NF(续) 去掉传递函数依赖关系的分解过程为: 对于不是候选码的每个决定因子,从关系模式中删去依赖于它的所有属性 新建一个关系模式,新关系模式中包含在原关系模式中所有依赖于该决定因子的属性 将决定因子作为新关系模式的主码 3NF(续) D分解后的关系模式为: D-A(医生号,职称,科室),主码为医生号。 D-O(科室,科室位置),主码为科室。 对D-A,有:医生号→职称,医生号→科室,因此D-A是3NF。 对D-O,有:科室→科室位置,因此D-O也是3NF。 3NF(续) 由于模式投影分解之后,使原来在一个关系模式中表达的信息被分解在多个关系模式中,因此,为了能够表达分解之前的关系的语义,在分解完之后除了要标识主码之外,还要标识相应的外码。 采用投影分解法将一个2NF的关系分解为多个3NF的关系,可以在一定程度上解决原2NF关系中存在的插入异常、删除异常、数据冗余度大、修改复杂等问题。 将一个2NF关系分解为多个3NF的关系后,并不能完全消除关系模式中的各种异常情况和数据冗余。 BC范式(BCNF) 定义5.9 设关系模式RU,F∈1NF,如果对于R的每个函数依赖X→Y,若Y不属于X,则X必含有候选码,那么R∈BCNF。 若R∈BCNF 每一个决定属性集(因素)都包含(候选)码 R中的所有属性(主,非主属性)都完全函数依赖于码 R∈3NF(证明) 若R∈3NF 则 R不一定∈BCNF BCNF的关系模式所具有的性质 所有非主属性都完全函数依赖于每个候选码 所有主属性都完全函数依赖于每个不包含它的候选码 没有任何属性完全函数依赖于非码的任何一组属性 BCNF 例:关系模式R(CITY,DISTRICT,ZIP),三个属性分别代表“城市”、“区”和“邮政编码”。假定有依赖关系集{(CITY,DISTRICT)→ZIP,ZIP→CITY},显然,R中的关键字有(CITY,DISTRICT)和(DISTRICT,ZIP)。 6.2.6 BCNF BCNF R∈3NF? (CITY,DISTRICT)和(DISTRICT,ZIP)都可以作为候选码? CITY,DISTRICT,ZIP都是主属性 R∈BCNF ZIP→CITY}, ZIP是决定属性集, ZIP不是候选码 BCNF 解决方法:将R分解为二个关系模式: CD ( CITY,DISTRICT ) ∈ BCNF TJ(ZIP,CITY)∈ BCNF 没有任何属性对码的部分函数依赖和传递函数依赖 3NF与BCNF的关系 如果关系模式R∈BCNF,必定有R∈3NF 如果R∈3NF,且R只有一个候选码,则R必属于BCNF。 下面是可能出现违反BCNF的两种情况: 关系中包含两个(或更多)复合候选码 候选码有重叠,通常至少有一个重叠属性 BCNF 通常情况下我们可以把任何不符合BCNF的关系分解成符合BCNF的关系,但在任何情况下都将所有关系转化为BCNF并不一定是最佳的 在面对实际具体的应用问题时,到底是应该将关系规范到3NF,还是规范到BCNF呢?这主要由3NF的关系所产生的操作异常与丢失的函数依赖关系所造成的影响哪个比较重要而决定的 5.3 多值依赖与第四范式(4NF) 例 有关系C-S-D(Chemist,Pharmacist,Medicine ),其中Chemist表示药房,Pharmacist表示配药师,Medicine表示药品 ,假设有若干药房,每一个药房有若干名配药师,每个药房有若干种药品,每个配药师根据处方给病人配发各种药品。 C-S-D关系表 Chemist Pharmacist Medicine 中药房 张强 川贝 中

文档评论(0)

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

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

1亿VIP精品文档

相关文档