Deck 2 Flashcards

1
Q

Elencare le proprietà ACIDe delle transazioni

A

Atomicità: la transazione deve essere trattata come una struttura atomica.
Consistenza: L’esecuzione delle transazione non deve violare i vincoli di integrità
Isolamento: l’esecuzione di una transazione deve essere indipendente da quella di altre transazioni.
Durabilità: Gli effetti di una transazione devono essere permanenti dopo il Commit.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Memoria Stabile, cos’è e a cosa serve.

A

La Memoria Stabile è una memoria resistene ai guasti, è un’astrazione poichè nessuna memoria è senza peccato. Viene utilizzata per la memorizzazione del LOG utile per effettuare UNDO e REDO.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Write-Ahead-Log e Commit-Precedenza

A

Write Ahead Log: La parte BEFORE STATE dei Log deve essere scritta prima di effettuare l’operazione sul DB (consente il ripristino in caso di guasto)

Commit precedenza: La parte AFTER STATE dei record di Log deve essere scritta nel Log prima di effettuare il Commit (permette di fare i REDO delle scritture)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Livelli di isolamento SQL2

A

Per ogni transazione si può indicare un livello di isolamento:

1) Read Uncommited: nessun vincolo
2)Read Committed: chiede Lock Condivisi per Read
3)Repetable read: chiede 2PL stretto anche per Read
4)Serializable: Chiede 2PL stretto, usa lock di predicato

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Checkpoint e DUMP

A

Il Checkpoint è un’operazione di sistema svolta dal Gestore dell’Affidabilità, Registra nel LOG le transazioni attive, aggiorna la memoria secondaria circa le Transazioni Completate. Quando eseguito, viene sospesa l’accettazione di operazioni di scrittura, commit, abort
Il DUMP è un’operazione di copia del DB memorizzata su Memoria Stabile (Nastro), serve per il BACKUP.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Anomalie delle transazioni concorrenti

A

-Perdita di Aggiornamenti: Modifiche di T sovrascritte
-Lettura Sporca: T legge risultato intermedio di un abort
-Letture inconsistenti: T legge oggetti sotto modifica
-Aggiornamento Fantasma-
-Inserimento Fantasma

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Protocollo Two Phase Commit senza Guasti

A

é un protocollo per la gestione dei Commit o Abort globale di una Transazione distribuita. Suddiviso in due fasi:
FASE 1
-Il Transaction Manager scrive PREPARE nel Log e lo
invia a tutti i Resource Manager del DB distribuito e
setta un Timeout per le risposte.
(Prepare contiene gli ID dei RM coinvolti)
-Ogni RM se in stato affidabile scrive READY su Log e invia al TM altrimenti invia NON READY e Abortisce
-il TM raccoglie tutti i messaggi di risosta, se sono tutti READY, il TM scrive un GLOBAL COMMIT e invia.
Se c’è anche un solo NON READY, TM scrive GLOBAL ABORT e invia.
(Se scade il Timeout per qualcuno fa Global Abort)

FASE2
Quando il TM Global Committa o Aborta, setta un Timeout di risposta. Ogni RM, ricevuta la decisione del TM, scrive nel proprio Log , invia un ACK al TM ed esegue la Transazione.
Il TM riceve gli ACK, se arrivano tutti prima del Timeout scrive COMPLETE sul Log e termina
Se il timeout scade per qualche RM, Il TM ripete la FASE2.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Protocollo Two Phase Commit con Guasti

A

Se durante l’attesa della risposta globale del TM di un RM in stato Ready, succede un guasto, si avvia una fase di ripristino.
Caduta RM: Ripresa a Caldo
Cadura TM: Ripresa a Caldo

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Schedule, Schedule Seriale, Schedule Serializzabile, Commit Proiezione

A

Schedule: sequenza di operazioni I/O di Transazioni concorrenti riportante in ordine cronologico

Schedule Seriale: Per ogni operazione di Ti, tutte le operazioni di Ti sono eseguite consecutivamente

Schedule Serializzabile: Schedule non Seriale che produce lo stesso risultato di qualche schedule seriale delle stesse T

Commit Proiezione: si considerano solo tutte le operazioni che non producono Abort

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

in ambito di Schedule Serializzabile: 2PL Locking

A

Il Two-Phase Locking (TPL) è un algoritmo di controllo di concorrenza utilizzato per garantire la serializzabilità di uno schedule di transazioni in un sistema di gestione dei database. Il TPL è uno dei modi più comuni per implementare la serializzabilità in un sistema di gestione dei database.
Il TPL è composto da due fasi: una fase di acquisizione dei lock (Growing Phase) e una fase di rilascio dei lock (Shrinking Phase). Durante la fase di acquisizione dei lock, una transazione acquisisce i lock necessari per accedere ai dati che deve leggere o modificare. Durante la fase di rilascio dei lock, una transazione rilascia i lock che non è più interessata ad utilizzare.
Il TPL garantisce che due transazioni non possano accedere contemporaneamente allo stesso dato, a meno che entrambe le transazioni non stiano solo leggendo il dato (cioè utilizzando un lock in sola lettura). In caso contrario, una delle transazioni deve attendere che l’altra transazione abbia rilasciato il lock.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

View equivalenza e Conflict equivalenza

A

La view equivalence si riferisce alla proprietà per cui due viste (cioè delle tabelle virtuali create a partire da una query SQL) rappresentano lo stesso insieme di dati. In altre parole, due viste sono equivalenti se la loro unione (U) genera una tabella che contiene gli stessi dati della tabella originale, anche se possono essere presentati in modo diverso o utilizzare nomi diversi per le colonne.

La conflict equivalence si riferisce alla proprietà per cui due viste sono equivalenti, ma hanno schemi di tabelle diversi. Ciò significa che hanno lo stesso insieme di dati ma le relazioni tra le tabelle e le colonne sono differenti.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

In ambito di Schedule Serializzabile: VSR, CSR

A

VSR: La View serializzabilità (o View Serializability) si riferisce alla proprietà di uno schedule di transazioni per cui, per ogni transazione, l’insieme di righe che la transazione legge nel database è lo stesso di quello che leggerebbe se la transazione fosse stata eseguita in modo seriale rispetto alle altre transazioni.

CSR: La Conflict serializzabilità (o Conflict Serializability) si riferisce alla proprietà di uno schedule di transazioni per cui, per ogni transazione, l’insieme di righe che la transazione legge e modifica nel database è lo stesso di quello che leggerebbe e modificherebbe se la transazione fosse stata eseguita in modo seriale rispetto alle altre transazioni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

2PL STRETTO, 2PL CONSERVATIVO, TIMESTAMP

A

Il 2PL Stretto: Richiede il lock esclusivo su una risorsa prima di poter scrivere su essa. Dopo aver rilasciato il lock, una transazione non può richiederne altri. la Transazione rilascia il lock solo se ha deciso se fare commit o abort.

Il 2PL Conservativo necessita che una T, prima di iniziare le operazioni, acquisisca il lock su tutte le risorse utilizzate da T. Ciò garantisce che nessuna transazione possa accedere a una risorsa mentre è ancora in uso da un’altra transazione, il che riduce la possibilità di conflitti tra transazioni.

Timestamp: è un valore univoco utilizzato per ordinare le transazioni in base al loro ordine di esecuzione. Viene assegnata ad ogni T quando questa viene avviata e indica l’istante di tempo in cui la transazione è iniziata. consente di gestire la concorrenza tra transazioni.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

TS monoversione ma non Multiversione e Ts Multiversione ma non Monoversione

A

Non può esistere un timestamp monoversione ma non multiversione.

Uno schedule Multiversione ma non Monoversione esiste: RTM=0 WTM=0 e Write(x,4) Read(x,3)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Prevenzione Deadlock basata su TimeStamp (Preemptive e non Preemptive)

A

Il Deadlock viene evitato uccidendo una delle transazioni che creerebbero cicli nel grafo di attesa.

Preemptive:(Ti>Tj)viene uccisa la transazione che possiede la risorsa
Non Preemptive: (Ti

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Rilevazione e risoluzione di Deadlock nelle basi di dati distribuite

A

La rilevazione può essere fatta con un Protocollo Asincrono e Distribuito. La rilevazione deve essere attivata periodicamente sui vari DBMS che integra nuove sequenze di attesa con le condizioni locali, analizza il grafo di attesa in cerca di deadlock e comunica in avanti le sequenze di attesa ad altri DBMS

17
Q

Componenti dei trigger, livelli di granularità e modalità di attivazione.

A

Il Trigger è una regola attiva composta da
-Evento
-Condizione
-Azione
Permette quindi, al verificarsi di un evento, di eseguire determinate operazioni
Due livelli di GRANURALITà:
-Tupla: attivazione avviene per ogni tupla coinvolta
-Primitiva: l’attivazione avviene una sola volta per ogni evento e si applica a tutte le tuple coinvolte

Due modalità di attivazione:
1) Immediata: (after o before) dell’evento
2)Differita: valutazione dopo il Commit di T