I'm preparing a presentation based on my Data Warehouse Scorecard, and I realize that for a lot of people there?s a confusion about the difference between a Data Warehouse and a Data Mart. While both fall into the category of a large offline database, they are in fact different things, event if people often use the words interchangeably. Ultimately the difference comes down to two separate tasks that affect any data warehouse project: getting the data straight, and optimizing it for reporting.
Let's unpack the difference. If you have an ERP system, like Oracle or SAP, your data is probably in fairly good order. But it's optimized for entering transactions, not for analysis. In practice that might mean that you have indexes (ways to quickly access data) at the Customer/Invoice level but not at the Region/Line of Business level. You may also have so much detail that queries take to a long time to run. If that's the case, you may want to build a Data Mart so that your queries and slice and dice functionality will work correctly. The summaries and data access you need will always be there - they don?t have to be tediously recreated every time you run a new query.
On the other hand, if you have five different systems with HR/Payroll data, you may need to build a central Data Warehouse before you start worrying about optimizing for reporting. If for example you had one system for applicant tracking, one for payroll and benefits, and another for performance management, you?d first want to bring all this data into one place. That?s the Data Warehouse.
Importantly, you want to focus on getting the data clean first before you worry about optimizing it for reporting. It needs to be clean and verified before you worry about answering questions quickly.
Many people in the field get into detailed discussions about what's a "real" Data Warehouse and what?s a Data Mart. From my perspective the thing that matter most is understanding the challenge you have getting the data straight or optimizing it for reporting and analysis.