数据库三范式:
第一范式,(一个表,每一列都是原子性;)  
    所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项。
    
比如一张用户表,用户信息,包括了姓名和电话,能够再进行拆分的,就不满足第一范式。

第二范式,(也就是说在表中存在多对多的关系,就不满足第二范式,必须再加一个中间表来区分)
          (要求一张表,只描述一件事)  
    要求实体的属性完全依赖于主关键字。所谓完全依赖是指不能存在仅依赖主关键字一部分的属性
要求数据库表中的每个实例或记录必须可以被唯一地区分。

比如订单表,既保存了订单信息又保存商品信息,那么就不满足第二范式。

第三范式,是第二范式的子集,第一和第二范式主要区分能不能拆成两张表,
而第三范式要求一个表中不能包含其他表已经包含的非主键信息。
如果能通过其他主键查到,那么就不能继续保存,否则就数据冗余。还可能造成更新丢失异常。


BC范式:一张表中,不能出现两组,两个组合关键字索引。
比如一张商品表包含了供应商名称,商品ID,供应商联系人,商品数量等字段。
那么当供应商刚签合同,还没供应商品数量的时候,就查不到供应商的信息,就会出现插入异常。  而且供应商名称,商品ID 能组合查到唯一,商品ID,供应商联系人也能组合查到唯一,这时候就应该分表。供应商表,和商品表。

 

数据库三大范式以及mysql存储引擎

相关文章:

  • 2021-07-19
  • 2021-07-07
  • 2021-09-22
  • 2022-12-23
猜你喜欢
  • 2021-10-28
  • 2021-09-28
  • 2022-12-23
  • 2021-09-03
  • 2021-11-26
  • 2021-05-01
  • 2021-07-26
相关资源
相似解决方案