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