南京seo代理商,seo深圳网络推广,软件项目管理案例分析,交互网站建设文章目录 范式的概念三范式范式一范式二范式三 反范式总结 范式的概念
为了建立冗余较小、结构合理的数据库#xff0c;设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库#xff… 文章目录 范式的概念三范式范式一范式二范式三 反范式总结 范式的概念
为了建立冗余较小、结构合理的数据库设计数据库时必须遵循一定的规则。在关系型数据库中这种规则就称为范式。范式是符合某一种设计要求的总结。要想设计一个结构合理的关系型数据库必须满足一定的范式。
三范式和反范式是空间和时间的关系。三范式是为了降低空间反范式是通过增加空间来提升运行效率。
三范式
1目的减少空间占用。 2内容列不可分、依赖主键联合索引、在依赖主键联合索引的基础上直接依赖。
范式一
确保每列保持原子性数据库表中的所有字段都是不可分解的 原子值 例如某表中有一个地址字段如果经常需要访问地址字段中 的城市属性则需要将该字段拆分为多个字段省份、城市、 详细地址等
范式二
确保表中的每列都和主键相关而不能只与主键的某一部分相关组合索引 因为订单编号与客户的信息相关订单编号和商品编号一起唯一确定数量商品编号和商品信息相关所以可以拆分成三个表
范式三
确保每列都和主键直接相关而不是间接相关减少数据冗余
例如 因为客户名称、所属公司、联系方式是和客户编号直接相关的而客户编号跟订单编号是直接相关的所以可以拆分为 和
反范式
反范式是经常使用的设计。比如用户表采用的就是反范式因为如果用户表不采用反范式设计将会产生很多的关联关系表这就会涉及到联表查询非常影响效率特别对登录来说是不可容忍的。
因此反范式允许冗余存储为了提升查询效率。
总结
范式二中对于联合索引主键不能依赖一部分而要依赖整体出现重复的要拆分。反范式是经常使用的设计。三范式可以避免数据冗余减少数据库的空间减小维护数据完整性的麻烦。但是采用数据库范式化设计可能导致数据库业务涉及的表变多并且造成更多的联表查询将导致整个系统的性能降低。因此处于性能考虑可能需要进行反范式设计。