Ssas 操作数据库模式到数据集市模式,表缩减?

Ssas 操作数据库模式到数据集市模式,表缩减?,ssas,olap,business-intelligence,Ssas,Olap,Business Intelligence,我开始学习SQLServerAnalysisServices,我正在以自己的方式学习,以及。在这两个例子中,我都发现了这样的建议:OLAP数据库中使用的表的数量理想情况下,星型模式大大减少了生产OLTP数据库中的表数量 从培训包中: 我们遵循数据维方法来构建数据集市模式。从操作数据库中的大约200个表中,数据集市模式包含大约10个维度表和2个事实表 据我所知,运营数据库通常是有点规范化的,数据集市模式是严重非规范化的。我还认为,数据非规范化通常需要添加更多的表,而不是更少的表 我不知道如何从20

我开始学习SQLServerAnalysisServices,我正在以自己的方式学习,以及。在这两个例子中,我都发现了这样的建议:OLAP数据库中使用的表的数量理想情况下,星型模式大大减少了生产OLTP数据库中的表数量

从培训包中:

我们遵循数据维方法来构建数据集市模式。从操作数据库中的大约200个表中,数据集市模式包含大约10个维度表和2个事实表

据我所知,运营数据库通常是有点规范化的,数据集市模式是严重非规范化的。我还认为,数据非规范化通常需要添加更多的表,而不是更少的表


我不知道如何从200个表变成12个表,除非只需要报告数据的子集。如果您只需要报告数据的子集,为什么不能在操作数据库中使用适当的表,除非使用非规范化的星型模式可以显著提高性能?

非规范化与规范化数据库正好相反。在规范化的数据库中,所有内容都被拆分到不同的表中,以支持对数据的并发写入。这还有一个副作用,就是在理想的第三范式数据结构中只生成一次给定的数据子集。规范化的一个缺点是,由于数据是分散的,我们需要连接表来理解数据,因此读取需要更长的时间。再次,连接是非常昂贵的操作

当我们去规范化时,我们从多个表中获取数据并将它们合并到一个表中。现在我们在这些表中有了重复的数据。重复数据很有用,因为我们不必再通过连接任何其他表来获取它。写入数据存储通常是一个坏主意,因为这意味着需要大量的写入来更改表中的所有数据,而在规范化数据库中只需要一个

OLTP代表在线事务处理,请注意Transactional一词。事务是写操作,OLTP模型为此进行了优化。OLAP代表在线分析处理,分析是指大量阅读的关键词

在OLTP到OLAP的过程中,从200个表到12个表将惊人地保存OLTP数据库中的几乎所有数据以及更多数据。OLTP无法记录随时间变化的所有更改,但OLAP擅长于此,因此您可以获得所有历史数据以及当前数据

星型模式可能是OLAP数据存储最常见的模式,雪花模式也很常见。你应该学习这两种方法以及如何正确使用它们。这只是你武器库中的另一个伟大工具

这两本来自IBM的书将更加深思熟虑地回答您的问题,它们是免费的pdf


除非使用非规范化的星形模式可以显著提高性能-是的,有。