0


【软件中级】数据库 — 三大常考范式及真题

一、概念:

    **利用规范化理论,使关系模式的函数集满足特定的要求,满足特定要求的关系模式称为范式。关系按其规范化程度从低到高分为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,则实际上它是不可用的**

六、真题:





本文转载自: https://blog.csdn.net/m0_56233309/article/details/124016494
版权归原作者 小皮猪 所有, 如有侵权,请联系我们删除。

“【软件中级】数据库 — 三大常考范式及真题”的评论:

还没有评论