一、概念:
**利用规范化理论,使关系模式的函数集满足特定的要求,满足特定要求的关系模式称为范式。关系按其规范化程度从低到高分为5级范式(Normal Form),分别称为1NF、2NF、3NF(BCNF)、4NF和5NF。规范化程度较高者必是较低者的子集。(即包含关系)**
二、软考部分:
** 软件中级软件设计师中很少考到第4第5范式,所以我们备考时几乎不考虑。数据库部分在上午的考试也占到5到6分,然后下午还有一道大题比重还是有的。**
三、第一范式:
定义:
** 如果关系模式R中不包含多值属性(每个属性必须是不可分的数据项),则R满足第一范式(First Normal Form) , 记作R∈1NF**
注: **1NF是规范化的最低要求,是关系模式要遵循的最基本的范式,不满足1NF的关系是非规范化的关系 **
**简单说就是关系中的每一个分量必须是一个不可分的数据项。就是不能有小表的存在。比如如下的员工表,就不属于第一范式。**
四、第二范式:
定义:
**如果关系模式R(U,F)∈1NF,且R中的每个非主属性完全函数依赖于R的某个候选码,则R满足第二范式(Second Normal Form),记作R∈2NF**
**通俗讲,2NF就是在1NF的基础上,表中的每一个非主属性不会依赖复合主键中的某一列。 **
产生问题:
** 不满足2NF的关系模式会产生以下几个问题,以上图为例子:**
** 1. 插入异常。插入一个新学生,若该生没有选课,则CNO为空,但因为码不能为空,所以不能插入。**
** 2. 删除异常。某学生只选择了一门课,现在该门课要删除,该学生的基本信息也将删除。**
** 3. 更新异常。某学生要从一个系转到另一个系,若该生选修了K门课,则必须修改的该学生相关的字段值为2K个(系别,住处),一旦有遗漏,将破坏数据的一致性。**
** 造成以上问题的原因是SDEPT,SLOC部分函数依赖于码**
解决方法:
** 解决的方法是用投影分解把关系模式分解为多个关系模式。**
** 投影分解是把非主属性及决定因素分解出来构成新的关系,决定因素在原关系中保持,函数依赖关系相应分开转化(将关系模式中部分依赖的属性去掉,将部分依赖的属性单独组成一个新的模式)**
**上述关系模式分解都结果如下:**
** 因为经过模式分解,两个关系模式中的非主属性对码都是完全函数依赖,所以他们都满足2NF**
五、第三范式:
定义:
如果关系模式**R(U,F)∈2NF, 且每个非主属性都不传递函数依赖于任何候选码,则满足第三范式(Third Normal Form),记作**R∈3NF
**通俗讲就是,在满足2NF的基础上,表中不存在非主属性对码的传递依赖 **
解决方法:
** 同样是将S-L进行投影分解,结果如下:**
** 分解后的关系中不再存在传递函数依赖,即关系模型S-D和D-L都满足3NF**
** 注:3NF是一个可用的关系模式应满足的最低范式,也就是说,一个关系模型如果不满足3NF,则实际上它是不可用的**
六、真题:
版权归原作者 小皮猪 所有, 如有侵权,请联系我们删除。