introduction to databasesopenclassroom.stanford.edu/.../introtodatabases/... · a transaction is a...
TRANSCRIPT
![Page 1: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/1.jpg)
Jennifer Widom
Transactions
Isolation Levels
![Page 2: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/2.jpg)
Jennifer Widom
Transactions Solution for both concurrency and failures
A transaction is a sequence of one or more SQL operations treated as a unit
Transactions appear to run in isolation
If the system fails, each transaction’s changes are reflected either entirely or not at all
Transactions
![Page 3: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/3.jpg)
Jennifer Widom
Transactions (ACID Properties) Isolation
DBMS
Data
. . . Serializability Operations may be
interleaved, but execution must be equivalent to some
sequential (serial) order of all transactions
Overhead Reduction in concurrency
![Page 4: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/4.jpg)
Jennifer Widom
Transactions (ACID Properties) Isolation
DBMS
Data
. . . Weaker “Isolation Levels”
Read Uncommitted
Read Committed
Repeatable Read
Overhead Concurrency
Consistency Guarantees
![Page 5: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/5.jpg)
Jennifer Widom
Transactions Isolation Levels
Per transaction “In the eye of the beholder”
DBMS
Data
. . . My transaction is Repeatable Read
My transaction is Read Uncommitted
![Page 6: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/6.jpg)
Jennifer Widom
Dirty Reads
“Dirty” data item: written by an uncommitted transaction Update College Set enrollment = enrollment + 1000
Where cName = ‘Stanford’
Select Avg(enrollment) From College
concurrent with …
Transactions
![Page 7: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/7.jpg)
Jennifer Widom
Dirty Reads
“Dirty” data item: written by an uncommitted transaction
Select GPA From Student Where sID = 123
concurrent with …
Transactions
Update Student Set GPA = (1.1) GPA Where sizeHS > 2500
Update Student Set sizeHS = 2600 Where sID = 234
concurrent with …
![Page 8: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/8.jpg)
Jennifer Widom
Isolation Level Read Uncommitted
A transaction may perform dirty reads
Select Avg(GPA) From Student
concurrent with …
Transactions
Update Student Set GPA = (1.1) GPA Where sizeHS > 2500
![Page 9: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/9.jpg)
Jennifer Widom
Isolation Level Read Uncommitted
A transaction may perform dirty reads
Set Transaction Isolation Level Read Uncommitted;
Select Avg(GPA) From Student;
concurrent with …
Transactions
Update Student Set GPA = (1.1) GPA Where sizeHS > 2500
![Page 10: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/10.jpg)
Jennifer Widom
Isolation Level Read Committed
A transaction may not perform dirty reads Still does not guarantee global serializability
concurrent with …
Transactions
Update Student Set GPA = (1.1) GPA Where sizeHS > 2500
Set Transaction Isolation Level Read Committed;
Select Avg(GPA) From Student;
Select Max(GPA) From Student;
![Page 11: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/11.jpg)
Jennifer Widom
Isolation Level Repeatable Read
A transaction may not perform dirty reads An item read multiple times cannot change value Still does not guarantee global serializability
concurrent with …
Transactions
Update Student Set GPA = (1.1) GPA;
Update Student Set sizeHS = 1500 Where sID = 123;
Set Transaction Isolation Level Repeatable Read;
Select Avg(GPA) From Student;
Select Avg(sizeHS) From Student;
![Page 12: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/12.jpg)
Jennifer Widom
Isolation Level Repeatable Read
A transaction may not perform dirty reads An item read multiple times cannot change value But a relation can change: “phantom” tuples
concurrent with …
Transactions
Insert Into Student [ 100 new tuples ]
Set Transaction Isolation Level Repeatable Read;
Select Avg(GPA) From Student;
Select Max(GPA) From Student;
![Page 13: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/13.jpg)
Jennifer Widom
Isolation Level Repeatable Read
A transaction may not perform dirty reads An item read multiple times cannot change value But a relation can change: “phantom” tuples
concurrent with …
Transactions
Delete From Student [ 100 tuples ]
Set Transaction Isolation Level Repeatable Read;
Select Avg(GPA) From Student;
Select Max(GPA) From Student;
![Page 14: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/14.jpg)
Jennifer Widom
Read Only transactions Helps system optimize performance
Independent of isolation level
Transactions
Set Transaction Read Only;
Set Transaction Isolation Level Repeatable Read;
Select Avg(GPA) From Student;
Select Max(GPA) From Student;
![Page 15: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/15.jpg)
Jennifer Widom
Transactions Isolation Levels: Summary
dirty reads
nonrepeatable reads phantoms
Read Uncommitted
Read Committed
Repeatable Read
Serializable
![Page 16: Introduction to Databasesopenclassroom.stanford.edu/.../IntroToDatabases/... · A transaction is a sequence of one or more SQL operations treated as a unit Transactions appear to](https://reader033.vdocuments.site/reader033/viewer/2022042913/5f49c324c1e9cd1986797e83/html5/thumbnails/16.jpg)
Jennifer Widom
Transactions Isolation Levels: Summary
Standard default: Serializable
Weaker isolation levels – Increased concurrency + decreased overhead = increased performance
– Weaker consistency guarantees
– Some systems have default Repeatable Read
Isolation level per transaction and “eye of the beholder” – Each transaction’s reads must conform to its isolation level