3. Waar zijn we? query processing indexing II and higher-dimensional structures Les Nr. wie wat 1 ED intro, ER 2 ED EER 3 ED relational model 4 ED mapping EER2relational 5 KV relational algebra, relational calculus 6 KV SQL 7 KV vervolg SQL 8 KV demo Access, QBE, JDBC 9 KV functional dependencies and normalisation 10 KV functional dependencies and normalisation 11 BB file structures and hashing 12 BB indexing I 13 BB 14 BB 15 BB transactions 16 BB transactions II: concurrentie & herstel 17 BB Data warehousing and mining 18 ED XML, oodb, multimedia db Fysisch model / vragen
4. Dat willen wij niet! t reserveer! Nog een plaats! U heeft hem U heeft hem reserveer!
5. Agenda Inleiding tot concurrentie en herstel Transacties: begrippen Transactieroosters Serialiseren van roosters Transacties in SQL
6. Agenda Inleiding tot concurrentie en herstel Transacties: begrippen Transactieroosters Serialiseren van roosters Transacties in SQL
28. Agenda Inleiding tot concurrentie en herstel Transacties: begrippen Transactieroosters Serialiseren van roosters Transacties in SQL
29.
30.
31.
32.
33. Voorbeeld T1 T2 read (X) read(X) write(X) read(Y) write(Y) write(X) commit write(Y) commit T1 T2 read (X) write(X) read(X) read(Y) write(X) commit abort T1 T2 read (X) write(X) read(X) read(Y) write(X) write(Y) commit commit T1 T2 read (X) write(X) read(X) read(Y) write(X) write(Y) abort abort schema a schema e schema d schema c herstelbaar, maar wel probleem van verloren aanpassing niet herstelbaar, T2 leest item X geschreven door T1, en commit vooraleer T1 commit, abort van T1 daarna maakt die waarde van X ongeldig wel herstelbaar: commit van T2 is uitgesteld tot na commit van T1 wel herstelbaar: indien T1 abort, moet ook T2 een abort uitvoeren
34.
35.
36.
37. Agenda Inleiding tot concurrentie en herstel Transacties: begrippen Transactieroosters Serialiseren van roosters Transacties in SQL
46. (roooster E op p. 44) (roooster F op p. 45) Nog een voorbeeld (3)
47.
48.
49. Voorbeeld van view-equivalente maar niet conflict-equivalente roosters _ T1 T2 T3 ____ X := a schrijf(X) X := b schrijf(X) lees(X) X := a schrijf(X) X := c schrijf(X) verplaatsing behoudt view-equivalentie (T2 leest waarde van X geschreven door T3, laatste geschreven waarde van X is geschreven door T3 ) maar niet conflict-equivalentie
50.
51.
52. Agenda Inleiding tot concurrentie en herstel Transacties: begrippen Transactieroosters Serialiseren van roosters Transacties in SQL
56. Voorbeeld EXEC SQL WHENEVER SQLERROR GOTO UNDO; EXEC SQL SET TRANSACTION READ WRITE DIAGNOSTICS SIZE 5 ISOLATION LEVEL SERIALIZABLE; EXEC SQL INSERT INTO EMPLOYEE (Fname, Lname, Ssn, Dno, Salary) VALUES('Robert', 'Smith', '991004321', 2, 35000); EXEC SQL UPDATE EMPLOYEE SET Salary = Salary * 1.1 WHERE Dno = 2; EXEC SQL COMMIT; GOTO THE_END; UNDO: EXEC SQL ROLLBACK; THE_END: ...; Een nieuwe rij wordt toegevoegd in de tabel EMPLOYEE daarna worden de salarissen van alle werknemers van dept 2 aangepast Indien ergens een fout optreedt, wordt de hele transactie teruggerold.
57. Vooruitblik Inleiding tot concurrentie en herstel Transacties: begrippen Transactieroosters Serialiseren van roosters Transacties in SQL Transacties II: Concurrentie-controle en herstel