关系规范化练习

前端之家收集整理的这篇文章主要介绍了关系规范化练习前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
实验三 关系规范化
1. 实验目的
1) 了解函数依赖的基本概念。
2) 能正确判断某一关系是属于第几范式。
3) 掌握规范化范式的方法
2. 实验内容
1) 复习函数依赖,数据规范化,范式的基本概念以及各级范式的判别标准。
2) 判断给定的表满足哪级范式的条件。
3) 将给定的表转换成满足特定等级范式条件的表。
3. 实验步骤
1) 写出函数依赖,数据规范化,范式的定义以及各级范式的判别标准。
答:1.RU)是属性U上的关系模式。XYU的子集。若对于RU)的任意一个可能的关系RR中不可能存在两个元组在X属性值相等,而在Y上的属性值不等,则称X函数确定Y,即Y函数依赖于X
2.数据规范化就是通过对数据的规范消除函数依赖中一些不好的性质。
3.关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同的范式,满足最低要求的为第一范式,在第一范式中满足进一步要求的为第二范式,接下来是第三范式,第四范式等。
4.各级范式的判别标准是:满足最低要求的式第一范式,在第一范式中消除对码的部分函数依赖为第二范式,基于第二范式,消除非主属性对码的传递函数依赖为第三范式,消除非平凡且非函数依赖的多值依赖为BCNF范式。
@H_506_301@
2) 有表3-1所示的项目表1,判断其是否满足第一范式的条件,并说明理由

PHP?refimg=" + this.src)" border="0" alt="" src="http://img.jb51.cc/vcimg/static/loading.png" src="http://img1.51cto.com/attachment/201005/201005111273567603681.png">

答:该表不满足第一范式。因为第一范式满足最低要求的,也就是说只要是一个基本的简单表就满足第一范式。但是该表中出现了表中有表的情况。不是一个基本的简单表,也不满足第一范式。
3) 有表3-2所示的项目表2,判断其是否满足第二范式的条件,并说明理由。

PHP?refimg=" + this.src)" border="0" alt="" src="http://img.jb51.cc/vcimg/static/loading.png" src="http://img1.51cto.com/attachment/201005/201005111273567470768.png">

答:该表的码为(项目代号,职工代码
函数依赖有
项目代号,职员代码 →部门(P)
职员代码→部门(F
项目代码,职员代码→累计工作时间(F)
存在部分函数依赖于码,所以该表不属于第二范式。
4) 有表3-3所示的职员表,判断其是否满足第三范式的条件,并说明理由

PHP?refimg=" + this.src)" border="0" alt="" src="http://img.jb51.cc/vcimg/static/loading.png" src="http://img1.51cto.com/attachment/201005/201005111273567225806.png">

答:该表的码为:职员代码
函数依赖有:
职员代码→部门,部门负责任代码F
职员代码→部门,部门→部门负责人代码F
部门→部门负责人代码F
存在非主属性组对码的传递函数依赖。即部门,部门负责人对职员代码的传递函数依赖,所以该表不属于第三范式。
5) 有表3-4所示的项目表3,判断其是否满足第三范式的条件

PHP?refimg=" + this.src)" border="0" alt="" src="http://img.jb51.cc/vcimg/static/loading.png" src="http://img1.51cto.com/attachment/201005/201005111273567355436.png">

答:该表的码为:
项目代码,职员代码
存在的函数依赖关系有:
项目代码,职员代码→职员姓名,累计工作时间(P)
项目代码,职员代码→累计工作时间(P
职员代码→职员姓名,累计工作时间(F)
此表中不存在非主属性组对码的传递函数依赖。所以该表属于第三范式

猜你在找的设计模式相关文章