范式和反范式

范式和反范式

平时工作中,我们通常是将范式和反范式混合使用,相互结合。

  • 范式
    • 优点
      1. 范式化的更新操作通常比反范式化要快
      2. 当数据较好地范式化时,就只有很少或者没有重复数据,所以只需要修改更少的数据。
      3. 范式化的表通常更小,可以更好地放在内存里,所以执行操作会更快
      4. 很少有多余的数据以为这检索列表数据时更少需要distinct或者group by才能获得一份唯一的部门列表,但是如果部门是一张单独的表,则需要简单的查询这张表就行了。
    • 缺点
      1. 通常需要关联,稍微复杂一些的查询语句在符合范式的schema上都可能需要至少一次关联,也许更多。这不但代价昂贵,也可能使一些索引策略无效。例如,范式化可能将列存放在不同的表中,而这些列如果在一个表中本可以属于同一个索引。
  • 反范式
    • 优缺点
      • 反范式化的schema因为所有的数据都在一张表里,可以哼好的避免关联
      • 如果不需要关联表,则对大部分查询最差的情况—–即使表没有使用索引—是全表扫描。当数据比内存大时这可能比关联要快的多。因为这样避免了随机I/O(全表扫描基本上是顺序I/O,但也不是100%的,跟引擎的实现有关。)。单独的表也能使用有效的索引策略。
      • 降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,减少了查询时的关联,提高查询效率,
三范式

1NF:字段不可分;
2NF:有主键,非主键字段依赖主键;
3NF:非主键字段不能相互依赖;

**解释:
**1NF:原子性 字段不可再分,否则就不是关系数据库;
2NF:唯一性 一个表只说明一个事物;
3NF:每列都与主键有直接关系,不存在传递依赖;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值