比方说,我在NF3中有下面的表格
表名称:地址
表名称:状态
表名称:国家
现在,我想对该表进行非规范化,以便读取会更快,并且我不需要联接多个表,但我无法理解什么是非规范化。
示例1)我是否需要在3NF中保留上面的表格,在Address上保留额外的列,例如state_name,country_name,以便结果表如下所示。
表名称地址
或
示例2)是否需要从Address
表中删除state_id并保留state_name
和country_name
。
表名称地址
从以上两个示例中,哪个是非规范化?
非规范化是尝试通过因此,通过将添加冗余副本数据或通过对数据进行分组来提高数据库的读取性能,但会损失一些写入性能的过程。
state_name
添加到Address
表中,您已使数据库非规范化。是否消除state_id
无关紧要。添加state_name
之类的列,其中包含许多行具有相同的值,这很简单,这使数据库变得非规范化。