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.