数据库设计三范式

xiaoxiao2021-02-28  75

第一范式(1NF)

所谓第一范式(1NF)是指数据库表的每一列都是不可分割的基本数据项,同一列中不能有多个值。 类似 字段名称为 className_studentName = ‘软工205_张三’ 这个就可分为className和studentName 所以就不满足第一范式

每个字段分的最细的类型,不能再往下分的那种。

第二范式(2NF)

第二范式是在第一范式(1NF)的基础上建立起来的,即满足第二范式(2NF)必须先满足第一范式1NF。

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

函数依赖 我们可以这么理解(但并不是特别严格的定义):若在一张表中,在属性(或属性组)X的值确定的情况下,必定能确定属性Y的值,那么就可以说Y函数依赖于X,写作 X → Y。

通过前面的X,可以找到后面唯一的一个Y。

第三范式(3NF)

第三范式(3NF)要求一个数据库表中不包含已在其它表中已包含的非主关键字信息。 即不能有传递依赖

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

BCNF范式

反范式化

反范式化是针对范式化而言的,为了性能和读取效率的考虑而适当的对第三范式的要求进行违反,而允许存在少量的数据冗余。 反范式化就是使用空间来换取时间。

总结:

1NF: 字段是最小的的单元不可再分 2NF:满足1NF,表中的字段必须完全依赖于全部主键而非部分主键 (一般我们都会做到) 3NF:满足2NF,非主键外的所有字段必须互不依赖 4NF:满足3NF,消除表中的多值依赖

转载请注明原文地址: https://www.6miu.com/read-80861.html

最新回复(0)