Progettazione logica
La progettazione logica è la fase della progettazione delle basi di dati successiva alla formazione del modello concettuale, quello E-R, e precedente alla formazione del modello logico.
Partendo dal modello E-R bisogna attuare una serie di perfezionamenti per definire al meglio il modello logico composto da entità e suoi attributi, alcuni dei quai chiavi, altri attributi relazionali.
Riduzione delle ridondanze
modificaPossono essere dovute ad attributi che si trovano in più entità, che quindi andranno riportate su un'unica entità e poi referenziati alle altre entità.
In presenza di strutture cicliche nel modello concettuale è conveniente sfruttare la relazione a cascata: se tre entità sono connesse in modo ciclico, posso eliminare il ciclo e far ricadere un attributo transitivamente, A->B->C->A diventerà A->B->C.
Normalizzazione degli attributi
modificaPotrebbero esistere attributi multipli, ad esempio Indirizzo comprende (via, CAP, numero civico) che devono essere ridotti ad attributi semplici ed unici.
Potrebbero esistere attributi con cardinalità x:y e che dovranno essere trasformati in entità in relazione con l'entità primaria, con chiave primaria pari alla chiave dell'entità principale e con gli attributi relativi a tipologia ed eventuali quantità e/o valore.
Eliminazione delle generalizzazioni
modificaEsistono 3 casi:
- collasso verso l'alto, quando le entità figlie collassano, cioè si riversano, nell'entità padre e le proprie relazioni di legano all'entità padre, che vedrà popolarsi di nuovi attributi che sono il tipo (figlia A e/o figlia B) e di eventuali attributi aggiuntivi delle entità figlie;
- collasso verso il basso, quando le entità figlie diventano età a sé stanti e l'entità padre fa ricadere i propri attributi e relazioni nelle entità figlie (non vale per le entità parziali sovrapposte);
- mantenimento delle entità, quando l'entità padre e le entità figlie rimangono a sé stanti e sono connesse da relazioni, ma mantengono le proprie relazioni con altre entità.