关系数据库理论,函数依赖,范式

针对一个具体的问题,应该如何构造一个适合于它的数据库模式,即应该构造几个关系模式,每个关系由哪些属性组成。

由此引出了关系数据库理论。
一个有问题的关系模式会带来:
1.数据冗余
2.更新异常
3.插入异常
4.删除异常

一个好的关系模式应当不会发生以上的异常,数据冗余尽可能的少。

因此需要规范化,由此产生了范式(在次只说明1~3NF ,BCNF不做讨论)
对于范式,又有了一个新的名词函数依赖 函数依赖是用来判断范式的。

函数依赖分为:非平凡函数依赖 平凡函数依赖 完全函数依赖 部分函数依赖 传递函数依赖

首先解释说明什么是函数依赖:
不存在两个元组在属性X上值相等,而在属性Y上的值不等。则称X函数确定Y 或Y函数依赖与X ,X—>Y。
(这有点类似于函数,即x的值确定y。类似于映射只能多个X值对应一个Y,不能一个X对应多个Y)

在这里注重讲解: 完全、部分、传递
完全:比如(A,B)—>C,但是A,B单独不能确定C,则是完全
部分:比如(A,B)---->C,同时A,B当中有一个能单独确定C,则是部分
传递:比如A—>B,B—>C,则存在传递依赖A–>C
理解了这三种依赖后对于确定关系模式是第几范式就简单了
1NF:对于一个属性,不可再分为多个属性
2NF:基于1NF,不存在部分依赖
3NF:基于2NF,不存在传递依赖

最后补充一下关系模式中的码的概念:
例如:A—>B(完全依赖),则A位候选码(候选码可以有多个)。从候选码中选择一个为主码,候选码是主属性,其他为非主属性。

如果有错误欢迎指正,如果对于函数依赖不熟悉可以找一些相关的题目进行练习

猜你喜欢

转载自blog.csdn.net/xuexilangren1/article/details/84851516