Conflicting Goals of Design
Database design must reconcile the following requirements:
- Design elegance requires that the design must adhere to design rules concerning nulls, derived attributes, redundancies, relationship types, etc.
- Information requirements are dictated by the end users
- Operational (transaction) speed requirements are also dictated by the end users
Clearly, an elegant database design that fails to address end user information requirements or one that forms the basis for an implementation whose use progresses at a snail's pace has little practical use.