Transactions and Locking Rose-Hulman Institute of Technology Curt - - PowerPoint PPT Presentation

transactions and locking
SMART_READER_LITE
LIVE PREVIEW

Transactions and Locking Rose-Hulman Institute of Technology Curt - - PowerPoint PPT Presentation

Transactions and Locking Rose-Hulman Institute of Technology Curt Clifton Outline ACID Transactions COMMIT and ROLLBACK Managing Transactions Locks The Setting Database systems are normally being accessed by many users or


slide-1
SLIDE 1

Transactions and Locking

Rose-Hulman Institute of Technology Curt Clifton

slide-2
SLIDE 2

Outline

 ACID Transactions  COMMIT and ROLLBACK  Managing Transactions  Locks

slide-3
SLIDE 3

The Setting

 Database systems are normally being accessed by

many users or processes at the same time

 Operating Systems also deal with concurrent access

 OSs allow two people to edit a document at the same time.  If both write, one’s changes get lost.

 DB can and must do better

slide-4
SLIDE 4

Example

 Mom and Dad each deposit $100 from

different ATMs into your account at about the same time

slide-5
SLIDE 5

ACID Transactions

 Atomic

 All or nothing

 Consistent

 Constraints preserved

 Isolated

 (Apparently) one user at a time

 Durable

 Crashes can’t violate the other properties

slide-6
SLIDE 6

Transactions in SQL

 SQL supports transactions

 Generic query interface

Each statement issued is a transaction by itself

 Programming interfaces

A transaction begins with first SQL statement

Ends with the procedure end (or an explicit end)

slide-7
SLIDE 7

Ending Transactions

 COMMIT completes a transaction

 Modifications are now permanent in the database

 ROLLBACK ends transaction by aborting

 No effects on the database!

 Failures (e.g., division by 0) also cause

ROLLBACK

slide-8
SLIDE 8

Another Example

 Assume the usual Sells(rest,soda,price)

relation

 Suppose that Majnoo’s Rest sells only Coke for

$1.50 and Salaam Cola for $1.75.

 Laila is querying Sells for

 the highest and lowest price Majnoo charges.

 Majnoo decides

 to stop selling Coke and Salaam Cola  to starting only Juice at $2.00

slide-9
SLIDE 9

Laila’s Program

 Laila executes the following two SQL

statements

 Call this one “max”:

 SELECT MAX(price) FROM Sells

WHERE rest = 'Majnoo''s Rest';

 “min”:

 SELECT MIN(price) FROM Sells

WHERE rest = 'Majnoo''s Rest';

slide-10
SLIDE 10

Majnoo’s Program

 At about the same time, Majnoo executes the

following SQL statements

 “del”

 DELETE FROM Sells

WHERE rest = 'Majnoo''s Rest';

 “ins”

 INSERT INTO Sells

VALUES('Majnoo''s Rest', 'Juice', 2.00);

slide-11
SLIDE 11

Interleaving of Statements

 Constraints:

 max must come before min  del must come before ins

 No other constraints on the order of the

statements

slide-12
SLIDE 12

Example: Strange Interleaving

 Suppose the steps execute in the order:

 max del ins min

 What answers does Laila see?

slide-13
SLIDE 13

Fixing the Problem: Transactions

 If we group Laila’s statements max min into

  • ne transaction:

 Cannot see this inconsistency  Will see Majnoo’s prices at some fixed time

slide-14
SLIDE 14

Problem: Undoing Changes

 Majnoo executes del ins

 Changes his mind  Reverses the changes, say by del', ins'

 Suppose the order is:

del ins max min del' ins'

 What does Laila see?

slide-15
SLIDE 15

Solution

 If Majnoo executes del ins as a transaction, its

effect cannot be seen by others until the transaction executes COMMIT

 Instead of del' ins' he uses ROLLBACK instead  Effects of transaction can never be seen.

slide-16
SLIDE 16

Transactions and Locks in SQL Server

 Transactions Ensure That Multiple Data

Modifications Are Processed Together

 Locks Prevent Update Conflicts

 Transactions are serializable  Locking is automatic  Locks allow concurrent use of data

 Concurrency Control

slide-17
SLIDE 17

Managing Transactions (outline)

 Transaction Recovery and Checkpoints  Considerations for Using Transactions  Setting the Implicit Transactions Option  Restrictions on User-defined Transactions

slide-18
SLIDE 18

Transaction Recovery, Checkpoints

Time (and place in log) Database Transaction Log Transaction Log

INSERT … DELETE … UPDATE … … INSERT … DELETE … UPDATE … … INSERT … DELETE … UPDATE … … INSERT … DELETE … UPDATE … … INSERT … DELETE … UPDATE … …

CHECKPOINT CRASH!!!

COMMIT COMMIT COMMIT

Recovery Needed? NONE Recovery Needed? ROLL FORWARD Recovery Needed? ROLL BACK Recovery Needed? ROLL FORWARD Recovery Needed? ROLL BACK ZOT!

slide-19
SLIDE 19

Considerations when Using Transactions

 Transaction Guidelines

 Keep transactions as small as possible  Use caution with certain Transact-SQL

statements

 Avoid transactions that require user interaction

 Issues in Nesting Transactions

 Allowed, but not recommended  Use @@trancount to determine nesting level

slide-20
SLIDE 20

SET IMPLICIT_TRANSACTIONS ON

Implicit Transactions

 Automatically Starts a Transaction When You

Execute Certain Statements

 Nested Transactions Are Not Allowed  Transaction Must Be Explicitly Completed

with COMMIT or ROLLBACK

 By Default, Setting Is Off

slide-21
SLIDE 21

 ALTER DATABASE  BACKUP LOG  CREATE DATABASE  DROP DATABASE  RECONFIGURE  RESTORE DATABASE  RESTORE LOG  UPDATE STATISTICS

Restrictions on Transactions

 Certain Statements May Not Be Included in a

Transaction:

slide-22
SLIDE 22

How much ACID have we done?

 Explicit transactions support Atomicity  Automatic rollback on errors supports

Consistency

 Transaction log supports Durability

slide-23
SLIDE 23

Locks Support Isolation

slide-24
SLIDE 24

Lockable Resources

Item Item Description Description RID Row identifier Key Row lock within an index Page Extent Table Data page or index page Group of pages Entire table Database Entire database

slide-25
SLIDE 25

Types of Locks

 Basic Locks

 Shared  Exclusive

 Special Situation Locks

 Intent  Update  Schema  Bulk update

slide-26
SLIDE 26

Lock Compatibility

 Locks May or May Not Be Compatible with

Other Locks

 Examples

 Shared locks are compatible with all locks except

exclusive

 Exclusive locks are not compatible with any other

locks

 Update locks are compatible only with shared

locks

slide-27
SLIDE 27

Dynamic Locking Table Page Row Cost Granularity

Locking Cost Concurrency Cost

slide-28
SLIDE 28

Week Eight Deliverables

 Sample Reports

 See rubric on Angel

 First draft due by Friday night (50 points)  New versions due week nine (100 points)  Meet with me during lab time today to agree

  • n reports!