数据库范式

关系数据库六种范式:

第一范式(1NF)、

第二范式(2NF)、

第三范式(3NF)、

巴斯-科德范式(BCNF)、

第四范式(4NF)

和第五范式(5NF,又称完美范式)


1NF的定义为:符合1NF的关系中的每个属性都不可再分,1NF是所有关系型数据库的最基本要求。简而言之,第一范式就是无重复的域。

但是仅仅符合1NF的设计,仍然会存在数据冗余过大,插入异常,删除异常,修改异常的问题。


2NF 在 1NF的基础之上,消除了非主属性对于码的部分函数依赖

- 函数依赖:若字一张表中,在属性(或属性组)X的值确定的情况下,必定能确定属性Y的值,那么就可以说Y函数依赖于X,写作 X—>Y

1、完全函数依赖      在一张表中,若 X → Y,且对于 X 的任何一个真子集(假如属性组 X 包含超过一个属性的 话),X ' → Y 不成立,那么我们称 Y 对于 X 完全函数依赖,记作 X F→ Y。

2、部分函数依赖      假如 Y 函数依赖于 X,但同时 Y 并不完全函数依赖于 X,那么我们就称 Y 部分函数依赖于 X,记作 X  P→ Y

3、传递函数依赖 假如 Z 函数依赖于 Y,且 Y 函数依赖于 X (『Y 不包含于 X,且 X 不函数依赖于 Y』这个 前提),那么我们就称 Z 传递函数依赖于 X ,记作 X T→ Z

- 码:设K为某表中的一个属性或属性组,若除K之外的所有属性都完全函数依赖于K,那么我们称K为候选码《简称为码。 假如当K确定的情况下,该表除K之外的所有属性的值也就随之确定,那么K就是码。

- 非主属性: 包含在任何一个码中的属性成为主属性。

整那么多理解起来挺麻烦,  简而言之,第二范式就是在第一范式的基础上属性完全依赖于主键。


3NF在2NF的基础之上,消除了非主属性对于码的传递函数依赖。第三范式就是属性不依赖于其它非主属性,也就是在满足2NF的基础上,任何非主属性不得传递依赖于主属性。

基本解决了数据冗余过大,插入异常,修改异常,删除异常的问题。


暂时就到这了,有时候某些单个的概念还好,组合到一块就有点天书的味道了,简单的总结下,方便理解:

一范式就是属性不可分割,属性是是什么?就是表中的字段。

二范式就是要有主键,要求其他字段都依赖于主键。

三范式就是要消除传递依赖,方便理解,可以看做是“消除冗余”。

(消除冗余 就是各种信息只在一个地方存储,不出现在多张表中)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 静下心来写一篇介绍1NF、2NF、3NF与BCNF范式的文章。 整体关系 他们的约束如上图,也就是说: 满足...
    nlpjoe阅读 1,097评论 0 2
  • 1NF: 1NF的定义为:符合1NF的关系中的每个属性都不可再分。原子性。 2NF: 2NF在1NF的基础之上,消...
    Arya鑫阅读 482评论 1 0
  • 简介数据库范式在数据库设计中的地位一直很暧昧,教科书中对于数据库范式倒是都给出了学术性的定义,但实际应用中范式的应...
    三三At你阅读 2,186评论 0 16
  • 【芒果千层】加了水果的口味和之前做的抹茶皮的味道大不一样,芒果的味道和千层是绝配,味道太美丽,酸甜的果肉加上千层皮...
    YI是可以的以阅读 367评论 0 0
  • (第一次玩简书,看了一些文章挺有意思。我自己是一名大四学生,目前正在实习,我把自己离校到出来找工作的一些经历写出来...
    非而乐思阅读 433评论 8 4

友情链接更多精彩内容