实验三 关系规范化<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

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范式。

 

2) 有表3-1所示的项目表1,判断其是否满足第一范式的条件,并说明理由。
 

 

答:该表不满足第一范式。因为第一范式满足最低要求的,也就是说只要是一个基本的简单表就满足第一范式。但是该表中出现了表中有表的情况。不是一个基本的简单表,也不满足第一范式。

 

3) 有表3-2所示的项目表2,判断其是否满足第二范式的条件,并说明理由。

 

答:该表的码为(项目代号,职工代码)

函数依赖有

项目代号,职员代码 →部门(P)

职员代码→部门(F

项目代码,职员代码→累计工作时间(F)

存在部分函数依赖于码,所以该表不属于第二范式。

4) 有表3-3所示的职员表,判断其是否满足第三范式的条件,并说明理由。
 

答:该表的码为:职员代码

函数依赖有:

职员代码→部门,部门负责任代码(F

职员代码→部门,部门→部门负责人代码(F

部门→部门负责人代码(F

存在非主属性组对码的传递函数依赖。即部门,部门负责人对职员代码的传递函数依赖,所以该表不属于第三范式。

 

5) 有表3-4所示的项目表3,判断其是否满足第三范式的条件,

 

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />
答:该表的码为:
项目代码,职员代码

存在的函数依赖关系有:
项目代码,职员代码→职员姓名,累计工作时间(P)

项目代码,职员代码→累计工作时间(P

职员代码→职员姓名,累计工作时间(F)

此表中不存在非主属性组对码的传递函数依赖。所以该表属于第三范式