การควบคุมการใช้ระบบฐานข้อมูล

บูรณภาพของข้อมูล

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

การรักษาความถูกต้องของข้อมูลในฐานข้อมูลจะต้องเป็นไปตามกฏเกณฑ์ที่ถูกต้อง ได้แก่

  • กฏเกณฑ์ในเรื่องความถูกต้องของตัวข้อมูลเอง
  • กฏเกณฑ์ในเรื่องความสัมพันธ์ระหว่างข้อมูล
  • กฏเกณฑ์ในการประมวลผลรายการเปลี่ยนแปลงในฐานข้อมูล

กฎเกณฑ์เกี่ยวกับ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 และความคงทน (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
Wutthiphon Tassana
Wutthiphon Tassana