Upload
naru46
View
277
Download
3
Embed Size (px)
Citation preview
Transaction Transaction ManagementManagement
การจดการรายการเปลยนแปลงการจดการรายการเปลยนแปลง
TransactionTransaction คออะไรคออะไร
•
Transaction คอ หนวยของการทางานในเชงตรรกะ
(Logical unit of work:LUW) หนงหนวย ทกระทากบ
ฐานขอมลเพออานหรอเปลยนสถานะของขอมล
จากสถานะหนงไปสอกสถานะหนง
•
ภายในหนงรายการเปลยนแปลงอาจประกอบดวย
คาสงในการทางานเพยงคาสงเดยวหรอหลายคาสง
กได
ผลจากการประมวลผลของผลจากการประมวลผลของ Transaction Transactionผลจากการประมวลผล Transaction สามารถมได 2 สถานะ
(อยางใดอยางหนง)
•
COMMIT หมายถง คาสงทกคาสงในรายการเปลยนแปลง ประมวลผลเสรจสมบรณทกคาสง มผลทาใหการเปลยนแปลง
คาในฐานขอมลคงอยถาวร
•
ROLLBACK หมายถง มการประมวลผลคาสงในรายการ เปลยนแปลงไมเสรจสมบรณ หรอมเหตขดของซงเปนผลใหการ
ประมวลผลของรายการเปลยนแปลงไมสมบรณ หรอโปรแกรม จบการทางานแบบไมปกต ทาใหการเปลยนแปลงขอมลใน
ฐานขอมลถกยกเลก(aborted)และยอนการทางานกลบไปยง จดเรมตนกอนการประมวลผลรายการเปลยนแปลง
ตวอยางตวอยาง 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
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
ตวอยาง 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
คณสมบตของ Transaction
เรยกยอๆ วา ACID ซงเปนคณสมบตท DBMS ตองคง คณสมบตทงหมดไวใหแกการทางานของ
Transaction ม 4 คณสมบต ดงน
•
Atomicity
•
Consistency
•
Isolation
•
Durability
AtomicityAtomicity•
เมอผใชประมวลผลรายการเปลยนแปลงแลว ทก
การกระทาของรายการเปลยนแปลงตองเสรจ
สมบรณทกคาสง(committed) หรอ ถามการทางาน
ใดในรายการเปลยนแปลงไมสมบรณกตองยกเลก
(aborted)รายการเปลยนแปลงนนและยอนกลบการ
ทางาน(rolled back) เสมอนวาไมเคยประมวลผล
รายการเปลยนแปลงนนเลย
ConsistencyConsistency•
การประมวลผล Transaction จะสงผลใหมการ
เปลยนแปลงสถานะของฐานขอมล ดงนน
Transaction จะตองรกษาความถกตองของ
ฐานขอมลทสอดคลองกบกฎเกณฑตาง ๆ ทกาหนด
ไว (Integrity Constraints)
•
หลงการประมวลผล Transaction เสรจ ฐานขอมล
ตองอยในสถานะทถกตอง(consistent state)
IsolationIsolation•
Transaction ทมการทางานพรอมกนในเวลาเดยวกน
โดยผใชหลายคน(Multiusers) จะตองไมรบกวนกน
•
หาก T1 และ T2 ทางานในเวลาใกลเคยงกน ดงน
•
คณสมบต Isolation จะถอเสมอนรายการทงสอง
ทางาน ดงน
T1
T2
T1 T2
DurabilityDurability
•
Transaction ททาใหเกดการเปลยนแปลงของขอมล
ในฐานขอมล เมอ Transaction ทางานเสรจสมบรณ
(committed)
ผลจากการเปลยนนนจะยงคงอยถาวร
•
เชน การโอนเงนจาก A ไป B ถาทาสาเรจ ผลทได
จะคงอยถาวร
Transaction OperationsTransaction Operations
•
BEGIN_TRANSACTION : คาสงเรมการประมวลผลของ
Transaction
•
READ หรอ WRITE : เปนคาสงทใชในการอานหรอเขยน ขอมลบนฐานขอมล
•
END_TRANSACTION : เปนคาสงทจบการอานหรอเขยน ขอมลในฐานขอมล ซงในจดนจะมการตรวจสอบวาการ
ปรบปรงขอมลสาเรจ(committed)หรอถกยกเลก(aborted)
เพอเตรยมยอนกลบการทางาน(rollback)
Transaction OperationsTransaction Operations
•
COMMIT_TRANSACTION : เปนคาสงทบอกวาการหาก ทางานของ Transaction เสรจสมบรณ การเปลยนแปลง ตาง ๆ ทกระทากบฐานขอมลจะไมสามารถยอนการ
ทางานกลบ(undone)ได
•
ROLLBACK : เปนคาสงทบอกวาหากการทางานของ Transaction ไมเสรจสมบรณ การเปลยนแปลงตาง ๆ ท
กระทากบฐานขอมลระหวางการทางานของ Transaction จะถกยกเลกและยอนกลบไปสสถานะกอนการเรม
ประมวลผล Transaction
Transaction State
BOTActiveActive
PartiallyPartiallyCommittedCommitted
FailedFailed AbortedAborted
CommittedCommittedCOMMIT
ROLLBACK
เปนสถานะตาง ๆ ระหวางการประมวลผลของ Transaction
Transaction State•
Transaction จะเขาสสถานะ Active state ทนทหลงจาก Transactionเรม
ทางาน
•
เมอ Transaction ทางานครบทกคาสง กจะเขาสสถานะ Partially committed state ณ จดนจะมการตรวจสอบความสมบรณของ Transaction
•
หากการทางานของ Transaction ไมมปญหาและเสรจสมบรณ กจะเขาส
สถานะ Committed
state ซงหมายถง การเปลยนแปลงตาง ๆ กบ
ฐานขอมลจะคงอยถาวร
•
Transaction สามารถทจะเขาสสถานะ Failed state ได ถาระหวางการ ตรวจสอบความสมบรณของ Transaction ลมเหลว หรอถกยกเลกระหวาง
สถานะ Active state
•
หลงจากนนจะเขาสสถานะ Aborted state เพอยกเลกการทางานทงหมด ของ Transaction
การควบคมภาวะพรอมกนการควบคมภาวะพรอมกน
Concurrency Concurrency ControlControl
Concurrency ControlConcurrency Control
•
เปนกระบวนการทใชในการจดการ Transaction
หลายๆ Transaction ทมความตองการใชงานขอมล
ชดเดยวกนในชวงเวลาเดยวกนจากฐานขอมล เพอ
นาขอมลเหลานนมาประมวลผลในแตละ
Transaction
ตวอยาง 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!!
ปญหาจาก Concurrent Transaction
เมอ Transaction ถกประมวลผลพรอมกนโดยไมไดมการ ควบคม ม 3 ประเภท ดงน
•
ปญหาการสญเสยจากการปรบปรงขอมล (The lost
update problem)
•
ปญหาขอมลทยงไมไดรบการยอมรบความสมบรณ (The
uncommitted dependency problem)
•
ปญหาการวเคราะหผลลพธทขดแยงกน (The inconsistent
analysis problem)
The Lost Update ProblemThe Lost Update Problem
•
เกดขนจากสาเหตท ม รายการเปลยนแปลง 2
รายการ หรอมากกวา มการเรยกใชขอมลเดยวกน
แลวตางฝายตางปรบปรงคาของขอมล โดยไมม
การปองกนการแกไขจากอกรายการ
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)
The Uncommitted Dependency ProblemThe Uncommitted Dependency Problem
•
เกดขนจากกรณท รายการเปลยนแปลง 2 รายการ
หรอ มากกวามการเรยกใชขอมลเดยวกน แตม
รายการเปลยนแปลงหนงทมการทางานยงไมเสรจ
สมบรณ และเกดปญหาขน จงตองมการยกเลกทกการ
กระทากอนหนาของรายการเปลยนแปลงนน สงผลให
ขอมลทรายการเปลยนแปลงนนเรยกใชกลบไปมคา
ตามเดม และทาให รายการเปลยนแปลงอนทเรยกใช
ขอมลเดยวกนกอนหนาทจะ ROLLBACK ไดรบขอมล
ทไมถกตองดวย
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)
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
The Inconsistent Analysis ProblemThe Inconsistent Analysis Problem•
เกดขนในกรณท รายการเปลยนแปลง 2 รายการ หรอมากกวา ม
การใชขอมลเดยวกน แตม รายการเปลยนแปลงหนงทไดรบขอมล ทอยในสถานะไมถกตองไปใชงาน สงผลใหการประมวลผลของ
รายการเปลยนแปลงนน มการประมวลผลทผดพลาด
•
พจารณาบญชทง 3 ดงน
•
ตองการโอนเงน 10 บาท จากบญช ACC3 ไปยง ACC1 พจารณา ลาดบการทางานดงตอไปน
ACC1 ACC2 ACC3
40 50 30
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 ซงไมถกตอง
Concurrency Control Techniques
•
เมอเกดภาวะพรอมกน(Concurrency) DBMS ตองม
เทคนคหรอกระบวนการในการจดเรยงลาดบการทางาน
ของแตละ Transaction กอนและหลง
•
เพอปองกนการแยงชงขอมลทประมวลผลยงไมเสรจไปใช
งานโดย Transaction อน
Locking•
เทคนคการ Lock ขอมลน เปนเทคนคทใชในการ
กาหนดสถานะการ Lock ใหกบขอมล เพอบงบอก
ถงสทธในการใชงานขอมลนนแกแตละTransaction
กลาวคอ กอนทแตละ Transaction จะเรยกใช
ขอมลใด ๆ จะตองดสถานะการ Lock ของขอมล
ณ ขณะนนกอนวา มสถานะทบงบอกวาขอมลนน
ถกเรยกใชโดย Transaction อนหรอไม กอนทจะ
นาขอมลนนไปใชงาน
ตวอยางการตวอยางการลลอกอก
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
• สถานะของการลอก แบงออกเปน 2 ประเภท
คอ
–
Shared Lock
–
Exclusive Lock
สถานะของการ Lock
Shared Lock (S Lock)Shared Lock (S Lock)
•
เปนการ Lock ขอมลทสามารถอานขอมลไดเพยง อยางเดยว Transaction ไมสามารถเปลยนแปลง
ขอมลท Lock แบบ S Lock
•
สมมต รายการขอมล R ถก Lock แบบ S โดยการ ทางานของ Transaction อน ๆ แลว Transaction B
อยากขอ Lock แบบ S เพออานขอมลบนรายการ R กสามารถทาได
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
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
การนา 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 ทยดครองไว
การนา 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 …
TwoTwo--Phase Locking(2PL) Phase Locking(2PL)
•
เปนการลอกวธหนงซงเปนทนยม โดยการลอกแบบ
2PL นนไดกาหนดไววา Transaction สามารถมอย 2
เฟสดวยกนคอ
–
Growing phase(Lock) เปนชวงทลอกขอมลทกอยางท
จะตองใชใน Transaction จะสามารถอานขอมลได แต
ไมสามารถทาการอปเดตขอมลได
–
Shrinking phase(UnLock) เปนชวงทปลดปลอยการล
อกขอมลทงหมดท Transaction ลอกไวใชงาน
การแกปญหาการแกปญหา 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)
ภาวะตดตาย(Dead Lock)
•
ในการลอคขอมล ถงแมจะแกปญหาตาง ททาให
เกดความไมถกตองของขอมล แตถาการลอค
ขอมลของแตละ Transaction ไมสมพนธกนแลว สงผลใหเกดปญหาทแตละ Transaction ตางฝาย
ตางลอคขอมล จนกระทงทง 2 ฝาย ไมสามารถ ทางานตอไปได เนองจากตองรอใหอกฝายปลอย
Lock ขอมลกอน ซงปญหาการลอคทเกดขนแบบ นเรยกวา การลอคคาง(DeadLock)
ภาวะตดตาย(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...
ภาวะตดตาย(Dead Lock)•
ภาวะตดตายสามารถแกไขไดโดย การสละ Transaction
หนงดวยการปลดลอก Transaction ใด Transaction หนง ออกจากวงจร Dead Lock เพอให Transaction อนๆ
สามารถใชงานขอมลทถกลอกได
•
อาจใช Algorithmวธใดวธหนงในการกาจด Dead Lock
เชน วธ Wait-Die หรอ Wound-Die
•
โดย Transaction ทถกกาจดออกไปจะถกนามาเรมตน ประมวลผลใหมอกครง
ระดบการระดบการลลอกอก(Locking Level)(Locking Level)
•
รปแบบของการลอกขอมลใน DBMS จะมอยหลาย
ระดบใหเลอกใชงานตามความเหมาะสม หรอตาม
ลกษณะงาน
•
แบงระดบการลอกเปนดงน
–
การลอกฐานขอมล(Database Locking)
–
การลอกตาราง(Table Locking)
–
การลอกเรคอรด(Record Locking)
–
การลอกฟลด(Field Locking)
Database LockingDatabase Locking
•
เปนการลอกทงฐานขอมล
•
เหมาะสมกบการประมวลผลแบบแบตซ(batch processing)
•
ในขณะททาการประมวลผลอย ฐานขอมลทงระบบจะถกล
อกไมใครคนอนสามารถใชงานไดเลย จนกวาจะปลดลอก
•
เชน การสารอขอมล โดยระหวางทสารองขอมลอยนน
ฐานขอมลจะถกลอกไวไมใหใครเขามาใชงาน จนกวาจะ สารองขอมลเสรจสนแลวจงปลดลอก
Table LockingTable Locking
•
เปนการลอกรเลชน โดยทาการลอกตารางใดตารางหนงท
ตองการ สางผลใหผใชคนอน ๆ ไมสามารถอานขอมล
หรอปรบปรงขอมลในตารางนนได จนกวาจะมการปลดล
อกตารางนน
•
เหมาะสมกบงานทตองมการปรบปรงขอมลทงตาราง
Record LockingRecord Locking•
เปนการลอกขอมลบางแถวในตาราง ซงแถวขอมลทถกล
อกอยนนทาใหผใชคนอนไมสามารถใชขอมลในแถวนน ได จนกวาแถวขอมลนนจะถกปลดลอก
•
เหมาะสมกบงานทตองการปรบปรงขอมลบางแถว เชน ตองการเปลยนแปลงทอยของพนกงาน กจะลอกเฉพาะ
แถวขอมลของพนกงานทตองการเทานน ซงในขณะทล
อกแถวขอมลอยนน ผใชคนอนกจะไมสามารถใชงาน
ขอมลแถวนนไดชวขณะ จนกวาแถวขอมลจะถกปลดลอก
Field LockingField Locking•
เปนการลอกฟลด/แอตทรบวต/คอลมนขอมลทมกถกใช
งานหรอปรบปรงขอมลบอย ๆ
•
โดยในขณะทลอกฟลดขอมลอยนน ผใชคนอนสามารถใช
งานขอมลได ยกเวนขอมลในฟลดทถกลอก
การสารองและกคนขอมลการสารองและกคนขอมล
BackupBackup&&
RecoveryRecovery
การกคนฐานขอมลการกคนฐานขอมล(Database Recovery)(Database Recovery)
•
เปนกระบวนการเรยกคนฐานขอมลใหกลบสภาวะเดมท
สามารถใชงานได ในกรณทเกดเหตขดของบางประการใน
ระหวางการประมวลผล
•
ประเภทของการเหตขดของทเกดกกบฐานขอมล ไดแก
–
System Failure หรอ Soft crash เชน ระบบไฟฟาขดของทาให
เซรฟเวอรทางานไมได เหตทเกดจากหนวยความจา
–
Media Failure หรอ Hard crash เชน แฟมถกลบ สอบนทก ขอมลเกดความเสยหายเชน ฮารดดสกพง เปนตน
กระบวนการกคนขอมลกระบวนการกคนขอมล
•
กระบวนการกคนขอมลทใช จะขนอยกบชนดของ
เหตขดของ
•
เชนการกคนขอมลทเกดจาก Hard crash ทาไดงาย
แตใชเวลานาน ดงน
–
ฐานขอมลจะถกนามาบนทกใหมจากการสารองขอมล ครงลาสด
Transaction LogTransaction Log
•
Transaction Log คอ ตารางขอมลทมการจดเกบ
ประวตการเปลยนแปลงขอมลในฐานขอมล
บางครงเรยกวา Journal ในการกคนขอมลของ
ฐานขอมล ตวจดการการกคน(Recovery manager)
ทอยในระบบการจดการฐานขอมลจะใชขอมลใน
Transaction Log ชวยในการกคนขอมล
Transaction LogTransaction Log•
โดยทวไปในตาราง Log จะมการจดเกบขอมลดงน
–
ลาดบหมายเลขรายการ(Log Sequence Number : LSN)
–
หมายเลขรายการเปลยนแปลง(Transaction Identifier)
–
การกระทา(Action)
–
เวลา(Time)
–
ตารางขอมลทมการเปลยนแปลง(Table)
–
รายการขอมลทมการเปลยนแปลง(Record)
–
ชอฟลด(Column)
–
คาขอมลทงเกา(Old value) บางครงเรยกวา Before Image
–
คาขอมลทงใหม(New value) บางครงเรยกวา After Image
Transaction LogTransaction Log•
ในกรณมการเพมขอมลในฐานขอมลทกฟลด จะใช
เครองหมาย * และคาขอมล จะระบหมายเลขรายการใน ชองขอมลใหมเทานน สวนในกรณมการลบขอมล กจะ บนทกเฉพาะขอมลเกาในชองคาขอมล
•
เมอระบบเกดความขดของขนระบบการจดการฐานขอมล จะดงขอมลจาก Transaction Log ขนมาชวยในการกคน
ขอมล
ตวอยางตวอยาง 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
การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(Checkpoint)(Checkpoint)
•
การกคนขอมลทเกดจากเหตขดของแบบ System Failure หรอ Soft crash จะกาหนดใหมจดตรวจสอบ(Check Point) เพอใชตรวจสอบการทางานของรายการเปลยนแปลง
•
ซงจะใชหลกการของ Transaction Log โดยการกาหนด จดเรมตนของรายการเปลยนแปลงทเรมบนทกรายการลงใน
Journal ทเรยกวาจด Checkpoint ไว
•
ดงนน หากมรายการเปลยนแปลงใดทางานไมสมบรณ กให
นาขอมลใน Journal ตงแตจด Checkpoint ทกาหนดมา
ประมวลผลใหม โดยไมจาเปนตองเอาทกรายการใน Journal มาประมวลผลใหม
การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(Checkpoint)(Checkpoint)
TRANSACTIONS
Checkpoint(Time tc )
System Failure(Time tf )
tc tfT1
T2
T3
T4
T5
การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(Checkpoint)(Checkpoint)•
รายละเอยดการทางาน
•
T1 : เปนทรานแซคชนทเกดขนและเสรจกอนทจะถงจดตรวจสอบเมอระบบ เกดความขดของ ระบบจดการฐานขอมลไมตองทารายการนใหม
•
T2
: เปนรายการทเรมกอนจะถงเวลาจดตรวจสอบ แตทางานเสรจหลงจาก ผานจดตรวจสอบไปแลว เมอระบบเกดความผดพลาดและมการกระบบ
ระบบจดการฐานขอมลจะตองทารายการนใหม เฉพาะสวนทอยหลงจด ตรวจสอบ
•
T3
: เปนรายการทเรมทางานหลงจดตรวจสอบ และทางานยงไมเสรจกเกด ความผดพลาดของระบบขนกอนทจะทางานเสรจ ระบบจดการฐานขอมลจะ ยกเลกรายการนทงหมด จนถงกอนจดตรวจสอบ
•
T4
: เปนรายการทเรมหลงจดตรวจสอบและทางานเสรจกอนถงจดทระบบ เกดความผดพลาด ระบบจดการฐานขอมลจะตองนารายการนกลบมาทาใหม
ทงหมด
•
T5
: เปนรายการทเรมทางานหลงจดตรวจสอบ แตทายงไมเสรจระบบกเกด
การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(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 มาประมวลผลใหม