关于范式的一些理解。

第一范式:

每一个属性下的信息都不可拆分。

比如一个表下的联系方式可拆分为邮箱和电话.

 

第二范式:

非主属性必须完全依赖于主属性(这里的主属性可以是两条属性的组合)

由上图可以看出货物名称这个非主属性完全依赖于货物类型和货物ID这两个候选主键的集合。

去掉了注意事项,消除了其对货物类型的部份依赖。

 

第三范式:

以常见的学生表为例:

S1(SNO,SNAME,DNO,DNAME,LOCATION) 各属性分别代表学号,姓名,所在系,系名称,系地址。

该表的主属性为SNO且为单一关键字,满足第二范式但是不满足第三范式,因为DNAME、LOCATION依赖于DNO,属于传递依赖。

可将该表拆分为S1(SNO、SNAME、DNO)和D1(DNO、DNAME、LOCATION).   

两个表通过DNO来实现连接。

第三范式主要消除了非主属性的传递依赖。

 

BC范式:

以网上常见的仓库表为例:

StorehouseManage(仓库ID, 存储物品ID, 管理员ID, 数量)

且有一个管理员只在一个仓库工作;一个仓库可以存储多种物品。(限定条件)

 那么   

(仓库ID、存储物品) →(管理员ID、数量)

(管理员ID、存储物品) →(仓库ID、数量)

  除数量之外都是关键字候选字段,数量为唯一非候选字段所以不存在传递依赖,满足第三范式。

但是,仓库ID和管理员ID相互依赖,所以需要拆分,拆分后的表就满足BC范式。

 

小结:

第一范式      使表中的每个属性都不可拆分

第二范式      消除表中非主属性的部份依赖

第三范式     消除表中非主属性的传递依赖

BC范式        消除表中主属性的传递依赖  (若只有单个主属性/关键字则不存在该情况)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值