The interdependence problem

This chapter presents different strategies for the order of selecting design attributes. Some are better than others depending on the environment and the size and complexity of the system being designed. The complex interactions between the design features mean that human designers will not be able to consider them in combination in a single design step. As a result, whatever design a human expert develops has a high probability of not being the absolute best theoretical design possible. The goal of the database designer is to ensure that the database is running well, that the resources are well used, and that applications are not suffering from deleterious performance issue. If the database design is a good one, it can achieve better than 95% of the theoretical maximum and that is more than enough to achieve the primary objectives. Automation tooling can be used to help bootstrap this process, giving you an initial design to start fine tuning. It can also be used to fine tune a design crafted by hand. The more complex the workload and the more the workload includes analysis and reporting functions, it is more likely to achieve large performance gains by exploiting multiple design features.