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:

  1. Eliminazione delle gerarchie
  2. Selezione delle chiavi primarie
  3. Normalizzazione di attributi composti/multipli
  4. 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 flag che indica il tipo di istanza, e attributi opzionali dei rispettivi figli. center

In alternativa, si può ricorrere alla soluzione verticale, dove si pone entità corrispondenti agli figli. center

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.

center

Gli attributi multipli (cardinalità non ) inoltre, vanno gestiti con un’entità separata.

center

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.