首页 > 数据库技术 > 详细

数据库设计-逻辑设计-范式

时间:2019-04-22 13:14:43      阅读:144      评论:0      收藏:0      [点我收藏+]

数据库设计

数据库设计范式

  • 为什么要使用范式?
    • 数据库设计范式可以很好的为我们规避数据操作异常和数据冗余,可以更合理的设计数据库表,处理表与表之间的关系。
      • 数据操作异常
        1. 插入异常:本该被插入的数据没有被插入。
          • 一个实体依赖于另一个实体,插入该实体时,若依赖的实体没有插入,则会产生插入异常。
        2. 更新异常:简单事实却要更新多次。
          • 更新实体的单独属性时,产生多行更新。
          删除异常:删除不该删除的数据。
          • 删除一个实体实例时,导致另一个实体实例信息的丢失。
      • 数据冗余
        • 相同数据多个地方存在或者表中某列可以由其他列计算得到。

 

  • 第一范式:实体的属性都是单一属性,不可再分。(原子性约束)
    • 数据库表的每一列都是不可分隔的原子数据项。

 

  • 第二范式:实体的非主属性完全依赖于主关键字(单一属性或者属性组),不能仅依赖于主关键字的部分属性。(唯一性约束)
    • 数据库表中的每一行必须可以被唯一地区分。
    • 消除非主属性对主码的部分函数依赖。

 

  • 第三范式:实体的非主属性不依赖于其他的非主属性,即不传递依赖于主属性。(冗余性约束)
    • 数据库表中字段不能冗余出现,任何字段不能由其他字段派生出来。
    • 消除非主属性对主码的传递依赖。

 

  • BC范式:实体的非主属性不依赖于主键子集。(进一步降低冗余性)
    • 对第三范式的修正,使数据库冗余性更小。
    • 消除非主属性对主码子集的依赖。

以上仅为本人学习过程中的知识总结,若有错误,还请诸位不吝赐教。

 

数据库设计-逻辑设计-范式

原文:https://www.cnblogs.com/sundaoxing/p/10744261.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!