57
Transaction Transaction Management Management การจัดการรายการเปลี่ยนแปลง การจัดการรายการเปลี่ยนแปลง

Transaction Management

  • Upload
    naru46

  • View
    277

  • Download
    3

Embed Size (px)

Citation preview

Page 1: Transaction Management

Transaction Transaction ManagementManagement

การจดการรายการเปลยนแปลงการจดการรายการเปลยนแปลง

Page 2: Transaction Management

TransactionTransaction คออะไรคออะไร

Transaction คอ หนวยของการทางานในเชงตรรกะ

(Logical unit of work:LUW) หนงหนวย ทกระทากบ

ฐานขอมลเพออานหรอเปลยนสถานะของขอมล

จากสถานะหนงไปสอกสถานะหนง

ภายในหนงรายการเปลยนแปลงอาจประกอบดวย

คาสงในการทางานเพยงคาสงเดยวหรอหลายคาสง

กได

Page 3: Transaction Management

ผลจากการประมวลผลของผลจากการประมวลผลของ Transaction Transactionผลจากการประมวลผล Transaction สามารถมได 2 สถานะ

(อยางใดอยางหนง)

COMMIT หมายถง คาสงทกคาสงในรายการเปลยนแปลง ประมวลผลเสรจสมบรณทกคาสง มผลทาใหการเปลยนแปลง

คาในฐานขอมลคงอยถาวร

ROLLBACK หมายถง มการประมวลผลคาสงในรายการ เปลยนแปลงไมเสรจสมบรณ หรอมเหตขดของซงเปนผลใหการ

ประมวลผลของรายการเปลยนแปลงไมสมบรณ หรอโปรแกรม จบการทางานแบบไมปกต ทาใหการเปลยนแปลงขอมลใน

ฐานขอมลถกยกเลก(aborted)และยอนการทางานกลบไปยง จดเรมตนกอนการประมวลผลรายการเปลยนแปลง

Page 4: Transaction Management

ตวอยางตวอยาง 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

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

ตวอยาง 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

คณสมบตของ Transaction

เรยกยอๆ วา ACID ซงเปนคณสมบตท DBMS ตองคง คณสมบตทงหมดไวใหแกการทางานของ

Transaction ม 4 คณสมบต ดงน

Atomicity

Consistency

Isolation

Durability

Page 8: Transaction Management

AtomicityAtomicity•

เมอผใชประมวลผลรายการเปลยนแปลงแลว ทก

การกระทาของรายการเปลยนแปลงตองเสรจ

สมบรณทกคาสง(committed) หรอ ถามการทางาน

ใดในรายการเปลยนแปลงไมสมบรณกตองยกเลก

(aborted)รายการเปลยนแปลงนนและยอนกลบการ

ทางาน(rolled back) เสมอนวาไมเคยประมวลผล

รายการเปลยนแปลงนนเลย

Page 9: Transaction Management

ConsistencyConsistency•

การประมวลผล Transaction จะสงผลใหมการ

เปลยนแปลงสถานะของฐานขอมล ดงนน

Transaction จะตองรกษาความถกตองของ

ฐานขอมลทสอดคลองกบกฎเกณฑตาง ๆ ทกาหนด

ไว (Integrity Constraints)

หลงการประมวลผล Transaction เสรจ ฐานขอมล

ตองอยในสถานะทถกตอง(consistent state)

Page 10: Transaction Management

IsolationIsolation•

Transaction ทมการทางานพรอมกนในเวลาเดยวกน

โดยผใชหลายคน(Multiusers) จะตองไมรบกวนกน

หาก T1 และ T2 ทางานในเวลาใกลเคยงกน ดงน

คณสมบต Isolation จะถอเสมอนรายการทงสอง

ทางาน ดงน

T1

T2

T1 T2

Page 11: Transaction Management

DurabilityDurability

Transaction ททาใหเกดการเปลยนแปลงของขอมล

ในฐานขอมล เมอ Transaction ทางานเสรจสมบรณ

(committed)

ผลจากการเปลยนนนจะยงคงอยถาวร

เชน การโอนเงนจาก A ไป B ถาทาสาเรจ ผลทได

จะคงอยถาวร

Page 12: Transaction Management

Transaction OperationsTransaction Operations

BEGIN_TRANSACTION : คาสงเรมการประมวลผลของ

Transaction

READ หรอ WRITE : เปนคาสงทใชในการอานหรอเขยน ขอมลบนฐานขอมล

END_TRANSACTION : เปนคาสงทจบการอานหรอเขยน ขอมลในฐานขอมล ซงในจดนจะมการตรวจสอบวาการ

ปรบปรงขอมลสาเรจ(committed)หรอถกยกเลก(aborted)

เพอเตรยมยอนกลบการทางาน(rollback)

Page 13: Transaction Management

Transaction OperationsTransaction Operations

COMMIT_TRANSACTION : เปนคาสงทบอกวาการหาก ทางานของ Transaction เสรจสมบรณ การเปลยนแปลง ตาง ๆ ทกระทากบฐานขอมลจะไมสามารถยอนการ

ทางานกลบ(undone)ได

ROLLBACK : เปนคาสงทบอกวาหากการทางานของ Transaction ไมเสรจสมบรณ การเปลยนแปลงตาง ๆ ท

กระทากบฐานขอมลระหวางการทางานของ Transaction จะถกยกเลกและยอนกลบไปสสถานะกอนการเรม

ประมวลผล Transaction

Page 14: Transaction Management

Transaction State

BOTActiveActive

PartiallyPartiallyCommittedCommitted

FailedFailed AbortedAborted

CommittedCommittedCOMMIT

ROLLBACK

เปนสถานะตาง ๆ ระหวางการประมวลผลของ Transaction

Page 15: Transaction Management

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

การควบคมภาวะพรอมกนการควบคมภาวะพรอมกน

Concurrency Concurrency ControlControl

Page 17: Transaction Management

Concurrency ControlConcurrency Control

เปนกระบวนการทใชในการจดการ Transaction

หลายๆ Transaction ทมความตองการใชงานขอมล

ชดเดยวกนในชวงเวลาเดยวกนจากฐานขอมล เพอ

นาขอมลเหลานนมาประมวลผลในแตละ

Transaction

Page 18: Transaction Management

ตวอยาง 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

ปญหาจาก Concurrent Transaction

เมอ Transaction ถกประมวลผลพรอมกนโดยไมไดมการ ควบคม ม 3 ประเภท ดงน

ปญหาการสญเสยจากการปรบปรงขอมล (The lost

update problem)

ปญหาขอมลทยงไมไดรบการยอมรบความสมบรณ (The

uncommitted dependency problem)

ปญหาการวเคราะหผลลพธทขดแยงกน (The inconsistent

analysis problem)

Page 20: Transaction Management

The Lost Update ProblemThe Lost Update Problem

เกดขนจากสาเหตท ม รายการเปลยนแปลง 2

รายการ หรอมากกวา มการเรยกใชขอมลเดยวกน

แลวตางฝายตางปรบปรงคาของขอมล โดยไมม

การปองกนการแกไขจากอกรายการ

Page 21: Transaction Management

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

The Uncommitted Dependency ProblemThe Uncommitted Dependency Problem

เกดขนจากกรณท รายการเปลยนแปลง 2 รายการ

หรอ มากกวามการเรยกใชขอมลเดยวกน แตม

รายการเปลยนแปลงหนงทมการทางานยงไมเสรจ

สมบรณ และเกดปญหาขน จงตองมการยกเลกทกการ

กระทากอนหนาของรายการเปลยนแปลงนน สงผลให

ขอมลทรายการเปลยนแปลงนนเรยกใชกลบไปมคา

ตามเดม และทาให รายการเปลยนแปลงอนทเรยกใช

ขอมลเดยวกนกอนหนาทจะ ROLLBACK ไดรบขอมล

ทไมถกตองดวย

Page 23: Transaction Management

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

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

The Inconsistent Analysis ProblemThe Inconsistent Analysis Problem•

เกดขนในกรณท รายการเปลยนแปลง 2 รายการ หรอมากกวา ม

การใชขอมลเดยวกน แตม รายการเปลยนแปลงหนงทไดรบขอมล ทอยในสถานะไมถกตองไปใชงาน สงผลใหการประมวลผลของ

รายการเปลยนแปลงนน มการประมวลผลทผดพลาด

พจารณาบญชทง 3 ดงน

ตองการโอนเงน 10 บาท จากบญช ACC3 ไปยง ACC1 พจารณา ลาดบการทางานดงตอไปน

ACC1 ACC2 ACC3

40 50 30

Page 26: Transaction Management

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

Concurrency Control Techniques

เมอเกดภาวะพรอมกน(Concurrency) DBMS ตองม

เทคนคหรอกระบวนการในการจดเรยงลาดบการทางาน

ของแตละ Transaction กอนและหลง

เพอปองกนการแยงชงขอมลทประมวลผลยงไมเสรจไปใช

งานโดย Transaction อน

Page 28: Transaction Management

Locking•

เทคนคการ Lock ขอมลน เปนเทคนคทใชในการ

กาหนดสถานะการ Lock ใหกบขอมล เพอบงบอก

ถงสทธในการใชงานขอมลนนแกแตละTransaction

กลาวคอ กอนทแตละ Transaction จะเรยกใช

ขอมลใด ๆ จะตองดสถานะการ Lock ของขอมล

ณ ขณะนนกอนวา มสถานะทบงบอกวาขอมลนน

ถกเรยกใชโดย Transaction อนหรอไม กอนทจะ

นาขอมลนนไปใชงาน

Page 29: Transaction Management

ตวอยางการตวอยางการลลอกอก

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

• สถานะของการลอก แบงออกเปน 2 ประเภท

คอ

Shared Lock

Exclusive Lock

สถานะของการ Lock

Page 31: Transaction Management

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

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

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

การนา 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

การนา 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

TwoTwo--Phase Locking(2PL) Phase Locking(2PL)

เปนการลอกวธหนงซงเปนทนยม โดยการลอกแบบ

2PL นนไดกาหนดไววา Transaction สามารถมอย 2

เฟสดวยกนคอ

Growing phase(Lock) เปนชวงทลอกขอมลทกอยางท

จะตองใชใน Transaction จะสามารถอานขอมลได แต

ไมสามารถทาการอปเดตขอมลได

Shrinking phase(UnLock) เปนชวงทปลดปลอยการล

อกขอมลทงหมดท Transaction ลอกไวใชงาน

Page 37: Transaction Management
Page 38: Transaction Management

การแกปญหาการแกปญหา 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

ภาวะตดตาย(Dead Lock)

ในการลอคขอมล ถงแมจะแกปญหาตาง ททาให

เกดความไมถกตองของขอมล แตถาการลอค

ขอมลของแตละ Transaction ไมสมพนธกนแลว สงผลใหเกดปญหาทแตละ Transaction ตางฝาย

ตางลอคขอมล จนกระทงทง 2 ฝาย ไมสามารถ ทางานตอไปได เนองจากตองรอใหอกฝายปลอย

Lock ขอมลกอน ซงปญหาการลอคทเกดขนแบบ นเรยกวา การลอคคาง(DeadLock)

Page 40: Transaction Management

ภาวะตดตาย(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

ภาวะตดตาย(Dead Lock)•

ภาวะตดตายสามารถแกไขไดโดย การสละ Transaction

หนงดวยการปลดลอก Transaction ใด Transaction หนง ออกจากวงจร Dead Lock เพอให Transaction อนๆ

สามารถใชงานขอมลทถกลอกได

อาจใช Algorithmวธใดวธหนงในการกาจด Dead Lock

เชน วธ Wait-Die หรอ Wound-Die

โดย Transaction ทถกกาจดออกไปจะถกนามาเรมตน ประมวลผลใหมอกครง

Page 42: Transaction Management

ระดบการระดบการลลอกอก(Locking Level)(Locking Level)

รปแบบของการลอกขอมลใน DBMS จะมอยหลาย

ระดบใหเลอกใชงานตามความเหมาะสม หรอตาม

ลกษณะงาน

แบงระดบการลอกเปนดงน

การลอกฐานขอมล(Database Locking)

การลอกตาราง(Table Locking)

การลอกเรคอรด(Record Locking)

การลอกฟลด(Field Locking)

Page 43: Transaction Management

Database LockingDatabase Locking

เปนการลอกทงฐานขอมล

เหมาะสมกบการประมวลผลแบบแบตซ(batch processing)

ในขณะททาการประมวลผลอย ฐานขอมลทงระบบจะถกล

อกไมใครคนอนสามารถใชงานไดเลย จนกวาจะปลดลอก

เชน การสารอขอมล โดยระหวางทสารองขอมลอยนน

ฐานขอมลจะถกลอกไวไมใหใครเขามาใชงาน จนกวาจะ สารองขอมลเสรจสนแลวจงปลดลอก

Page 44: Transaction Management

Table LockingTable Locking

เปนการลอกรเลชน โดยทาการลอกตารางใดตารางหนงท

ตองการ สางผลใหผใชคนอน ๆ ไมสามารถอานขอมล

หรอปรบปรงขอมลในตารางนนได จนกวาจะมการปลดล

อกตารางนน

เหมาะสมกบงานทตองมการปรบปรงขอมลทงตาราง

Page 45: Transaction Management

Record LockingRecord Locking•

เปนการลอกขอมลบางแถวในตาราง ซงแถวขอมลทถกล

อกอยนนทาใหผใชคนอนไมสามารถใชขอมลในแถวนน ได จนกวาแถวขอมลนนจะถกปลดลอก

เหมาะสมกบงานทตองการปรบปรงขอมลบางแถว เชน ตองการเปลยนแปลงทอยของพนกงาน กจะลอกเฉพาะ

แถวขอมลของพนกงานทตองการเทานน ซงในขณะทล

อกแถวขอมลอยนน ผใชคนอนกจะไมสามารถใชงาน

ขอมลแถวนนไดชวขณะ จนกวาแถวขอมลจะถกปลดลอก

Page 46: Transaction Management

Field LockingField Locking•

เปนการลอกฟลด/แอตทรบวต/คอลมนขอมลทมกถกใช

งานหรอปรบปรงขอมลบอย ๆ

โดยในขณะทลอกฟลดขอมลอยนน ผใชคนอนสามารถใช

งานขอมลได ยกเวนขอมลในฟลดทถกลอก

Page 47: Transaction Management

การสารองและกคนขอมลการสารองและกคนขอมล

BackupBackup&&

RecoveryRecovery

Page 48: Transaction Management

การกคนฐานขอมลการกคนฐานขอมล(Database Recovery)(Database Recovery)

เปนกระบวนการเรยกคนฐานขอมลใหกลบสภาวะเดมท

สามารถใชงานได ในกรณทเกดเหตขดของบางประการใน

ระหวางการประมวลผล

ประเภทของการเหตขดของทเกดกกบฐานขอมล ไดแก

System Failure หรอ Soft crash เชน ระบบไฟฟาขดของทาให

เซรฟเวอรทางานไมได เหตทเกดจากหนวยความจา

Media Failure หรอ Hard crash เชน แฟมถกลบ สอบนทก ขอมลเกดความเสยหายเชน ฮารดดสกพง เปนตน

Page 49: Transaction Management

กระบวนการกคนขอมลกระบวนการกคนขอมล

กระบวนการกคนขอมลทใช จะขนอยกบชนดของ

เหตขดของ

เชนการกคนขอมลทเกดจาก Hard crash ทาไดงาย

แตใชเวลานาน ดงน

ฐานขอมลจะถกนามาบนทกใหมจากการสารองขอมล ครงลาสด

Page 50: Transaction Management

Transaction LogTransaction Log

Transaction Log คอ ตารางขอมลทมการจดเกบ

ประวตการเปลยนแปลงขอมลในฐานขอมล

บางครงเรยกวา Journal ในการกคนขอมลของ

ฐานขอมล ตวจดการการกคน(Recovery manager)

ทอยในระบบการจดการฐานขอมลจะใชขอมลใน

Transaction Log ชวยในการกคนขอมล

Page 51: Transaction Management

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

Transaction LogTransaction Log•

ในกรณมการเพมขอมลในฐานขอมลทกฟลด จะใช

เครองหมาย * และคาขอมล จะระบหมายเลขรายการใน ชองขอมลใหมเทานน สวนในกรณมการลบขอมล กจะ บนทกเฉพาะขอมลเกาในชองคาขอมล

เมอระบบเกดความขดของขนระบบการจดการฐานขอมล จะดงขอมลจาก Transaction Log ขนมาชวยในการกคน

ขอมล

Page 53: Transaction Management

ตวอยางตวอยาง 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

การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(Checkpoint)(Checkpoint)

การกคนขอมลทเกดจากเหตขดของแบบ System Failure หรอ Soft crash จะกาหนดใหมจดตรวจสอบ(Check Point) เพอใชตรวจสอบการทางานของรายการเปลยนแปลง

ซงจะใชหลกการของ Transaction Log โดยการกาหนด จดเรมตนของรายการเปลยนแปลงทเรมบนทกรายการลงใน

Journal ทเรยกวาจด Checkpoint ไว

ดงนน หากมรายการเปลยนแปลงใดทางานไมสมบรณ กให

นาขอมลใน Journal ตงแตจด Checkpoint ทกาหนดมา

ประมวลผลใหม โดยไมจาเปนตองเอาทกรายการใน Journal มาประมวลผลใหม

Page 55: Transaction Management

การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(Checkpoint)(Checkpoint)

TRANSACTIONS

Checkpoint(Time tc )

System Failure(Time tf )

tc tfT1

T2

T3

T4

T5

Page 56: Transaction Management

การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(Checkpoint)(Checkpoint)•

รายละเอยดการทางาน

T1 : เปนทรานแซคชนทเกดขนและเสรจกอนทจะถงจดตรวจสอบเมอระบบ เกดความขดของ ระบบจดการฐานขอมลไมตองทารายการนใหม

T2

: เปนรายการทเรมกอนจะถงเวลาจดตรวจสอบ แตทางานเสรจหลงจาก ผานจดตรวจสอบไปแลว เมอระบบเกดความผดพลาดและมการกระบบ

ระบบจดการฐานขอมลจะตองทารายการนใหม เฉพาะสวนทอยหลงจด ตรวจสอบ

T3

: เปนรายการทเรมทางานหลงจดตรวจสอบ และทางานยงไมเสรจกเกด ความผดพลาดของระบบขนกอนทจะทางานเสรจ ระบบจดการฐานขอมลจะ ยกเลกรายการนทงหมด จนถงกอนจดตรวจสอบ

T4

: เปนรายการทเรมหลงจดตรวจสอบและทางานเสรจกอนถงจดทระบบ เกดความผดพลาด ระบบจดการฐานขอมลจะตองนารายการนกลบมาทาใหม

ทงหมด

T5

: เปนรายการทเรมทางานหลงจดตรวจสอบ แตทายงไมเสรจระบบกเกด

Page 57: Transaction Management

การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(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 มาประมวลผลใหม