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

一、概念:

        利用规范化理论,使关系模式的函数集满足特定的要求,满足特定要求的关系模式称为范式。关系按其规范化程度从低到高分为5级范式(Normal Form),分别称为1NF、2NF、3NF(BCNF)、4NF和5NF。规范化程度较高者必是较低者的子集。(即包含关系)

二、软考部分:

        软件中级软件设计师中很少考到第4第5范式,所以我们备考时几乎不考虑。数据库部分在上午的考试也占到5到6分,然后下午还有一道大题比重还是有的。 

三、第一范式:

定义:

        如果关系模式R中不包含多值属性(每个属性必须是不可分的数据项),则R满足第一范式(First Normal Form) , 记作R∈1NF

注:        1NF是规范化的最低要求,是关系模式要遵循的最基本的范式,不满足1NF的关系是非规范化的关系 

      简单说就是关系中的每一个分量必须是一个不可分的数据项。就是不能有小表的存在。比如如下的员工表,就不属于第一范式。 

【软件中级】数据库 — 三大常考范式及真题_第1张图片

 

四、第二范式:

定义:

        如果关系模式R(U,F)∈1NF,且R中的每个非主属性完全函数依赖于R的某个候选码,则R满足第二范式(Second Normal Form),记作R∈2NF

通俗讲,2NF就是在1NF的基础上,表中的每一个非主属性不会依赖复合主键中的某一列。 

 【软件中级】数据库 — 三大常考范式及真题_第2张图片

 产生问题:

        不满足2NF的关系模式会产生以下几个问题,以上图为例子:

        1. 插入异常。插入一个新学生,若该生没有选课,则CNO为空,但因为码不能为空,所以不能插入。

        2. 删除异常。某学生只选择了一门课,现在该门课要删除,该学生的基本信息也将删除。

        3. 更新异常。某学生要从一个系转到另一个系,若该生选修了K门课,则必须修改的该学生相关的字段值为2K个(系别,住处),一旦有遗漏,将破坏数据的一致性。

        造成以上问题的原因是SDEPT,SLOC部分函数依赖于码

解决方法:

        解决的方法是用投影分解把关系模式分解为多个关系模式

        投影分解是把非主属性及决定因素分解出来构成新的关系,决定因素在原关系中保持,函数依赖关系相应分开转化(将关系模式中部分依赖的属性去掉,将部分依赖的属性单独组成一个新的模式)

        上述关系模式分解都结果如下:

        因为经过模式分解,两个关系模式中的非主属性对码都是完全函数依赖,所以他们都满足2NF

【软件中级】数据库 — 三大常考范式及真题_第3张图片

 五、第三范式:

定义:

如果关系模式R(U,F)∈2NF, 且每个非主属性都不传递函数依赖于任何候选码,则满足第三范式(Third Normal Form),记作R∈3NF

通俗讲就是,在满足2NF的基础上,表中不存在非主属性对码的传递依赖 

 【软件中级】数据库 — 三大常考范式及真题_第4张图片

解决方法:

        同样是将S-L进行投影分解,结果如下:

        分解后的关系中不再存在传递函数依赖,即关系模型S-D和D-L都满足3NF

【软件中级】数据库 — 三大常考范式及真题_第5张图片

 注:3NF是一个可用的关系模式应满足的最低范式,也就是说,一个关系模型如果不满足3NF,则实际上它是不可用的

 六、真题:

【软件中级】数据库 — 三大常考范式及真题_第6张图片


【软件中级】数据库 — 三大常考范式及真题_第7张图片

【软件中级】数据库 — 三大常考范式及真题_第8张图片


【软件中级】数据库 — 三大常考范式及真题_第9张图片

 

【软件中级】数据库 — 三大常考范式及真题_第10张图片


【软件中级】数据库 — 三大常考范式及真题_第11张图片

你可能感兴趣的:(软考中级,sql,数据库,数据库开发)