








| |
Reporting is an oft overlooked element within both business and systems
analysis. Many system designs assume that the database designed to support
transaction processing, or worse, the direct implementation of the logical data
model will meet reporting needs. While there is some acknowledgement of the need
to separate transaction processing from on line reporting with the development
of data warehouses, the principles and the motivations behind this separation
are often not fully understood. The result is quite frequently systems that
cannot meet the business needs because of the clash between reporting and
transaction activity.
| Transaction Needs |
Reporting Needs |
|
Indexes
on all tables minimized to reduce transaction write time |
Indexes
maximized to allow for unexpected requirements for specification of
reports, chiefly selection criteria |
| Validation Tables maintained as separate data
structures to allow for flexibility in transaction processing. (Particularly
in setting where multiple languages are required or business requirements
evolve or or not fully understood) |
The number of tables required to produce a
report need minimized to meet report production goals |
| Calculation performed to support validation
requirements |
Calculations performed to support operational,
strategic and performance needs |
Compounding this, making a habit of producing large complex reports from a
data base also supporting heavy transaction activity means that one or both
activities will suffer
Developing a set of principles therefore that recognize these needs and
constraints to build a suitable system design that will accommodate a specific
set of requirements is critical to the success, no some much of a project, but
of the final product as a useful tool for the business. |