【发布时间】:2021-08-01 21:58:25
【问题描述】:
我的印象是,在 OLAP 中,我们尝试以非规范化的方式存储数据,以减少连接数量并加快查询处理速度。避免数据冗余的规范化更适用于 OLTP 系统。
但话又说回来,两种常见的建模方法(星型和雪花模式)本质上是规范化模式。
你能帮我把这些点联系起来吗?
【问题讨论】:
标签: database data-warehouse snowflake-schema
我的印象是,在 OLAP 中,我们尝试以非规范化的方式存储数据,以减少连接数量并加快查询处理速度。避免数据冗余的规范化更适用于 OLTP 系统。
但话又说回来,两种常见的建模方法(星型和雪花模式)本质上是规范化模式。
你能帮我把这些点联系起来吗?
【问题讨论】:
标签: database data-warehouse snowflake-schema
当人们使用“规范化”一词时,他们通常表示处于或至少接近于第三范式 (3NF) 的事物。
除非您通过术语规范化来表示明显不同的东西,否则 Star 或 Snowflake 模式都不会被规范化。为什么你认为它们是标准化的?
【讨论】:
其实这是很有洞察力的,绝大多数人都接受了。事实是星是部分非规范化的——维度表是高度非规范化的;它们通常来自将许多相关表合并为一个。然而,设计良好的事实表是标准化的 - 每条记录都是由单个唯一主键标识的一组值,该主键由一组外键的交集组成。
正如您推测的那样,雪花模式更加规范化。他们有效地获取维度表并将它们分解为小的值,这些值在需要时全部连接在一起。虽然对于这是否比明星更好或更差一直存在争论,但许多人认为这些是廉价的加入,并且根据您的想法,可能值得。
最初,雪花是作为一种节省磁盘空间的方式出售的,因为它们占用的空间确实比维度表要少,但现在磁盘空间已很少成为问题。
我个人更喜欢一种混合方法,它允许我构建几个级别的维度表,最终可以为我的原子级数据和聚合事实表提供引用完整性。
【讨论】: