数据库设计三范式

数据库三范式

第一范式:原子性
存储的数据应具有“不可再分性
在这里插入图片描述
修改后
在这里插入图片描述
第二范式
唯一性(消除非主键依赖联合主键中的部分字段)
主键:
1.设定一个字段为主键:此时,表示一个字段的值就可以明确确定一行数据。
2.设定多个字段为主键:表示只有这多个字段的值都确定后才能确定一行数据。“联合主键”
依赖
如果确定一个表中的某个数据A,则就可以确定该表中的其他另一个数据B,则B依赖于A。
部份依赖
如果确定一个表中的某个数据组合(A,B),则就可以确定该表中的其他另一个数据C,则C依赖于(A,B)。
不良做法
在这里插入图片描述
改良后
在这里插入图片描述
第三范式
独立性,消除传递依赖(非主键值不依赖于另一个非主键值,都应该依赖于主键)
在一个具有主键的表中,假设主键为A,其必然其他非主键都依赖于该主键,比如:B依赖于A,C依赖于A,D依赖于A。。。。。。
但同时:如果该表中的某个字段B的值一确定,就能够确定另一个字段的值C,则我们称为C依赖于B。
那么,就出现了:
C依赖B,B依赖A——这就是传递依赖。
则消除该传递依赖的的通常做法,就是将C依赖于B的数据,分离到另一个表中。
不良例子
在这里插入图片描述
改良后
在这里插入图片描述
一个表只存一种类型数据

数据库存储引擎
在这里插入图片描述
常用的表的引擎
Myisam :批量插入速度快,不支持事务 锁表
Innodb :批量插入相对较慢,支持事务 锁行

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值