Swappa : Uni / Basi di Dati Complementi - Risposte Esami 2010
Creative Commons License

Torna alla pagina di Basi di Dati Complementi


Questa pagina è stata aggiornata GRAZIE agli appunti che AVETE INVIATO nel periodo di chiusura della sezione UniCrema!! È SERVITA A QUALCOSA, NO?! ;)

 :: Basi di Dati Complementi - Risposte Esami 2010 ::

2 Febbraio 2010

Testo dell'esame dal sito del docente (.PDF)

Risposta 1

Il 2-phase-commit è un protocollo per il commit distribuito e permette a una transazione di prendere la decisione corretta di commit o abort su tutti i nodi che partecipano alla transazione.
Distinguiamo tra:

Si distinguono 2 fasi:
Fase 1:

TM
scrive il record prepare (contiene l'identità di tutti i processi RM) nel suo log e manda un msg prepare a tutti gli RM; imposta il timeout.
RM
Possono essere in 2 stati:
TM
Raccoglie i messaggi di risposta e se sono tutti ready iscrive nel log global commit altrimenti scrive global abort.

Fase 2:

TM
Trasmette la decisione (commit o abort) agli RM; imposta il timeout.
RM in stato ready
Scrivono nel log il record relativo alla decisione e mandano un ack al TM.
Eseguono in loco la decisione globale.
TM
Ricevuti tutti gli ack scrive il record complete (fine protocollo di commit a 2 fasi) nel log.

Risposta 2

Nel locking a due fasi ogni transazione ha due fasi:

Una transazione dopo aver rilasciato un lock non può acquisirne altri (garantisce serializzabilità).

Uno Schedule 2PL base consiste in transazioni ben formate rispetto al locking, gestione dei lock basata sui conflitti e locking a due fasi.

Le varianti sono:

Esempio di schedule non 2PL base:

S: r1(x) w1(x) r2(x) w2(x) r3(y) w1(y)

Risposta 3

Il trigger, nelle basi di dati attive, è una procedura eseguita in maniera automatica in coincidenza di un determinato evento.
Se a seguito di un evento la condizione è soddisfatta esegue l'azione.
La creazione dei trigger fa parte del Data Definition Language.

I componenti sono:

Livelli di granularità:

Modalità attivazione:

12 Gennaio 2010

Testo dell'esame dal sito del docente (.PDF)

Risposta 1

Le proprietà ACIDe sono Atomicità, Consistenza, Isolamento e Durabilità.

Atomicità:
Una transazione è una unità atomica di lavoro.
Non può lasciare la base di dati in uno stato intermedio e un errore prima del commit causa l'UNDO del lavoro fatto fino a quel momento, mentre dopo il commit causa il REDO del lavoro.
Consistenza:
L'esecuzione di una transazione non deve violare i vincoli d'integrità definiti sulla base di dati. Il controllo dell'integrità può essere immediato (durante la transazione, l'operazione che causa la violazione è rifiutata) oppure differito (alla fine della transazione se vengono violati dei vincoli, l'intera transazione è rifiutata).
Isolamento:
L'esecuzione di una transazione deve essere indipendente da quella di tutte le altre transazioni concorrenti.
Durabilità:
Gli effetti di una transazione che ha eseguito commit non devono essere persi.

La distribuzione dei dati l'isolamento e l'atomicità possono essere compromesse e sono richieste delle modifiche a:

Controllo concorrenza: Una transazione può eseguire più sotto-transazioni a diversi nodi.
Atomicità: Può essere compromessa da guasti o malfunzionamenti.

Risposta 2

Risposta 2.1

Permette di assegnare timestamp che riflettono la precedenza fra eventi in un sistema distribuito. I timestamp hanno due gruppi di cifre X.Y (X identifica l'evento che accade al nodo e Y identifica un nodo). Ogni volta che i nodi si scambiano un messaggio, i timestamp vengono sincronizzati: l'evento ricevente deve avere un timestamp maggiore o uguale dell'evento mittente (può richiedere l'incremento del contatore locale al nodo ricevente).

Risposta 2.2a

Prevenzione deadlock:

Risposta 2.2b

Le transazioni uccise devono ripartire con lo stesso timestamp (altrimenti rischierebbero di essere sempre uccise (starvation).

Risposta 2.3

La frammentazione dei dati applica delle operazioni algebriche su una relazione R per dividerla in frammenti.

Frammentazione orizzontale:
Ogni frammento ha come tuple un sottoinsieme delle tuple della relazione e può essere interpretato come il risultato di una selezione sulla relazione (i frammenti sono disgiunti quindi non hanno tuple in comune).
Frammentazione verticale:
Ogni frammento ha come schema un sottoinsieme degli attributi della relazione e può essere interpretato come il risultato di una proiezione sulla relazione (i frammenti includono la chiave primaria per garantire la ricostruibilità).

Proprietà di correttezza:


Torna alla pagina di Basi di Dati Complementi

(Printable View of http://www.swappa.it/wiki/Uni/BDC-Risposte2010)