实验三 关系规范化
@H_502_14@
1. 实验目的
@H_502_14@
1) 了解函数依赖的基本概念。
@H_502_14@
2) 能正确判断某一关系是属于第几范式。
@H_502_14@
3) 掌握规范化范式的方法。
@H_502_14@
@H_502_14@
2. 实验内容
@H_502_14@
1) 复习函数依赖,数据规范化,范式的基本概念以及各级范式的判别标准。
@H_502_14@
2) 判断给定的表满足哪级范式的条件。
@H_502_14@
3) 将给定的表转换成满足特定等级范式条件的表。
@H_502_14@
@H_502_14@
3. 实验步骤
@H_502_14@
1) 写出函数依赖,数据规范化,范式的定义以及各级范式的判别标准。
@H_502_14@
答:1.设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系R,R中不可能存在两个元组在X的属性值相等,而在Y上的属性值不等,则称X函数确定Y,即Y函数依赖于X。
@H_502_14@
2.数据规范化就是通过对数据的规范消除函数依赖中一些不好的性质。
@H_502_14@
3.关系数据库中的关系是要满足一定要求的,满足不同程度要求的为不同的范式,满足最低要求的为第一范式,在第一范式中满足进一步要求的为第二范式,接下来是第三范式,第四范式等。
@H_502_14@
4.各级范式的判别标准是:满足最低要求的式第一范式,在第一范式中消除对码的部分函数依赖为第二范式,基于第二范式,消除非主属性对码的传递函数依赖为第三范式,消除非平凡且非函数依赖的多值依赖为BCNF范式。
@H_502_14@
@H_870_301@
@H_502_14@
2) 有表3-1所示的项目表1,判断其是否满足第一范式的条件,并说明理由。
@H_502_14@
@H_502_14@
@H_502_14@
答:该表不满足第一范式。因为第一范式满足最低要求的,也就是说只要是一个基本的简单表就满足第一范式。但是该表中出现了表中有表的情况。不是一个基本的简单表,也不满足第一范式。
@H_502_14@
@H_502_14@
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,判断其是否满足第二范式的条件,并说明理由。
@H_502_14@
@H_502_14@
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">
答:该表的码为(项目代号,职工代码)
@H_502_14@
函数依赖有
@H_502_14@
项目代号,职员代码 →部门(P)
@H_502_14@
职员代码→部门(F)
@H_502_14@
项目代码,职员代码→累计工作时间(F)
@H_502_14@
存在部分函数依赖于码,所以该表不属于第二范式。
@H_502_14@
4) 有表3-3所示的职员表,判断其是否满足第三范式的条件,并说明理由。
@H_502_14@
@H_502_14@
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">
答:该表的码为:职员代码
@H_502_14@
函数依赖有:
@H_502_14@
职员代码→部门,部门负责任代码(F)
@H_502_14@
职员代码→部门,部门→部门负责人代码(F)
@H_502_14@
部门→部门负责人代码(F)
@H_502_14@
存在非主属性组对码的传递函数依赖。即部门,部门负责人对职员代码的传递函数依赖,所以该表不属于第三范式。
@H_502_14@
@H_502_14@
5) 有表3-4所示的项目表3,判断其是否满足第三范式的条件,
@H_502_14@
@H_502_14@
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">