在日常生活中,我们要使用大量的应用程序来生成新的数据、变更数据、删除数据,当然在大多数的情况下我们还要查阅和分析数据。就来想象一个收发 email 的简单应用程序吧。我们已经存储了地址信息,可能还存储了一些文档。我们可以决定是否存储已经发送过的邮件,但是也可能隔一段时间后将其删除,或者删除已经发送过的所有邮件。那么我们该如何处理一段时间以前删除或者修改过的地址呢?我们再也不会看到它们了。
Email 程序大部分都属于不是很复杂的数据库,但是完全可以将其看作一个在单用户环境下的 OLTP(在线事务处理系统)简单示例。它使用了所有的所谓访问数据的操作 CRUD(创建、读取、更新、删除)。当数据存储达到一定量的时候,规模就会几乎保持不变,因为可以从存储中删除过期数据。
数据仓库就完全是一种不同种类的应用程序。它并不是用来运行当前的操作,例如发送邮件。它是用来分析数据并且从现有数据中发现新的价值,主要是用来预测未来的情况。数据仓库并不是解决所有问题的通用结构。它必须集中于某一问题领域,例如航空服务、顾客收益等。
数据仓库也有有趣的一面,那就是数据库本身是稳定增长的。数据没有被删除,也不发生变更。我们不需要将冗余数据置于数据库之外(因为加入仓库中的数据经过了数据净化的过程,该过程检查了数据的正确性)来减少复杂性同时增强读取操作的性能。
为了能够对数据仓库中的数据进行分析,数据存储于一个多维结构中,叫做星型模式。如果将星型模式扩展,就会得到雪花模式。