การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... ·...

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

Transcript of การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... ·...

Page 1: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

Transaction Transaction ManagementManagement

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

Page 2: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

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

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

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

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

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

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

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

กได

Page 3: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

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

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

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

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

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

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

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

Page 4: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

ตวอยางตวอยาง 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 · ซึ่งหมายถึง

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 · ซึ่งหมายถึง

ตวอยาง 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 · ซึ่งหมายถึง

คณสมบตของ Transaction

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

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

Atomicity

Consistency

Isolation

Durability

Page 8: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

AtomicityAtomicity•

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

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

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

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

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

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

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

Page 9: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

ConsistencyConsistency•

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

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

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

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

ไว (Integrity Constraints)

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

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

Page 10: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

IsolationIsolation•

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

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

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

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

ทางาน ดงน

T1

T2

T1 T2

Page 11: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

DurabilityDurability

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

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

(committed)

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

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

จะคงอยถาวร

Page 12: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

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 · ซึ่งหมายถึง

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 · ซึ่งหมายถึง

Transaction State

BOTActiveActive

PartiallyPartiallyCommittedCommitted

FailedFailed AbortedAborted

CommittedCommittedCOMMIT

ROLLBACK

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

Page 15: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

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 · ซึ่งหมายถึง

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

Concurrency Concurrency ControlControl

Page 17: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

Concurrency ControlConcurrency Control

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

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

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

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

Transaction

Page 18: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

ตวอยาง 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 · ซึ่งหมายถึง

ปญหาจาก 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 · ซึ่งหมายถึง

The Lost Update ProblemThe Lost Update Problem

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

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

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

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

Page 21: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

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 · ซึ่งหมายถึง

The Uncommitted Dependency ProblemThe Uncommitted Dependency Problem

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

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

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

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

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

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

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

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

ทไมถกตองดวย

Page 23: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

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 · ซึ่งหมายถึง

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 · ซึ่งหมายถึง

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 · ซึ่งหมายถึง

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 · ซึ่งหมายถึง

Concurrency Control Techniques

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

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

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

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

งานโดย Transaction อน

Page 28: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

Locking•

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

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

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

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

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

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

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

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

Page 29: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

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

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 · ซึ่งหมายถึง

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

คอ

Shared Lock

Exclusive Lock

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

Page 31: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

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 · ซึ่งหมายถึง

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 · ซึ่งหมายถึง

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 · ซึ่งหมายถึง

การนา 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 · ซึ่งหมายถึง

การนา 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 · ซึ่งหมายถึง

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 · ซึ่งหมายถึง
Page 38: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

การแกปญหาการแกปญหา 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 · ซึ่งหมายถึง

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

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

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

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

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

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

Page 40: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

ภาวะตดตาย(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 · ซึ่งหมายถึง

ภาวะตดตาย(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 · ซึ่งหมายถึง

ระดบการระดบการลลอกอก(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 · ซึ่งหมายถึง

Database LockingDatabase Locking

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

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

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

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

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

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

Page 44: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

Table LockingTable Locking

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

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

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

อกตารางนน

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

Page 45: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

Record LockingRecord Locking•

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

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

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

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

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

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

Page 46: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

Field LockingField Locking•

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

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

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

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

Page 47: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

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

BackupBackup&&

RecoveryRecovery

Page 48: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

การกคนฐานขอมลการกคนฐานขอมล(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 · ซึ่งหมายถึง

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

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

เหตขดของ

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

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

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

Page 50: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

Transaction LogTransaction Log

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

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

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

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

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

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

Page 51: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

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 · ซึ่งหมายถึง

Transaction LogTransaction Log•

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

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

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

ขอมล

Page 53: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

ตวอยางตวอยาง 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 · ซึ่งหมายถึง

การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(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 · ซึ่งหมายถึง

การกขอมลโดยใชจดตรวจสอบการกขอมลโดยใชจดตรวจสอบ(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 · ซึ่งหมายถึง

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

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

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

T2

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

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

T3

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

T4

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

ทงหมด

T5

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

Page 57: การจัดการรายการเปลีียนแปลง่sci.udru.ac.th/websci/download/com/rewadee/database/... · 2014-02-27 · ซึ่งหมายถึง

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