Mysql范式与反范式的利害
一、三大范式
第一范式
1NF是对属性的原子性,请求属性具有原子性,不可再剖析;
第一范式是最基本的范式。假如数据库表中的一切字段值都是不可剖析的原子值,就申明该数据库表满足了第一范式。数据库表的每一列都是不可分割的原子数据项,而不能是鸠合,数组,纪录等非原子数据项。简而言之,第一范式就是无反复的域。
第二范式
2NF是对纪录的唯一性,请求纪录有唯一标识,即实体的唯一性,即不存在部份依靠;
满足第二范式必需先满足第一范式。第二范式须要确保数据库表中的每一列都和主键相干,而不能只与主键的某一部份相干(重要针对团结主键而言)。也就是说在一个数据库表中,一个表中只能保留一种数据,不能够把多种数据保留在统一张数据库表中。
第三范式
3NF是对字段的冗余性,请求任何字段不能由其他字段派生出来,它请求字段没有冗余,即不存在通报依靠;
首先是 2NF,别的非主键列必需直接依靠于主键,不能存在通报依靠。即不能存在:非主键列 A 依靠于非主键列 B,非主键列 B 依靠于主键的状况。简而言之,第三范式(3NF)请求一个关联中不包括已在别的关联已包括的非主关键字信息。比方,存在一个部门信息表,个中每一个部门有部门编号(dept_id)、部门称号、部门简介等信息。那末在员工信息表中列出部门编号后就不能再将部门称号、部门简介等与部门有关的信息再到场员工信息表中。
范式的利害:
长处:范式能够防止数据冗余,削减数据库的空间,减轻保护数据完整性的贫苦。
瑕玷:根据范式的范例设想出来的表,品级越高的范式设想出来的表越多。如第一范式能够设想出来的表能够只要一张表罢了,再根据第二范式去设想这张表时就能够出来两张或更多张表,假如再按第三范式或更高的范式去设想这张表会涌现更多比第二范式多 的表。表的数目越多,当我们去查询一些数据,必定要去多表中去查询数据,如许查询的时刻要比在一张表中查询中所用的时刻要高许多。也就是说我们所用的范式越高,对数据操纵的机能越低。所以我们在应用范式设想表的时刻,要根据细致的需求再去衡量是不是运用更高范式去设想表。
引荐 《mysql视频教程》
二、反范式
故名思义,跟范式所请求的恰好相反,在反范式的设想形式,我们能够许可恰当的数据的冗余,用这个冗余去取操纵数据时刻的收缩。也就是用空间来调换时刻,把数据冗余在多个表中,当查询时能够削减或者是防止表之间的关联。
反范式的利害:
长处:查询时能够削减表的关联;能够更好的举行索引优化;
瑕玷:存在数据冗余以及数据保护非常;对数据的修正须要更多的本钱;
以上就是Mysql范式与反范式的利害的细致内容,更多请关注ki4网别的相干文章!