网站大量收购闲置独家精品文档,联系QQ:2885784924

数据库范式设计实验报告.doc

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

中国海洋大学实验报告年月日

姓名系年级2012级专业计算机学号科目数据库题目通过实验体会关系数据理论,函数依赖以及范式。

实验要求

设计一个关系,使之满足2NF而不满足3NF;

设计一个关系,使之满足3NF而不满足BCNF;

详细描述关系的语义,分析关系中存在的函数依赖;

使用商用数据库SQLServer设计实现,录入数据;

体会数据冗余、增加异常、删除异常、修改复杂。

实验环境

Windows7系统下MicrosoftSQLServer

实验步骤

首先要弄清楚2NF、3NF、BCNF的定义与区别,再开始设计;

满足2NF而不满足3NF,则代表了这个关系消除了非主属性对码的部分依赖,但没有消除非主属性对码的传递函数依赖,那么就可以开始设计了:设这个关系为R1,设u={Sno,Sclass,Cmon},Sno代表学生的学号,Sclass代表班号,Cmon代表班主任的工号,且存在这样的函数依赖:Sno-Sclass,Sclass-Cmon,Sno-Cmon;Sno为主码,Sno为主属性,Sclass、Cmon为非主属性。容易知道,Sclass与Cmon的真子集都无法函数确定Sno,所以非主属性Sclass、Cmon对Sno完全函数依赖,所以满足2NF;而由于Sno-Sclass(Sclass不是Sno的子集,也不能函数确定Sno),Sclass-Cmon,所以非主属性Cmon对码Sno传递函数依赖,所以它不是3NF。因此,R1满足2NF而不满足3NF。

满足3NF而不满足BCNF,代表了这个关系消除了非主属性对码的部分依赖、传递依赖,但并不是每一个决定因素都包含码,那门就可以从这里入手了:设这个关系为R2,要满足要求,则需找到一个或一组属性,让它既不是码,又能够函数决定另外一个或一组属性,为了简单方便,这里只找一个而不是一组;设u={Sno,Tno,Cno},Sno代表学生的学号,Tno代表教师的工号,Cno代表课程号,一个老师只教授一门课,但一门课可以由多个教师来上,一个学生选定一门课,那么就对应一个固定的老师。即(Sno,Cno)-Tno,Tno-Cno,且由Tno-Cno可以推出(Sno,Tno)-Cno,再根据候选码的定义可以知道,(Sno,Cno)与(Sno,Tno)都是候选码,而Tno不是,但Tno是决定因素,所以R2不是BCND;又可以容易看出R2中不存在非主属性对码的部分依赖与传递依赖,所以R2满足3NF。因此,R2是3NF而不是BCNF。

R1的实现:

输入数据

R2的实现:

输入数据:

数据冗余:如图所示:R1中

R2中

增加异常:R1中不存在,因为学生一入学就会有一个独一无二的学号,R2中存在,一个学生想选一门新加入的课,可能这门课还没有分配老师,只是请了一些人暂时代课,那么这条记录就无法添加了。

删除异常:R1中不存在,R2中也不存在;

修改复杂:R1中,如果有两个同学是同一个班级的,那么如果这个班级换了班主任,修改数据时,在修改了一个条目之后,会导致数据库内容不一致,需要将另外一个条目也修改才可以;R2中,如果一个老师换了教授的课程,那么在数据库中可能有很多条选了这个老师的学生的所在条目要作出修改。

实验心得

设计一个好的数据库,需要多次反复地思考、实践,并不能一蹴而就,需要考虑到很多方面的内容;

在测试时还要想到方方面面不同情况的例子,来检验各种异常,否则容易有局限性;

BCNF是一个比较难以掌握的范式,必须要多看定义、多加理解、多看例子进行分析,才能够进一步理解范式。

文档评论(0)

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

个人介绍

1亿VIP精品文档

相关文档