Download presentation
Presentation is loading. Please wait.
Published byBernice Gibbs Modified over 9 years ago
1
LeongHW, SOC, NUS (UIT2201:3 Database) Page 1 Copyright © 2007-9 by Leong Hon Wai Database – Info Storage and Retrieval Aim: Understand basics of Info storage and Retrieval; Database Organization; DBMS, Query and Query Processing; Work some simple exercises; Concurrency Issues (in Database) Readings: [SG] --- Ch 13.3 Optional: Some experiences with MySQL, Access
2
LeongHW, SOC, NUS (UIT2201:3 Database) Page 2 Copyright © 2007-9 by Leong Hon Wai Coffee Awards in UIT2201 Coffee awards goes to interesting, creative things done in tutorials, good attempt on A-problems, interesting suggestions or comments in class Claim them anytime Just email me To get a coffee and chat
3
LeongHW, SOC, NUS (UIT2201:3 Database) Page 3 Copyright © 2007-9 by Leong Hon Wai Concurrency Issues Concurrency When 2 processes access S at the same time! Can cause all kinds of problems Important issue in all areas Illustrate with concurrency issue in database Readings for Concurrency Issues Record Locking – Wikipedia u http://en.wikipedia.org/wiki/Record_locking Read [SG3] Section 6.4.1 (pp. 268--272) u Efficient Allocation and Safe Use of Resources
4
LeongHW, SOC, NUS (UIT2201:3 Database) Page 4 Copyright © 2007-9 by Leong Hon Wai Concurrency Issue: Example Bank account info: Withdraw-P (amt); begin check balance; bal bal - amt; end; Deposit-P (amt); begin check balance; bal bal + amt; end; Deposit and Withdrawal Processes B ANK -A CCOUNT-DB Account #NameBalanceOther Info… 2201-1022Albert Bank5000…
5
LeongHW, SOC, NUS (UIT2201:3 Database) Page 5 Copyright © 2007-9 by Leong Hon Wai Normal Operations (1/2) Bank-Account-DB 2201-1022 5000 Withdraw-P(1000);Deposit-P(2000); TWTW TDTD Time Withdraw-P(1000) Deposit(2000) Balance TWTW Check balance [5000]5000 T W +1Bal Bal – 10004000... 4000 TDTD Check balance [4000]4000 T D +1Bal Bal + 20006000 If (T W < T D ), then Correct balance
6
LeongHW, SOC, NUS (UIT2201:3 Database) Page 6 Copyright © 2007-9 by Leong Hon Wai Normal Operations (2/2) Bank-Account-DB 2201-1022 5000 Withdraw-P(1000);Deposit-P(2000); TWTW TDTD Time Withdraw-P(1000) Deposit(2000) Balance TDTD Check balance [5000]5000 T D +1Bal Bal + 20007000... 7000 TWTW Check balance [7000]7000 T W +1Bal Bal – 10006000 If (T W > T D ), then Correct balance
7
LeongHW, SOC, NUS (UIT2201:3 Database) Page 7 Copyright © 2007-9 by Leong Hon Wai Concurrency Issue (1/4) But… What if two processes accesses the same database record at the same time? Which process get access first? Does it matter?
8
LeongHW, SOC, NUS (UIT2201:3 Database) Page 8 Copyright © 2007-9 by Leong Hon Wai Concurrency Problem (2/4) Bank-Account-DB 2201-1022 5000 Withdraw-P(1000);Deposit-P(2000); TWTW TDTD Time Withdraw-P(1000) Deposit(2000) Balance TDTD Check balance [5000]5000 T D +1Check balance [5000]5000 T D +2 Bal Bal + 20007000 T D +3Bal Bal – 10004000 If (T W = T D ), and Deposit-process “got in” first Wrong balance
9
LeongHW, SOC, NUS (UIT2201:3 Database) Page 9 Copyright © 2007-9 by Leong Hon Wai Concurrency Problem (2/3) Bank-Account-DB 2201-1022 5000 Withdraw-P(1000);Deposit-P(2000); TWTW TDTD Time Withdraw-P(1000) Deposit(2000) Balance TWTW Check balance [5000]5000 T W +1 Check balance [5000]5000 T W +2Bal Bal – 10004000 T W +3Bal Bal + 20007000 If (T W = T D ), and Withdraw-process “got in” first Wrong balance
10
LeongHW, SOC, NUS (UIT2201:3 Database) Page 10 Copyright © 2007-9 by Leong Hon Wai Concurrency Problem (3/3) Operations of the two processes are interleaved Withdraw-Process and Deposit-Process “interfere” with each other Wrong balance for both cases Since one of the operations is over-written
11
LeongHW, SOC, NUS (UIT2201:3 Database) Page 11 Copyright © 2007-9 by Leong Hon Wai Concurrency Solution: Lock operation IDEA: If one process P is changing balance, make sure that other processes do not access the same balance until P is done Solution: The process that “get-in” first, locks up the record. This makes sure other processes will not be to access the same record. Unlock the record after update is done.
12
LeongHW, SOC, NUS (UIT2201:3 Database) Page 12 Copyright © 2007-9 by Leong Hon Wai Concurrency Solution: (2/4) Withdraw-P (amt); begin Get & lock record; bal bal - amt; unlock record; end; Deposit-P (amt); begin Get & lock record; bal bal + amt; unlock record; end; Deposit and Withdrawal Processes Bank-Account-DB 2201-1022 5000
13
LeongHW, SOC, NUS (UIT2201:3 Database) Page 13 Copyright © 2007-9 by Leong Hon Wai Concurrency Solution: (3/4) Bank-Account-DB 2201-1022 5000 Withdraw-P(1000);Deposit-P(2000); TWTW TDTD Time Withdraw-P(1000) Deposit(2000) Balance TWTW Get & Lock record;5000 T W +1 Get...; [blocked]5000 T W +2Bal Bal – 1000; Unlock record; 4000 T W +3Get & Lock record;4000 T W +4Bal Bal + 2000; Unlock record; 6000 If (T W = T D ), and Withdraw-process “got in” first
14
LeongHW, SOC, NUS (UIT2201:3 Database) Page 14 Copyright © 2007-9 by Leong Hon Wai Concurrency Solution: (4/4) Bank-Account-DB 2201-1022 5000 Withdraw-P(1000);Deposit-P(2000); TWTW TDTD Time Withdraw-P(1000) Deposit(2000) Balance TWTW Get & Lock record;5000 T W +1Get...; [blocked]5000 T W +2Bal Bal + 2000; Unlock record; 7000 T W +3Get & Lock record;7000 T W +4Bal Bal – 1000; Unlock record; 6000 If (T W = T D ), and Deposit-process “got in” first
15
LeongHW, SOC, NUS (UIT2201:3 Database) Page 15 Copyright © 2007-9 by Leong Hon Wai … Case Study: The ATM Machine
16
LeongHW, SOC, NUS (UIT2201:3 Database) Page 16 Copyright © 2007-9 by Leong Hon Wai Simple ATM Scenario (1 of 2) Bank User ATM Machine Bank HQ Inserts ATM card Prompt for PIN # Enter the PIN # Send encoded Acct #, PIN # Send encoded Verified Msg Display Options Choose (Withdraw $100) [Verifies A/C # & Pin #] [Reads card] [encode] network
17
LeongHW, SOC, NUS (UIT2201:3 Database) Page 17 Copyright © 2007-9 by Leong Hon Wai Simple ATM Scenario (2 of 2) Bank User ATM Machine Bank HQ [Verifies balance] [Deduct $100] User collects $100 Send request (W,100) Send Verified Msg Display and Print new Bal Chooses (Withdraw $100) [Counts out $100] Send ack of withdrawal [encode] network
18
LeongHW, SOC, NUS (UIT2201:3 Database) Page 18 Copyright © 2007-9 by Leong Hon Wai … What if something goes wrong?
19
LeongHW, SOC, NUS (UIT2201:3 Database) Page 19 Copyright © 2007-9 by Leong Hon Wai Simple ATM Scenario: Malfunction Bank User ATM Machine Bank HQ Inserts ATM card Prompt for PIN # Enter the PIN # Send encoded Acct #, PIN # Send encoded Verified Msg Display Options Choose (Withdraw $100) [Verifies A/C # & Pin #] [Reads card] [encode] network What if something goes wrong?
20
LeongHW, SOC, NUS (UIT2201:3 Database) Page 20 Copyright © 2007-9 by Leong Hon Wai Simple ATM Scenario: Malfunction… Bank User ATM Machine Bank HQ [Verifies balance] [Deduct $100] User collects $100 Send request (W,100) Send Verified Msg Display and Print new Bal Chooses (Withdraw $100) [Counts out $100] Send ack of withdrawal [encode] network What if something goes wrong?
21
LeongHW, SOC, NUS (UIT2201:3 Database) Page 21 Copyright © 2007-9 by Leong Hon Wai Actually, no technical solution…
22
LeongHW, SOC, NUS (UIT2201:3 Database) Page 22 Copyright © 2007-9 by Leong Hon Wai What to modify/add for future… Value added Services: Data Mining – frequent patterns Targeted marketing (Database marketing) Credit-card fraud, Handphone acct churning analysis
23
LeongHW, SOC, NUS (UIT2201:3 Database) Page 23 Copyright © 2007-9 by Leong Hon Wai Topic Summary: Database Databases: what they are, organization, etc Database Query: How query is processed “under the hood” 3 basic DB primitives Impetus for “Declarative Style of Query” Concurrency Issues in Databases How to deal with Concurrency The ATM Case Study Database Applications…
24
LeongHW, SOC, NUS (UIT2201:3 Database) Page 24 Copyright © 2007-9 by Leong Hon Wai Thank you!
25
LeongHW, SOC, NUS (UIT2201:3 Database) Page 25 Copyright © 2007-9 by Leong Hon Wai
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.