业务系统和数据仓库
数据仓库和业务系统的目的从根本上是不同的。业务系统支持业务处理的执行,同时数据仓库支持处理的评估。他们的使用目的不同,因此需要不同的原理指导不同的设计。维度建模的原理非常适合数据仓库系统的需求。
业务系统
业务系统
业务系统直接支持业务处理的执行。通过捕获交易事务重要事件的细节,建立活动记录。例如,一个销售系统捕获订单、运输和回款信息;一个人力资源系统捕获员工的雇佣和提升信息;一个会计系统捕获财务管理的资产和负债信息。捕获这些活动的细节通常是业务系统的重点。
为了方便业务处理的执行,一个业务系统必须能够与多种数据库交互,包括插入、更新和删除。业务系统经常称为交易系统。这些交易系统的特点是原子操作--一个具体的命令序列。这些交互具有可预测性。例如,一个订单处理系统必须提供产品、客户、发票和包装的列表;并且能跟踪订单状态。在关系数据库中实施,优化数据库设计的模式是广泛采用的方法,使之符合第三范式。设计支持高性能的插入、更新和删除数据,并保持原子性和一致性。
因为重点集中于处理的执行,交易系统在事物变化是进行更新操作,当交易结束时使数据归档。例如,一旦客户变了新地址,旧地址就不需要了。一年后,销售订单已经传递到财务报告,那么就不需要在交易系统维护该订单了。
数据仓库系统
交易系统集中于业务流程的执行,而数据仓库系统则集中于业务的评估。这个月的订单数量相比上个月的趋势如何?这个季度的销售额目标是多少?市场营销活动对销售有什么影响?谁是我们最好的客户?这些问题涉及到评估整个订单的流程,而不是某一个单独的订单。
数据仓库完全通过查询数据与用户交互;不会新建和修改信息。这些交互涉及大量的交易,而不是某个交易。有很多专业的预测问题,还有随时间变化的趋势。在数据仓库系统中,历史数据将会保留很久。交易系统与数据仓库系统的区别见图1.1。
维度建模的原理满足了数据仓库系统的需求。相对于单个记录的交易系统,星型设计模式是查询大数据量优秀方案。它支持历史数据的维护,甚至交易系统修改和删除的信息。作为模型的处理标准,多维模式能够解决各种各样的问题。