vuoi
o PayPal
tutte le volte che vuoi
Eliminazione degli attributi multi-valore
Definizione di una nuova entità, collegata all'entità di partenza tramite un'opportuna associazione. L'attributo multi-valore è rappresentato mediante un attributo mono-valore che identifica l'entità.
Vincoli di cardinalità rispetto alla nuova associazione: per l'entità che conteneva prima della ristrutturazione l'attributo multi-valore, coincide con il vincolo di cardinalità dell'attributo multi-valore. Per la nuova entità può essere in generale posto uguale a (1,n).
Eliminazione degli attributi multi-valore - esempio
Eliminazione delle gerarchie di generalizzazione. Entità E generalizzazione di un insieme di entità E1, ..., En.
Approccio: si estraggono informazioni sul tipo di gerarchia (totale o parziale, esclusiva o condivisa) dalla documentazione di supporto generata dalla fase di progettazione concettuale. Si sceglie una soluzione di ristrutturazione, sulla base del carico di.
lavoroeliminazione entità figlie eliminazione entità padre sostituzione della generalizzazione con associazioni
11Eliminazione entità figlie
Entità E ,…,E vengono eliminate 1 nAttributi gli attributi di E ,…,E loro attributi vengono inseriti nell'entità 1 npadre come attributi opzionaliall'entità padre viene aggiunto un attributo che specifica da quale entità figlia nello schema originario proviene ciascuna istanzadell'entità padre nello schema ristrutturatonel caso di generalizzazioni totali, tale attributo non può mai assumere valore nullonel caso di generalizzazioni parziali, un valore nullo indica un'istanza dell'entità padre che, nello schema originario, non eraistanza di alcuna delle entità figlienel caso di generalizzazioni condivise, l'attributo sarà multi-valore
12Eliminazione entità figlieAssociazioni la partecipazione (obbligatoria od opzionale) di un'entità figlia ad un'associazione viene sostituita con la
Partecipazione opzionale dell'entità padre alla stessa associazione
Vincoli di integrità per ogni attributo inserito nell'entità padre, è necessario aggiungere un vincolo di integrità che indichi quando tale attributo può assumere un valore nullo, sulla base del tipo dell'istanza considerata e sulla base del tipo di generalizzazione (totale o parziale, condivisa o esclusiva)
Se la generalizzazione è totale, gli attributi di almeno un'entità figlia E dovranno essere obbligatori
Se è esclusiva, gli attributi di al più un'entità figlia E dovranno essere obbligatori
Per ogni associazione, è necessario aggiungere un vincolo di integrità che indichi quali tipi di istanze dell'entità padre possono essere coinvolti nell'associazione
Eliminazione entità figlie
Generalizzazione totale ed esclusiva
Eliminazione entità padre
Applicabile solo nel caso di generalizzazione totale
Entità eliminazione dell'entità padre E
Attributi inserimento degli
attributi di E in ciascuna delle entità figlie
Associazioni: ogni associazione a cui partecipava l'entità padre viene inoltre sostituita con n nuove associazioni, una per ogni entità figlia
Vincoli di integrità: se la generalizzazione è esclusiva, vincolo per indicare che, nello schema ristrutturato, non possono esistere istanze di due entità figlie distinte aventi lo stesso valore per gli identificatori
Il vincolo di cardinalità di ciascuna entità figlia rispetto alla nuova associazione coinciderà con il vincolo di cardinalità dell'entità padre rispetto all'associazione eliminata
I vincoli di cardinalità delle altre entità diventeranno invece opzionali
Eliminazione entità padre - esempio 16
Sostituzione della generalizzazione con associazioni
Entità non modificate
Associazioni: la gerarchia viene sostituita da n associazioni uno a uno, ognuna delle quali lega l'entità padre con una diversa entità figlia
Le entità figlie sono identificate esternamente
dall'entità padre e partecipano obbligatoriamente alle associazioni create mentre la partecipazione dell'entità padre è opzionale
Vincoli di integrità: se la generalizzazione è esclusiva, un'istanza dell'entità padre non può partecipare contemporaneamente a due o più associazioni. Se la generalizzazione è totale, ogni istanza dell'entità padre deve partecipare obbligatoriamente ad almeno un'associazione.
Sostituzione della generalizzazione con associazioni - esempio
Osservazioni:
- Eliminazione entità figlie: spreco di memoria per la presenza dei valori nulli, conveniente solo nel caso in cui le operazioni non fanno distinzione tra le varie sotto-entità.
- Eliminazione entità padre: risparmio di memoria rispetto alla soluzione di eliminare le entità figlie, in quanto evita il problema dei valori nulli. Conveniente soprattutto nel caso in cui esistano operazioni che si riferiscono alle istanze di una specifica entità figlia, solo per generalizzazione.
totaleSostituzione con associazioni preferibile alla soluzione di eliminare le entità figlie per quanto riguarda la quantità di memoria utilizzataconveniente quando esistono delle operazioni che discriminano tra entità padre ed entità figlie 19