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

数据库系统概念 关系数据理论 深入理解第一范式(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 XY

    • 解析:

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

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

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

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

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

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

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

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

  • 传递依赖:在R(U)中,如果 X → Y X \rightarrow Y XY Y ⊈ X Y \nsubseteq X YX Y ↛ X Y \nrightarrow X YX Y → Z Y \rightarrow Z YZ Z ∉ Y Z \notin Y Z/Y,则称Z对X传递函数依赖

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

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

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

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

    • 解析:

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

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

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

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

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

总结

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

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

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

你可能感兴趣的:(数据库系统概念)