Decomposizione

Gli algoritmi che presentiamo partono da un singolo schema di relazione universale $R= \{A_1,..,A_n\}$ che include tutti gli attributi del database

I progettisti specificano l’insieme $F$ delle dipendenze funzionali che devono valere sugli attributi di $R$

Usando le dipendenze funzionali, gli algoritmi decompongono lo schema di relazione $R$ in un insieme di schemi $D=\{R_1,..,R_n\}$

Conservazione degli attributi

Ciascun attributo di $R$ deve apparire in almeno una relazione in $D$ → $\bigcup_{i = 1}^n R_i = R$

Ogni $R_i$ in BCNF

Ogni relazione individuale $R_i$ in $D$ deve essere in BCNF (o in 3NF)

Conservazione delle dipendenze

Sarebbe utile che le dipendenze funzionali $X \to Y$ specificate in $F$ apparissero direttamente in una delle $R_i$ della decomposizione $D$ o possano essere inferite da dipendenze in altre $R_i$