OLAP 系统中的星型和雪花型模式

Star snd snowflake schema in OLAP systems

我的印象是,在 OLAP 中,我们尝试以非规范化的方式存储数据,以减少连接数并加快查询处理速度。避免数据冗余的规范化更适用于 OLTP 系统。
但话又说回来,2 种常见的建模方法(星型和雪花模式)本质上是规范化模式。
你能帮我把这些点联系起来吗?

当人们使用“规范化”一词时,他们通常指的是处于或至少接近第三范式 (3NF) 的事物。

除非您用术语规范化指的是明显不同的东西,否则 Star 或 Snowflake 模式都不是规范化的。为什么您认为它们已正常化?

其实这个很有感性,绝大多数人都接受。事实上,恒星是部分非规范化的——维度 tables 是高度非规范化的;它们通常来自将许多相关的 table 组合成一个。然而,一个设计良好的事实 table 是规范化的 - 每条记录都是由单个唯一主键标识的一堆值,该主键由一组外键的交集组成。

如您所料,雪花模式更加规范化。他们有效地获取维度 tables 并将它们分解成小值,这些值在需要时全部连接在一起。虽然关于这是否比明星更好或更差的争论不断,但许多人认为这些是廉价的连接,并且根据您的想法,可能是值得的。

最初,雪花是作为一种节省磁盘 space 的方式出售的,因为它们占用的空间确实少于尺寸 tables,但现在磁盘 space 很少成为问题。

我个人更喜欢一种混合方法,它允许我构建几个层面的维度 table,最终可以为我的原子级数据和我的聚合事实 table 提供参照完整性.