数据库范式

数据库的范式:

第一范式(1NF):

数据表中的每一列都是不可分割的基本数据项,同一列不能有多个值,即实体中的某个属性不能有多个值或者不能有重复的属性。

数据库范式_第1张图片
不符合第一范式
数据库范式_第2张图片
符合第一范式

如上面的例子:第一个图中信息字段包含了家庭住址与联系电话两方面信息,因此需要将信息进行分开,改为家庭住址,联系电话存储,如果联系电话里面又包含手机与座机,也要分开记录。第一范式就是为了保证每一列的原子性,使每一列都成为不可分割的最小数据单元。

第二范式(2NF):

满足1NF后,要求表中的所有列,都必须依赖于主键,而不能有任何一列与主键没有关系,也就是说一个表只描述一件事情。

数据库范式_第3张图片
不满足第二范式

上图例子中的学校地址不完全依赖于学生主键,因此不满足第二范式,应该将此表分为两个:学生表与学校表。第二范式就是保证数据满足第一范式的情况下,除了主键以外的其他列都依赖于主键。

第三范式(3NF):

满足2NF后,表中的每一列都与主键直接相关。

数据库范式_第4张图片
满足第三范式

学生的联系电话不依赖于家庭住址的传递,与主键直接有关。







个人公号:【排骨肉段】,可以关注一下。

你可能感兴趣的:(数据库范式)