非规范化与规范化数据库完全相反。在规范化的数据库中,所有内容都会分散到不同的表中,以支持对数据的并发写入。这也具有仅产生任何给定数据子集一次的副作用(在理想的第三范式数据结构中)。规范化的缺点是读取需要花费更长的时间,因为数据是分散的,我们需要连接表来再次理解它(连接是非常昂贵的操作)。
当我们进行非规范化时,我们从多个表中获取数据并将它们合并到一个表中。所以现在我们在这些表中重复数据。重复数据很有用,因为我们不必再连接任何其他表来获取它。写入数据存储通常是一个坏主意,因为这意味着很多写操作会更改表中的所有数据,而在规范化数据库中只需要一个。
OLTP代表在线交易处理,请注意“交易”一词。事务是写操作,并且为此优化了OLTP模型。 OLAP代表在线分析处理,分析是关键字,意味着大量读取。
在OLTP到OLAP进程中从200个表转到12个,令人惊讶的是,OLTP数据库中的几乎所有数据都会保留更多数据。 OLTP无法记录所有更改,但OLAP专注于此,因此您可以获得所有历史数据以及当前数据。
星型模式可能是OLAP数据存储最常见的,雪花模式也很常见。您应该了解两者以及如何正确使用它们。这只是你的武器库中的另一个伟大工具。
来自IBM的这两本书将更加充分地回答您的问题,并且它们是免费的PDF文件。
http://www.redbooks.ibm.com/abstracts/sg247138.html http://www.redbooks.ibm.com/abstracts/sg242238.html