1 / 35

Chapter 4 การป้องกันฐานข้อมูล

Chapter 4 การป้องกันฐานข้อมูล. โดยอาจารย์ เกศแก้ว ประดิษฐ์ สาขาวิชาการจัดการเทคโนโลยีสารสนเทศ Kate_psu08@hotmail.com. เนื้อหาที่เรียนในบทนี้ การกู้ข้อมูลกลับมาใช้งาน ( Recovery Control ) การรักษาความถูกต้องให้กับข้อมูล ( Concurrency Control )

cheng
Download Presentation

Chapter 4 การป้องกันฐานข้อมูล

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 4การป้องกันฐานข้อมูล โดยอาจารย์ เกศแก้ว ประดิษฐ์ สาขาวิชาการจัดการเทคโนโลยีสารสนเทศ Kate_psu08@hotmail.com

  2. เนื้อหาที่เรียนในบทนี้ • การกู้ข้อมูลกลับมาใช้งาน (Recovery Control) • การรักษาความถูกต้องให้กับข้อมูล (Concurrency Control) • การควบคุมความปลอดภัยให้กับข้อมูล (Security Control) • การควบคุมความถูกต้องให้กับข้อมูลโดยใช้กฎข้อบังคับ (Integrity Control) Database Design

  3. การกู้ข้อมูลกลับมาใช้งาน (Recovery Control) • ประเภทของหน่วยความจำสำรอง • ประเภทของข้อผิดพลาด • ลำดับในการนำข้อมูลมาใช้งาน • Transaction • สถานะของ Transaction • การกู้ข้อมูลใน Transaction • คุณสมบัติของ Transaction การกู้ข้อมูลกลับมาใช้งาน

  4. Volatile Storage เป็นอุปกรณ์ที่จะจัดเก็บข้อมูลได้ก็ต่อเมื่อมีกระแสไฟฟ้า เช่น Ram และ Cache Memory • Nonvolatile Storage เป็นอุปกรณ์ที่จัดเก็บข้อมูลโดยไม่ต้องอาศัยกระแสไฟฟ้า เช่น Disk • Stable Storage เป็นอุปกรณ์ที่ไม่ต้องอาศัยกระแสไฟฟ้าในการจัดเก็บข้อมูลเช่นเดียวกับ Nonvolatile Storage แต่จะเป็นอุปกรณ์ที่นำมาใช้สำรองข้อมูลมากกว่าประมวลผล เช่น เทปแม่เหล็ก ประเภทของหน่วยความจำสำรอง

  5. Logical Error ผิดพลาดจากขั้นตอนการทำงานไม่ถูกต้อง หรือจากตัวข้อมูลที่ไม่สามารถรองรับการประมวลผลที่เกิดขึ้นได้ เช่น การกำหนดขนาด Field ที่ไม่เพียงพอต่อการจัดเก็บข้อมูล ทำให้เกิด Overflow หรือ กรณีที่มีการกำหนด Logical Flow ของโปรแกรมผิด ทำให้ผลการทำงานไม่ได้ผลลัพธ์ตามต้องการ ประเภทของข้อผิดพลาด

  6. System Error เป็นความผิดพลาดที่เกิดจากการทำงานของตัวระบบไม่ถูกต้อง หรือไม่ครบถ้วน เช่น ปัญหาที่เกิดจากการจัดลำดับการทำงานของโปรแกรมต่างๆ ไม่ดี ส่งผลทำให้เกิดปัญหา Deadlock ข้อมูล • System Cash เป็นความผิดพลาดที่เกิดขึ้นกับอุปกรณ์ที่ใช้จัดเก็บข้อมูลประเภท Volatile Storage เช่น ปัญหากระแสไฟฟ้าไม่สม่ำเสมอ การจัดเก็บข้อมูลในหน่วยความจำสูญหาย ประเภทของข้อผิดพลาด

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

  8. ลำดับในการนำข้อมูลมาใช้งาน คือ การนำข้อมูลมาใช้ในการประมวลผลของคอมพิวเตอร์ จะต้องอาศัยการอ่านและการเขียนข้อมูลระหว่างอุปกรณ์ประเภท Volatile Storage กับหน่วยความจำของคอมพิวเตอร์ จำนวนข้อมูลที่ถูกอ่านและเขียนแต่ละครั้งจะถูกกำหนดให้มีขนาดที่ตายตัว เรียกว่า Block แต่ละบล็อก ประกอบด้วย ชุดข้อมูล ขนาดข้อมูลตามโครงสร้างทางกายภาพที่กำหนดไว้ในคอมพิวเตอร์ ข้อมูลที่อ่านและเขียนระหว่างอุปกรณ์ประเภท Nonvolatile Storage กับหน่วยความจำของคอมพิวเตอร์แต่ละครั้งมีจำนวนข้อมูล 1 block ลำดับการนำข้อมูลมาใช้งาน

  9. การเคลื่อนที่ของ Block ระหว่างอุปกรณ์ประเภท Nonvolatile Storage กับหน่วยความจำของคอมพิวเตอร์จะผ่านการกระทำต่อไปนี้เสมอได้แก่ Input Output Read และ Write • Input เป็นการอ่านข้อมูลจากอุปกรณ์ Nonvolatile Storage มาเก็บไว้ในหน่วยความจำของคอมพิวเตอร์ สำหรับรูปแบบของคำสั่งที่ใช้แทนการกระทำ มีดังนี้ ลำดับการนำข้อมูลมาใช้งาน Input (X) X หมายถึง ข้อมูลที่ต้องการอ่านขึ้นมาจากอุปกรณ์ประเภท Nonvolatile Storage

  10. ตัวอย่างเช่น อ่านข้อมูล A จากอุปกรณ์ประเภท Nonvolatile Storage มาเก็บไว้ในหน่วยความจำ Input (A) ลำดับการนำข้อมูลมาใช้งาน

  11. Output เป็นการนำข้อมูลที่เก็บอยู่ในหน่วยความจำของคอมพิวเตอร์ ไปบันทึกไว้ในอุปกรณ์ประเภท Nonvolatile Storage สำหรับรูปแบบของคำสั่งที่ใช้แทนการกระทำ มีดังนี้ Output (X) X หมายถึง ข้อมูลในหน่วยความจำที่ต้องการบันทึกไว้ในอุปกรณ์ประเภท Nonvolatile Storage ลำดับการนำข้อมูลมาใช้งาน

  12. ตัวอย่างเช่น แสดงการอ่านข้อมูล A จาก Disk มาเก็บไว้ในหน่วยความจำ (Main Memory) และนำข้อมูล B จาก หน่วยความจำ มาเก็บไว้ใน Disk ดังรูป Output (B) Input (A) A B ลำดับการนำข้อมูลมาใช้งาน Output (B) Disk Main Memory

  13. Read เป็นการกำหนดข้อมูลให้กับตัวแปร หรือ การ Input เพื่อนำข้อมูลจากอุปกรณ์ประเภท Nonvolatile Storage มาเก็บไว้ในหน่วยความจำของคอมพิวเตอร์ ณ ตำแหน่งที่กำหนด สำหรับรูปแบบคำสั่งที่ใช้แทนการกระทำมีดังนี้ ลำดับการนำข้อมูลมาใช้งาน

  14. ตัวอย่างเช่น ลำดับการนำข้อมูลมาใช้งาน

  15. Write เป็นการนำค่าตัวแปรไปบันทึกลงอุปกรณ์ประเภท Nonvolatile Storage หรือการทำ Output เพื่อนำค่าของข้อมูลที่เก็บในหน่วยความจำ ณ ตำแหน่งที่กำหนด ไปบันทึกเก็บไว้ในอุปกรณ์ประเภท Nonvolatile Storage สำหรับรูปแบบคำสั่งที่ใช้แทนการกระทำมีดังนี้ ลำดับการนำข้อมูลมาใช้งาน

  16. ตัวอย่างเช่น ลำดับการนำข้อมูลมาใช้งาน

  17. Transaction เป็นหน่วยการทำงานที่กระทำกับข้อมูล เพื่อเปลี่ยนสถานะของข้อมูลจากสถานะหนึ่งไปสู่อีกสถานะหนึ่งภายใน Transaction จะประกอบด้วยชุดของการกระทำ (Operation) ต่างๆ เรียงกันเป็นลำดับ เช่น Transaction ที่ใช้เพิ่มข้อมูลพนักงานใหม่ชื่อ “สุวิมล” ให้กับ Relation “Employee” แต่เนื่องจากพนักงานคนนี้ เป็นพนักงานที่จัดตั้งขึ้นใหม่ จึงต้องมีการเพิ่มข้อมูลของฝ่ายใหม่ให้กับ Relation “Department” ตามไปด้วย ดังนั้นใน Transaction นี้ประกอบด้วย 2 การกระทำดังนี้ Transaction

  18. ตัวอย่าง : Insert ({Emp#: “005”, Emp_Name: “สุวิมล งดงาม”, Salary:9000, Dept#: “004”}); Insert ({Dept#: “004”, Dept_Name: “”}); Transaction

  19. Active ได้แก่ สถานะเริ่มต้นการทำงานของ Transaction • Partially Committed ได้แก่ สถานะที่แต่ละการทำงานของ Transaction ทำงานเสร็จ • Failed ได้แก่ สถานะที่มีข้อผิดพลาดเกิดขึ้นกับ Transaction นั้น • Aborted ได้แก่ สถานะที่เกิดขึ้นหลักจากที่เกิดสถานะ Failed เพื่อหยุดการทำงานของ Transaction • Committed ได้แก่ สถานะที่ Transaction ทำงานเสร็จสมบูรณ์ สถานะของ Transaction

  20. Committed Partially Committed Active สถานะของ Transaction Aborted Failed

  21. เพื่อกำหนดให้ Transaction มีคุณสมบัติ Atomicity จึงได้มีการกำหนดการกระทำเพื่อใช้ควบคุมการทำงานของ Transaction ดังนี้ • Commit Transaction เป็นการกระทำที่กำหนดขึ้นเพื่อแจ้งให้ระบบทราบว่าการทำงานของ Transaction อยู่ในสถานะ Committed ซึ่งเป็นสถานะที่ Transaction ทำงานเสร็จสมบูรณ์ • Rollback Transaction เป็นการกระทำที่กำหนดขึ้นเพื่อแจ้งให้ระบบทราบว่าการทำงานของ Transaction อยู่ในสถานะ Aborted ซึ่งเป็นสถานะที่ Transaction ทำงานเสร็จมีข้อผิดพลาดเกิดขึ้น เพื่อให้ระบบสั่งยกเลิกการทำงานของ Transaction นั้น การกู้ข้อมูลใน Transaction

  22. Commit เป็นการกระทำที่เกิดขึ้นแล้ว ส่งผลให้ • การกระทำต่างๆ ใน Transaction ที่ก่อให้เกิดการเปลี่ยนแปลงค่าของข้อมูล จะทำให้ข้อมูลที่การกระทำนั้นเรียกใช้ถูกเปลี่ยนแปลงค่าจริง และจะไม่สามารถคืนกลับไปมีค่าก่อนหน้าที่มีการกระทำได้ • Pointer และการ Lock ต่างๆ ที่เกิดขึ้นกับ Tuple ซึ่งเกิดขึ้นจากการกระทำใน Transaction จะถูกยกเลิกทั้งหมด Transaction การกู้ข้อมูลใน Transaction

  23. Insert ({Emp#: “005”, Emp_Name: “สุวิมล งดงาม”, Salary : 9000, Dep#: “004”}); If any error occurred then go to undo; Insert ({Dep#: “004”, Dep_Name: “”}); If any error occurred then go to undo; Commit Transaction; Go to finish; Undo: Rollback Transaction; Finish : Return; การกู้ข้อมูลใน Transaction

  24. จุดเริ่มต้นโปรแกรม Transaction ที่ 1 Commit Begin Transaction Transaction ที่ 2 (ยกเลิก) การกู้ข้อมูลใน Transaction Begin Transaction Rollback Transaction ที่ 3 Commit Begin Transaction จุดสิ้นสุดของโปรแกรม

  25. Atomicity ทุกการกระทำใน Transaction จะต้องมีการทำงานที่สมบูรณ์ ถ้าไม่เช่นนั้นต้องยกเลิกทุกการกระทำใน Transaction นั้น • Consistency ทุก Transaction จะต้องก่อให้เกิดข้อมูลในฐานข้อมูลที่มีความถูกต้องอยู่เสมอ • Isolation แต่ละ Transaction จะไม่สามารถเปลี่ยนแปลงข้อมูลได้พร้อมกัน แต่จะต้องรอให้ Transaction ก่อน หน้าที่เรียกใช้ข้อมูลเดียวกัน เปลี่ยนแปลงค่าของข้อมูลเสร็จสิ้นก่อน หรือ Transaction“B” จะต้องรอให้ Transaction“A” เปลี่ยนแปลงค่าของข้อมูลเสร็จสิ้น หรือมีการกระทำ Commit ก่อนเปลี่ยนแปลงค่าของข้อมูลเดียวกัน คุณสมบัติของTransaction

  26. Durability ข้อมูลที่ Transaction เรียกใช้ จะสามารถเปลี่ยนแปลงค่าจริงในฐานข้อมูลได้ ก็ต่อเมื่อ Transaction นั้นมีการทำงานที่เสร็จสมบูรณ์ คุณสมบัติของTransaction

  27. การกู้ข้อมูลแบบ Log-Based เป็นการกู้ข้อมูลที่อาศัยข้อมูลจากLog File ซึ่งเป็นแฟ้มข้อมูลที่ใช้บันทึกการกระทำต่างๆ ใน Transaction ที่ก่อให้เกิดการเปลี่ยนแปลงค่าของข้อมูล สำหรับรูปแบบของรายการที่บันทึกใน Log File จะแบ่งออกเป็น 3 ประเภท • Transaction Start เป็นรายการที่จะถูกบันทึกลงใน Log File เมื่อ Transaction เริ่มต้นทำงาน สำหรับรูปแบบที่ใช้แทนรายการประเภทนี้จะมีรูปแบบดังนี้ การกู้ข้อมูลแบบ Volatile Storage

  28. Transaction Commit เป็นรายการที่จะถูกบันทึกลงใน Log File เมื่อ Transaction ทำเสร็จ สำหรับรูปแบบที่ใช้แทนรายการประเภทนี้จะมีรูปแบบดังนี้ • Update Activity เป็นรายการที่จะถูกบันทึกใน Log File ทุกครั้ง เมื่อการกระทำนั้นก่อให้เกิดการเปลี่ยนแปลงค่าของข้อมูล สำหรับรูปแบบที่ใช้แทนรายการประเภทนี้ จะมีรูปแบบดังนี้ การกู้ข้อมูลแบบ Volatile Storage

  29. Update Activity เป็นรายการที่จะถูกบันทึกใน Log File ทุกครั้ง เมื่อการกระทำนั้นก่อให้เกิดการเปลี่ยนแปลงค่าของข้อมูล สำหรับรูปแบบที่ใช้แทนรายการประเภทนี้ จะมีรูปแบบดังนี้ การกู้ข้อมูลแบบ Volatile Storage

  30. สรุป การบันทึกข้อมูลลงใน Log File จะเริ่มจากการบันทึกรายการ Transaction Start เป็นลำดับแรก จากนั้นบันทึกรายการ Update Activity ทุกครั้งที่การกระทำใน Transaction นั้นก่อให้เกิดการเปลี่ยนแปลงค่าของข้อมูล ส่วน Transaction นั้นจะถือว่ามีการทำงานที่เสร็จสมบูรณ์หรือไม่ จะพิจารณาจากรายการ TransactionCommit ซึ่งจะถูกบันทึกเมื่อแต่ละ Transaction สิ้นสุดการทำงาน โดย Transaction ใดที่มีรายการครบทั้งรายการ TransactionStart และ Transactioncommit จะถือว่า Transaction นั้นมีการทำงานที่สมบูรณ์ แต่ถ้า Transaction ใดที่ขาดรายการ TransactionCommit ไปถือว่า Transaction นั้นทำงานไม่เสร็จสมบูรณ์และจะต้องมีการกู้ข้อมูลต่อไป การกู้ข้อมูลแบบ Volatile Storage

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

  32. การกู้ข้อมูลแบบ Shadow Paging ข้อมูลที่จัดเก็บอยู่ในส่วนของ Shadow page ไม่สามารถเปลี่ยนแปลงแก้ไขได้ และจะถูกนำมาใช้ก็ต่อเมื่อ Transaction ที่ทำงานนั้นมีข้อผิดพลาดเกิดขึ้น โดยนำเอาข้อมูลที่ปรากฏอยู่ในส่วน Shadow page มาบันทึกข้อมูลเดิมในฐานข้อมูล แต่ในกรณีที่ Transaction นั้นมีการทำงานที่เสร็จสมบูรณ์ ข้อมูลในส่วน Shadow page ก็จะถูกยกเลิกไป การกู้ข้อมูลแบบ Volatile Storage

  33. การกู้ข้อมูลแบบ Checkpoint เป็นการจัดเก็บข้อมูลเพื่อใช้กู้ • ข้อมูลด้วยการใช้ Log File เช่นเดียวกัน แต่การบันทึกรายงานลงใน Log File ด้วยวิธีการแบบ Checkpoint นี้ จะกระทำเป็นช่วงแทน เพื่อประหยัดเวลาในการกู้ข้อมูลจาก Log File ในกรณีที่เกิดข้อผิดพลาดขึ้นเนื่องจากวิธีการแบบ Checkpoint นี้ จะมีการกำหนดจุดเริ่มต้นของ Transaction ที่เริ่มบันทึกรายการลงใน Log File ที่เรียกว่าจุด Checkpoint ไว้ ดังนั้นเมื่อ Transaction ใดที่ทำงานไม่สมบูรณ์ก็เพียงแต่นำข้อมูลใน Log File ตั้งแต่จุด Checkpointที่กำหนดมาประมวลผลใหม่ โดยไม่จำเป็นต้องนำเอาทุกรายการใน Log File มาใช้กู้ข้อมูลเหมือนกันในลักษณะเดิม การกู้ข้อมูลแบบ Volatile Storage

  34. Time T R A N S A C T I O N S T1 T2 T3 การกู้ข้อมูลแบบ Checkpoint T4 T5 Time

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

More Related