การจัดการธุรกรรมใน DBMS: คุณสมบัติ ACID คืออะไร

ธุรกรรมฐานข้อมูลคืออะไร?

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

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

ธุรกรรมฐานข้อมูล
ธุรกรรมฐานข้อมูล

ข้อเท็จจริงเกี่ยวกับธุรกรรมฐานข้อมูล

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

เหตุใดคุณจึงต้องเห็นพ้องในธุรกรรม

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

การไม่จัดการการเข้าถึงพร้อมกันอาจทำให้เกิดปัญหาเช่น:

  • ความล้มเหลวของฮาร์ดแวร์และระบบล่ม
  • การทำธุรกรรมเดียวกันพร้อมกัน การหยุดชะงักหรือประสิทธิภาพที่ช้า

สถานะของการทำธุรกรรม

สถานะต่างๆ ของแนวคิดธุรกรรมใน DBMS มีดังต่อไปนี้:

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

มาศึกษาก แผนภาพการเปลี่ยนสถานะ ที่เน้นย้ำถึงการเคลื่อนย้ายธุรกรรมระหว่างรัฐต่างๆ เหล่านี้

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

คุณสมบัติของกรดคืออะไร?

คุณสมบัติของกรด ใช้เพื่อรักษาความสมบูรณ์ของฐานข้อมูลในระหว่างการประมวลผลธุรกรรม ACID ใน DBMS ย่อมาจาก Aความโหดเหี้ยม, Cความมั่นคง, Iปลอบใจและ Dความทนทาน

  • Atomน้ำแข็ง: ธุรกรรมคือหน่วยการดำเนินการเดียว คุณสามารถดำเนินการทั้งหมดหรือไม่ดำเนินการเลยก็ได้ ไม่สามารถดำเนินการเพียงบางส่วนได้
  • สอดคล้อง: เมื่อธุรกรรมถูกดำเนินการแล้ว ควรย้ายจากสถานะที่สอดคล้องกันหนึ่งไปยังอีกสถานะหนึ่ง
  • การแยก: ธุรกรรมควรดำเนินการแยกจากธุรกรรมอื่น (ไม่มีการล็อก) ในระหว่างการดำเนินการธุรกรรมพร้อมกัน ผลลัพธ์ของธุรกรรมกลางจากธุรกรรมที่ดำเนินการพร้อมกันไม่ควรเปิดเผยต่อกัน (ระดับ 0,1,2,3)
  • ความทนทาน:· หลังจากเสร็จสิ้นธุรกรรมเรียบร้อยแล้ว การเปลี่ยนแปลงในฐานข้อมูลควรคงอยู่ แม้ว่าระบบจะล้มเหลวก็ตาม

คุณสมบัติ ACID ใน DBMS พร้อมตัวอย่าง

ด้านล่างนี้เป็นตัวอย่างของคุณสมบัติ ACID ใน DBMS:

Transaction 1: Begin X=X+50, Y = Y-50 END
Transaction 2: Begin X=1.1*X, Y=1.1*Y END

ธุรกรรมที่ 1 กำลังโอนเงิน $50 จากบัญชี X ไปยังบัญชี Y

ธุรกรรมที่ 2 จะให้เครดิตแต่ละบัญชีพร้อมดอกเบี้ย 10%

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

ประเภทของธุรกรรม

ขึ้นอยู่กับพื้นที่การใช้งาน

  • ไม่กระจายกับกระจาย
  • การชดเชยธุรกรรม
  • ระยะเวลาการทำธุรกรรม
  • ออนไลน์กับแบทช์

ขึ้นอยู่กับการกระทำ

  • สองขั้นตอน
  • จำกัด
  • รูปแบบการดำเนินการ

ขึ้นอยู่กับโครงสร้าง

  • ธุรกรรมแบบแบนหรือแบบง่าย: ประกอบด้วยลำดับของการดำเนินการดั้งเดิมที่ดำเนินการระหว่างการดำเนินการเริ่มต้นและการดำเนินการสิ้นสุด
  • ธุรกรรมที่ซ้อนกัน: ธุรกรรมที่มีธุรกรรมอื่น ๆ
  • Workflow

กำหนดการคืออะไร?

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

ตัวอย่าง

Initial Product Quantity is 10
Transaction 1: Update Product Quantity to 50
Transaction 2: Read Product Quantity

หากมีการดำเนินการธุรกรรม 2 ก่อนธุรกรรม 1 ข้อมูลที่ล้าสมัยเกี่ยวกับปริมาณผลิตภัณฑ์จะถูกอ่าน ดังนั้นจึงจำเป็นต้องมีกำหนดการ

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

ความเท่าเทียมกันของผลลัพธ์:

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

ดูความเท่าเทียมกัน

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

ความเท่าเทียมกันของความขัดแย้ง

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

ความสามารถในการทำให้เป็นอนุกรมคืออะไร?

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

  • ขัดกัน
  • รายละเอียด

สรุป

  • การจัดการธุรกรรมเป็นหน่วยการประมวลผลเชิงตรรกะใน DBMS ที่เกี่ยวข้องกับการดำเนินการเข้าถึงฐานข้อมูลอย่างน้อยหนึ่งรายการ
  • มันคือธุรกรรมคือหน่วยโปรแกรมที่การดำเนินการอาจเปลี่ยนแปลงเนื้อหาของฐานข้อมูลหรือไม่ก็ได้
  • การไม่จัดการการเข้าถึงพร้อมกันอาจทำให้เกิดปัญหา เช่น ความล้มเหลวของฮาร์ดแวร์และระบบล่ม
  • ใช้งานอยู่, มุ่งมั่นบางส่วน, มุ่งมั่น, ล้มเหลว & ยุติเป็นสถานะของธุรกรรมที่สำคัญ
  • คุณสมบัติของ ACID เต็มรูปแบบใน DBMS is Atomน้ำแข็ง ความสม่ำเสมอ ความโดดเดี่ยว และความทนทาน
  • ธุรกรรม DBMS สามประเภทนั้นขึ้นอยู่กับพื้นที่แอปพลิเคชัน การดำเนินการ และโครงสร้าง
  • กำหนดการเป็นกระบวนการที่สร้างกลุ่มเดียวของธุรกรรมแบบขนานหลายรายการและดำเนินการทีละรายการ
  • ความสามารถในการทำให้เป็นอนุกรมเป็นกระบวนการค้นหากำหนดการที่เกิดขึ้นพร้อมกันซึ่งมีเอาต์พุตเท่ากับกำหนดการแบบอนุกรมที่ธุรกรรมจะถูกดำเนินการทีละรายการ