数据库设计的范式

数据库设计的范式:

第一范式(1NF):指的是在关系模型中,对于添加的一个规范要求,所有的域都应该是原子性的,即数据库表的每一列都是不可分割的原子数据项,而不可能是集合,数组,记录等非原子性数据项。特点:原子性,同一列的类型相同,一个列名只能对应到一列,行的上下关系不影响。数据表中的每一个字段不可再分。

这种不是第一范式.png

第一范式.png

第二范式(2NF):数据表中不存在非关键字段对任意一候选字段的部分函数依赖。在1NF基础上,消除非主属性对主码的部分函数依赖。这个概念分两个层次理解:函数、函数依赖。
1.函数问题
所谓函数关系指的就是数据表中的列之间不应该存在的关系。如订单表(订单编号,商品名称,商品单价,商品数量,总价),这是这个表中存在函数关系了,总价=单价*数量。所以这样的就不符合第二范式(2NF)。
2函数依赖
满足第一范式.png

(身份证号,性别)→(学号,姓名,年龄,班级,班主任,爱好1,爱好2)
其中,班级和班主任部分函数依赖于主码
第二范式要使非主属性必须完全依赖于候选码
图片来自网络教学视频

表1 由身份证号主属性来锁定表2由主属性性别来锁定班级和班主任。
第三范式(3NF):在2NF基础上,任何非主属性不依赖于其他非主属性。
图片来自网络教学视频.png

满足第三范式要在2NF的基础上消除传递依赖:

图片来自网络教学视频.png

巴斯-科德范式(BCNF):在3NF的基础上,任何非主属性不能对主键子集依赖。
不满足BCNF例子

图片来自网络教学视频.png

拆分后满足BCNF
图片来自网络教学视频.png

第四范式(4NF):消除多值依赖
不满足4NF的例子如下:
图片来自网络教学视频.png

满足4NF例子如下:
图片来自网络教学视频.png

第5范式(5NF)::是最终范式。消除了4NF中的连接依赖。
第五范式有以下要求:
(1)必须满足第四范式
(2)表必须可以分解为较小的表,除非那些表在逻辑上拥有与原始表相同的主键。
第五范式是在第四范式的基础上做的进一步规范化。第四范式处理的是相互独立的多值情况,而第五范式则处理相互依赖的多值情况。
有一个销售信息表SALES(SALEPERSON,VENDOR,PRODUCT)。SALEPERSON代表销售人员,VENDOR代表供和商,PRODUCT则代表产品。
在某些情况下,这个表中会产生一些冗余。可以将表分解为PERSON_VENDOR表(SALEPERSON,VENDOR);PERSON_PRODUCT表(SALEPERSON,PRODUCT);VENDOR­_PRODICT表(VENDOR,PRODUCT)
本篇内容来自网络,本人只是做了结合来学习。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • SQL--数据库的设计(范式) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有...
    归子莫阅读 2,669评论 0 1
  • 第一范式 对应关系应该是原子级别,即每个键里某一行的属性应该只有一个,是基本数据项 第二范式 每一列的数据都要与主...
    Anseis阅读 3,649评论 0 0
  • 数据库设计范式及其意义和不足 补充:现在大型项目倾向于反范式设计,得益于大容量硬盘的白菜价和计算机的性能提升,表的...
    七枷琴子阅读 7,964评论 0 1
  • 为了建立冗余较小、结构合理的数据库,设计数据库时必须遵循一定的规则。 在关系型数据库中这种规则就称为范式。范式是符...
    赵客缦胡缨v吴钩霜雪明阅读 4,073评论 0 5
  • 最近在看数据库设计伦理,顺便里来理清一下数据库设计的六大范式。首先我们来了解几个概念。 范式(NF) “关系模式”...
    石小白aqa阅读 5,373评论 0 2