บูรณภาพของข้อมูล
บูรณภาพของข้อมูล ทำให้ข้อมูลในระบบฐานข้อมูลมีความถูกต้องอยู่เสมอ โดยการเปลี่ยนแปลงข้อมูลจากผู้ใช้ฐานข้อมูลหรือโดยระบบจัดการฐานข้อมูลจะต้องยังผลให้ข้อมูลและความสัมพันธ์ระหว่างข้อมูลถูกต้องตามโครงสร้างของฐานข้อมูล
การรักษาความถูกต้องของข้อมูลในฐานข้อมูลจะต้องเป็นไปตามกฏเกณฑ์ที่ถูกต้อง ได้แก่
- กฏเกณฑ์ในเรื่องความถูกต้องของตัวข้อมูลเอง
- กฏเกณฑ์ในเรื่องความสัมพันธ์ระหว่างข้อมูล
- กฏเกณฑ์ในการประมวลผลรายการเปลี่ยนแปลงในฐานข้อมูล
กฎเกณฑ์เกี่ยวกับAttribute
- บูรณภาพของ Key (Key integrity)
- การที่ค่าของ KeyKeyจะต้องเป็นค่าที่มีเอกลักษณ์ ไม่ซ้ากับข้อมูลในแถวอื่น
- บูรณภาพของ Entity (Entity integrity)
- Attribute ที่เป็นคีย์หลักไม่สามารถเป็นค่าว่างได้
- บูรณภาพของการอ้างอิง Attribute (Referential integrity)
- การอ้างอิงถึง AttributeAttributeจากความสัมพันธ์หนึ่งในความสัมพันธ์ใด จะต้องเป็นการอ้างอิงถึง Attribute ที่มีอยู่จริงในความสัมพันธ์นั้น
- การอ้างอิงถึง Attribute ที่ไม่มีอยู่จริงจะทาให้ไม่สามารถรักษาบูรณภาพของข้อมูลไว้ได้
การประมวลผลรายการเปลี่ยนแปลง
- รายการเปลี่ยนแปลง (Transaction)
- คือ การทางานของระบบจัดการฐานข้อมูลที่ท าหน้าที่ในการจัดการบางอย่าง เช่น แก้ไข เพิ่ม หรือลบข้อมูลในฐานข้อมูล
- คุณสมบัติที่จำเป็นสำหรับรายการเปลี่ยนแปลง
- รายการเปลี่ยนแปลงที่เกิดขึ้น กับฐานข้อมูลจะต้องมีคุณสมบัติครบถ้วน เพื่อรักษาบูรณภาพของฐานข้อมูลเอาไว้
- ระบบจัดการฐานข้อมูลจะไม่อนุญาติให้รายการเปลี่ยนแปลงที่ขาดคุณสมบัติเข้าสู่การประมวลผล
- การจัดลำดับการประมวลผลรายการเปลี่ยนแปลง
- ระบบจัดการฐานข้อมูลจะอนุญาตให้มีการประมวลผลเฉพาะลาดับรายการเปลี่ยนแปลงที่ถูกต้องเท่านั้น
- การยกเลิกการประมวลผลรายการเปลี่ยนแปลง
- รายการเปลี่ยนแปลงที่ยังไม่ผ่านจุดสมบูรณ์ ณ เวลานั้นจะต้องถูกยกเลิก เพื่อให้ข้อมูลกลับมาอยู่ในสถานะที่มั่นคงดังเดิม
- คุณสมบัติ Transaction (ACID)
- ความเป็นอันหนึ่งอันเดียวกัน (Atomicity): ทุกการกระทำของ Transaction จะต้องทำงานโดยสมบูรณ์ตั้งแต่เริ่มต้นจนกระทั่งจบการทางาน หรือไม่ก็ต้องยกเลิกทั้งหมด
- Commit คือ รายการเปลี่ยนแปลงที่ถูกทาจนได้ผลลัพธ์เรียบร้อย
- Abort คือ รายการเปลี่ยนแปลงที่เกิดความผิดพลาดและไม่ถูกทำเลย
- การยกเลิกคือการนำค่าเดิมก่อนเริ่ม ทำรายการเปลี่ยนแปลงกลับมาเก็บเป็นค่าปัจจุบัน
- ความสอดคล้อง (Consistency): แต่ละ Transaction จะต้องมีความถูกต้อง สอดคล้องกันเสมอ
- การแยกตัว (Isolation): การทำงานพร้อมกัน
- โดยจะไม่อนุญาตให้แต่ละ Transaction เปลี่ยนแปลงข้อมูลได้ในเวลาพร้อม ๆ กัน จะต้องมีการรอคอยให้ Transaction ที่อยู่ลำดับก่อนหน้าได้จัดการข้อมูลให้เสร็จสิ้นเสียก่อน
- รายการเปลี่ยนแปลงแต่ละรายการจะถูกแยกออกจากกัน
- ผลลัพธ์ของรายการเปลี่ยนแปลงนี้จะเปิดเผยแต่รายการเปลี่ยนแปลงอื่นก็ต่อเมื่อถึงจุดสมบูรณ์ (Commit) ของรายการนี้เท่านั้น
- ความคงทน (Durability): ผลลัพธ์จากการทำงานของ Transaction ที่สมบรูณ์แล้วจะยังคงอยู่ในฐานข้อมูลถึงแม้ว่าระบบจะหยุดทำงาน
- เมื่อ Transaction ถึงจุดสมบูรณ์แล้ว (Commit) ผลลัพธ์จากการทำรายการนี้ ระบบจะต้องคงข้อมูลที่ได้รับการแก้ไขหรืออัปเดตตาม Transaction นั้นไว้ ถึงแม้ว่าจะเกิดเหตุการณ์ที่ก่อให้เกิดความเสียหายขึ้นในภายหลัง
- ข้อมูลที่บันทึกไว้นี้สามารถนำมาใช้เมื่อระบบฐานข้อมูลถูกเปิดขึ้นมาทำงานใหม่หลังจากความเสียหาย
- ความเป็นอันหนึ่งอันเดียวกัน (Atomicity): ทุกการกระทำของ Transaction จะต้องทำงานโดยสมบูรณ์ตั้งแต่เริ่มต้นจนกระทั่งจบการทางาน หรือไม่ก็ต้องยกเลิกทั้งหมด
- การกู้คืน
- ระบบความสามารถในการกู้คืนจะเป็นตัวช่วยให้ระบบฐานข้อมูลสามารถกลับสู่สภาพเดิมก่อนที่ระบบจะเกิดความเสียหายได้ และจะต้องรักษาบูรณภาพของข้อมูลไว้ได้ทั้งหมด
- โดยรักษาสถานะของข้อมูลที่เป็นผลลัพธ์ของรายการเปลี่ยนแปลงเมื่อผ่านจุดสมบูรณ์แล้วไว้ และเพิกเฉยต่อผลลัพธ์ที่เกิดจากรายการเปลี่ยนแปลงที่ยังไม่ผ่านจุดสมบูรณ์
- ตามคุณสมบัติความเป็นอันหนึ่งอันเดียวกัน (Atomicity และความคงทน (Durability)
- เมื่อมีความเกิดความเสียหายเกิดขึ้น กับฐานข้อมูล รายการเปลี่ยนแปลงที่ถูกกระทำไปแล้วและยังไม่ผ่านจุดสมบูรณ์ของรายการเปลี่ยนแปลงจะต้องถูกยกเลิก
- ภาวะพร้อมกัน (Concurrency)
- หมายความว่า การที่มี Transaction หลาย ๆ Transaction ต้องการเรียกใช้ข้อมูลเดียวกันในเวลาเดียวกันจากฐานข้อมูลเพื่อ ทำงานของแต่ละ Transaction
- ภาวะการทำงานพร้อมกันเกิดจากระบบการทำงานได้ 2 ระบบ
- การทำงานในระบบหลายโปรแกรม (Multi programming)
- การประมวลผลในเวลาเดียวกัน (Simultaneous processing)
- การควบคุมภาวะความพร้อมกัน
- ล็อกกิง (locking)
- ไทม์แสตมป์ (time stamp)
- ออปทิมิสทิก (optimistic)
ประเภทของการ Lock
- Exclusive Lock (ยึดไว้เลยคนเดียว)
- คือการ Lock โดยไม่ให้ Transaction อื่นใช้ข้อมูลที่ถูก Lock นั้น
- ผู้ที่ใช้ Lock แบบนี้จะเป็นผู้เดียวที่สามารถเปลี่ยนแปลงข้อมูลที่ Lock ไว้ผู้ใช้คนอื่น ๆ จะไม่สามารถอ่านหรือแก้ไขระเบียนนั้นได้เลย จนกว่าจะมีการปล่อย Lock
- เช่น คำสั่ง “WRITE”
- Share Lock
- คือ การกำหนดสถานะของข้อมูลให้ใช้งานร่วมกันกับ Transaction อื่นได้
- เช่น คำสั่ง “READ”
จะเห็นได้ว่า T1 มีการ WAIT จนกว่า T2 ที่เริ่มทำงานก่อนจะ Commit/Unlock
Post Views: 117