数据库范式与反范式设计,是一门艺术
正文共: 2251字 3图 预计阅读时间: 6分钟 前言 在日常业务研发过程中,我们常常需要与数据库表打交道。设计范式是数据表设计的基本原则,对于数据表的设计范式,我们特别容易忽略它的存在。很多时候,当数据库运行了一段时间之后,我们才发现数据表设计上有问题。然后重新调整数据表的结构,需要做数据迁移,还有可能影响程序处理的业务逻辑,甚至系统的正常服务运行。 其实在数据库表结构设计的初期时候,我们就需要重视数据表的设计。 1、数据库的设计范式 1.1 数据库的设计范式包括哪些呢? 我们在设计关系型数据库模型的时候,需要对关系内部各个属性之间联系的合理化程度进行定义,这就有了不同等级的规范要求,这些规范要求被称为范式(NF)。 范式简单理解即为:一张数据表的设计结构需要满足的某种设计标准的级别。 目前关系型数据库一共有 6 种范式,按照范式级别,从低到高分别是:1NF(第一范式)、2NF(第二范式)、3NF(第三范式)、BCNF(巴斯 - 科德范式)、4NF(第四范式)和 5NF(第五范式,又叫做完美范式)。 数据库的范式设计越高阶,冗余度就越低,同时高阶的范式一定符合低阶范式的要求,比如满足 2NF 的一定满足 1NF,满足 3NF 的一定满足 2NF,依次类推。 这么多的范式级别,那是不是都要符合呢? 一般来说数据表的设计应尽量满足 3NF 。但也不绝对,有时候为了提高某些查询性能