All persistent classes that use the database for persistency have been mapped to database
structures.
Many-to-many relationships have an intersecting table.
Primary keys have been defined for each table, unless there
is a performance reason not to define a primary key.
The storage and retrieval of data has been optimized.
If a relational database is used, tables have been
denormalized (where necessary) to improve performance.
Where denormalization has been used, all update, insert
and delete scenarios have been considered to ensure the
denormalization does not degrade performance for those operations.
Indexes have been defined to optimize access.
The impact of index updates has been considered in the other
table operations.
The distribution of data has been planned.
Data and referential integrity constraints have been defined.
A plan exists for maintaining validation constraints when the
data rules change.
Stored procedures and triggers have been defined.
The persistence mechanism uses stored procedures and database
triggers consistently.