数据库系统概念 关系数据理论 深入理解第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BC范式(BCNF)

版权声明:个人水平有限,表述不当或疏漏之处欢迎读者提问交流,共同进步! 作者:J__Max 非商业转载请注明出处,商业转载请联系作者获得授权。 https://blog.csdn.net/J__Max/article/details/86547578

数据库系统概念 关系数据理论 深入理解第一范式(1NF)、第二范式(2NF)、第三范式(3NF)和BC范式(BCNF)

说明

  • 这学期的数据库课程使用的教材是第六版的《数据库系统概念》,其课后习题答案已上传,点击进行下载

  • 关系数据理论在第八章进行了讲解,这章的内容相对于其他章节要来得难(烦人),但也是考试的重点,期末考前多次复习了这一章,也整理了挺多的知识点总结和习题。相信如果你对该章的学习遇到了困难,请看完这篇博客,一定会有所帮助

  • 有缺漏或错误欢迎指出

一、知识点总览

  • 关系数据理论是关系数据库的一大重点,学习本章的目的有两个:一个是理论方面的,本章用更加形式化的关系数据理论来描述和研究关系模型;另一方面是实践方面的,关系数据理论是我们进行数据库设计的有力工具

  • 大致总结了以下几点要求:

    • 需要了解的: 什么是一个“不好”的数据库模式;什么是模式的插入异常和删除异常;规范化理论的重要意义

    • 需要牢固掌握的: 关系的形式化定义;数据依赖的基本概念(函数依赖、平凡的函数依赖、非平凡的函数依赖、部分函数依赖、完全函数依赖、传递函数依赖的概念,码、候选码、外码的概念和定义,多值依赖的概念);范式的概念;从1NF到BCNF的定义;规范化的含义和作用

    • 需要举一反三的: 四个范式的理解与应用,各个级别范式中存在的问题(插入异常、删除异常、数据冗余)和解决方法;能够根据应用语义,完整地写出关系模式的数据依赖集合,并能根据数据依赖分析某一个关系模式属于第几范式

    • 难点: 各个级别的范式的关系及其证明

二、概念解析

  • 函数依赖:设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任意一个可能的关系r,如果r中不存在两个元祖,它们在X上的属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或者“Y函数依赖于X”,记作 X Y X\rightarrow Y

    • 解析:

      • 1)函数依赖是最基本的一种数据依赖,也是最重要的一种数据依赖

      • 2)函数依赖是属性之间的一种联系,体现在属性值是否相等。由上面的定义可以知道,如果 X Y X\rightarrow Y ,则r中任意两个元祖,若它们在X上的属性值相同,那么在Y上的属性值也一定相同

      • 3)要从属性间实际存在的语义来确定他们之间的函数依赖,即函数依赖反映了(描述了)现实世界的一种语义

      • 4)函数依赖不是指关系模式R在某个时刻的关系(值)满足的约束条件,而是指R任何时刻的一切关系均要满足的约束条件

  • 完全函数依赖、部分函数依赖:在R(U)中,如果 X Y X \rightarrow Y ,并且对于X的任何一个真子集X’,都有 X Y X' \nrightarrow Y ,则称Y对X完全函数依赖,记作:

X F Y X \stackrel{F}{\rightarrow} Y

  • X Y X \rightarrow Y ,但Y不完全函数依赖于X,则称Y对X部分函数依赖,记作:

X P Y X \stackrel{P}{\rightarrow} Y

  • 传递依赖:在R(U)中,如果 X Y X \rightarrow Y Y X Y \nsubseteq X Y X Y \nrightarrow X Y Z Y \rightarrow Z Z Y Z \notin Y ,则称Z对X传递函数依赖

  • 候选码、主码:设K为R(U, F)中的属性或属性组合,若 K F U K \stackrel{F}{\rightarrow} U 则K为R的候选码。若候选码多于一个,则选定其中一个为主码

  • 外码:关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外部码,也称外码

  • 全码:整个属性组是码,称为全码

  • 1NF:如果一个关系模式R的所有属性都是不可分的基本数据项,则 R 1 N F R \in 1NF

    • 解析:

      • 第一范式是对关系模式的最起码的要求,不满足第一范式的数据库模式不能称为关系数据库
  • 2NF:若关系模式 R 1 N F R \in 1NF ,并且每一个非主属性都完全函数依赖于R的码,则 R 2 N F R \in 2NF

  • 3NF:在关系模式R(U, F)中若不存在这样的码X,属性组Y以及非主属性Z ( Z Y ) (Z \notin Y) ,使得 X Y X \rightarrow Y Y X Y \nrightarrow X Y Z Y \rightarrow Z 成立,则称 R ( U , F ) 3 N F R(U, F) \in 3NF

  • BCNF:关系模式 R ( U , F ) 1 N F R(U, F) \in 1NF ,若 X Y X \rightarrow Y Y X Y \nsubseteq X 时X必含有码,则 R ( U , F ) B C N F R(U, F) \in BCNF

  • 以上讲解的几个范式之间的关系如下:

B C N F 3 N F 2 N F 1 N F BCNF \subset 3NF \subset 2NF \subset 1NF

总结

  • 上述主要整理了几个名词的含义,以及1NF ~ BCNF的内涵,你需要真正理解这些范式的内涵

  • 还有一大部分的习题内容,较多,还是分开整理吧。结合那些习题的话,能够更加深刻地理解这些范式的概念,同时也能熟练地掌握它们的应用

  • 期末复习期间个人整理和使用的知识点整理、习题,点击跳转

猜你喜欢

转载自blog.csdn.net/J__Max/article/details/86547578