B.4. Objectives of Good Database Design

A good database:
• Should service queries and updates quickly enough,
• Should conserve storage space,
• Should prevent anomalies, i.e., inconsistent data,
• Should minimise the programming effort needed to use it.
The last three objectives can be met by ensuring that each piece of information is stored exactly once. If a datum is stored twice, not only is one copy wasting space, but the programmer must ensure that both copies are always kept in step, otherwise an anomaly will result. The designer should therefore aim to eliminate redundancy.
Foreign keys are an exception. Although a foreign key duplicates the value of the primary key it references, it is vital to the structure of the database, and the DBMS enforces ...

Get Systems Analysis and Synthesis now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.