Back to Home

DataBase System

Lesson123456791112131415

Lesson 10 : Data Integrity



Lesson Plan
Section No.
Section 1
Section 2
Section 3
Section 4
Test
PDF file
PPT File


<<Prev pageCourse MapNext page>>

Print content of this page
Save content of this page

 

คุณสมบัติของการประมวลผลรายการเปลี่ยนแปลงที่จำเป็น

เพื่อให้แน่ใจว่าบูรณภาพของข้อมูลยังคงอยู่ และเพื่อเป็นการรักษาความถูกต้องในการทำงานของรายการเปลี่ยนแปลง ระบบจัดการฐานข้อมูลจะต้องรักษา 4 คุณสมบัติหลักของรายการเปลี่ยนแปลงที่เรียกว่า ACID Properties ไว้

  1. ความเป็นอันหนึ่งอันเดียวกัน (Atomicity) รายการเปลี่ยนแปลงจะถูกทำให้ได้ผลลัพธ์หรือไม่ถูกทำเลย จะไม่มีการทำแค่ครึ่งเดียวหรือบางส่วนของรายการเปลี่ยนแปลง
  2. ความถูกต้อง (Consistency) รายการเปลี่ยนแปลงจะถูกทำแยกกัน เพื่อคงความถูกต้องของข้อมูล
  3. การแยกตัว (Isolation) ถึงแม้ว่าจะมีรายการเปลี่ยนสองรายการที่พยายามทำงานพร้อมกัน ระบบจัดการฐานข้อมูลก็จะจัดการให้รายการเปลี่ยนแปลงรายการใดรายการหนึ่งได้ทำงานก่อน และเริ่มทำรายการเปลี่ยนแปลงรายการต่อไปเมื่อเสร็จสิ้นรายการเปลี่ยนแปลงก่อนหน้านี้แล้ว เพื่อรับประกันว่าจะไม่มีรายการเปลี่ยนแปลงสองรายการใดทำงานพร้อมกันอย่างแน่นอน
  4. ความคงทน (Durability) ผลลัพธ์ที่เกิดจากการทำงานของรายการเปลี่ยนแปลงจะยังคงอยู่ในฐานข้อมูลถึงแม้ว่าระบบจะหยุดทำงาน

ความเป็นอันหนึ่งอันเดียวกัน (Atomicity)

การทำรายการเปลี่ยนแปลงแปลงแต่ละรายการจะได้ผลลัพธ์สองอย่าง คือ ได้ผลลัพธ์ตามรายการเปลี่ยนแปลงที่ระบุไว้ หรือไม่ได้ผลลัพธ์อะไรเลย ดังที่กล่าวไว้ข้างต้น เมื่อรายการเปลี่ยนแปลงถูกทำแล้วจะต้องทำให้เสร็จ หรือไม่ทำเลย ถ้าระบบเกิดล้มขึ้นมาก่อนที่จะทำรายการเปลี่ยนแปลงเสร็จแล้ว ผลลัพธ์ที่เกิดจากการทำรายการเปลี่ยนแปลงถึง ณ จุดที่ระบบเกิดความเสียหายนั้นจะไม่ถูกนำมาเขียนลงฐานข้อมูล ดังนั้นเมื่อระบบเริ่มทำงานใหม่ รายการเปลี่ยนแปลงนั้นจะถูกทำใหม่ตั้งแต่เริ่มต้น หรือ ถ้าเกิดความผิดพลาดหรือเกิดกรณีพิเศษระหว่างการทำรายการเปลี่ยนแปลงแล้ว ผลลัพธ์บางส่วนที่เกิดขึ้นจากการทำรายการเปลี่ยนแปลงก็จะถูกยกเลิก และสถานะของฐานข้อมูลก็จะย้อนกลับไป ณ จุดก่อนการทำรายการเปลี่ยนแปลง ยกตัวอย่าง การโอนเงิน ประกอบด้วยการการถอนเงินจากบัญชีหนึ่ง และฝากเงินเข้าอีกบัญชีหนึ่ง การทำรายการเปลี่ยนแปลงของการโอนเงินจะได้ผลลัพธ์ คือ ถอนเงินจากบัญชี และโอนเงินเข้าบัญชีเป็นที่เรียบร้อย หรือ ไม่ทำทั้งสองอย่าง

จุดที่รายการเปลี่ยนแปลงที่ถูกทำจนได้ผลลัพธ์เรียบร้อย เรียกว่า จุดที่ทำให้รายการเปลี่ยนแปลงสมบูรณ์ (Commit) และ รายการเปลี่ยนแปลงที่เกิดความผิดพลาดและไม่ถูกทำเลย เรียกว่า การยกเลิกรายการเปลี่ยนแปลง (Abort) ทั้งการทำเสร็จสมบูรณ์และการยกเลิก เรียกว่า เป็นการกระทำที่ไม่สามารถกลับคืนได้ (Irrevocable action)

การยกเลิก คือ การลบล้างสิ่งที่ได้ทำไปแล้ว ในปฏิบัติการเกี่ยวกับฐานข้อมูล การยกเลิกคือการนำค่าเดิมก่อนเริ่มทำรายการเปลี่ยนแปลงกลับมาเก็บเป็นค่าปัจจุบัน แต่ในโลกของความจริง การกระทำบางอย่างก็ไม่สามารถถูกยกเลิกได้ เช่น การโอนย้ายเงิน การพิมพ์ตั๋ว การยิงจรวด ตัวอย่างของการกระทำที่ไม่สามารถยกเลิกสิ่งที่ทำไปแล้วได้ คือ การจ่ายเงินของเครื่อง ATM ดังรูปข้างล่าง จากรูปจะพบว่า รูป (ก) สามารถยกเลิกรายการเปลี่ยนแปลงที่เกิดขึ้นหลังจุดสมบูรณ์ของรายการเปลี่ยนแปลงได้เนื่องจากรายการเปลี่ยนแปลงยังไม่ได้ถูกกระทำจนสมบูรณ์ ในรูป (ข) เมื่อระบบเกิดความเสียหายหลังจากรายการ “จ่ายเงิน” ซึ่งผ่านจุดสมบูรณ์ของรายการเปลี่ยนแปลงมาแล้ว จะไม่สามารถยกเลิกรายการเปลี่ยนแปลง T1 จนถึงบรรทัดของรายการ “จ่ายเงิน” ได้เนื่องจากผ่านจุดสมบูรณ์ของรายการเปลี่ยนแปลงไปแล้ว

รูปที่ 10-1 การอ่านเอาท์พุทเมื่อรายการเปลี่ยนแปลงยังไม่ถึงจุดสมบูรณ์ ไม่สามารยกเลิกได้

ความถูกต้อง (Consistency)

รายการเปลี่ยนแปลงทุกรายการจะต้องรักษาความถูกต้องของฐานข้อมูลเอาไว้ โดยการรักษาบูรณภาพของการอ้างอิงแอททริบิว (Referential Integrity) เช่น การสั่งซื้อสินค้าจะต้องใช้ข้อมูลหมายเลขลูกค้าและหมายเลขสินค้าที่มีอยู่จริงในฐานข้อมูล

การรักษาความถูกต้องของข้อมูลเป็นคุณสมบัติหนึ่งของรายการเปลี่ยนแปลงซึ่งต้องรักษาไว้ให้ได้ ดังนั้นถ้ารายการเปลี่ยนแปลงแต่ละรายการมีความถูกต้อง ลำดับของรายการเปลี่ยนแปลงก็จะมีความถูกต้องเช่นเดียวกัน

จากตัวอย่างข้างบน พบว่า ความถูกต้องจะเกิดขึ้น ถ้า

    • x > y
    • ลำดับของการทำงานในรายการเปลี่ยนแปลงถูกต้อง

การแยกตัว (Isolation)

รายการเปลี่ยนแปลงแต่ละรายการจะถูกแยกออกจากกัน นั่นคือ ผลลัพธ์จากการทำรายการเปลี่ยนแปลงจะเป็นที่รู้กันก็ต่อเมื่อถึงจุดสมบูรณ์ของรายการเปลี่ยนแปลง ดังนั้นในขณะที่มีการทำรายการเปลี่ยนแปลงรายการหนึ่ง ผลลัพธ์ของรายการเปลี่ยนแปลงนี้จะเปิดเผยแต่รายการเปลี่ยนแปลงอื่นก็ต่อเมื่อถึงจุดสมบูรณ์ของรายการนี้เท่านั้น คุณสมบัตินี้ใช้ได้กับทุกรายการเปลี่ยนแปลง

โดยธรรมชาติของรายการเปลี่ยนแปลง ผลลัพธ์จากการทำลำดับของรายการเปลี่ยนแปลงจะต้องเหมือนกันกับการทำรายการเปลี่ยนแปลงแต่ละรายการแยกกัน ถ้ามีการเปลี่ยนแปลงลำดับการทำงานของรายการเปลี่ยนแปลง (interleaved execution) ลำดับที่เปลี่ยนไปนั้นจะมีความเป็นลำดับของการทำงานที่ถูกต้องอยู่ถ้าผลลัพธ์จากการทำงานตามลำดับใหม่นั้นเหมือนกันกับผลลัพธ์ของลำดับเดิม

เมื่อผู้ใช้แต่ละคนทำรายการเปลี่ยนแปลงที่เครื่องของตนเอง จะส่งผลให้เกิดรายการเปลี่ยนแปลงจำนวนหลายรายการที่จะต้องถูกกระทำไปพร้อมกัน ซึ่งผลลัพธ์จากการทำรายการเปลี่ยนแปลงในเวลาเดียวกันนี้สามารถทำให้ผลลัพธ์ที่ไม่ถูกต้องได้ ถ้าไม่มีการรักษาลำดับของรายการเปลี่ยนแปลงไว้

ความคงทน (Durability)

เมื่อรายการเปลี่ยนแปลงถึงจุดสมบูรณ์ของมันแล้ว ผลลัพธ์จากการทำรายการนี้จะถูกเขียนลงจานแม่เหล็กในฐานข้อมูล และจะยังปรากฏอยู่ในฐานข้อมูล ถึงแม้ว่าหลังจากจุดสมบูรณ์จะเกิดความเสียหายกับระบบอันเนื่องมาจากโปรแกรมประยุกต์ ระบบปฏิบัติการ ระบบฐานข้อมูล หรือจานแม่เหล็ก

การเปลี่ยนแปลงที่เกิดจาการทำรายการเปลี่ยนแปลงจะถูกเขียนลงในแฟ้มข้อมูลซึ่งเก็บไว้ในจานแม่เหล็ก ข้อมูลที่บันทึกไว้นี้สามารถนำมาใช้เมื่อระบบฐานข้อมูลถูกเปิดขึ้นมาทำงานใหม่หลังจากความเสียหาย คุณสมบัติดังกล่าวทำให้ผลลัพธ์ของการทำรายการเปลี่ยนแปลงมีความน่าเชื่อถือมากขึ้น

 

 

Last Updated: 12/13/2001 11:20:20 AM
© โครงการเครือข่ายสารสนเทศเพื่อพัฒนาการศึกษา ทบวงมหาวิทยาลัย