Please enable JavaScript.
Coggle requires JavaScript to display documents.
Progettazione Logica (Ristrutturazione dello Schema (Sequenza passi…
Progettazione Logica
Ristrutturazione dello Schema
Traduzione Verso il modello Relazionale
Sequenza passi
Analisi Ridondanze
Decido se mantenere o meno le ridondanze dello schema
Eliminazione Generalizzazioni
I sistemi tradizionali non permettono di gestire le Generalizzazioni
Sostituisco tutte le generalizzazioni con altri costrutti
Partizionamento/ Accorpamento di entità e associazioni
Decido se accorpare concetti dello schema o se partizionarlo in ulteriori
Scelta identificatori principali
scelgo un identificatore per le entità che ne hanno più di uno
Motivazioni
Accessi più efficenti
Vanno scelte in base al tipo e al mole di operazioni che devo fare sui concetti
Tipo
Partizionamenti Entità
Eliminazione attributi Multivalore
Accorpamento entità
Roba mistica
Metodi
Accorpamento del genitore nelle figlie
Trasferisco gli attributi dell'entità padre a tutti i suoi figli
Ogni figlio avrà oltre ai suoi attributi anche tutti quelli del padre
Possibile solo se la generalizzazione è totale, conviene se ci sono operazioni che si riferiscono alle singole occorrenze , in questo caso abbiamo uno spreco inferiore di memoria e un numero di accessi inferiori alla scelta di sostituire la generalizzazione con associazioni
Sostituzione della generalizzazione con associazioni
Converto la gerarchia in relazione
Mantengo sia i genitori che i figli ed i loro attributi
Devo introdurre il vincolo che i figlio possono partecipare solo ad un occorrenza ( per differenziare i vari figli)
Conviene se la generalizzazione non è totale, abbiamo un minore spreco di memoria ma un numero maggiore di accessi da effettuare.
Accorpamento delle figlie della generalizzazione nel genitore
Trasferisco gli attributi dai figli all'entità madre
Questi possono assumere valori nulli
Elimino le entità figlie
Se necessario introduco degli attributi per discriminare una le varie entità figlie
Conviene se non ci sono molte diferenze, leggero spreco di memoria ma accessi più veloci
Non sempre è possibile definire a priori quale sia la soluzione ottima, oltre alle considerazioni fatte sono da tenere in considerazioni caratteristiche intrinseche della tecnologia che stiamo utilizzando, ad esempio esistono soluzioni ( DBMS) che ottimizzano l'accesso di tuple in serie, e quindi rendono più conveniente ad esempio la sostituzione con associazioni, ma non è definito a priori.
Si possono avere metodi ibridi tra quelli visti, in oltre si possono avere gerarchie strutturate dove va valutato ad ogni strato quale metodo è meglio scegliere
La ridondanza è conveniente?
Spazio
La ridondanza aumenta la quantità di dati da mantenere in un DB
Solitamente è un compromesso accettabile se l'aumento delle performance lo giustifica
Mantenimento della consistenza
Quali e quante operazioni aggiuntive devo fare per mantenere la consistenza del dato replicato?
Quali operazioni devo effettuare?
Quali e che mole di dati influenzano queste operazioni?