การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... ·...
TRANSCRIPT
![Page 1: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/1.jpg)
Transaction Transaction ManagementManagement
การจดการรายการเปลยนแปลงการจดการรายการเปลยนแปลง
![Page 2: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/2.jpg)
TransactionTransaction คออะไรคออะไร
•
Transaction คอ หนวยของการทางานในเชงตรรกะ
(Logical unit of work:LUW) หนงหนวย ทกระทากบ
ฐานขอมลเพออานหรอเปลยนสถานะของขอมล
จากสถานะหนงไปสอกสถานะหนง
•
ภายในหนงรายการเปลยนแปลงอาจประกอบดวย
คาสงในการทางานเพยงคาสงเดยวหรอหลายคาสง
กได
![Page 3: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/3.jpg)
ผลจากการประมวลผลของผลจากการประมวลผลของ Transaction Transactionผลจากการประมวลผล Transaction สามารถมได 2 สถานะ
(อยางใดอยางหนง)
•
COMMIT หมายถง คาสงทกคาสงในรายการเปลยนแปลง ประมวลผลเสรจสมบรณทกคาสง มผลทาใหการเปลยนแปลง
คาในฐานขอมลคงอยถาวร
•
ROLLBACK หมายถง มการประมวลผลคาสงในรายการ เปลยนแปลงไมเสรจสมบรณ หรอมเหตขดของซงเปนผลใหการ
ประมวลผลของรายการเปลยนแปลงไมสมบรณ หรอโปรแกรม จบการทางานแบบไมปกต ทาใหการเปลยนแปลงขอมลใน
ฐานขอมลถกยกเลก(aborted)และยอนการทางานกลบไปยง จดเรมตนกอนการประมวลผลรายการเปลยนแปลง
![Page 4: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/7.jpg)
คณสมบตของ Transaction
เรยกยอๆ วา ACID ซงเปนคณสมบตท DBMS ตองคง คณสมบตทงหมดไวใหแกการทางานของ
Transaction ม 4 คณสมบต ดงน
•
Atomicity
•
Consistency
•
Isolation
•
Durability
![Page 8: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/8.jpg)
AtomicityAtomicity•
เมอผใชประมวลผลรายการเปลยนแปลงแลว ทก
การกระทาของรายการเปลยนแปลงตองเสรจ
สมบรณทกคาสง(committed) หรอ ถามการทางาน
ใดในรายการเปลยนแปลงไมสมบรณกตองยกเลก
(aborted)รายการเปลยนแปลงนนและยอนกลบการ
ทางาน(rolled back) เสมอนวาไมเคยประมวลผล
รายการเปลยนแปลงนนเลย
![Page 9: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/9.jpg)
ConsistencyConsistency•
การประมวลผล Transaction จะสงผลใหมการ
เปลยนแปลงสถานะของฐานขอมล ดงนน
Transaction จะตองรกษาความถกตองของ
ฐานขอมลทสอดคลองกบกฎเกณฑตาง ๆ ทกาหนด
ไว (Integrity Constraints)
•
หลงการประมวลผล Transaction เสรจ ฐานขอมล
ตองอยในสถานะทถกตอง(consistent state)
![Page 10: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/10.jpg)
IsolationIsolation•
Transaction ทมการทางานพรอมกนในเวลาเดยวกน
โดยผใชหลายคน(Multiusers) จะตองไมรบกวนกน
•
หาก T1 และ T2 ทางานในเวลาใกลเคยงกน ดงน
•
คณสมบต Isolation จะถอเสมอนรายการทงสอง
ทางาน ดงน
T1
T2
T1 T2
![Page 11: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/11.jpg)
DurabilityDurability
•
Transaction ททาใหเกดการเปลยนแปลงของขอมล
ในฐานขอมล เมอ Transaction ทางานเสรจสมบรณ
(committed)
ผลจากการเปลยนนนจะยงคงอยถาวร
•
เชน การโอนเงนจาก A ไป B ถาทาสาเรจ ผลทได
จะคงอยถาวร
![Page 12: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/12.jpg)
Transaction OperationsTransaction Operations
•
BEGIN_TRANSACTION : คาสงเรมการประมวลผลของ
Transaction
•
READ หรอ WRITE : เปนคาสงทใชในการอานหรอเขยน ขอมลบนฐานขอมล
•
END_TRANSACTION : เปนคาสงทจบการอานหรอเขยน ขอมลในฐานขอมล ซงในจดนจะมการตรวจสอบวาการ
ปรบปรงขอมลสาเรจ(committed)หรอถกยกเลก(aborted)
เพอเตรยมยอนกลบการทางาน(rollback)
![Page 13: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/13.jpg)
Transaction OperationsTransaction Operations
•
COMMIT_TRANSACTION : เปนคาสงทบอกวาการหาก ทางานของ Transaction เสรจสมบรณ การเปลยนแปลง ตาง ๆ ทกระทากบฐานขอมลจะไมสามารถยอนการ
ทางานกลบ(undone)ได
•
ROLLBACK : เปนคาสงทบอกวาหากการทางานของ Transaction ไมเสรจสมบรณ การเปลยนแปลงตาง ๆ ท
กระทากบฐานขอมลระหวางการทางานของ Transaction จะถกยกเลกและยอนกลบไปสสถานะกอนการเรม
ประมวลผล Transaction
![Page 14: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/14.jpg)
Transaction State
BOTActiveActive
PartiallyPartiallyCommittedCommitted
FailedFailed AbortedAborted
CommittedCommittedCOMMIT
ROLLBACK
เปนสถานะตาง ๆ ระหวางการประมวลผลของ Transaction
![Page 15: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/16.jpg)
การควบคมภาวะพรอมกนการควบคมภาวะพรอมกน
Concurrency Concurrency ControlControl
![Page 17: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/17.jpg)
Concurrency ControlConcurrency Control
•
เปนกระบวนการทใชในการจดการ Transaction
หลายๆ Transaction ทมความตองการใชงานขอมล
ชดเดยวกนในชวงเวลาเดยวกนจากฐานขอมล เพอ
นาขอมลเหลานนมาประมวลผลในแตละ
Transaction
![Page 18: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/19.jpg)
ปญหาจาก Concurrent Transaction
เมอ Transaction ถกประมวลผลพรอมกนโดยไมไดมการ ควบคม ม 3 ประเภท ดงน
•
ปญหาการสญเสยจากการปรบปรงขอมล (The lost
update problem)
•
ปญหาขอมลทยงไมไดรบการยอมรบความสมบรณ (The
uncommitted dependency problem)
•
ปญหาการวเคราะหผลลพธทขดแยงกน (The inconsistent
analysis problem)
![Page 20: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/20.jpg)
The Lost Update ProblemThe Lost Update Problem
•
เกดขนจากสาเหตท ม รายการเปลยนแปลง 2
รายการ หรอมากกวา มการเรยกใชขอมลเดยวกน
แลวตางฝายตางปรบปรงคาของขอมล โดยไมม
การปองกนการแกไขจากอกรายการ
![Page 21: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/22.jpg)
The Uncommitted Dependency ProblemThe Uncommitted Dependency Problem
•
เกดขนจากกรณท รายการเปลยนแปลง 2 รายการ
หรอ มากกวามการเรยกใชขอมลเดยวกน แตม
รายการเปลยนแปลงหนงทมการทางานยงไมเสรจ
สมบรณ และเกดปญหาขน จงตองมการยกเลกทกการ
กระทากอนหนาของรายการเปลยนแปลงนน สงผลให
ขอมลทรายการเปลยนแปลงนนเรยกใชกลบไปมคา
ตามเดม และทาให รายการเปลยนแปลงอนทเรยกใช
ขอมลเดยวกนกอนหนาทจะ ROLLBACK ไดรบขอมล
ทไมถกตองดวย
![Page 23: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/25.jpg)
The Inconsistent Analysis ProblemThe Inconsistent Analysis Problem•
เกดขนในกรณท รายการเปลยนแปลง 2 รายการ หรอมากกวา ม
การใชขอมลเดยวกน แตม รายการเปลยนแปลงหนงทไดรบขอมล ทอยในสถานะไมถกตองไปใชงาน สงผลใหการประมวลผลของ
รายการเปลยนแปลงนน มการประมวลผลทผดพลาด
•
พจารณาบญชทง 3 ดงน
•
ตองการโอนเงน 10 บาท จากบญช ACC3 ไปยง ACC1 พจารณา ลาดบการทางานดงตอไปน
ACC1 ACC2 ACC3
40 50 30
![Page 26: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/27.jpg)
Concurrency Control Techniques
•
เมอเกดภาวะพรอมกน(Concurrency) DBMS ตองม
เทคนคหรอกระบวนการในการจดเรยงลาดบการทางาน
ของแตละ Transaction กอนและหลง
•
เพอปองกนการแยงชงขอมลทประมวลผลยงไมเสรจไปใช
งานโดย Transaction อน
![Page 28: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/28.jpg)
Locking•
เทคนคการ Lock ขอมลน เปนเทคนคทใชในการ
กาหนดสถานะการ Lock ใหกบขอมล เพอบงบอก
ถงสทธในการใชงานขอมลนนแกแตละTransaction
กลาวคอ กอนทแตละ Transaction จะเรยกใช
ขอมลใด ๆ จะตองดสถานะการ Lock ของขอมล
ณ ขณะนนกอนวา มสถานะทบงบอกวาขอมลนน
ถกเรยกใชโดย Transaction อนหรอไม กอนทจะ
นาขอมลนนไปใชงาน
![Page 29: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/30.jpg)
• สถานะของการลอก แบงออกเปน 2 ประเภท
คอ
–
Shared Lock
–
Exclusive Lock
สถานะของการ Lock
![Page 31: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/36.jpg)
TwoTwo--Phase Locking(2PL) Phase Locking(2PL)
•
เปนการลอกวธหนงซงเปนทนยม โดยการลอกแบบ
2PL นนไดกาหนดไววา Transaction สามารถมอย 2
เฟสดวยกนคอ
–
Growing phase(Lock) เปนชวงทลอกขอมลทกอยางท
จะตองใชใน Transaction จะสามารถอานขอมลได แต
ไมสามารถทาการอปเดตขอมลได
–
Shrinking phase(UnLock) เปนชวงทปลดปลอยการล
อกขอมลทงหมดท Transaction ลอกไวใชงาน
![Page 37: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/37.jpg)
![Page 38: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/39.jpg)
ภาวะตดตาย(Dead Lock)
•
ในการลอคขอมล ถงแมจะแกปญหาตาง ททาให
เกดความไมถกตองของขอมล แตถาการลอค
ขอมลของแตละ Transaction ไมสมพนธกนแลว สงผลใหเกดปญหาทแตละ Transaction ตางฝาย
ตางลอคขอมล จนกระทงทง 2 ฝาย ไมสามารถ ทางานตอไปได เนองจากตองรอใหอกฝายปลอย
Lock ขอมลกอน ซงปญหาการลอคทเกดขนแบบ นเรยกวา การลอคคาง(DeadLock)
![Page 40: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/41.jpg)
ภาวะตดตาย(Dead Lock)•
ภาวะตดตายสามารถแกไขไดโดย การสละ Transaction
หนงดวยการปลดลอก Transaction ใด Transaction หนง ออกจากวงจร Dead Lock เพอให Transaction อนๆ
สามารถใชงานขอมลทถกลอกได
•
อาจใช Algorithmวธใดวธหนงในการกาจด Dead Lock
เชน วธ Wait-Die หรอ Wound-Die
•
โดย Transaction ทถกกาจดออกไปจะถกนามาเรมตน ประมวลผลใหมอกครง
![Page 42: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/42.jpg)
ระดบการระดบการลลอกอก(Locking Level)(Locking Level)
•
รปแบบของการลอกขอมลใน DBMS จะมอยหลาย
ระดบใหเลอกใชงานตามความเหมาะสม หรอตาม
ลกษณะงาน
•
แบงระดบการลอกเปนดงน
–
การลอกฐานขอมล(Database Locking)
–
การลอกตาราง(Table Locking)
–
การลอกเรคอรด(Record Locking)
–
การลอกฟลด(Field Locking)
![Page 43: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/43.jpg)
Database LockingDatabase Locking
•
เปนการลอกทงฐานขอมล
•
เหมาะสมกบการประมวลผลแบบแบตซ(batch processing)
•
ในขณะททาการประมวลผลอย ฐานขอมลทงระบบจะถกล
อกไมใครคนอนสามารถใชงานไดเลย จนกวาจะปลดลอก
•
เชน การสารอขอมล โดยระหวางทสารองขอมลอยนน
ฐานขอมลจะถกลอกไวไมใหใครเขามาใชงาน จนกวาจะ สารองขอมลเสรจสนแลวจงปลดลอก
![Page 44: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/44.jpg)
Table LockingTable Locking
•
เปนการลอกรเลชน โดยทาการลอกตารางใดตารางหนงท
ตองการ สางผลใหผใชคนอน ๆ ไมสามารถอานขอมล
หรอปรบปรงขอมลในตารางนนได จนกวาจะมการปลดล
อกตารางนน
•
เหมาะสมกบงานทตองมการปรบปรงขอมลทงตาราง
![Page 45: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/45.jpg)
Record LockingRecord Locking•
เปนการลอกขอมลบางแถวในตาราง ซงแถวขอมลทถกล
อกอยนนทาใหผใชคนอนไมสามารถใชขอมลในแถวนน ได จนกวาแถวขอมลนนจะถกปลดลอก
•
เหมาะสมกบงานทตองการปรบปรงขอมลบางแถว เชน ตองการเปลยนแปลงทอยของพนกงาน กจะลอกเฉพาะ
แถวขอมลของพนกงานทตองการเทานน ซงในขณะทล
อกแถวขอมลอยนน ผใชคนอนกจะไมสามารถใชงาน
ขอมลแถวนนไดชวขณะ จนกวาแถวขอมลจะถกปลดลอก
![Page 46: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/46.jpg)
Field LockingField Locking•
เปนการลอกฟลด/แอตทรบวต/คอลมนขอมลทมกถกใช
งานหรอปรบปรงขอมลบอย ๆ
•
โดยในขณะทลอกฟลดขอมลอยนน ผใชคนอนสามารถใช
งานขอมลได ยกเวนขอมลในฟลดทถกลอก
![Page 47: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/47.jpg)
การสารองและกคนขอมลการสารองและกคนขอมล
BackupBackup&&
RecoveryRecovery
![Page 48: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/48.jpg)
การกคนฐานขอมลการกคนฐานขอมล(Database Recovery)(Database Recovery)
•
เปนกระบวนการเรยกคนฐานขอมลใหกลบสภาวะเดมท
สามารถใชงานได ในกรณทเกดเหตขดของบางประการใน
ระหวางการประมวลผล
•
ประเภทของการเหตขดของทเกดกกบฐานขอมล ไดแก
–
System Failure หรอ Soft crash เชน ระบบไฟฟาขดของทาให
เซรฟเวอรทางานไมได เหตทเกดจากหนวยความจา
–
Media Failure หรอ Hard crash เชน แฟมถกลบ สอบนทก ขอมลเกดความเสยหายเชน ฮารดดสกพง เปนตน
![Page 49: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/49.jpg)
กระบวนการกคนขอมลกระบวนการกคนขอมล
•
กระบวนการกคนขอมลทใช จะขนอยกบชนดของ
เหตขดของ
•
เชนการกคนขอมลทเกดจาก Hard crash ทาไดงาย
แตใชเวลานาน ดงน
–
ฐานขอมลจะถกนามาบนทกใหมจากการสารองขอมล ครงลาสด
![Page 50: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/50.jpg)
Transaction LogTransaction Log
•
Transaction Log คอ ตารางขอมลทมการจดเกบ
ประวตการเปลยนแปลงขอมลในฐานขอมล
บางครงเรยกวา Journal ในการกคนขอมลของ
ฐานขอมล ตวจดการการกคน(Recovery manager)
ทอยในระบบการจดการฐานขอมลจะใชขอมลใน
Transaction Log ชวยในการกคนขอมล
![Page 51: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/52.jpg)
Transaction LogTransaction Log•
ในกรณมการเพมขอมลในฐานขอมลทกฟลด จะใช
เครองหมาย * และคาขอมล จะระบหมายเลขรายการใน ชองขอมลใหมเทานน สวนในกรณมการลบขอมล กจะ บนทกเฉพาะขอมลเกาในชองคาขอมล
•
เมอระบบเกดความขดของขนระบบการจดการฐานขอมล จะดงขอมลจาก Transaction Log ขนมาชวยในการกคน
ขอมล
![Page 53: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/54.jpg)
การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(Checkpoint)(Checkpoint)
•
การกคนขอมลทเกดจากเหตขดของแบบ System Failure หรอ Soft crash จะกาหนดใหมจดตรวจสอบ(Check Point) เพอใชตรวจสอบการทางานของรายการเปลยนแปลง
•
ซงจะใชหลกการของ Transaction Log โดยการกาหนด จดเรมตนของรายการเปลยนแปลงทเรมบนทกรายการลงใน
Journal ทเรยกวาจด Checkpoint ไว
•
ดงนน หากมรายการเปลยนแปลงใดทางานไมสมบรณ กให
นาขอมลใน Journal ตงแตจด Checkpoint ทกาหนดมา
ประมวลผลใหม โดยไมจาเปนตองเอาทกรายการใน Journal มาประมวลผลใหม
![Page 55: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/55.jpg)
การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(Checkpoint)(Checkpoint)
TRANSACTIONS
Checkpoint(Time tc )
System Failure(Time tf )
tc tfT1
T2
T3
T4
T5
![Page 56: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/html5/thumbnails/56.jpg)
การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(Checkpoint)(Checkpoint)•
รายละเอยดการทางาน
•
T1 : เปนทรานแซคชนทเกดขนและเสรจกอนทจะถงจดตรวจสอบเมอระบบ เกดความขดของ ระบบจดการฐานขอมลไมตองทารายการนใหม
•
T2
: เปนรายการทเรมกอนจะถงเวลาจดตรวจสอบ แตทางานเสรจหลงจาก ผานจดตรวจสอบไปแลว เมอระบบเกดความผดพลาดและมการกระบบ
ระบบจดการฐานขอมลจะตองทารายการนใหม เฉพาะสวนทอยหลงจด ตรวจสอบ
•
T3
: เปนรายการทเรมทางานหลงจดตรวจสอบ และทางานยงไมเสรจกเกด ความผดพลาดของระบบขนกอนทจะทางานเสรจ ระบบจดการฐานขอมลจะ ยกเลกรายการนทงหมด จนถงกอนจดตรวจสอบ
•
T4
: เปนรายการทเรมหลงจดตรวจสอบและทางานเสรจกอนถงจดทระบบ เกดความผดพลาด ระบบจดการฐานขอมลจะตองนารายการนกลบมาทาใหม
ทงหมด
•
T5
: เปนรายการทเรมทางานหลงจดตรวจสอบ แตทายงไมเสรจระบบกเกด
![Page 57: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง](https://reader034.vdocuments.net/reader034/viewer/2022042204/5ea571d12989636cae008ff0/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 มาประมวลผลใหม