2004-05-19

Operational - Reporting Databases

Martin Fowler's - Reporting Database

The separation of reporting database from the operational database provides unique advantages such as: data from business logic (calculated), a de-normalized view of database (fewer joins), maintainability of operational database and runtime performance (fewer locks)

See also:
* Martin Fowler Bliki
* Reporting from Database

2 comments:

Chris Mylonas said...

The reporting database *shows* the business logic of the application as columns and rows.

Basically it's a snapshot of system's data for reporting and analysis purposes.

Chris Mylonas said...

Depends on reporting requirements!

If the user wants data without worrying about their age, the report database doesn’t need any update.

If the user requests the latest data, the system should refresh the Report database with the required information. This *is* a critical point since the object that perform this operation can use different algorithms to accomplish the task. (Schedule-based, just-before-usage, manual).

The update of reporting database will be performed by the actual classes (the business logic) with some help from other classes.