Download presentation
Presentation is loading. Please wait.
Published byClyde York Modified over 9 years ago
1
1 IT420: Database Management and Organization Transactions 31 March 2006 Adina Crăiniceanu www.cs.usna.edu/~adina
2
Kroenke, Database Processing2 Project 2 To insert an encrypted password into the database: PHP: Find encrypted value MySQL: Insert into Users table
3
Kroenke, Database Processing3 Goals Concurrency control
4
Kroenke, Database Processing4 DBA Tasks Managing database structure Controlling concurrent processing Managing processing rights and responsibilities Developing database security Providing for database recovery Managing the DBMS Maintaining the data repository
5
Kroenke, Database Processing5 Atomic Transactions Series of actions taken against the database that occur as an atomic unit Either all actions in a transaction occur - COMMIT Or none of them do - ABORT
6
Kroenke, Database Processing6 Class Exercise Transaction steps Possible schedule Possible problems T1: Transfer money from savings to checking T2: Add interest for savings account
7
Kroenke, Database Processing7 Resource Locking Locking: prevents multiple applications from obtaining copies of the same resource when the resource is about to be changed
8
Kroenke, Database Processing8 Lock Terminology Implicit locks - placed by the DBMS Explicit locks - issued by the application program Lock granularity - size of a locked resource Rows, page, table, and database level Types of lock Exclusive lock (X)- prohibits other users from reading the locked resource Shared lock (S) - allows other users to read the locked resource, but they cannot update it
9
Kroenke, Database Processing9 Explicit Locks Lock type?
10
Kroenke, Database Processing10 Serializable Transactions Serializable transactions: Run concurrently Results like when they run separately Strict two-phase locking – locking technique to achieve serializability
11
Kroenke, Database Processing11 Strict Two-Phase Locking Strict two-phase locking Locks are obtained throughout the transaction All locks are released at the end of transaction (COMMIT or ROLLBACK)
12
Kroenke, Database Processing12 Strict 2PL Example Not 2PL X(Sa) R(Sa) W(Sa) Rel(Sa) X(Ch) R(Ch) W(Ch) Rel(Ch) Strict 2PL X(Sa) R(Sa) W(Sa) X(Ch) R(Ch) W(Ch) Rel(Ch) Rel(Sa)
13
Kroenke, Database Processing13 Deadlock
14
Kroenke, Database Processing14 Deadlock Deadlock: two transactions are each waiting on a resource that the other transaction holds Preventing deadlock Allow users to issue all lock requests at one time Require all application programs to lock resources in the same order Breaking deadlock Almost every DBMS has algorithms for detecting deadlock When deadlock occurs, DBMS aborts one of the transactions and rollbacks partially completed work
15
Kroenke, Database Processing15 Optimistic versus Pessimistic Locking Optimistic locking assumes that no transaction conflict will occur: DBMS processes a transaction; checks whether conflict occurred: If not, the transaction is finished If yes, the transaction is repeated until there is no conflict Pessimistic locking assumes that conflict will occur: Locks are issued before a transaction is processed, and then the locks are released
16
Kroenke, Database Processing16 Optimistic Locking
17
Kroenke, Database Processing17 Pessimistic Locking
18
Kroenke, Database Processing18 Declaring Lock Characteristics Most application programs do not explicitly declare locks due to its complication Mark transaction boundaries and declare locking behavior they want the DBMS to use Transaction boundary markers: BEGIN, COMMIT, and ROLLBACK TRANSACTION Advantage If the locking behavior needs to be changed, only the lock declaration need be changed, not the application program
19
Kroenke, Database Processing19 Marking Transaction Boundaries
20
Kroenke, Database Processing20 ACID Transactions Transaction properties: Atomic- all or nothing Consistent Isolated Durable – changes made by commited transactions are permanent
21
Kroenke, Database Processing21 Consistency Consistency means either statement level or transaction level consistency Statement level consistency: each statement independently processes rows consistently Transaction level consistency: all rows impacted by either of the SQL statements are protected from changes during the entire transaction With transaction level consistency, a transaction may not see its own changes
22
Kroenke, Database Processing22 Statement Level Consistency UPDATE CUSTOMER SET AreaCode = ‘410’ WHERE ZipCode = ‘21218’ All qualifying rows updated No concurrent updates allowed
23
Kroenke, Database Processing23 Transaction Level Consistency Start transaction UPDATE CUSTOMER SET AreaCode = ‘425’ WHERE ZipCode = ‘21666’ ….other transaction work UPDATE CUSTOMER SET Discount = 0.25 WHERE AreaCode = ‘425’ End Transaction The second Update might not see the changes it made on the first Update
24
Kroenke, Database Processing24 ACID Transactions Atomic Consistent Isolated Durable
25
Kroenke, Database Processing25 Inconsistent-Read Problem Dirty reads – read uncommitted data T1: R(A), W(A), R(B), W(B), Abort T2: R(A), W(A), Commit Unrepeatable reads T1: R(A), R(A), W(A), Commit T2: R(A), W(A), Commit Phantom reads Re-read data and find new rows
26
Kroenke, Database Processing26 Isolation SQL-92 defines four transaction isolation levels: Read uncommitted Read committed Repeatable read Serializable
27
Kroenke, Database Processing27 Transaction Isolation Level
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.