关系模式规范化实例析解[学习].docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
标准·规范·规程 word可编辑·实用文档 标 准 规 范20XX standard 标 准 规 范 20XX standard 关系模式规范化实例析解 摘要:关系模式是关系数据库的重要组成部份,其规范化理论在整个模式设计中占有主导地位。下面我们试图采用接近课堂教学的方式给出一个完整实例,希望对初学者有所帮助。 关键词:关系模式;规范化;函数依赖;范式 众所周知,关系模式是关系数据库的重要组成部份,其好坏直接影响关系数据库的性能。而关系模式的设计必须满足一定的规范化要求,从而满足不同的范式级别。[1](P.46-52,57)在指导关系模式的设计中,规范化理论占有着主导地位,其基本思想是:消除数据依赖中不合理的部份,使各关系模式达到某种程度的分离,使一个关系仅描述一个实体或者实体间的一种联系。[2]关系模式及其规范化的理论是我们设计和优化关系模式的指南。作为一种优秀而成熟的理论,学习和实践会有一定的难度,但在因特网和相关书籍中难得有比较全面的实例,给我们学习和实践造成不便。下面,我们试图采用接近课堂教学的方式给出一个完整的析解实例,以期对初学者有所帮助。 一、实例 假设某商业集团数据库中有一关系模式R(商店编号,商品编号,数量,部门编号,负责人),如果规定: (1) 每个商店的每种商品只在一个部门销售; (2) 每个商店的每个部门只有一个负责人; (3) 每个商店的每种商品只有一个库存数量。 试回答下列问题: (1) 根据上述规定,写出关系模式R的基本函数依赖; (2) 找出关系模式R的候选关键字; (3) 试问关系模式R最高已经达到第几范式 为什么 (4) 如果R已达3NF,是否已达BCNF 若不是BCNF,将其分解为BCNF模式集。 二、预处理 为了方便,我们用代号代表每个属性: A—商店编号 B—商品编号 C—部门编号 D—数量 E—负责人 这样,有关系模式:R(U,F) U={A,B,C,D,E} 三、根据上述规定,写出关系模式R的基本函数依赖 为了消除关系模式在操作上的异常问题,优化数据模式,我们需要对关系模式进行规范化处理。而首先需要做的就是函数依赖,以便能确切地反映实体内部各属性间的联系。[2](P.经过对数据语义的分析我们得出下面的依赖关系: 1.语义:每个商店的每种商品只在一个部门销售,即已知商店和商品名称可以决定销售部门 例:东店——海尔洗衣机—— —定在家电部销售 所以得出函数依赖:AB→C 2.语义:每个商店的每个部门只有一个负责人,即已知商店和部门名称可以决定负责人 例:东店——家电部——部门经理一定是张三 所以得出函数依赖是:AC→E 3.每个商店的每种商品只有一个库存数量,即已知商店和商品名称可以决定库存数量 例:东店——海尔洗衣机——库存10台 所以得出函数依赖是:AB→D 这样:在关系模式R(U,F)中,基本函数依赖集是:F={ AB→C ,AC→E,AB→D }。 四、找出关系模式R的候选关键字 根据函数依赖和关键字的基本定义,我们可以说:只有在最小函数依赖集中才能科学、正确地寻找候选关键字。那么何为最小函数依赖集 又怎么求出F的最小函数依赖集呢 根据函数依赖的相关定理我们得知:给定函数依赖集F,如果F中每一函数依赖X-Y∈F满足:(1)X-Y的右边Y为单个属性(F为右规约的);(2)F为左规约(即F中任一函数依赖X→Y∈F的左边都不含多余属性);(3)F为非冗余的(即如果存在F的真子集F’,使得F’≡F,则称F是冗余的,否则称F是非冗余的);则称F为最小函数依赖集,或称F是正则的。每一个函数依赖都等价于一个最小函数依赖集。[3](P.150)按照上面的三个条件进行最小化处理,我们可得到一个求最小函数依赖集方法:第一步,为满足条件1,根据分解性把右侧是属性组的函数依赖分解为单属性的多个函数;第二步,为满足条件2,逐一考察最新F中的函数依赖,消除左侧冗余属性;为满足条件3,逐一考察最新F中函数依赖X-Y,检查X-Y是否被F-{X-Y}所蕴涵,如果是,则X-Y是冗余的,可以删除。[4]所以,F的所谓最小函数依赖集就是去掉了多余依赖的F。按上面提供的算法依据具体计算如下: 1.根据分解性先分解所有依赖的右边为单属性: 可以看出:F={ AB→C ,AC→E,AB→D }中所有依赖的右边已为单属性。 2.对所有依赖的左边为多属性的情况,消除左侧冗余属性: 下面计算判断AB→C中有无无关属性: (1)设A→C,在F={ AB→C ,AC→E,AB→D }中计算A的闭包A+ : 首先,初始化A+ = {A};经观察,在F={ AB→C ,AC→E,AB→D }中,属性A不能“带进”任何属性。即A的闭包A+ 就是{A},也就是A+ = {A},所以AB→C中B不是无关属性

文档评论(0)

飞翔的燕子 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档