数据库设计之三大范式

数据库规范——三大范式

        数据库规范化,是数据库设计过程中的一系列原理和技术,以减少数据库的数据冗余,增进数据的一致性。共包括:
        目前数据库设计最多满足第三范式,范式过高,虽然对数据有更好的约束性,但是会导致关系表增加,令IO操作频繁,尤其是在多表查询的时候,会降低查询效率。
1. 第一范式(1NF):排除重复组的出现,要求数据库的每个列的值域都由原子值组成,每个字段的值只能是单一值。
  • 同一个字段不能出现多个值,每个字段的值只能是单一的
顾客数量
peeter19 20
jack10 30

- 必须包含主键:否则无法区分两条数据

顾客数量
peeter20
peeter20

- 单一字段不能存放多个有意义的值

名字喜欢的水果
jack苹果,梨子,香蕉
petter葡萄,西瓜

- 同一张表格里面不能出现多个字段表示同一个意思

名字喜欢的水果1喜欢的水果2喜欢的水果3
jack苹果梨子香蕉
petter葡萄西瓜
2. 第二范式(2NF):要求数据表中的所有数据都要和该数据表的键(主键或者候选键)有完全依赖关系:如果那些键只和键的一部分有关,和另外的键无关,就需要把它独立出来成为另外一个数据表。

补充:

        候选键:主键+外键
- 下表每个字段都是单一值,符合第一范式,此表的键有ID和供应商ID,价格和两个键都有关系,不同组件,不同供应商会有不同的价格,但是供应商名称和组件ID无关,只与供应商ID有关,供应商地址同上,所以此表不符合第二范式,需要将其独立出一张表

组件ID价格供应商ID供应商名称供应商地址
119.991Stylized PartsVA
220.991Stylized PartsVA
330.992ACME IndustriesCA

==>转化为如下

组件ID价格供应商ID
119.991
220.991
330.992
供应商ID供应商名称供应商地址
1Stylized PartsVA
2ACME IndustriesCA
3. 第三范式(3NF):所有非键属性只与候选键相关,非键属性间是独立无关的
  • 下列表格中的字段小计与字段单价和数量相关,不满足第三范式
订单编号客户名称单价数量小计
1000peter¥354¥140
1001jack¥305¥150

参考:维基百科

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值