8. 宽表与数据库设计三范式

8.1. 宽表

以下内容引用自:https://www.cnblogs.com/zoutong/p/13497545.html

宽表:**从字面意义上讲就是字段比较多的数据库表。通常是指业务主题相关的指标、维度、属性关联在一起的一张数据库表。**由于把不同的内容都放在同一张表存储,宽表已经不符合三范式的模型设计规范,随之带来的主要坏处就是数据的大量冗余,与之相对应的好处就是查询性能的提高与便捷。这种宽表的设计广泛应用于数据挖掘模型训练前的数据准备,通过把相关字段放在同一张表中,可以大大提高数据挖掘模型训练过程中迭代计算时的效率问题。(一句话,空间换时间,便于训练迭代、减少表关联数量,修改少量数据时不需要该多张表)

窄表:严格按照数据库设计三范式。尽量减少数据冗余,但是缺点是修改一个数据可能需要修改多张表

8.2. 三范式

8.2.1. 第一范式:确保每列保持原子性

8.2.2. 第二范式:确保表中的每列都和主键相关

8.2.3. 第三范式:确保每列都和主键列直接相关而不是间接相关