数据库设计三范式

数据库(数据表)的设计思想介绍:

        设计数据库,其实就是设计表(多个表)

数据库设计3范式(3NF):

        范式,就是规范,就是指设计数据库需要(应该)遵循的原则。

        每个范式,都是用来规定某种结构或数据要求——后一范式都是在前一范式已经满足的情况用来“加强要求”。

学习三范式之前首先明确几个概念:

一、主键:确定主键就可以唯一确定一行数据

        一个表的主键有两种情况

                1.设定一个字段为主键:此时,表示该一个字段的值就可以明确确定一行数据。

               2.设定多个字段为主键:表示只有这多个字段的值都确定后才能确定一行数据。此时也称为“联合主键

二、各种依赖:

       1. 依赖:

        如果确定一个表中的某个数据(A),则就可以确定该表中的其他另一个数据(B),则我们说:B依赖于A。

        实际上,一个表只要有主键,则其他非主键一定是依赖于主键的。

        2.部分依赖:

        部分依赖是指某个非主键字段,依赖于联合主键字段的其中部分字段

        3.传递依赖:

        C依赖B,B依赖A——这就是传递依赖。


第一范式(1NF),原子性

反例

 

修改后为:

第二范式(2NF)唯一性 (消除非主键依赖联合主键中的部分字段)

反例:

改良后:

 

第三范式(3NF):独立性,消除传递依赖(非主键值不依赖于另一个非主键值,都应该依赖于主键)

 

反例:

改良之后:

总结:

通常,在实践中,满足3范式只要做到“一个表只存一种类型数据”基本就可以实现。

另外,范式不是绝对要求,有时候我们为了数据的使用方便,还会(需要)故意违反范式。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值