数据库设计的五大范式

第一范式:

对于表中的每一行,必须且仅仅有唯一的行值.在一行中的每一列仅有唯一的值并且具有原子性。(第一范式是通过把重复的组放到每个独立的表中,把这些表通过一对多关联联系起来这种方式来消除重复组的。) 即无重复列。

第二范式:

第二范式要求非主键列是主键的子集,非主键列活动必须完全依赖整个主键。主键必须有唯一性的元素,一个主键可以由一个或更多的组成唯一值的列组成。一旦创建,主键无法改变,外键关联一个表的主键。主外键关联意味着一对多的关系。
(第二范式处理冗余数据的删除问题。当某张表中的信息依赖于该表中其它的不是主键部分的列的时候,通常会违反第二范式。)

第三范式:

第三范式要求非主键列互不依赖。
(第三范式规则查找以消除没有直接依赖于第一范式和第二范式形成的表的主键的属性。我们为没有与表的主键关联的所有信息建立了一张新表。每张新表保存了来自源表的信息和它们所依赖的主键。)

第四范式:

第四范式禁止主键列和非主键列一对多关系不受约束。

第五范式:

第五范式将表分割成尽可能小的块,为了排除在表中所有的冗余。

PS.通常数据库设计满足第三范式即可,越往后付出代价越大;若追求性能,不一定遵循这些范式。



猜你喜欢

转载自www.cnblogs.com/nyhhd/p/12666182.html