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

การเปิดเผยความโดดเดี่ยว: การแยกธุรกรรมออกจากกัน

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

เช่นเดียวกับที่เราใช้ Mutex และ Semaphores เพื่อปกป้องตัวแปร ฐานข้อมูลใช้การล็อค (ที่ใช้ร่วมกันและพิเศษ) เพื่อปกป้องธุรกรรมจากการเหยียบเท้าของกันและกัน

เหตุใดการแยกจึงมีความสำคัญ: ความสมบูรณ์ของข้อมูล

การแยกเป็นคุณสมบัติที่สำคัญสำหรับกลไกฐานข้อมูล หากไม่มีสิ่งนี้ ความสมบูรณ์ของข้อมูลอาจถูกบุกรุกได้

ลองพิจารณาตัวอย่างในโลกแห่งความเป็นจริง:

  • พอร์ทัล Cowin: เมื่อช่องของโรงพยาบาลเปิด ระบบจะรับประกันว่าจะสามารถจองคนได้เพียงจำนวนที่กำหนดเท่านั้น
  • Flash Sale: ระหว่างการขาย ระบบจะป้องกันการสั่งซื้อเกินหน่วยที่มีอยู่
  • การจองเที่ยวบิน: การจองต้องไม่เกินความจุที่นั่งของเที่ยวบิน
  • การโอนเงิน: การโอนเงินพร้อมกันช่วยให้มั่นใจว่าเงินทั้งหมดยังคงสม่ำเสมอในทุกฝ่าย

การแยกส่วนช่วยให้มั่นใจในการตรวจสอบเหล่านี้ภายในฐานข้อมูล โดยรักษาความสอดคล้องของข้อมูลแม้ท่ามกลางธุรกรรมจำนวนมากที่เกิดขึ้นพร้อมกัน

การดำเนินการแยกตัว: ล็อคทาง

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

ระดับการล็อคขึ้นอยู่กับระดับการแยกที่เลือก ฐานข้อมูลมีระดับการแยกหลายระดับ โดยกำหนดว่าการล็อคมีความเข้มงวดเพียงใด สี่ระดับคือ:

  • ทำให้เป็นอนุกรมได้
  • อ่านซ้ำได้
  • อ่านมุ่งมั่น
  • อ่านไม่มีข้อผูกมัด

ข้อมูลเชิงลึกโดยละเอียดเกี่ยวกับระดับการแยกตัวจะมีการสำรวจในการอภิปรายแยกต่างหาก

โดยสรุป: พลังแห่งความโดดเดี่ยว

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