database-design - OLAP 和 OLTP 中的规范化

标签 database-design normalization olap database-normalization oltp

尽管翻阅了书籍和文章,但我无法找到以下问题的具体答案。

OLAP 和 OLTP 的最小和最大规范化程度应该是多少?

我推测,OLTP 的最小值是第三范式,OLAP 的最大值是第二范式。

我们能否提供详细信息来补充答案?

最佳答案

一些 OLAP 采用数据仓库、数据集市或报告数据库的形式。一种设计采用星型模式的形式,由 Ralph Kimball 引入。在星型模式中,事实表有时是 1NF,而维度表通常是 2NF。您可以分解维度表,使它们处于 3NF 甚至 BCNF 中,最终得到一个雪花模式。

一般来说,星型模式设计是一门足够严格的学科,因此您实际上不会从规范化或非规范化的角度来思考,而是从良好的星型设计的角度来思考。自然地,偏离规范化会导致更新异常,这会使您的 ETL 处理变得复杂。

星型模式实际上是一种在 SQL 平台上表示 Kimball 所谓的维度模型的方式。这些结果证明对数据集市和报告数据库以及数据仓库很有用。

William (Bill) Inmon 是数据仓库的另一位创新者,他提倡即使在进行 OLAP 时也要保持 3NF。 Kimball 和 Inmon 都比我聪明,我不会试图告诉你哪一个是正确的。当我完成 OLAP 时,我倾向于跟随 Kimball,并取得了不错的效果。

关于database-design - OLAP 和 OLTP 中的规范化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33491185/

相关文章:

python - 数组的按列归一化(缩放)

R怪癖: Normalize the content of a vector by binned values of another vector

visual-studio - 维度成员的 MDX 计算度量

sql - 数据库仓库设计: fact tables and dimension tables

postgresql - 如何使用 postgres 从子查询中获取行的关联数组

mysql - 将表中的数据计数存储到 "trending"表中

sql - Oracle 唯一约束 - 混合大小写

c# - 如何规范化/规范化正则表达式模式?

ssas - 如何学习 MDX

database-design - 如何定义一个 m :n relation with additional attributes in Squeryl?