ch04_3 关系模型的基本理论.docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ch04_3 关系模型的基本理论

第4章 关系模型的基本理论 4.3 关系数据库的规范化方法 4.3.3 函数依赖与范式 一、1NF(第一范式) 定义:若关系模式R的每一个分量是不可再分的数据项,则R1NF。 理解:关系R消除了行合并和列合并的情况后,则成为1NF。 举例: 学生综合信息表 毛病: ① 数据冗余大:每当有学生选一门课程时,表中重复出现该学生全部信息和所在学院信息,实际上有些信息只需存储一次就够了。 ② 修改麻烦:数据冗余大必然造成修改麻烦,例如学一改换了学院,从计算机学院调到经管学院,则需从整个关系中逐一找到其对应的元组进行修改,若漏改一处则造成数据矛盾。 ③ 插入异常:本表的关键字是由学号和课程名组合而成的,两者取值都不允许是空值。这样,若有一新学生来报道。会由于他没有选修任何一门课程而无法将其信息插入表中,这样就形成了插入异常。 ④ 删除异常:插入异常的反面就是删除异常。在表中,若删除学三,则整个元组不复存在,连同经管学院的院长是李四这一信息也会一并删掉,这样会引起信息丢失。 原因:表不够规范,即限制太少,造成表中存放的信息太杂,其依赖关系为: 完全函数依赖:(学号,课程名)→成绩。 部分函数依赖:学号→姓名,学院 传递函数依赖:学号→学院→ 院长 非关键字为决定因素:任课教师→ 课程名 改进:消除同时存在于一个关系中属性间不同的依赖情况,也就是使一个关系表示的信息单纯一些。 二、2NF(第二范式) 定义:若R1NF,且每一个非主属性完全函数依赖于码,则R2NF。 理解:当1NF消除了非主属性对码的部分函数依赖,则成为2NF。 分解:将部分函数依赖单独提取出来,把一个1NF表无损分解为2个2NF表。注:所谓无损是无损连接和保持依赖。下例将学生综合信息表分解为学生学院信息表和学生成绩任课教师表。 学生学院信息表 学生成绩任课教师表 毛病: ① 数据冗余大:计算机学院及张三重复了二次。 ② 修改麻烦:若计算机学院院长更换了,刚必须重复修改每个计算机学院学生的信息,若漏改一处则造成数据矛盾。 ③ 插入异常:如果新开设一个学院,会因为没有招生而不能插入相应的信息。 ④ 删除异常:若删除学三,则整个元组不复存在,连同经管学院方面的信息一并删掉,这样会引起信息丢失。 原因:学生信息表中存在传递函数依赖。 三、3NF(第三范式) 定义:若R2NF,且每一个非主属性都不传递依赖于码,则R3NF。 理解:当2NF消除了非主属性对码的传递函数依赖,则成为3NF。 分解:将传递函数依赖单独提取出来,把一个2NF表无损分解为2个3NF表。下例将学生学院信息表分解为学生信息表和学院信息表。 学生信息表 学院信息表 毛病: ① 数据冗余大:张华任英语老师这一信息重复了二次。 ② 修改麻烦:若张华所带的英语课程更换老师,刚必须重复修改其所班级每个学生对应的任课教师的名字,若漏改一处则造成数据矛盾。 ③ 插入异常:。如果新来了一个英语老师,会因为没有学生选课而不能插入相应的信息。 ④ 删除异常:若删除02号的高等数学成绩,则整个元组不复存在,连同马军是高等数学的任课教师的信息一并删掉,这样会引起信息丢失。 原因:学生成绩表中存在作为非主码的“任课教师”是决定因素。 四、BCNF 定义:若R3NF,且关系中每个决定因素都是码,则RBCNF。 理解:当3NF消除了非主属性作为决定因素的函数依赖,则成为BCNF,或者说删除了非主属性之间的函数依赖,则成为BCNF。 分解:将非主属性间的函数依赖单独提取出来,把一个3NF表无损分解为2个BCNF表。下列将学生成绩任课教师表分解为学生成绩表和任课教师表 学生成绩表 任课教师表 4.3.4 模式分解 一、模式分解的原则 所谓模式分解就是将一个关系模式分解成若干个模式,分解后的模式具有下面三个特征: ① 分解后的模式均为高一级的模式。 ② 分解后关系中的数据不会丢失,即分解后的关系再经连接后能恢复到原来的关系,这叫无损连接。 ③ 分解后关系中的函数依赖不会丢失,这叫依赖保持。 二、模式分解的步骤 ① 确定关系的属性集和依赖集。 ② 找出候选码。 A. 找出所有的左属性集(只出现在依赖左边的属性),所有的右属性集(只出现在依赖右边的属性),所有的左右属性集(既出现在左边也出现在右边的属性),所有非左非右属性集(既不出现在左边也不出现在右边的属性)。 B. 找出候选码:看左属性是否可以做为唯一个候选码(检验左属性是否可以决定所有其它属性),如果不行,再与左右属性集中的每一个属性联合起来,看是否可以做为候选码(如果左右属性集中的属性不只一个,就可能有多个候选码),如果有非左非右属性,在候选码中要加这些属性。 ③ 多步分解,达到B

文档评论(0)

jdy261842 + 关注
实名认证
文档贡献者

分享好文档!

1亿VIP精品文档

相关文档