数据库的范式理论

数据库的第一范式(1NF)——要有主键

  • 属性取值的原子性(不可再分)
  • 属性取值数量应该是单一的
  • 需要有主键
  • 实体中的属性不能有重复组的问题

数据库的第二范式(2NF)——依赖于整个主键

1、必须满足第一范式
2、必须依赖于全部主键
eg:公司订单实体(考虑不同客户的优惠不同):订单号、订单日期、客户号、商品名、商品售价、客户姓名、客户地址,该实体中订单号和客户号应该作为该实体中的主键,显然客户姓名、客户地址并不依赖于订单号,应该把它拆分为两个实体:

  • 订单实体(订单号、订单日期、客户号、商品名、商品售价)
  • 客户实体(客户号、客户姓名、客户地址)

数据库的第三范式(3NF)——只能依赖于主键

1、必须满足第二范式
2、不能存在传递依赖关系
eg:公司订单实体(订单号、订单日期、客户号、客户姓名、客户地址),在该实体中订单号作为主键,客户地址和客户姓名依赖于客户号,客户号依赖于订单号,此处存在传递依赖关系,应该拆分为以下两个实体:

  • 订单实体(订单号、订单日期、客户号)
  • 客户实体(客户号、客户姓名、客户地址)
  • 6
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值