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

数据库 专栏收录该内容
11 篇文章 0 订阅

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

由此引出了关系数据库理论。
一个有问题的关系模式会带来:
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位候选码(候选码可以有多个)。从候选码中选择一个为主码,候选码是主属性,其他为非主属性。

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

  • 3
    点赞
  • 1
    评论
  • 3
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

xuexilangren1

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值