Rational Data Architect 中的逻辑数据建模
表规范化和反规范化
表规范化是指将实体划分为多个物理表的过程。规范化通常是一种逻辑数据建模应用。规范化的目标包括:
消除冗余数据。
使用有效的数据依赖性。
最大化系统灵活性,以适应数据结构的未来增长。
第三规范形式(3NF)将第一规范形式和第二规范形式的规则组合在一起,并结合了 3NF 的独特需求。简单来说,3NF 的规则如下所示:
消除重复的组 – 为每一组相关属性生成一个单独的表,并为每个表提供一个主键。
消除同一表中的重复的列。
为每一组相关数据生成一个单独的表,并使用一个惟一的列或列集合(主键)识别每一行。
消除冗余数据 – 如果某个属性只依赖一个多值键的一部分,那么将其移动到一个单独的表中。
移除被应用到表的多个行的列数据,并将它们移到单独的表中。
通过使用外键在表与表之间生成有效的关系。
删除不依赖主键的列
如果属性没有用于描述键,应当将它们移动到一个单独的表中。
在创建逻辑数据模型时,模型应当位于第三规范形式(3NF)。这种设计方法为用户提供了灵活的模型,可以随着业务需求的发展和变化进行增长和扩展。尽管建议对逻辑模型使用第三规范形式,但是当以第三规范形式部署模型时,它们常常不能有效地运行。
规范化示例
下面的示例旨在帮助您理解规范化的过程。有许多种方法可以建模问题解决方案,但是本节的目的是提供对规范化的理解。
例如,某些人也许会认为您永远都不应该规范化表中的名称,而另一些人则认为应该对名称进行规范化,因为如果创建了一个存储中间名的列,那么您会遇到这样一种情况:许多人实际上并没有中间名。因此,您将得到许多值为 null 的记录。正如此例展示的一样,数据建模是一种经常无法给出确切解决方案的技能。
2 3 4 5 6 下一页</div> </div> </div> </div> </div>