งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

งานนำเสนอกำลังจะดาวน์โหลด โปรดรอ

1 Transaction Management © Pearson Education Limited 1995, 2005.

งานนำเสนอที่คล้ายกัน


งานนำเสนอเรื่อง: "1 Transaction Management © Pearson Education Limited 1995, 2005."— ใบสำเนางานนำเสนอ:

1 1 Transaction Management © Pearson Education Limited 1995, 2005

2 2 Transaction u คือ การกระทำใด ๆ ของ user program ใน DBMS ที่ใช้งานกลุ่มคำสั่งปฏิบัติงานที่ execute ข้อมูลใน ฐานข้อมูล โดยอาจเป็นได้ทั้งการอ่าน การเขียน การ ปรับปรุงหรือการลบข้อมูลในฐานข้อมูล u เป็นหน่วยของการทำงานที่กระทำกับข้อมูลใน ฐานข้อมูล เพื่อเปลี่ยนสถานะของข้อมูลจากสถานะ หนึ่งไปสู่อีกสถานะหนึ่ง u ภายใน Transaction จะประกอบด้วยชุดของ operation ต่าง ๆ เรียงกันเป็นลำดับ © Pearson Education Limited 1995, 2005

3 3 Example Transaction © Pearson Education Limited 1995, 2005

4 4 สถานะของ Transaction แบ่งออกเป็น 5 สถานะคือ u Active คือสถานะเริ่มต้นการทำงานของ Transaction u Partially Committed คือสถานะที่แต่ละการกระทำของ Transaction ทำงานเสร็จ u Commited คือสถานะที่ Transaction ทำงานเสร็จ สมบูรณ์ u Failed คือสถานะที่มีข้อผิดพลาดเกิดขึ้นกับ Transaction นั้น u Aborted คือ สถานะที่เกิดขึ้นหลังจากที่เกิดสถานะ Failed เพื่อหยุดการทำงานของ Transaction © Pearson Education Limited 1995, 2005

5 5 State Transition Diagram for Transaction © Pearson Education Limited 1995, 2005

6 6 คุณสมบัติของ Transactions © Pearson Education Limited 1995, คุณสมบัติพื้นฐานของ Transaction (ACID) ได้แก่ : u Atomicity ทุกการกระทำใน Transaction จะต้องมีการ ทำงานที่สมบูรณ์ หรือไม่ก็ต้องยกเลิกทุกการกระทำใน Transaction นั้น u Consistencyทุก Transaction จะต้องก่อให้เกิด ข้อมูลในฐานข้อมูลที่มีความถูกต้องอยู่เสมอ

7 7 คุณสมบัติของ Transactions © Pearson Education Limited 1995, 2005 u Isolation แต่ละ Transaction จะไม่สามารถ เปลี่ยนแปลงข้อมูลได้พร้อมกัน แต่จะต้องรอให้ Transaction ก่อนหน้าที่เรียกใช้ข้อมูลเดียวกัน เปลี่ยนแปลงค่าของข้อมูลเสร็จสิ้นก่อน u Durability ข้อมูลที่ Transaction เรียกใช้ จะสามารถ เปลี่ยนแปลงค่าจริงในฐานข้อมูลได้ก็ต่อเมื่อ Transaction นั้นมีการทำงานที่เสร็จสมบูรณ์

8 8 DBMS Transaction Subsystem © Pearson Education Limited 1995, 2005

9 9 การกระทำเพื่อควบคุมการทำงานของTransactions © Pearson Education Limited 1995, 2005 u เพื่อกำหนดให้ Transaction มีคุณสมบัติ Atomicity จึง ได้มีการกำหนดการกระทำเพื่อควบคุมการทำงานของ Transaction ไว้ดังนี้ –Commit Transaction เป็นการกระทำที่กำหนดขึ้น เพื่อแจ้งให้ระบบทราบว่า การทำงานของ Transaction อยู่ในสถานะ Commited –Rollback Transaction เป็นการกระทำที่กำหนดขึ้น เพื่อแจ้งให้ระบบทราบว่า การทำงานของ Transaction อยู่ในสถานะ Aborted

10 10 Concurrency Control u คือกระบวนการสำหรับการควบคุมข้อมูลที่ถูกเรียกใช้ โดยแต่ละงานให้มีความถูกต้องอยู่เสมอ u สาเหตุที่ทำให้ข้อมูลสูญเสียความถูกต้องแบ่งออกได้ เป็น 3 สาเหตุดังนี้ –Lost update problem –Uncommitted dependency problem –Inconsistent analysis problem © Pearson Education Limited 1995, 2005

11 11 Lost Update Problem u สาเหตุนี้เกิดขึ้นในกรณีที่ 2 Transaction หรือ มากกว่ามีการเรียกใช้ข้อมูลเดียวกัน แล้วต่างฝ่าย ต่างปรับปรุงค่าของข้อมูล โดยไม่มีการป้องกัน จากอีกฝ่ายหนึ่ง เช่น –T 1 ถอนเงิน £10 จากบัญชี bal x (เงินในบัญชี = £100) –T 2 ฝากเงิน £100 เข้าไปในบัญชีเดียวกัน –สุดท้ายเงินในบัญชีต้องคงเหลือ = £190 © Pearson Education Limited 1995, 2005

12 12 Lost Update Problem u Loss of T 2 ’s update avoided by preventing T 1 from reading bal x until after update. © Pearson Education Limited 1995, 2005

13 13 Uncommitted Dependency Problem u เกิดขึ้นในกรณีที่ 2 Transaction หรือมากกว่า มี การเรียกใช้ข้อมูลเดียวกัน แต่มี Transaction หนึ่ง ที่มีการทำงานที่ยังไม่เสร็จสมบูรณ์และเกิดปัญหา ขึ้น u จึงต้องมีการยกเลิกทุกการกระทำก่อนหน้าของ Transaction นั้น ส่งผลให้ข้อมูลที่ Transaction นั้นเรียกใช้กลับไปมีค่าเดิม u และทำให้ Transaction อื่นที่ใช้ข้อมูลเดียวกัน ได้รับข้อมูลที่ไม่ถูกต้องไปด้วย © Pearson Education Limited 1995, 2005

14 14 u T 4 updates bal x to £200 but it aborts, so bal x should be back at original value of £100. u T 3 has read new value of bal x (£200) and uses value as basis of £10 reduction, giving a new balance of £190, instead of £90. © Pearson Education Limited 1995, 2005

15 15 u ปัญหานี้หลีกเลี่ยงได้โดยการกำหนดให้ T 3 จะ สามารถอ่านค่า bal x ได้ก็ต่อเมื่อ T 4 มีสถานะ commits หรือ aborts แล้ว © Pearson Education Limited 1995, 2005 Uncommitted Dependency Problem

16 16 Inconsistent Analysis Problem © Pearson Education Limited 1995, 2005 u สาเหตุนี้เกิดขึ้นในกรณีที่ 2 Transaction หรือมากกว่า มีการเรียกใช้ข้อมูลเดียวกัน แต่มี Transaction หนึ่งที่ ได้รับข้อมูลที่อยู่ในสถานะที่ไม่ถูกต้องไปใช้งาน ส่งผล ให้การประมวลผลของ Transaction นั้นมีการ ประมวลผลที่ผิดพลาด

17 17 Inconsistent Analysis Problem © Pearson Education Limited 1995, 2005 u T 6 is totaling balances of account x (£100), account y (£50), and account z (£25). u Meantime, T 5 has transferred £10 from bal x to bal z, so T 6 now has wrong result (£10 too high).

18 18 Inconsistent Analysis Problem u Problem avoided by preventing T 6 from reading bal x and bal z until after T 5 completed updates. © Pearson Education Limited 1995, 2005

19 19 Schedule u เป็นแนวทางหนึ่งในการรักษาความถูกต้องให้กับ ข้อมูล คือ การกำหนดลำดับการทำงานให้แต่ละ Transaction ที่มีการเรียกใช้ข้อมูลพร้อม ๆ กัน ซึ่ง เรียกว่า Schedule u ใช้กำหนดลำดับก่อนหลังในการเรียกใช้ข้อมูลให้กับ แต่ละ Transaction u จะช่วยทำให้ข้อมูลที่แต่ละ Transaction นำไปใช้มี ความถูกต้องอยู่เสมอ © Pearson Education Limited 1995, 2005

20 20 รูปแบบของ Schedule มี 2 รูปแบบคือ u Serial Schedule u Concurrent Schedule (Nonserial Schedule) © Pearson Education Limited 1995, 2005

21 21 Serial Schedule u เป็นการกำหนดลำดับการทำงานให้กับแต่ละ Transaction โดยใช้หลักของการทำทีละงาน u Transaction หนึ่งจะสามารถทำงานได้ ก็ต่อเมื่ออีก Transaction หนึ่งทำงานจนเสร็จสมบูรณ์แล้ว © Pearson Education Limited 1995, 2005

22 22 Concurrent Schedule u เป็นการกำหนดลำดับการทำงานให้กับแต่ละ Transaction โดยการแบ่งแต่ละ Transaction ออกเป็นส่วน ๆ แล้วจึงนำแต่ละส่วนมาทำงานสลับกัน ไป u อาจก่อให้เกิดปัญหาทางด้านความถูกต้องของข้อมูล ได้ ในกรณีที่ถ้า 2 Transaction มีการนำข้อมูลตัว เดียวกันไปประมวลผล แล้วบันทึกผลที่ได้ลงใน ฐานข้อมูลในเวลาที่ต่างกัน © Pearson Education Limited 1995, 2005

23 23 Examples of Schedule © Pearson Education Limited 1995, 2005

24 24 Serializability u คือ คุณสมบัติของการจัดลำดับการทำงานให้กับ Transaction ในแบบ Concurrency Schedule ที่ สามารถควบคุมให้ผลลัพธ์ที่ได้มีผลเช่นเดียวกับการ จัดลำดับการทำงานให้กับ Transaction ในแบบ Serial Schedule © Pearson Education Limited 1995, 2005

25 25 Non-conflict serializable schedule © Pearson Education Limited 1995, 2005

26 26 View Serializable schedule © Pearson Education Limited 1995, 2005

27 27 Concurrency Control Techniques u เมื่อเกิดภาวะพร้อมกันในระบบ DBMS จะมีเทคนิคใน การจัดเรียงลำดับการทำงานของแต่ละ Transaction แบ่งออกเป็น 2 ประเภทหลักคือ –การควบคุมภาวะพร้อมกันด้วยการล็อก (Locking) –การควบคุมภาวะพร้อมกันโดยไม่ใช้วิธีการล็อก (Without Locking) © Pearson Education Limited 1995, 2005

28 28 การควบคุมภาวะพร้อมกันด้วยการล็อก u Locking เป็นการกำหนดให้สถานะของ Transaction ที่ต้องการใช้งานอยู่ในสถานะล็อก u เพื่อป้องกัน Transaction อื่น ๆ เข้ามาใช้งานข้อมูล นั้นจนกว่าข้อมูลที่อยู่ในสถานะล็อกนั้นทำงานเสร็จ สมบูรณ์และปลดล็อก u เมื่อข้อมูลอยู่ในสถานะปลดล็อก Transaction อื่น ๆ จึงสามารถนำข้อมูลไปใช้งานต่อได้ © Pearson Education Limited 1995, 2005

29 29 พื้นฐานการล็อก ประกอบด้วย u Read Lock –โดยถ้าทรานแซกชันใดมีการ read lock ข้อมูล จะสามารถทำการอ่านข้อมูลได้ แต่จะไม่สามารถ ทำการอัปเดตข้อมูลได้ u Write Lock –ถ้าทรานแซกชันใด ๆ มีการ write lock ข้อมูล จะสามารถทำได้ทั้งการอ่านและการอัปเดต © Pearson Education Limited 1995, 2005

30 30 Type of Locks u แบ่งออกเป็น 2 ชนิดด้วยกัน –Shared Locks –Exclusive Locks © Pearson Education Limited 1995, 2005

31 31 Shared Locks u เป็นการล็อกที่อนุญาตให้ทรานแซกชันอื่น ๆ สามารถ ทำการอ่านเรคอร์ดต่าง ๆ ได้ ในขณะที่จะไม่อนุญาต ให้ทำการอัปเดตข้อมูลอย่างเด็ดขาด u ผู้ใช้งานอื่น ๆ ยังสามารถอ่านข้อมูลต่าง ๆ ที่ถูกล็อก ได้ แต่จะไม่อนุญาตให้มีการอัปเดตข้อมูล u ซึ่งก็คือการ read lock นั่นเอง © Pearson Education Limited 1995, 2005

32 32 Exclusive Locks u เป็นการล็อกที่ไม่อนุญาตให้ทรานแซกชันอื่น ๆ ใช้ ข้อมูลที่ถูกล็อกอยู่ u ข้อมูลจะถูกใช้งานได้เพียงคนเดียวในขณะนั้น u ผู้ใช้งานอื่น ๆ ที่ต้องการใช้งานจะไม่สามารถทำการ อ่านและอัปเดตข้อมูลที่ถูกล็อกได้จนกว่าจะปลดล็อก u ซึ่งก็คือการ write lock นั่นเอง © Pearson Education Limited 1995, 2005

33 33 Two-Phase Locking (2PL) u เป็นวิธีที่นำแนวคิดแบบล็อกมาจัดลำดับการทำงาน ของแต่ละ Transaction ให้อยู่ในรูปแบบ Serializability โดยกำหนดให้ Transaction มีการ ทำงานที่แบ่งออกเป็น 2 ระยะด้วยกันคือ –Growing phase : เป็นระยะที่ทรานแซกชันทำ การล็อกข้อมูลอย่างเดียว โดยไม่ปล่อยล็อก –Shrinking phase : เป็นระยะที่ทรานแซกชัน ปล่อยล็อกข้อมูลอย่างเดียว โดยไม่สนใจการ ล็อกข้อมูลใหม่ © Pearson Education Limited 1995, 2005

34 34 Two-Phase Locking (2PL) u เมื่อแต่ละ Transaction เริ่มต้นทำงานจะเข้าสู่ระยะ Growing ซึ่ง Transaction จะล็อกข้อมูลที่ต้องใช้ งาน โดยไม่ปล่อยล็อกจนกว่า Transaction นั้นจะ ทำงานเสร็จ จึงจะทำงานในระยะ Shrinking เพื่อ ปล่อยล็อกข้อมูลต่าง ๆ u ซึ่งการกำหนดระยะเวลาของการล็อกที่แยกออก จากกันจะทำให้ในแต่ละ Transaction ไม่สามารถ เรียกใช้ข้อมูลที่ถูกเรียกใช้โดย Transaction อื่นได้ © Pearson Education Limited 1995, 2005

35 35 Preventing Lost Update Problem using 2PL © Pearson Education Limited 1995, 2005

36 36 Preventing Uncommitted Dependency Problem using 2PL © Pearson Education Limited 1995, 2005

37 37 Preventing Inconsistent Analysis Problem using 2PL © Pearson Education Limited 1995, 2005

38 38 Cascading Rollback © Pearson Education Limited 1995, 2005

39 39 Locking Level ระดับของการล็อกมี 4 ระดับดังนี้ u Database Locking u Table Locking u Record Locking u Field Locking © Pearson Education Limited 1995, 2005

40 40 Database Locking u เป็นการล็อกทั้งฐานข้อมูล เหมาะสมกับการ ปฏิบัติงานที่มีการประมวลผลแบบแบตซ์ (batch processing) u ขณะที่ทำการประมวลผลอยู่ ฐานข้อมูลทั้งระบบจะ ถูกล็อกไม่ให้ใครคนอื่นสามารถใช้งานได้เลย จนกว่าจะปลดล็อก © Pearson Education Limited 1995, 2005

41 41 Table Locking u เป็นการล็อกรีเลชัน โดยจะทำการล็อกตารางใด ตารางหนึ่งที่ต้องการ u ส่งผลให้ผู้ใช้คนอื่น ๆ ไม่สามารถอ่านเรคอร์ดของ ตารางนั้นได้ จนกว่าจะมีการปลดล็อกตาราง © Pearson Education Limited 1995, 2005

42 42 Record Locking u เป็นการล็อกข้อมูลบางเรคอร์ดหรือบางแถวใน ตาราง u แถวที่ถูกล็อก ส่งผลให้ผู้ใช้คนอื่นไม่สามารถเข้ามา ใช้งานได้จนกว่าเรคอร์ดนั้นจะถูกปลดล็อก u เหมาะกับงานที่ต้องการปรับปรุงข้อมูลบางเรคอร์ด ที่ต้องการ © Pearson Education Limited 1995, 2005

43 43 Field Locking u เป็นการล็อกแอตตริบิวท์หรือคอลัมน์ที่มักจะถูกใช้ งานหรือปรับปรุงบ่อย ๆ u โดยผู้ใช้คนอื่นยังสามารถใช้งานข้อมูลต่าง ๆ ได้ ยกเง้นแอตตริบิวท์ที่ล็อกอยู่ u เหมาะกับการนำมาใช้กับการล็อกแอตตริบิวท์ที่ มักจะมีการเปลี่ยนแปลงค่าอยู่เสมอ © Pearson Education Limited 1995, 2005

44 44 DeadLock u ภาวะติดตาย เกิดขึ้นจากการที่ทรานแซกชันตั้งแต่ 2 ทรานแซกชันหรือมากกว่าทำการล็อกข้อมูลที่ใช้ งาน u โดยในแต่ละทรานแซกชันต่างรอใช้งานข้อมูล ของทรานแซกชันอื่นที่ใช้งานอยู่ จึงทำให้ไม่ สามารถทำการประมวลผลต่อได้ หรือที่เรียกว่าเกิด ภาวะติดตายขึ้น © Pearson Education Limited 1995, 2005

45 45 Deadlock © Pearson Education Limited 1995, 2005

46 46 การแก้ไข DeadLock u ทำการสละ Transaction หนึ่งด้วยการปลด Lock Transaction นั้นออกจากลูป เพื่อให้ Transaction อื่นสามารถทำงานต่อได้ u ระบบจะต้องค้นหาวงจรที่ก่อให้เกิด Deadlock นั้น แล้วเลือก Transaction หนึ่งในวงจร Deadlock นั้น มาทำการ Rollback เพื่อปลดปล่อย Lock ทั้งหมด ที่ Transaction นั้นได้ทำไว้ และปล่อยให้ Transaction อื่นทำงานต่อไป u Transaction ที่ถูกเลือกมาทำ Rollback จะถูก เรียกว่า “victim” © Pearson Education Limited 1995, 2005

47 47 การควบคุมภาวะพร้อมกันโดยไม่ใช้วิธีการล็อก Without Locking มี 2 วิธีคือ u Optimistic Concurrency Control u Timestamp-Based Concurrency Control

48 48 Optimistic Concurrency Control u แนวคิดนี้จะอนุญาตให้ Transaction สามารถ execute ได้ตามปกติโดยไม่มีการตรวจสอบ ล่วงหน้า ซึ่งแต่ละ Transaction จะมีพื้นที่เป็นของ ตนเอง (Private Workspace) แต่จะมีการ ตรวจสอบก่อนที่จะบันทึกลงในฐานข้อมูลจริง

49 49 Optimistic Concurrency Control u การตรวจสอบจะพิจารณาจาก “Transaction นั้นมี การทำงานที่ไม่เป็นไปตามลำดับ และทำให้เกิดการ ขัดกันกับ Transaction อื่นหรือไม่” –ถ้ามีการขัดกัน จะทำการเริ่มต้นการทำงานของ Transaction นั้นใหม่ –แต่ถ้าไม่มีการขัดกัน จะนำข้อมูลใน Private Workspace นี้บันทึกลงในฐานข้อมูลต่อไป

50 50 วิธี Optimistic Concurrency Control ประกอบด้วย 3 ขั้นตอน u Read : ขั้นตอนการอ่าน u Validation : ขั้นตอนการตรวจสอบ u Write : ขั้นตอนการบันทึก

51 51 วิธี Optimistic Concurrency Control u Read –Transaction จะทำการอ่านข้อมูลจากฐานข้อมูล และทำการเขียนลงใน Private Workspace โดย Transaction อื่นไม่สามารถเข้ามาข้อง เกี่ยวได้

52 52 วิธี Optimistic Concurrency Control u Validation –DBMS จะทำการตรวจสอบลำดับการทำงานของ แต่ละ Transaction โดยพิจารณาจาก Transaction ที่มีการยืนยันความสำเร็จในการ ทำงานด้วยคำสั่ง commit แล้ว –DBMS จะทำการตรวจสอบความเป็นไปได้ใน การขัดกันกับ Transaction อื่น –ถ้าเกิดการขัดกัน Transaction นั้นจะถูกยกเลิก และ Private Workspace จะถูก Clear และ เริ่มต้นการทำงานใหม่

53 53 วิธี Optimistic Concurrency Control u Write –ในกรณีที่ไม่เกิดปัญหาการขัดกันระหว่าง Transaction ข้อมูลที่อยู่ใน Private Workspace จะถูกบันทึกลงในฐานข้อมูล

54 54 Timestamp-Based Concurrency Control u วิธีนี้ DBMS จะเป็นตัวกำหนดลำดับของแต่ละ Transaction ในการเข้าทำงาน u โดยเรียงตามลำดับการเกิดก่อนหลังของแต่ละ Transaction

55 55 Timestamp-Based Concurrency Control u การกำหนดค่า Timestamp ให้กับแต่ละ Transaction ทำได้ดังนี้ –ใช้เวลา system clock »จะนำค่าเวลาระบบเป็นตัวแปรเก็บค่า Timestamp เพื่อใช้กำหนดลำดับที่ของแต่ละ Transaction –ใช้ตัวแปร counter »โดยตัวแปร counter จะเป็นตัวนับเพิ่มทีละ 1 เพื่อ นำมาเป็นตัวกำหนดลำดับที่ให้กับแต่ละ Transaction

56 56 ลักษณะของเวลาที่บันทึกคู่กับข้อมูล u W-Timestamp –เป็นเวลาล่าสุดที่ข้อมูลถูกเปลี่ยนแปลงค่าโดย Transaction ใด ๆ u R-Timestamp –เป็นเวลาล่าสุดที่ข้อมูลถูกนำไปใช้งานโดย Transaction ใด ๆ u เวลาทั้ง 2 ส่วนจะถูกนำไปใช้พิจารณาเปรียบเทียบ กับกรณีต่าง ๆ

57 57 กรณีที่ Transaction มีการอ่านข้อมูล u ถ้าเวลาที่ Transaction A เริ่มต้นทำงานเกิดขึ้นก่อน เวลา W-Timestamp ของข้อมูลที่ Transaction A นั้นนำมาใช้งาน –Transaction A ต้องอ่านข้อมูลนั้นขึ้นมาใหม่ –หรือเริ่มการทำงาน Transaction A ใหม่ u เนื่องจากในขณะที่ Transaction A กำลังทำงาน ข้อมูลนั้นได้ถูกเปลี่ยนแปลงค่าโดย Transaction อื่น ส่งผลให้ค่าของข้อมูลที่ Transaction A เก็บอยู่ ไม่ใช่ค่าล่าสุด

58 58 กรณีที่ Transaction มีการอ่านข้อมูล u ถ้าเวลาที่ Transaction A เริ่มต้นทำงานเกิดขึ้น หลังจากหรือเวลาดียวกับเวลา W-Timestamp ของข้อมูลที่ Transaction A อ่านมาแล้ว –แสดงว่าข้อมูลที่อ่านมานั้น สามารถนำไป ประมวลผลได้ –แต่จะต้องบันทึกเวลา R-Timestamp ให้กับ ข้อมูลนั้นใหม่

59 59 กรณีที่ Transaction มีการบันทึกข้อมูล u ถ้าเวลาที่ Transaction A เริ่มต้นทำงานเกิดขึ้นก่อน เวลา R-Timestamp ของข้อมูลที่ Transaction A นั้น อ่านมาแล้ว –แสดงว่าข้อมูลนั้นได้ถูก Transaction อื่นอ่านไปใช้ งานเช่นเดียวกัน จึงไม่สามารถเปลี่ยนแปลงค่าของ ข้อมูลนั้นได้ –ในกรณีนี้ให้เริ่มต้นการทำงาน Transaction A ใหม่ u เนื่องจากข้อมูลถูกที่ Transaction A เปลี่ยนแปลงค่า อาจถูก Transaction อื่นที่นำข้อมูลเดียวกันนั้นไปใช้ งานเปลี่ยนแปลงค่าทับค่าเดิมได้

60 60 กรณีที่ Transaction มีการบันทึกข้อมูล u ถ้าเวลาที่ Transaction A เริ่มต้นทำงานเกิดขึ้นก่อนเวลา W-Timestamp ของข้อมูลที่ Transaction A นั้นอ่านมาแล้ว –แสดงว่าระหว่างที่ Transaction A ทำงาน ข้อมูลนั้นได้ ถูก Transaction อื่นเปลี่ยนแปลงค่าของข้อมูลนั้นไป แล้ว –ดังนั้น Transaction A จึงไม่สามารถเปลี่ยนแปลงค่าของ ข้อมูลนั้นได้ –ในกรณีนี้ให้เริ่มต้นการทำงาน Transaction A ใหม่ u เนื่องจากค่าที่ Transaction A เปลี่ยนแปลงจะทำให้ค่าของ ข้อมูลเดียวกันที่ Transaction ก่อนหน้านี้เปลี่ยนแปลงไว้ สูญหาย

61 61 กรณีที่ Transaction มีการบันทึกข้อมูล u ส่วนกรณีอื่น ๆ ที่นอกเหนือจาก 2 กรณีที่ผ่านมา u ให้ Transaction ทำการเปลี่ยนแปลงค่าของข้อมูลนั้น ได้ แต่จะต้องกำหนดเวลา W-Timestamp ให้กับข้อมูล นั้นใหม่

62 62 Basic Timestamp Ordering © Pearson Education Limited 1995, 2005

63 63 Database Recovery u เป็นกระบวนการเรียกคืนฐานข้อมูลให้กับมาสู่สภาวะ เดิมที่สามารถใช้งานได้ ในกรณีที่เกิดเหตุขัดข้องบาง ประการ ไม่ว่าจะเป็นความผิดพลาดจากผู้กระทำ ระบบคอมพิวเตอร์หรือ ความขัดข้องจากระบบไฟฟ้า © Pearson Education Limited 1995, 2005

64 64 Types of Failures u ระบบล่ม u ความขัดข้องจากสื่อบันทึกข้อมูล u ความผิดพลาดจากโปรแกรมแอปพลิเคชัน u ความขัดข้องจากภัยธรรมชาติ u การไม่ดูแลเอาใจใส่ u การก่อวินาศกรรม © Pearson Education Limited 1995, 2005

65 65 ความจำเป็นในการกู้ข้อมูล u การจัดเก็บข้อมูลในคอมพิวเตอร์จะต้องใช้กับอุปกรณ์ ต่าง ๆ หลายประเภท เช่น หน่วยความจำ ดิสก์ เทป แม่เหล็ก u ในขณะที่ข้อมูลผ่านอุปกรณ์เหล่านี้อาจมีข้อผิดพลาด เกิดขึ้นได้ u จึงต้องคำนึงถึงประเภทของอุปกรณ์ที่ใช้จัดเก็บ ข้อมูลขณะที่เกิดข้อผิดพลาดขึ้นด้วย © Pearson Education Limited 1995, 2005

66 66 ประเภทของหน่วยความจำสำรอง u Volatile Storage u Nonvolatile Storage u Stable Storage © Pearson Education Limited 1995, 2005

67 67 ประเภทของหน่วยความจำสำรอง u Volatile Storage –เป็นอุปกรณ์ที่จะจัดเก็บข้อมูลได้ก็ต่อเมื่อมี กระแสไฟฟ้า –ในกรณีที่ไม่มีกระแสไฟฟ้าข้อมูลที่จัดเก็บอยู่ใน อุปกรณ์จะหายไป –อุปกรณ์ประเภทนี้จะใช้ในการจัดเก็บข้อมูล ชั่วคราว –เช่น RAM, Cache Memory © Pearson Education Limited 1995, 2005

68 68 ประเภทของหน่วยความจำสำรอง u Nonvolatile Storage –เป็นอุปกรณ์ที่สามารถจัดเก็บข้อมูลได้โดยไม่ต้อง ใช้กระแสไฟฟ้า –เช่น Disk –ปัญหาที่มักเกิดกับอุปกรณ์นี้ คือ Disk Crash © Pearson Education Limited 1995, 2005

69 69 ประเภทของหน่วยความจำสำรอง u Stable Storage –เป็นอุปกรณ์ที่ไม่ต้องอาศัยกระแสไฟฟ้าในการ จัดเก็บข้อมูล –มักจะนำมาใช้ในการสำรองข้อมูลมากกว่าในการ ประมวลผล –เช่น เทปแม่เหล็ก © Pearson Education Limited 1995, 2005

70 70 ประเภทของความผิดพลาด u Logical Error u System Error u System Crash u Disk Failure

71 71 ประเภทของความผิดพลาด u Logical Error –เป็นความผิดพลาดที่เกิดจากมีขั้นตอนการ ทำงานที่ไม่ถูกต้อง หรือจากตัวข้อมูลที่ไม่ สามารถรองรับการประมวลผลที่เกิดขึ้นได้ –เช่น การกำหนดขนาดของฟิลด์ไม่เพียงพอต่อ การจัดเก็บข้อมูล

72 72 ประเภทของความผิดพลาด u System Error –เป็นความผิดพลาดที่เกิดจากการทำงานตัวระบบ ที่ไม่ถูกต้อง หรือไม่ครบถ้วนพอ –เช่น ปัญหาที่เกิดจากการจัดลำดับการทำงาน ของโปรแกรมต่าง ๆ ไม่ดีพอ และส่งผลให้เกิด ปัญหาด้าน Deadlock ของข้อมูลขึ้น

73 73 ประเภทของความผิดพลาด u System Crash –เป็นความผิดพลาดต่าง ๆ ที่เกิดขึ้นอุปกรณ์ที่ใช้ จัดเก็บข้อมูลประเภท Volatile Storage –เช่น ปัญหาทางด้านกระแสไฟฟ้าที่ไม่สม่ำเสมอ ซึ่งส่งผลให้ข้อมูลที่จัดเก็บอยู่ในหน่วยความจำ สูญหายไป

74 74 ประเภทของความผิดพลาด u Disk Failure –เป็นความผิดพลาดต่าง ๆ ที่เกิดขึ้นอุปกรณ์ที่ใช้ จัดเก็บข้อมูลประเภท Nonvolatile Storage –เช่น ปัญหาทางด้าน Disk Crash ซึ่งส่งผลให้ ข้อมูลที่จัดเก็บอยู่ใน Disk บางส่วนสูญหายไป

75 75 การกู้ข้อมูลจาก Volatile Storage มี 3 แบบคือ u การกู้ข้อมูลแบบ Log-Based u การกู้ข้อมูลแบบ Shadow Paging u การกู้ข้อมูลแบบ Checkpoints

76 76 การกู้ข้อมูลแบบ Log-Based u เป็นการกู้ข้อมูลที่อาศัยข้อมูลจาก Log File ซึ่งเป็น แฟ้มข้อมูลที่ใช้บันทึกการกระทำต่าง ๆ ใน Transaction ที่ก่อให้เกิดการเปลี่ยนแปลงค่าของ ข้อมูล

77 77 Sample Log File © Pearson Education Limited 1995, 2005

78 78 รูปแบบรายการที่บันทึกใน Log File แบ่งได้เป็น 3 ประเภทคือ u Transaction Start –เป็นรายการที่จะถูกบันทึกลงใน Log File เมื่อ Transaction เริ่มต้นทำงาน u Transaction Commit –เป็นรายการที่จะถูกบันทึกลงใน Log File เมื่อ Transaction ทำงานเสร็จ

79 79 รูปแบบรายการที่บันทึกใน Log File u Update Activity –เป็นรายการที่จะถูกบันทึกลงใน Log File ทุกครั้ง เมื่อการกระทำนั้นก่อให้เกิดการเปลี่ยนแปลงค่า ของข้อมูล

80 80 รูปแบบการบันทึกข้อมูลใน Log File มี 2 รูปแบบคือ u Deferred Database Modification –ข้อมูลที่ได้จากการประมวลผลจะถูกบันทึกลงใน ฐานข้อมูลได้ก็ต่อเมื่อ Transaction นั้นทำงาน เสร็จเรียบร้อยแล้ว u Immediate Database Modification –ข้อมูลที่ได้จากการประมวลผลจะถูกบันทึกลงใน ฐานข้อมูลได้ทันที โดยไม่ต้องรอให้ Transaction นั้นทำงานเสร็จเรียบร้อย

81 81 การกู้ข้อมูลจาก Log File u Deferred Database Modification –จะนำเอาข้อมูลที่บันทึกอยู่ใน Log File ทั้งหมด มาเลือกเฉพาะ Transaction ที่มีการทำงานที่ เสร็จสมบูรณ์ –ได้แก่ Transaction ที่มีรายการครบทั้ง Start และ Commit –เพื่อนำรายการประเภท Update ไปเก็บลงใน ฐานข้อมูล

82 82 การกู้ข้อมูลจาก Log File u Immediate Database Modification –จะนำเอารายการประเภท Activity ของทุก Transaction ที่บันทึกไว้ใน Log File มาบันทึกลง ในฐานข้อมูลใหม่ –ถ้า Transaction มีการทำงานที่เสร็จสมบูรณ์ ค่า ใหม่ของรายการ Update จะถูกบันทึกลง ฐานข้อมูล –ถ้า Transaction มีการทำงานที่ไม่สมบูรณ์ ค่าเดิม ของขข้อมูลก่อนการประมวลผลในรายการ Update จะถูกบันทึกลงฐานข้อมูลแทน

83 83 การกู้ข้อมูลแบบ Shadow Paging u เป็นการจัดเก็บข้อมูลเพื่อนำมาใช้ในการกู้ข้อมูล u โดยการกำหนดเนื้อที่ใน Disk ไว้สวนหนึ่ง เพื่อใช้ ในการทำสำเนาข้อมูลที่จะถูกเรียกใช้ใน Transaction ไว้ก่อนที่ Transaction นั้นจะเริ่มต้น ทำงาน u ซึ่งเนื้อที่ที่เตรียมไว้สำหรับสำเนาข้อมูลจะเรียกว่า Shadow Page

84 84 การกู้ข้อมูลแบบ Shadow Paging u ข้อมูลที่อยู่ใน Shadow Page จะไม่สามารถ เปลี่ยนแปลงแก้ไขได้ และจะถูกนำมาใช้เมื่อ Transaction ที่ทำงานนั้นมีข้อผิดพลาดเกิดขึ้น u โดยการนำข้อมูลใน Shadow Page มาบันทึกทับ ลงในฐานข้อมูลเดิม u ในกรณีที่ Transaction ทำงานสมบูรณ์ ข้อมูลใน Shadow Page จะถูกยกเลิกไป

85 85 การกู้ข้อมูลแบบ Checkpoints u เป็นการกู้ข้อมูลโดยการใช้ Log File u แต่ในการบันทึกข้อมูลของ Log File จะกระทำเป็น ช่วงแทน u โดยมีการกำหนดจุดเริ่มต้นของ Transaction ที่เริ่ม บันทึกรายการลงใน Log File ที่เรียกว่า จุด Checkpoint ไว้ u เมื่อเกิดมี Transaction ที่ทำงานไม่สมบูรณ์ ก็จะนำ ข้อมูลใน Log File ตั้งแต่จุด checkpoint มา ประมวลผลใหม่

86 86 การกู้ข้อมูลจาก Nonvolatile Storage u เริ่มจากการจัดเก็บข้อมูลทั้งหมดเพื่อไว้ใช้ในการกู้ ข้อมูล u โดยใช้วิธีการสำรองข้อมูล (Backup) ไว้ในอุปกรณ์ ประเภท Stable Storage แทน เช่น การสำรอง ข้อมูลไว้ในเทปแม่เหล็ก u ช่วงเวลาในการทำการสำรองข้อมูล ให้พิจารณา จากความสำคัญและปริมาณของข้อมูลที่เกิดขึ้น

87 87 การกู้ข้อมูลจาก Nonvolatile Storage u การกู้ข้อมูลจะใช้การถ่ายโอนข้อมูลจาก Stable Storage กลับมายัง Nonvolatile Storage ทั้งหมด u แล้วจึงนำเฉพาะ Transaction ที่จัดเก็บไว้ใน Log File และมีการทำงานที่เสร็จสมบูรณ์ มาบันทึกค่า ของข้อมูลตามค่าที่เก็บไว้ในรายการประเภท Update Activity ลงในฐานข้อมูลใหม่


ดาวน์โหลด ppt 1 Transaction Management © Pearson Education Limited 1995, 2005.

งานนำเสนอที่คล้ายกัน


Ads by Google