Ho appena pubblicato su UGISS il link ad un whitepaper veramente interessante redatto dal team del SQL CAT, a riguardo della modellazione dei database:
http://www.ugiss.org/Content/Article/Best-Practices-for-Semantic-Data-Modeling-for-Performance-and-Scalability.aspx
Il documento tocca molte delle problematiche tipiche che si affrontano quando si modella un sistema che deve essere "flessibile" nel poter essere facilamente esteso, ma al tempo stesso deve essere "rigido" per evitare l'introduzione di dati errati e quindi inutilizzabili.
La chiave di lettura è data sia nei confronti del modello relazione che dell'approcio object-oriented, e si parla quindi di modelli "universali", di normalizzione e denormalizzaione, di performance e di lazy loading e via di questo passo.
Questa il succosissimo indice:
- The “Universal” Data Model
- Supertypes and Subtypes.
- Extensible Attributes.
- Normalize, Normalize, Normalize.
- Nullability.
- Three-Valued Logic.
- Compensating Actions for Denormalization.
- Parent/Child Tables and Sequence IDs.
- Surrogate Keys.
- Sequence IDs.
- Data Model Designs.
- Indexing.
- Query Builders.
- Paging.
- Lazy Loading.
- Semantic/Metadata/Runtime Data Model Checklist
Lettura più che consigliata!