数据库范式

在这里插入图片描述
简单来讲就是函数X求出Y,X可以确定Y,Y就依赖于X


平凡的函数依赖:X可以确定Y且Y属于X
非平凡的函数依赖:X可以确定Y且Y不属于X
完全函数依赖:X可以确定Y且X去掉任何一个属性都不能确定Y
部分函数依赖:X可以确定Y且X的某个真子集也能确定Y
传递函数依赖:X和Y是非平凡的函数依赖,且Y不能确定X,Y能确定Z,称Z传递函数依赖于X; 若Y能确定X,则称Z直接依赖于X


范式:

范式越高,问题越少
在这里插入图片描述在这里插入图片描述


第一范式

如果一个关系模式R的所有属性都是不可分割的基本数据项,则为第一范式,简单说就是不存在表中套表。
不满足第一范式的数据库不能称之为关系数据库。
满足第一范式的关系模式不一定好
在这里插入图片描述如图,表中套表,不是第一范式
在这里插入图片描述
将表拆开成第一范式


第二范式

在第一范式基础上,每一个非主属性完全依赖于码,则为第二范式。
通过模式分解将部分函数依赖的拆出。
我们可以通过表看出sname对于码是部分函数依赖,因为sno即可确定sname,所有上面的表只是第一范式。
birth也是部分函数依赖
在这里插入图片描述
只需要把部分函数依赖单独形成一张表。因为sno可以确定sname和birth,将三个属性分成一张表。原表的sname和birth即可删除。
在这里插入图片描述


第三范式

在第二范式的基础上去除掉非主属性对码的传递函数依赖
采取投影分解法,将传递函数依赖的YZ单独形成一张表


BC范式

若关系模式R∈BCNF有以下三点

  • 所有非主属性对每一个码都是完全函数依赖
  • 所有主属性对每一个不包含它的码,也是完全函数依赖
  • 没有任何属性完全依赖于非码的一任何组属性
  • BCNF一定是3NF,3NF不一定是BCNF

Armstrong公理

对于满足一组函数依赖F的关系模式R<U,F>,其中任何一个关系r,若函数依赖X->Y都成立,则F逻辑蕴含X->Y
已知R(X,Y,Z),F={X->Y,Y->Z},则X->Z成立,X->Z被F逻辑蕴含
Armstrong公理用途:

  • 求给定关系模式的码
  • 从一组函数依赖求得蕴含的函数依赖
    在这里插入图片描述
    在这里插入图片描述

闭包:

在这里插入图片描述
在这里插入图片描述
简单来说就是给定X,求属性集X关于函数依赖集F的闭包,就是求X能推出的集合
在这里插入图片描述


属性集X关于函数依赖集F的闭包的算法:

  1. 先将属性X放入集合
  2. 用已有集合通过推到推出新的集合,并找出没出现过的集合(有可能推出已有的属性)
  3. 判断是否集合改变或者已经为全集
  4. 如果没改变或者已经为全集,算法终止
  5. 否则,返回第二步在这里插入图片描述

利用属性组闭包求候选码

给定关系和函数依赖,找出函数依赖右侧没有出现过的属性,组成一个集合K,候选码一定含有K。
计算KF+,如果KF+等于关系的属性组全体的话,K就是候选码,而且是唯一一组候选码。
否则,基于K扩充,形成新的属性组,继续求闭包。如果扩充到一定数量找到一组候选码,就不用再增大属性数量了,但是要相同个数的属性组都求完。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值