La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

SQL: Lezione 10 Nataliya Rassadko

Presentazioni simili


Presentazione sul tema: "SQL: Lezione 10 Nataliya Rassadko"— Transcript della presentazione:

1 SQL: Lezione 10 Nataliya Rassadko rassadko@disi.unitn.it

2 Agenda Timestamp based protocollo Esercizi su Timestamping Conflict-serializability BCNF Alcuni note su SQL

3 Timestamping: Problem statement Ogni transazione è associata con un numero unico – timestamp Counter System clock Con ogni elemento di DB ci sono associati RT(X), WT(X), C(X) Ordine delle transazione è seriale Problemi Read too late: TS(T) <RT(X), T vuole leggere qualcosa con può leggere più Write too late: WT(X)<TS(T)<RT(X), T vuole scrivere qualcosa nel elemento che già nel uso

4 Timestamping: Possibilità Richesta deve essere garantita Kill T, se T vuole cambiare la realtà, e restart T con nuovo timestamp – rollback Delay T e dopo decidere se garantire la richiesta dal T (e.g., si può garantire dirty read)

5 Timestamping: Algoritmo per Read(X) Se TS(T)>=WT(X), T può leggere X If C(X)=true e TS(T)>RT(X), RT(X):=TS(T) Altrimenti, non cambiare RT(X) If C(X)=false, delay T finchè C(X)=true o transazione che scrive in X finishe Se TS(T) < WT(X), T non può leggere X Rollback T

6 Timestamping: Algoritmo per Write(X) Se TS(T)>=WT(X) e TS(T)>=RT(X), T può scrivere X T scrive in X WT(X):=TS(T) C(X):=false Se TS(T) =RT(X), T può scrivere X Ma solo se C(X)=true Altrimenti delay T TS(T)<RT(X), T non può scrivere X Rollback T

7 Timestamping: Esempio st2;st3;st1;r1(B);r2(A);r3(C);w1(B);w1(A);w2(C); w3(A) r1(B) –> RT(B):=st1 r2(A) -> RT(A):=st2 r3(C) -> RT(C):=st3 w1(B) –> WT(B):=st1 w1(A) -> WT(A):=st1 w2(C) -> C è in utilizzo da T3 con st3> st2 -> Abort2 w3(A) e RT(A)=st2 -> T3 può scrivere in A ma se C(A):=true C(A)=false ->delay T3

8 Esercizi St1;r1(A);st2;w2(B);r2(A);w1(B) St1;st2;st3;r1(A);r1(B);w1(C);r3(B);r3(C);w2(B);w3(A) St1;st3;st2;r1(A);r1(B);w1(C);r3(B);r3(C);w2(B);w3(A)

9 Conflict-serializability: Esercizi r1(A);w1(B);r2(B);w2(C);r3(C);w3(A) w3(A);r1(A);w1(B);r2(B);w2(C);r3(C) r1(A);r2(A);w1(B);w2(B);r1(B);r2(B);w2(C);w1(D) r1(A);r2(A);r1(B);r2(B);r3(A);r4(B);w1(A);w2(B) Selezionarte operazioni sullo stesso elemento X Sequenza deve essere preservata Guardare ogni coppia di operazioni selezionate in seq Se almeno una operazione è w, arco deve essere inserito Arco da operazione più recente a meno recente

10 BCNF: Esercizi ABCD, AB->C, C->D, D->A ABCD, B->C, B->D ABCD, AB->C, BC->D, CD->A, AD->B ABCD, A->C, B->C, C->D, D->A ABCDE, AB->C, DE->C, B->D ABCDE, AB->C, C->D, D->B, D->E

11 SQL SELECT-FROM-WHERE Subquery sono in FROM o WHERE Attenti al risultato di subquery in WHERE: insieme o valore JOIN Natural, INNER, FULL OUTER, LEFT OUTER, RIGHT OUTER NULL Aggregazione e GROUP BY NULL HAVING come WHERE ma condizione sul valore aggregato INTERSECT, UNION, EXCEPT Tutti gli attributi di relazioni-argomenti sono UGUALE MIN(COUNT) - subquery

12 Buon Natale Ci vediamo al esame!


Scaricare ppt "SQL: Lezione 10 Nataliya Rassadko"

Presentazioni simili


Annunci Google