database - 来自 3NF 的 Star Schema 设计

标签 database data-warehouse olap bids star-schema

我是数据仓库的新手,我一直在阅读有关原理的文章和观看视频,但对于如何采用下面的设计并将其转换为星型模式,我有点困惑。

在所有示例中,我都看到事实表引用了暗表,所以我假设 questionId 和 responseId 是事实表的一部分?任何建议将不胜感激。

enter image description here

最佳答案

我现在看不到图像(被我的防火墙@办公室阻止)。但我会尝试给你一些想法。

总体思路是将可衡量的“事实”组织到所谓的事实表中。有 3 种主要类型的事实,但那是另一天的话题(但如果需要,我很乐意讨论这个)。这些事实中的每一个都是您在典型“星型模式”的中心看到的。事实表中的其他属性通常是对维度表的 FK 引用。

关于维度,这些是具有共同性的属性组(最值得注意的是日历维度)。这很重要,因为当您对多个事实进行分析时,维度就是您用来连接它们的维度。

如果您考虑这个简单的示例:订购产品然后发货。我们可以有 2 个交易事实(一个包含订购数量 - 度量、订购产品类型 - 维度和交易日期 - 维度)。我们还有一个产品运输的交易事实(装运数量 - 度量、产品类型 - 尺寸和装运日期 - 尺寸)。这个简单的架构可用于回答诸如“上个季度按产品类型划分的产品有多少已订购但未发货”之类的问题。

希望这可以帮助您入门。

关于database - 来自 3NF 的 Star Schema 设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38572127/

相关文章:

sql-server - 面向最终用户的 SQL Server 分析服务多维数据集的更简单界面

java - 在两个字段上创建 Hibernate 标准以及类似查询

php - 从 PHP 库中调用函数并显示查询结果

sql-server - SQL 用聚集列存储索引替换所有表

google-cloud-platform - 将数据直接加载到 Google BigQuery 与先通过 Cloud Storage 的优缺点是什么?

java - 将 MS OLAP 与 Java 连接

mysql - 如何创建具有多个外键和多个列的mysql表

sql - Oracle SQL - 选择具有最高级别的行

mysql - SQL-通过比较字段值在重复行之间进行选择

salesforce - 使用 SalesForce/Apex 构建 OLAP 风格的应用程序