Implementation design for databases: the 'forgotten' step

Most methodologies for database analysis and design specify conceptual, logical, and physical design as the three major design steps. However, although this three-step approach is popular, there is no consensus on when to use implementation design techniques, such as table partitioning and denormalization. Consequently, these techniques are treated as substeps in one of the three main design steps. This inconsistent treatment may be why many designers frequently rely on their intuition in applying implementation design techniques. Clearly, this ad hoc practice shouldn't continue. Ad hoc anything is not a good idea when designing a complex system. To resolve this problem, the author proposes that we extend the three-step methodology to include a fourth major step: implementation design. In this methodology, implementation design is the process of modifying an "ideal" logical data model (relational or object-oriented) to produce a more machine-efficient, "pragmatic" model: the implementation model. The implementation model, in turn, serves as input to the physical design step. This four-step method will encourage practitioners to resist the ad hoc approach and simplify the other design steps. It will also help in addressing the additional complexity associated with advanced database architectures, such as distributed and parallel databases and data warehouses.