了解关系数据库中的非规范化?

问题描述 投票:0回答:1

比方说,我在NF3中有下面的表格

表名称:地址

  • line1
  • line2
  • state_id

表名称:状态

  • id
  • 名称
  • country_id

表名称:国家

  • id
  • 名称

现在,我想对该表进行非规范化,以便读取会更快,并且我不需要联接多个表,但我无法理解什么是非规范化。

示例1)我是否需要在3NF中保留上面的表格,在Address上保留额外的列,例如state_name,country_name,以便结果表如下所示。

表名称地址

  • line1
  • line2
  • 州名
  • 国家名
  • state_id

示例2)是否需要从Address表中删除state_id并保留state_namecountry_name

表名称地址

  • line1
  • line2
  • 州名
  • 国家名

从以上两个示例中,哪个是非规范化?

database postgresql rdbms database-normalization denormalization
1个回答
0
投票
引用Wikipedia

非规范化是尝试通过

添加冗余副本数据或通过对数据进行分组来提高数据库的读取性能,但会损失一些写入性能的过程。

因此,通过将state_name添加到Address表中,您已使数据库非规范化。

是否消除state_id无关紧要。添加state_name之类的列,其中包含许多行具有相同的值,这很简单,这使数据库变得非规范化。

© www.soinside.com 2019 - 2024. All rights reserved.