数据库设计三大范式

博客主要介绍数据库三大范式。第一范式要求列值不可再分,确保原子性,可新建表存储多值列;第二范式指非主键列依赖整个主键组合,可去掉部分主键确定的列或改变主键组合;第三范式要求非主键列与主键直接相关,无传递关系。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

理解三大范式

第一范式

  • 每一列的数值不可再分,确保每一列的原子性。

在一个表中,有一个 computer 列,用于存储一个公司员工的设备,有的可能有一台电脑,有的可能会有多个。所以这个列就会有多个可能的值,则其没有原子性还可以再次拆分。
解决方法:
可以新建一个表专门存储 computer 的数据,而不是在原来的表后面加上 computer2 的列。

第二范式

  • 每一个非主键列都必须依赖于整个主键组合。只有当主键为组合键的时候才会考虑第二范式,单一主键一定满足第二范式。

在一个表中可能会有多个主键,只有非主键列都只能被该表中所有主键的组合所确定才能说满足第二范式。如果有一列可以只由单个或非所有主键确定,则其不满足。
解决方法:
可以去掉非所有主键确定的列,用一个新的表存储,或者改变主键的组合,使所有非主键列都只由整个主键组合确定。

第三范式

  • 数据之间不能存在传递关系,即非主键列跟主键都是直接相关,而不是间接相关,非主键列不相互依赖。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值