MySQL数据库 范式

MySQL中为保证数据库存储数据的性能,方便编程人员对数据的操作,势必要有一些科学、合理的设计数据库结构规则,这在关系型数据库中称它为范式。


每一列的属性都是不可再分保证其原子性,属性相近或类似的合并成一列,尽量减小数据的冗余。

以下student表“地址”属性包含了国家与城市信息,不满足第一范式。



第二范式是指一行记录只表述一件事,有重复的数据应把表拆开来。

student表经第一范式调整后,“国家”、“城市”属性会有大量重复数据,造成数据冗余。要把student拆分成一张表述学生信息表和一张地址信息表,再用外键约束把它们关联起来。



在满足第一、二范式基础上,表内每个属性都是与主键是直接联系而不是间接关系。

比如student增加一列“班主任”,那么“班主任“信息应单独建个表,否则会导致很多麻烦。如”黄药师“班主任是新入职的,手上还没有学生如放在student表是不合适的;”杨康“班主任走了,学生信息与班主任信息在同一张表时,删除杨康的同时把学生信息一并删除是错误的。

小结

范式是设计数据库的基本概念,使用它可建立尽可能科学、合理的数据库结构。但在一些场合,出于特殊考虑牺牲结构换取性能也是可以理解的。不要一味的追求范式,应采用需求->性能->结构的理念来设计数据库。

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

相关阅读更多精彩内容

友情链接更多精彩内容