数据库范式

第一范式: 表的列(或属性)不可再分

简而言之 就是表的列下面不能有子列,如下图所示:进货属性下不应该有两个子列

这里写图片描述

下面的表符合第一范式

这里写图片描述

第二范式:非主属性对码(主键)不存在部分函数依赖

码中一个或多个属性称为 主属性

如果非主属性 函数依赖于码(主键)中部分主属性 就不满足第二范式,下面的表就存在非主属性对码(主键)部分函数依赖

这里写图片描述

码是(学号,课名) 非主属性 姓名、系名和系主任 都依赖码的一部分主属性(学号),不满足第二范式

这里写图片描述

第三范式:非主属性对码(主键)不存在 传递函数 依赖

下面的表中 系主任 依赖 系名, 系名 依赖 学号(主键)存在传递函数依赖 不符合 第三范式

这里写图片描述

这里写图片描述

BCNF 范式:消除 主属性 对于码 的 部分函数依赖传递函数 依赖

1.某公司有若干个仓库;
2.每个仓库只能有一名管理员,一名管理员只能在一个仓库中工作;
3.一个仓库中可以存放多种物品,一种物品也可以存放在不同的仓库中。每种物品在每个仓库中都有对应的数量。

这里写图片描述

上面表的码有两个

(仓库名, 物品名) 和 (管理员, 物品名)

因此主属性有 仓库名 物品名 管理员。

但是主属性 间存在依赖搞关系

(仓库名,) → (管理员)

(管理员) → (仓库名,)

因此 不符合BCNF范式

总结

1NF

| 消除非主属性对码的部分依赖

2NF

| 消除非主属性对码的传递依赖

3NF

| 消除主属性对码的部分和传递依赖

BCNF

参考

传送门1
传送门2

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值