一、概念:
利用规范化理论,使关系模式的函数集满足特定的要求,满足特定要求的关系模式称为范式。关系按其规范化程度从低到高分为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,则实际上它是不可用的六、真题:
文章图片
文章图片
文章图片
文章图片
文章图片
文章图片
【软考中级|【软件中级】数据库 — 三大常考范式及真题】
推荐阅读
- MYSQL|MYSQL基础
- 数据库|除了Mybatis,我们还能用什么访问数据库
- 面试|面试总结(zhuan)
- 硬核实测 | 深信服超融合是Oracle数据库的最佳CP,实锤了!
- 数据库纳管平台DBhouse的技术路线与实践
- 一场由TiCDC异常引发的GC不干活导致的Tikv硬盘使用问题
- SQL|MySQL数据库编程01
- SQL|关系数据库标准语言SQL02
- SQL|关系数据库标准语言SQL01