Il modello relazionale non rappresenta le gerarchie del modello E-R, e quindi vanno sono sostituite da entità e associazioni. Ci sono tre metodi per eliminare le gerarchie:
mantenimento delle entità con associazioni;
collasso verso l’alto;
collasso verso il basso.
Prendiamo come esempio il seguente schema E-R:
Ora vediamo come nei tre casi può essere sostituita la gerarchia.
Mantenimento delle entità con associazioni
Tutte le entità vengono mantenute. Le entità figlie vengono messe in associazione con l’entità padre e sono identificate esternamente tramite l’associazione. La cardinalità (0,1) indica che per tale associazione l’ entità padre può avere zero o una entità figlio. Mentre (1,1) che l’ entità figlio può avere un solo padre.
Collasso verso l’alto
Il collasso verso l’alto riunisce tutte le entità figlie nell’entità padre.
Otterremo una cosa di questo tipo:
E1 ed E2 vengono eliminate e le loro proprietà vengono aggiunte all’ entità padre . Gli attributi obbligatori per le entità figlie divengono opzionali per il padre , indicato dalla cardinalita (0,1), con la conseguenza che si avrà una certa percentuale di valori nulli. All’ entità ottenuta viene aggiunto un ulteriore attributo (selettore) che specifica se una istanza di E appartiene a una delle sottoentità. Se la gerarchia era totale ed esclusiva il selettore ha N valori, quante sono le sottoentità. Se la gerarchia era parziale esclusiva il selettore ha N+1 valori; il valore in più serve per le istanze che non appartengono ad alcuna sottoentità. Se avessimo un overlapping occorrerebbero tanti selettori booleani quante sono le sottoentità. Vediamo di seguito un esempio di uno schema in cui è stata collassata la gerarchia verso l’ alto:
Collasso verso il basso
Si elimina l’entità padre trasferendone gli attributi su tutte le entità figlie. Una associazione del padre è replicata, tante volte quante sono le entità figlie la soluzione è interessante in presenza di molti attributi di specializzazione (con il collasso verso l’alto si avrebbe un eccesso di valori nulli).
Si noti che se la copertura è parziale non si può fare il collasso verso il basso. Dove mettere gli E che non sono né E1, né E2 ? Mentre se la copertura è overlapping introduce ridondanza, infatti per una istanza presente sia in E1 che in E2 si rappresentano due volte gli attributi di E. Vediamo di seguito un esempio di uno schema in cui è stata collassata la gerarchia verso il basso:
Tutto quanto riportato in questa pagina è a puro scopo informativo personale. Se non ti trovi in accordo con quanto riportato nella pagina, vuoi fare delle precisazioni, vuoi fare delle aggiunte o hai delle proposte e dei consigli da dare, puoi farlo mandando un email. Ogni indicazione è fondamentale per la continua crescita del sito.