数据库系统概念 关系数据理论 深入理解第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BC范式(BCNF)
说明
-
这学期的数据库课程使用的教材是第六版的《数据库系统概念》,其课后习题答案已上传,点击进行下载
-
关系数据理论在第八章进行了讲解,这章的内容相对于其他章节要来得难(烦人),但也是考试的重点,期末考前多次复习了这一章,也整理了挺多的知识点总结和习题。相信如果你对该章的学习遇到了困难,请看完这篇博客,一定会有所帮助
-
有缺漏或错误欢迎指出
一、知识点总览
-
关系数据理论是关系数据库的一大重点,学习本章的目的有两个:一个是理论方面的,本章用更加形式化的关系数据理论来描述和研究关系模型;另一方面是实践方面的,关系数据理论是我们进行数据库设计的有力工具
-
大致总结了以下几点要求:
-
需要了解的: 什么是一个“不好”的数据库模式;什么是模式的插入异常和删除异常;规范化理论的重要意义
-
需要牢固掌握的: 关系的形式化定义;数据依赖的基本概念(函数依赖、平凡的函数依赖、非平凡的函数依赖、部分函数依赖、完全函数依赖、传递函数依赖的概念,码、候选码、外码的概念和定义,多值依赖的概念);范式的概念;从1NF到BCNF的定义;规范化的含义和作用
-
需要举一反三的: 四个范式的理解与应用,各个级别范式中存在的问题(插入异常、删除异常、数据冗余)和解决方法;能够根据应用语义,完整地写出关系模式的数据依赖集合,并能根据数据依赖分析某一个关系模式属于第几范式
-
难点: 各个级别的范式的关系及其证明
-
二、概念解析
-
函数依赖:设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元祖,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或者“Y函数依赖于X”,记作
-
解析:
扫描二维码关注公众号,回复: 5040157 查看本文章-
1)函数依赖是最基本的一种数据依赖,也是最重要的一种数据依赖
-
2)函数依赖是属性之间的一种联系,体现在属性值是否相等。由上面的定义可以知道,如果 ,则r中任意两个元祖,若它们在X上的属性值相同,那么在Y上的属性值也一定相同
-
3)要从属性间实际存在的语义来确定他们之间的函数依赖,即函数依赖反映了(描述了)现实世界的一种语义
-
4)函数依赖不是指关系模式R在某个时刻的关系(值)满足的约束条件,而是指R任何时刻的一切关系均要满足的约束条件
-
-
-
完全函数依赖、部分函数依赖:在R(U)中,如果 ,并且对于X的任何一个真子集X’,都有 ,则称Y对X完全函数依赖,记作:
- 若 ,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:
-
传递依赖:在R(U)中,如果 , , , , ,则称Z对X传递函数依赖
-
候选码、主码:设K为R(U, F)中的属性或属性组合,若 则K为R的候选码。若候选码多于一个,则选定其中一个为主码
-
外码:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码,也称外码
-
全码:整个属性组是码,称为全码
-
1NF:如果一个关系模式R的所有属性都是不可分的基本数据项,则
-
解析:
- 第一范式是对关系模式的最起码的要求,不满足第一范式的数据库模式不能称为关系数据库
-
-
2NF:若关系模式 ,并且每一个非主属性都完全函数依赖于R的码,则
-
3NF:在关系模式R(U, F)中若不存在这样的码X,属性组Y以及非主属性Z ,使得 , , 成立,则称
-
BCNF:关系模式 ,若 且 时X必含有码,则
-
以上讲解的几个范式之间的关系如下:
总结
-
上述主要整理了几个名词的含义,以及1NF ~ BCNF的内涵,你需要真正理解这些范式的内涵
-
还有一大部分的习题内容,较多,还是分开整理吧。结合那些习题的话,能够更加深刻地理解这些范式的概念,同时也能熟练地掌握它们的应用
-
期末复习期间个人整理和使用的知识点整理、习题,点击跳转