Note
La progettazione logica ha come scopo tradurre lo schema concettuale in uno schema logico, scelto all’interno dei modelli logici dei dati. Questi possono essere gerarchici, reticolari, relazionali, orientati agli oggetti o XML.
Lo schema logico è dipendente dal tipo di modello implementato dal DBMS ma non dallo specifico prodotto.
La progettazione logica si articola in:
- Eliminazione delle gerarchie
- Selezione delle chiavi primarie
- Normalizzazione di attributi composti/multipli
- Eliminazione di relazioni
Il risultato di questi passaggi è un insieme di tabelle con primary key e foreign key.
Eliminazione delle gerarchie
Per eliminare alle gerarchie si può ricorrere alla soluzione orizzontale, dove si pone una sola entità in corrispondenza del padre, con l’aggiunta di un attributo
flagche indica il tipo di istanza, e attributi opzionali dei rispettivi figli.In alternativa, si può ricorrere alla soluzione verticale, dove si pone
entità corrispondenti agli figli.
Selezione delle chiavi primarie
Per scegliere le chiavi primarie generalmente si sceglie l’identificatore univoco più usato, purché semplice. Se questo è troppo complesso, si introduce un codice.
Infine, gli identificatori esterni delle entità deboli vanno resi interni.
Normalizzazione di attributi composti/multipli
Gli attributi composti vanno resi semplici, usando un solo attributo oppure più attributi.
Gli attributi multipli (cardinalità non
) inoltre, vanno gestiti con un’entità separata.
Eliminazione di relazioni
Consideriamo due entità
e con chiavi primarie e . In una relazione
si crea una nuova tabella per l’associazione, con chiavi primarie , che sono anche chiavi esterne per ed . Gli attributi della relazione sono salvati in questa tabella. In una relazione
, si inserisce la chiave esterna nella tabella dal lato . Gli attributi della relazione sono salvati nella tabella del lato . In una relazione
, in caso di partecipazione totale di un’entità, si inserisce la chiave esterna nella tabella dell’entità con partecipazione totale, mentre in caso di partecipazione parziale di entrambe, si può scegliere una delle due tabelle oppure creare una tabella separata.



