数据库系统概论(第六章)----关系数据理论

1.问题的提出

针对一个具体问题,应该如何构造一个适合于它的数据库模式,即应构造几个关系模式,每个关系由哪些属性构成等。这是数据库设计的问题,确切的讲是关系数据库逻辑设计问题。
------------------------------------------------------------解决:数据库逻辑设计的工具-关系数据库理论。

关系模式形式化定义

在第二章有讲到关系模式化形式定义,这里做一个回顾。

前面定义

关系模式由五部分组成,是一个五元组 :
R(U, D, DOM, F)

  • 关系名R是符号化的元组语义
  • U为一组属性
  • D为属性组U中的属性所来自的域
  • DOM为属性到域的映射
  • F为属性组U上的一组数据依赖
本章

由于D、DOM与模式设计关系不大,因此在本章中把关系模式看作一个三元组:R<U,F>
当且仅当U上的一个关系r满足F时,r称为关系模式R<U,F>的一个关系
作为二维表,关系要符合一个最基本的条件:每个分量必须是不可分开的数据项。满足了这个条件的关系模式就属于第一范式(1NF)

数据依赖

数据依赖是一个关系内部属性与属性之间的一种约束关系。这种约束关系是通过属性间值的相等与否体现出来的数据间相关联系。
最重要的数据依赖有函数依赖多值依赖

函数依赖

函数依赖普遍存在于我们生活当中。比如描述一个学生的关系,可以有学号(sno)、姓名(sname)、系名(sdept)。由于一个学号只对应一个学生,一个学生只在一个系学习,因而当学号确定了,学生的姓名及所在系的值就被确定了。属性的这种关系类似于数学中的y=f(x),自变量x确定了,那么y值也就确定了。类似有sname = f(sno),sdept=f(sno),记做sno->sname,sno->sdept。

这种函数依赖的单一模式在实际使用中可能存在以下问题:数据冗余、更新异常、插入异常、删除异常等。因此需要改进这种模式,下面一节将对改造模式及规范化进行讨论。

2.规范化

函数依赖

函数依赖

定义: 设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r 中不可能存在两个元组在X上的属性值相等, 而在Y上的属性值不等, 则称“X函数确定Y”或“Y函数依赖于X”,记作X→Y。
在这里插入图片描述

函数依赖是语义范畴的概念,只能根据数据的语义来确定一个函数依赖。例如“姓名→年龄”这个函数依赖只有在不允许有同名人的条件下成立

函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件

平凡函数依赖非平凡函数依赖

X→Y,但Y⊈X则称X→Y是非平凡的函数依赖
X→Y,但Y⊆X 则称X→Y是平凡的函数依赖
在这里插入图片描述

对于任一关系模式,平凡函数依赖都是必然成立的,它不反映新的语义。若不特别声明, 我们总是讨论非平凡函数依赖。

若X→Y,则X称为这个函数依赖的决定因素(Determinant)。
若X→Y,Y→X,则记作X←→Y。
若Y不函数依赖于X,则记作X↛Y。

完全函数依赖与部分函数依赖

在这里插入图片描述

传递函数依赖

在这里插入图片描述

注: 如果Y→X, 即X←→Y,则Z直接依赖于X,而不是传递函数依赖。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

范式

在这里插入图片描述
在这里插入图片描述

1NF

在这里插入图片描述
简单的讲就是不能表中有表。

2NF

在这里插入图片描述
在这里插入图片描述
图一问题优化:
在这里插入图片描述

3NF

**定义: 设关系模式R<U,F>∈1NF,若R中不存在这样的码X、属性组Y及非主属性Z(Z ⊇ Y), 使得X→Y,Y→Z成立,Y ↛ X不成立,则称R<U,F> ∈ 3NF。**
在这里插入图片描述

BCNF

在这里插入图片描述
在这里插入图片描述

多值依赖

4NF

在这里插入图片描述

规范化小结

在这里插入图片描述
在这里插入图片描述

3.通俗理解

在这里插入图片描述
关系数据理论其实就是为数据库设计提供理论支持,如果单纯通过书里面理论理解是相当难,建议看这篇文章https://www.cnblogs.com/yanggb/p/10849850.html 通俗理解。

猜你喜欢

转载自blog.csdn.net/qq_41262903/article/details/106169953