Quando si raggruppano gli attributi in uno schema di relazione, assumiamo che essi abbiano associato un significato
Il significato, o semantica, specifica come interpretare i valori degli attributi di una relazione
<aside> <img src="/icons/report_purple.svg" alt="/icons/report_purple.svg" width="40px" />
Disegnare uno schema di relazione del quale sia facile spiegarne il significato
</aside>
Non combinare attributi da tipi di entità e tipi di relazioni differenti in una singola relazione
Un obiettivo del disegno dello schema è di minimizzare lo spazio di memoria occupato dalle relazioni base
Le update anomalies sono delle anomalie che possono emergere nel gestire i dati di un database relazionale non correttamente progettato
<aside> <img src="/icons/report_purple.svg" alt="/icons/report_purple.svg" width="40px" />
Disegnare gli schemi di relazione di base in modo che non possano accadere insertion, deletion o modification anomalies
</aside>
Se qualcuna è presente, annotare ciò chiaramente in modo che i programmi che aggiornano il database operino correttamente
Talvolta le linee guida possono essere violate per scopi di efficienza; una soluzione migliore potrebbe comunque essere quella di definire delle viste
In alcuni disegni di schemi possiamo raggruppare molti attributi in una relazione grossa, se molti degli attributi non applicano a tutte le tuple possiamo avere molti valori null
Oltre allo spreco di spazio, ciò crea problemi con le funzioni di aggregazione COUNT
e SUM