transaction management
TRANSCRIPT
![Page 1: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/1.jpg)
Transaction Transaction ManagementManagement
การจดการรายการเปลยนแปลงการจดการรายการเปลยนแปลง
![Page 2: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/2.jpg)
TransactionTransaction คออะไรคออะไร
•
Transaction คอ หนวยของการทางานในเชงตรรกะ
(Logical unit of work:LUW) หนงหนวย ทกระทากบ
ฐานขอมลเพออานหรอเปลยนสถานะของขอมล
จากสถานะหนงไปสอกสถานะหนง
•
ภายในหนงรายการเปลยนแปลงอาจประกอบดวย
คาสงในการทางานเพยงคาสงเดยวหรอหลายคาสง
กได
![Page 3: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/3.jpg)
ผลจากการประมวลผลของผลจากการประมวลผลของ Transaction Transactionผลจากการประมวลผล Transaction สามารถมได 2 สถานะ
(อยางใดอยางหนง)
•
COMMIT หมายถง คาสงทกคาสงในรายการเปลยนแปลง ประมวลผลเสรจสมบรณทกคาสง มผลทาใหการเปลยนแปลง
คาในฐานขอมลคงอยถาวร
•
ROLLBACK หมายถง มการประมวลผลคาสงในรายการ เปลยนแปลงไมเสรจสมบรณ หรอมเหตขดของซงเปนผลใหการ
ประมวลผลของรายการเปลยนแปลงไมสมบรณ หรอโปรแกรม จบการทางานแบบไมปกต ทาใหการเปลยนแปลงขอมลใน
ฐานขอมลถกยกเลก(aborted)และยอนการทางานกลบไปยง จดเรมตนกอนการประมวลผลรายการเปลยนแปลง
![Page 4: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/4.jpg)
ตวอยางตวอยาง Transaction TransactionSTART TRANSACTION
Display greetingGet account number , pin , type and amountSELECT account number , type and balanceIf balance is sufficient then
UPDATE account by posting debitUPDATE account by posting creditINSERT history recordDisplay final message and issue cash
ElseWrite error message
End IfOn Error : ROLLBACK
COMMIT
![Page 5: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/5.jpg)
START TRANSACTIONDisplay greetingGet reservation preferenceSELECT departure and return flight recordsIf reservation is acceptable then
UPDATE seats remaining of departure flight recordUPDATE seats remaining of return flight recordINSERT reservation recordPrint ticket if requested
End IfOn Error : ROLLBACK
COMMIT
ตวอยางตวอยาง Transaction Transaction
![Page 6: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/6.jpg)
ตวอยาง TransactionSTART TRANSACTION
Display greetingGet order requestSELECT product recordsIf product is available then
UPDATE QOH of product recordINSERT order recordSend message to shipping department
End IfOn Error : ROLLBACK
COMMIT
![Page 7: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/7.jpg)
คณสมบตของ Transaction
เรยกยอๆ วา ACID ซงเปนคณสมบตท DBMS ตองคง คณสมบตทงหมดไวใหแกการทางานของ
Transaction ม 4 คณสมบต ดงน
•
Atomicity
•
Consistency
•
Isolation
•
Durability
![Page 8: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/8.jpg)
AtomicityAtomicity•
เมอผใชประมวลผลรายการเปลยนแปลงแลว ทก
การกระทาของรายการเปลยนแปลงตองเสรจ
สมบรณทกคาสง(committed) หรอ ถามการทางาน
ใดในรายการเปลยนแปลงไมสมบรณกตองยกเลก
(aborted)รายการเปลยนแปลงนนและยอนกลบการ
ทางาน(rolled back) เสมอนวาไมเคยประมวลผล
รายการเปลยนแปลงนนเลย
![Page 9: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/9.jpg)
ConsistencyConsistency•
การประมวลผล Transaction จะสงผลใหมการ
เปลยนแปลงสถานะของฐานขอมล ดงนน
Transaction จะตองรกษาความถกตองของ
ฐานขอมลทสอดคลองกบกฎเกณฑตาง ๆ ทกาหนด
ไว (Integrity Constraints)
•
หลงการประมวลผล Transaction เสรจ ฐานขอมล
ตองอยในสถานะทถกตอง(consistent state)
![Page 10: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/10.jpg)
IsolationIsolation•
Transaction ทมการทางานพรอมกนในเวลาเดยวกน
โดยผใชหลายคน(Multiusers) จะตองไมรบกวนกน
•
หาก T1 และ T2 ทางานในเวลาใกลเคยงกน ดงน
•
คณสมบต Isolation จะถอเสมอนรายการทงสอง
ทางาน ดงน
T1
T2
T1 T2
![Page 11: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/11.jpg)
DurabilityDurability
•
Transaction ททาใหเกดการเปลยนแปลงของขอมล
ในฐานขอมล เมอ Transaction ทางานเสรจสมบรณ
(committed)
ผลจากการเปลยนนนจะยงคงอยถาวร
•
เชน การโอนเงนจาก A ไป B ถาทาสาเรจ ผลทได
จะคงอยถาวร
![Page 12: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/12.jpg)
Transaction OperationsTransaction Operations
•
BEGIN_TRANSACTION : คาสงเรมการประมวลผลของ
Transaction
•
READ หรอ WRITE : เปนคาสงทใชในการอานหรอเขยน ขอมลบนฐานขอมล
•
END_TRANSACTION : เปนคาสงทจบการอานหรอเขยน ขอมลในฐานขอมล ซงในจดนจะมการตรวจสอบวาการ
ปรบปรงขอมลสาเรจ(committed)หรอถกยกเลก(aborted)
เพอเตรยมยอนกลบการทางาน(rollback)
![Page 13: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/13.jpg)
Transaction OperationsTransaction Operations
•
COMMIT_TRANSACTION : เปนคาสงทบอกวาการหาก ทางานของ Transaction เสรจสมบรณ การเปลยนแปลง ตาง ๆ ทกระทากบฐานขอมลจะไมสามารถยอนการ
ทางานกลบ(undone)ได
•
ROLLBACK : เปนคาสงทบอกวาหากการทางานของ Transaction ไมเสรจสมบรณ การเปลยนแปลงตาง ๆ ท
กระทากบฐานขอมลระหวางการทางานของ Transaction จะถกยกเลกและยอนกลบไปสสถานะกอนการเรม
ประมวลผล Transaction
![Page 14: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/14.jpg)
Transaction State
BOTActiveActive
PartiallyPartiallyCommittedCommitted
FailedFailed AbortedAborted
CommittedCommittedCOMMIT
ROLLBACK
เปนสถานะตาง ๆ ระหวางการประมวลผลของ Transaction
![Page 15: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/15.jpg)
Transaction State•
Transaction จะเขาสสถานะ Active state ทนทหลงจาก Transactionเรม
ทางาน
•
เมอ Transaction ทางานครบทกคาสง กจะเขาสสถานะ Partially committed state ณ จดนจะมการตรวจสอบความสมบรณของ Transaction
•
หากการทางานของ Transaction ไมมปญหาและเสรจสมบรณ กจะเขาส
สถานะ Committed
state ซงหมายถง การเปลยนแปลงตาง ๆ กบ
ฐานขอมลจะคงอยถาวร
•
Transaction สามารถทจะเขาสสถานะ Failed state ได ถาระหวางการ ตรวจสอบความสมบรณของ Transaction ลมเหลว หรอถกยกเลกระหวาง
สถานะ Active state
•
หลงจากนนจะเขาสสถานะ Aborted state เพอยกเลกการทางานทงหมด ของ Transaction
![Page 16: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/16.jpg)
การควบคมภาวะพรอมกนการควบคมภาวะพรอมกน
Concurrency Concurrency ControlControl
![Page 17: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/17.jpg)
Concurrency ControlConcurrency Control
•
เปนกระบวนการทใชในการจดการ Transaction
หลายๆ Transaction ทมความตองการใชงานขอมล
ชดเดยวกนในชวงเวลาเดยวกนจากฐานขอมล เพอ
นาขอมลเหลานนมาประมวลผลในแตละ
Transaction
![Page 18: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/18.jpg)
ตวอยาง Concurrency
Time
1. Read Account Balance(Balance = 1000)
1. Read Account Balance(Balance = 1000)
2. Withdraw 200(Balance = 800) 2. Withdraw 400
(Balance = 600)3. Write Account Balance
(Balance = 800)3. Write Account Balance
(Balance = 600)
ERROR!!ERROR!!
![Page 19: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/19.jpg)
ปญหาจาก Concurrent Transaction
เมอ Transaction ถกประมวลผลพรอมกนโดยไมไดมการ ควบคม ม 3 ประเภท ดงน
•
ปญหาการสญเสยจากการปรบปรงขอมล (The lost
update problem)
•
ปญหาขอมลทยงไมไดรบการยอมรบความสมบรณ (The
uncommitted dependency problem)
•
ปญหาการวเคราะหผลลพธทขดแยงกน (The inconsistent
analysis problem)
![Page 20: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/20.jpg)
The Lost Update ProblemThe Lost Update Problem
•
เกดขนจากสาเหตท ม รายการเปลยนแปลง 2
รายการ หรอมากกวา มการเรยกใชขอมลเดยวกน
แลวตางฝายตางปรบปรงคาของขอมล โดยไมม
การปองกนการแกไขจากอกรายการ
![Page 21: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/21.jpg)
The Lost Update ProblemThe Lost Update Problem
Time Transaction
T1
Transaction
T2
Comments
1 read_item(X) T1 อานขอมล X จากฐานขอมล
*** สมมต x มคา 100
2 x := x -
40 read_item(x) T1 ปรบปรงคาในตวแปร X (x = 60)
T2 อานขอมล X (ไดรบคา x = 100)
3 write_item(x) X := x + 20 T1 เขยนคา x ลงในฐานขอมล (x = 60)
T2 ปรบปรงคาในตวแปร X
( x = 120)
4 write_item(x) T2 เขยนคา x ลงในฐานขอมล ( x ใน ฐานขอมลมคา 120)
![Page 22: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/22.jpg)
The Uncommitted Dependency ProblemThe Uncommitted Dependency Problem
•
เกดขนจากกรณท รายการเปลยนแปลง 2 รายการ
หรอ มากกวามการเรยกใชขอมลเดยวกน แตม
รายการเปลยนแปลงหนงทมการทางานยงไมเสรจ
สมบรณ และเกดปญหาขน จงตองมการยกเลกทกการ
กระทากอนหนาของรายการเปลยนแปลงนน สงผลให
ขอมลทรายการเปลยนแปลงนนเรยกใชกลบไปมคา
ตามเดม และทาให รายการเปลยนแปลงอนทเรยกใช
ขอมลเดยวกนกอนหนาทจะ ROLLBACK ไดรบขอมล
ทไมถกตองดวย
![Page 23: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/23.jpg)
The Uncommitted Dependency ProblemThe Uncommitted Dependency ProblemTime Transaction
T1
Transaction
T2
Comments
1 read_item(X) T2 อานขอมล X จากฐานขอมล
*** สมมต x มคา 100
2 x := x -
20 T2 ปรบปรงคาในตวแปร X
3 write_item(x) T2 เขยนคา x ลงในฐานขอมลชวคราว
(x = 80)
4 read_item(X) T1 อานคา x ในฐานขอมล ( ไดรบคา x
เปน 80)
5 ROLLBACK T2 ทางานลมเหลว ตองยอนคา x กลบ เปนคาเดม (x = 100)
![Page 24: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/24.jpg)
Time Transaction
T1
Transaction
T2
Comments
1 read_item(X)
2 x := x -
20
3 write_item(x) T2 เขยนคา x ลงในฐานขอมลชวคราว
4 Read_item(x)
5 x := x + 100
6 write_item(x)
7 COMMIT
8 read_item(y)
… …. …
ROLLBACK T1 ขนกบขอมลทยงไมสมบรณและขาดการ
ปรบปรง
The dirty read
![Page 25: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/25.jpg)
The Inconsistent Analysis ProblemThe Inconsistent Analysis Problem•
เกดขนในกรณท รายการเปลยนแปลง 2 รายการ หรอมากกวา ม
การใชขอมลเดยวกน แตม รายการเปลยนแปลงหนงทไดรบขอมล ทอยในสถานะไมถกตองไปใชงาน สงผลใหการประมวลผลของ
รายการเปลยนแปลงนน มการประมวลผลทผดพลาด
•
พจารณาบญชทง 3 ดงน
•
ตองการโอนเงน 10 บาท จากบญช ACC3 ไปยง ACC1 พจารณา ลาดบการทางานดงตอไปน
ACC1 ACC2 ACC3
40 50 30
![Page 26: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/26.jpg)
The Inconsistent Analysis ProblemThe Inconsistent Analysis ProblemTim
eTransaction T1 Transaction T2 Comments
Sum = 0
1 read_item(ACC1)
2 sum := sum + ACC1
3 read_item(ACC2)
4 sum := sum + ACC2 ตอนน sum มคา 90
5 read_item(ACC3)
6 read_item(ACC1)
7 ACC3 := ACC3 -
10
8 ACC1 := ACC1 + 10
9 write_item(ACC3) ตอนน ACC3 มคา 20
10 write_item(ACC1) ตอนน ACC1 มคา 50
11 COMMIT
12 read_item(ACC3) T1 ไดรบคา ACC3 เปน 20
13 sum := sum + ACC3 sum มคา 110 ซงไมถกตอง
![Page 27: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/27.jpg)
Concurrency Control Techniques
•
เมอเกดภาวะพรอมกน(Concurrency) DBMS ตองม
เทคนคหรอกระบวนการในการจดเรยงลาดบการทางาน
ของแตละ Transaction กอนและหลง
•
เพอปองกนการแยงชงขอมลทประมวลผลยงไมเสรจไปใช
งานโดย Transaction อน
![Page 28: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/28.jpg)
Locking•
เทคนคการ Lock ขอมลน เปนเทคนคทใชในการ
กาหนดสถานะการ Lock ใหกบขอมล เพอบงบอก
ถงสทธในการใชงานขอมลนนแกแตละTransaction
กลาวคอ กอนทแตละ Transaction จะเรยกใช
ขอมลใด ๆ จะตองดสถานะการ Lock ของขอมล
ณ ขณะนนกอนวา มสถานะทบงบอกวาขอมลนน
ถกเรยกใชโดย Transaction อนหรอไม กอนทจะ
นาขอมลนนไปใชงาน
![Page 29: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/29.jpg)
ตวอยางการตวอยางการลลอกอก
Time
2. Read Account Balance(Balance = 1000)
2. Read Account Balance(Balance = 1000)
3. Withdraw 200(Balance = 800)
3. Withdraw 400(Balance = 600)
4. Write Account Balance(Balance = 800)
4. Write Account Balance(Balance = 600)
1. Request account balance(Lock account balance)
1. Request account balance(denied)
5. COMMIT(Unlock account balance)
5. COMMIT(Unlock account balance)
wait
![Page 30: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/30.jpg)
• สถานะของการลอก แบงออกเปน 2 ประเภท
คอ
–
Shared Lock
–
Exclusive Lock
สถานะของการ Lock
![Page 31: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/31.jpg)
Shared Lock (S Lock)Shared Lock (S Lock)
•
เปนการ Lock ขอมลทสามารถอานขอมลไดเพยง อยางเดยว Transaction ไมสามารถเปลยนแปลง
ขอมลท Lock แบบ S Lock
•
สมมต รายการขอมล R ถก Lock แบบ S โดยการ ทางานของ Transaction อน ๆ แลว Transaction B
อยากขอ Lock แบบ S เพออานขอมลบนรายการ R กสามารถทาได
![Page 32: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/32.jpg)
Exclusive Lock (X Lock)Exclusive Lock (X Lock)•
เปนการ Lock ขอมลทสามารถอานและปรบปรงขอมล
ได Transaction
•
เพอเปนการปองกนการแทรกการทางานจาก Transaction อน ระบบจงอนญาตใหมเพยง Transaction เดยวสามารถ Lock ขอมลแบบ X ได บนขอมลท
ตองการใชงาน
•
สมมต Transaction A ทาการ Lock ขอมลแบบ X บน รายการขอมล R แลว Transaction B จะไมสามารถ Lock
ขอมลบนรายการ R แบบ X ได จนกวา Transaction A จะปลดปลอย X Lock จากรายการ R
![Page 33: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/33.jpg)
Exclusive & Shared LockExclusive & Shared Lockประเภทของ Lock บนขอมล R ท Transaction B ตองการยดครอง
ประเภทของ Lock ท Transaction A ยดครองบน ขอมล R
Exclusive Lock Shared Lock No Lock
Exclusive Lock N N Y
Shared Lock N Y Y
No Lock Y Y Y
![Page 34: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/34.jpg)
การนา Locking ไปใชกบปญหา Lost Update Problem
Time TransactionT1
TransactionT2
Comments
1 read_item(X)(ไดรบ S Lock บน X)
จะทาการ Lock แบบ S บนขอมล X กอนทจะเรม
ประมวลผลคาสง read
2 x := x -
40 read_item(x)(ไดรบ S Lock บน X)
ระหวางท T1 กาลงปรบปรงขอมล X T2 กทาการ Lock แบบ S Lock บนขอมล X กอนทาการอาน
ขอมล
3 write_item(x) X := x + 20 ระหวางท T2 กาลงปรบปรงขอมล X T1 กตองการ Lock ขอมล X แบบ X Lock เพอเขยนขอมลลงใน
ฐานขอมล แตตองรอจนกวา T2 จะปลอย S Lock กอน
4 wait write_item(x) T2 ตองการ Lock แบบ X Lock เพอเขยนขอมลลง
ในฐานขอมล แตกตองรอจนกวา T1 จะปลอย S Lock กอน
5 wait wait ทงสอง Transaction T1 และ T2 ตางกรอใหแตละ
ฝายปลอย Lock ทยดครองไว
![Page 35: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/35.jpg)
การนา Locking ไปใชกบปญหา Uncommitted dependency problem
Time TransactionT1
TransactionT2
Comments
1 read_item(X)(ตองการ S Lock บน X)
2 x := x -
20
3 write_item(x)(ไดรบ X Lock บน X)
4 read_item(X)(ตองการ S Lock บน X)
T1 ตองการ S Lock บนขอมล X แตตอง
รอจนกวา T2 จะปลอย X Lock กอน
5 wait
n ฟน :
read_item(X) Commit(ปลอย X Lock บนขอมล X)
n+1 …
![Page 36: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/36.jpg)
TwoTwo--Phase Locking(2PL) Phase Locking(2PL)
•
เปนการลอกวธหนงซงเปนทนยม โดยการลอกแบบ
2PL นนไดกาหนดไววา Transaction สามารถมอย 2
เฟสดวยกนคอ
–
Growing phase(Lock) เปนชวงทลอกขอมลทกอยางท
จะตองใชใน Transaction จะสามารถอานขอมลได แต
ไมสามารถทาการอปเดตขอมลได
–
Shrinking phase(UnLock) เปนชวงทปลดปลอยการล
อกขอมลทงหมดท Transaction ลอกไวใชงาน
![Page 37: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/37.jpg)
![Page 38: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/38.jpg)
การแกปญหาการแกปญหา Lost Update Lost Update ดวยดวย 2PL2PLTime Transaction
T1TransactionT2
Comments
1 write_lock(X) T1 ทาการ Lock แบบ X Lock บนขอมล x
2 read_item(X) write_lock(X) T1 กาลงประมวลผลคาสง read และ T2 ก
ตองการ Lock ขอมล X แตตองรอจนกวา T1 จะ
ปลอย X Lock
3 x := x -
40 wait
4 write_item(x) wait มการปรบปรงคา X ในฐานขอมลโดย T1
5 Commit/Unlock(X) wait T1 ปลอย X Lock จากขอมล X และ T2 กไดรบ
สทธในการ Lock ขอมล X
6 read_item(X)(ไดรบ S Lock บน
ขอมล X)
ประมวลผลคาสงอานขอมล โดย T2
7 x := x + 20
8 write_item(X)(ไดรบ X Lock บน
ขอมล X)
9 Commit / Unlock(X)
![Page 39: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/39.jpg)
ภาวะตดตาย(Dead Lock)
•
ในการลอคขอมล ถงแมจะแกปญหาตาง ททาให
เกดความไมถกตองของขอมล แตถาการลอค
ขอมลของแตละ Transaction ไมสมพนธกนแลว สงผลใหเกดปญหาทแตละ Transaction ตางฝาย
ตางลอคขอมล จนกระทงทง 2 ฝาย ไมสามารถ ทางานตอไปได เนองจากตองรอใหอกฝายปลอย
Lock ขอมลกอน ซงปญหาการลอคทเกดขนแบบ นเรยกวา การลอคคาง(DeadLock)
![Page 40: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/40.jpg)
ภาวะตดตาย(Dead Lock)
Time T7 T8
t1t2t3t4t5t6t7t8t9t10
Begin_Transactionwrite_lock(balx )read(balx )balx = balx - 10 write(balx )write_lock(baly )
WAIT
WAIT
WAIT...
Begin_Transactionwrite_lock(baly )read(baly )baly = baly + 100write(baly )write_lock(balx )WAIT
WAIT
WAIT...
![Page 41: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/41.jpg)
ภาวะตดตาย(Dead Lock)•
ภาวะตดตายสามารถแกไขไดโดย การสละ Transaction
หนงดวยการปลดลอก Transaction ใด Transaction หนง ออกจากวงจร Dead Lock เพอให Transaction อนๆ
สามารถใชงานขอมลทถกลอกได
•
อาจใช Algorithmวธใดวธหนงในการกาจด Dead Lock
เชน วธ Wait-Die หรอ Wound-Die
•
โดย Transaction ทถกกาจดออกไปจะถกนามาเรมตน ประมวลผลใหมอกครง
![Page 42: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/42.jpg)
ระดบการระดบการลลอกอก(Locking Level)(Locking Level)
•
รปแบบของการลอกขอมลใน DBMS จะมอยหลาย
ระดบใหเลอกใชงานตามความเหมาะสม หรอตาม
ลกษณะงาน
•
แบงระดบการลอกเปนดงน
–
การลอกฐานขอมล(Database Locking)
–
การลอกตาราง(Table Locking)
–
การลอกเรคอรด(Record Locking)
–
การลอกฟลด(Field Locking)
![Page 43: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/43.jpg)
Database LockingDatabase Locking
•
เปนการลอกทงฐานขอมล
•
เหมาะสมกบการประมวลผลแบบแบตซ(batch processing)
•
ในขณะททาการประมวลผลอย ฐานขอมลทงระบบจะถกล
อกไมใครคนอนสามารถใชงานไดเลย จนกวาจะปลดลอก
•
เชน การสารอขอมล โดยระหวางทสารองขอมลอยนน
ฐานขอมลจะถกลอกไวไมใหใครเขามาใชงาน จนกวาจะ สารองขอมลเสรจสนแลวจงปลดลอก
![Page 44: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/44.jpg)
Table LockingTable Locking
•
เปนการลอกรเลชน โดยทาการลอกตารางใดตารางหนงท
ตองการ สางผลใหผใชคนอน ๆ ไมสามารถอานขอมล
หรอปรบปรงขอมลในตารางนนได จนกวาจะมการปลดล
อกตารางนน
•
เหมาะสมกบงานทตองมการปรบปรงขอมลทงตาราง
![Page 45: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/45.jpg)
Record LockingRecord Locking•
เปนการลอกขอมลบางแถวในตาราง ซงแถวขอมลทถกล
อกอยนนทาใหผใชคนอนไมสามารถใชขอมลในแถวนน ได จนกวาแถวขอมลนนจะถกปลดลอก
•
เหมาะสมกบงานทตองการปรบปรงขอมลบางแถว เชน ตองการเปลยนแปลงทอยของพนกงาน กจะลอกเฉพาะ
แถวขอมลของพนกงานทตองการเทานน ซงในขณะทล
อกแถวขอมลอยนน ผใชคนอนกจะไมสามารถใชงาน
ขอมลแถวนนไดชวขณะ จนกวาแถวขอมลจะถกปลดลอก
![Page 46: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/46.jpg)
Field LockingField Locking•
เปนการลอกฟลด/แอตทรบวต/คอลมนขอมลทมกถกใช
งานหรอปรบปรงขอมลบอย ๆ
•
โดยในขณะทลอกฟลดขอมลอยนน ผใชคนอนสามารถใช
งานขอมลได ยกเวนขอมลในฟลดทถกลอก
![Page 47: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/47.jpg)
การสารองและกคนขอมลการสารองและกคนขอมล
BackupBackup&&
RecoveryRecovery
![Page 48: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/48.jpg)
การกคนฐานขอมลการกคนฐานขอมล(Database Recovery)(Database Recovery)
•
เปนกระบวนการเรยกคนฐานขอมลใหกลบสภาวะเดมท
สามารถใชงานได ในกรณทเกดเหตขดของบางประการใน
ระหวางการประมวลผล
•
ประเภทของการเหตขดของทเกดกกบฐานขอมล ไดแก
–
System Failure หรอ Soft crash เชน ระบบไฟฟาขดของทาให
เซรฟเวอรทางานไมได เหตทเกดจากหนวยความจา
–
Media Failure หรอ Hard crash เชน แฟมถกลบ สอบนทก ขอมลเกดความเสยหายเชน ฮารดดสกพง เปนตน
![Page 49: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/49.jpg)
กระบวนการกคนขอมลกระบวนการกคนขอมล
•
กระบวนการกคนขอมลทใช จะขนอยกบชนดของ
เหตขดของ
•
เชนการกคนขอมลทเกดจาก Hard crash ทาไดงาย
แตใชเวลานาน ดงน
–
ฐานขอมลจะถกนามาบนทกใหมจากการสารองขอมล ครงลาสด
![Page 50: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/50.jpg)
Transaction LogTransaction Log
•
Transaction Log คอ ตารางขอมลทมการจดเกบ
ประวตการเปลยนแปลงขอมลในฐานขอมล
บางครงเรยกวา Journal ในการกคนขอมลของ
ฐานขอมล ตวจดการการกคน(Recovery manager)
ทอยในระบบการจดการฐานขอมลจะใชขอมลใน
Transaction Log ชวยในการกคนขอมล
![Page 51: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/51.jpg)
Transaction LogTransaction Log•
โดยทวไปในตาราง Log จะมการจดเกบขอมลดงน
–
ลาดบหมายเลขรายการ(Log Sequence Number : LSN)
–
หมายเลขรายการเปลยนแปลง(Transaction Identifier)
–
การกระทา(Action)
–
เวลา(Time)
–
ตารางขอมลทมการเปลยนแปลง(Table)
–
รายการขอมลทมการเปลยนแปลง(Record)
–
ชอฟลด(Column)
–
คาขอมลทงเกา(Old value) บางครงเรยกวา Before Image
–
คาขอมลทงใหม(New value) บางครงเรยกวา After Image
![Page 52: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/52.jpg)
Transaction LogTransaction Log•
ในกรณมการเพมขอมลในฐานขอมลทกฟลด จะใช
เครองหมาย * และคาขอมล จะระบหมายเลขรายการใน ชองขอมลใหมเทานน สวนในกรณมการลบขอมล กจะ บนทกเฉพาะขอมลเกาในชองคาขอมล
•
เมอระบบเกดความขดของขนระบบการจดการฐานขอมล จะดงขอมลจาก Transaction Log ขนมาชวยในการกคน
ขอมล
![Page 53: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/53.jpg)
ตวอยางตวอยาง Transaction Log FileTransaction Log FileLSN TransNo Action Time Table Row Column Old New
1 101001 START 10:29
2 101001 UPDATE 10:30 Acct 10001 AcctBal 100 200
3 101001 UPDATE 10:30 Acct 15147 AcctBal 500 400
4 101001 INSERT 10:32 Hist 25045 * <1002 , 500,…>
5 101001 COMMIT 10:33
![Page 54: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/54.jpg)
การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(Checkpoint)(Checkpoint)
•
การกคนขอมลทเกดจากเหตขดของแบบ System Failure หรอ Soft crash จะกาหนดใหมจดตรวจสอบ(Check Point) เพอใชตรวจสอบการทางานของรายการเปลยนแปลง
•
ซงจะใชหลกการของ Transaction Log โดยการกาหนด จดเรมตนของรายการเปลยนแปลงทเรมบนทกรายการลงใน
Journal ทเรยกวาจด Checkpoint ไว
•
ดงนน หากมรายการเปลยนแปลงใดทางานไมสมบรณ กให
นาขอมลใน Journal ตงแตจด Checkpoint ทกาหนดมา
ประมวลผลใหม โดยไมจาเปนตองเอาทกรายการใน Journal มาประมวลผลใหม
![Page 55: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/55.jpg)
การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(Checkpoint)(Checkpoint)
TRANSACTIONS
Checkpoint(Time tc )
System Failure(Time tf )
tc tfT1
T2
T3
T4
T5
![Page 56: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/56.jpg)
การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(Checkpoint)(Checkpoint)•
รายละเอยดการทางาน
•
T1 : เปนทรานแซคชนทเกดขนและเสรจกอนทจะถงจดตรวจสอบเมอระบบ เกดความขดของ ระบบจดการฐานขอมลไมตองทารายการนใหม
•
T2
: เปนรายการทเรมกอนจะถงเวลาจดตรวจสอบ แตทางานเสรจหลงจาก ผานจดตรวจสอบไปแลว เมอระบบเกดความผดพลาดและมการกระบบ
ระบบจดการฐานขอมลจะตองทารายการนใหม เฉพาะสวนทอยหลงจด ตรวจสอบ
•
T3
: เปนรายการทเรมทางานหลงจดตรวจสอบ และทางานยงไมเสรจกเกด ความผดพลาดของระบบขนกอนทจะทางานเสรจ ระบบจดการฐานขอมลจะ ยกเลกรายการนทงหมด จนถงกอนจดตรวจสอบ
•
T4
: เปนรายการทเรมหลงจดตรวจสอบและทางานเสรจกอนถงจดทระบบ เกดความผดพลาด ระบบจดการฐานขอมลจะตองนารายการนกลบมาทาใหม
ทงหมด
•
T5
: เปนรายการทเรมทางานหลงจดตรวจสอบ แตทายงไมเสรจระบบกเกด
![Page 57: Transaction Management](https://reader033.vdocuments.mx/reader033/viewer/2022051609/546e39ccb4af9fb36e8b489a/html5/thumbnails/57.jpg)
การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(Checkpoint)(Checkpoint)การพจารณาการก Transaction
1. สรางชดรายการของทรานแซคชน คอ UNDO List และ REDO List โดยกาหนดให UNDO List เกบทรานแซคชนทงหมด ทเกดขนระหวางชวงเวลา จากจดตรวจสอบถง
เวลาทระบบเกดความขดของ ทงหมดไวใน UNDO List สวน REDO List จะเปนคา วาง
2.
ตรวจสอบขอมลใน Log file ทเกดขน ณ ชวงเวลา จากจดตรวจสอบ ถง จดทเกด ความขดของของระบบ
3.
ถาพบรายการกาลงทางานอยใหบนทกลงใน UNDO List
4.
ถาพบรายการใดท COMMIT กอนเกดความขดของ ใหยายรายการนนไปไวใน REDO List
เมอสนสดการประมวลผล จะพบวาใน UNDO List ประกอบดวยทรานแซคชน T3 และ T5 ใหยกเลกการทางานของทรานแซคชนนนโดยการยอนกลบการทางานกลบสคา
เรมตน สวนใน REDO List ประกอบดวย ทรานแซคชน T2 และ T4 ใหนาทราน แซคชนทอยใน REDO List มาประมวลผลใหม