OLAP 和 OLTP 中的规范化
Normalization in OLAP and OLTP
尽管翻阅了书籍和文章,但我无法为以下内容找到具体的答案。
OLAP 和 OLTP 的最小和最大规范化程度应该是多少?
我推测,OLTP 的最小值是第三范式,OLAP 的最大值是第二范式。
能否提供详细信息来补充答案?
一些 OLAP 采用数据仓库、数据集市或报告数据库的形式。一种设计采用星型模式的形式,由 Ralph Kimball 引入。在星型模式中,事实表有时是 1NF,而维度表通常是 2NF。您可以分解维度表,使它们处于 3NF 甚至 BCNF 中,最终得到一个雪花模式。
一般来说,星型模式设计是一门足够严格的学科,因此您实际上不会从规范化或非规范化的角度来思考,而是从良好的星型设计的角度来思考。自然地,偏离规范化会导致更新异常,这会使您的 ETL 处理变得复杂。
星型模式实际上是一种在 SQL 平台上表示 Kimball 所谓的维度模型的方式。事实证明,这些对数据集市和报告数据库以及数据仓库很有用。
William (Bill) Inmon 是数据仓库的另一位创新者,他提倡即使在进行 OLAP 时也要保持 3NF。 Kimball 和 Inmon 都比我聪明,我不会试图告诉你哪一个是正确的。当我完成 OLAP 时,我倾向于跟随 Kimball,并取得了不错的效果。
在这两种情况下,最好的常识性建议可能是第五范式(Bill Inmon 为数据仓库推荐 3NF,但我相信他真正的意思是 BCNF 或 5NF,因为 3NF 本身没有特别的优点)。
一些数据仓库实现使用 6NF。
尽管翻阅了书籍和文章,但我无法为以下内容找到具体的答案。
OLAP 和 OLTP 的最小和最大规范化程度应该是多少?
我推测,OLTP 的最小值是第三范式,OLAP 的最大值是第二范式。
能否提供详细信息来补充答案?
一些 OLAP 采用数据仓库、数据集市或报告数据库的形式。一种设计采用星型模式的形式,由 Ralph Kimball 引入。在星型模式中,事实表有时是 1NF,而维度表通常是 2NF。您可以分解维度表,使它们处于 3NF 甚至 BCNF 中,最终得到一个雪花模式。
一般来说,星型模式设计是一门足够严格的学科,因此您实际上不会从规范化或非规范化的角度来思考,而是从良好的星型设计的角度来思考。自然地,偏离规范化会导致更新异常,这会使您的 ETL 处理变得复杂。
星型模式实际上是一种在 SQL 平台上表示 Kimball 所谓的维度模型的方式。事实证明,这些对数据集市和报告数据库以及数据仓库很有用。
William (Bill) Inmon 是数据仓库的另一位创新者,他提倡即使在进行 OLAP 时也要保持 3NF。 Kimball 和 Inmon 都比我聪明,我不会试图告诉你哪一个是正确的。当我完成 OLAP 时,我倾向于跟随 Kimball,并取得了不错的效果。
在这两种情况下,最好的常识性建议可能是第五范式(Bill Inmon 为数据仓库推荐 3NF,但我相信他真正的意思是 BCNF 或 5NF,因为 3NF 本身没有特别的优点)。
一些数据仓库实现使用 6NF。