ScholarGate
ผู้ช่วย

ธุรกรรม ACID

ธุรกรรม ACID รับประกันว่ากลุ่มของการดำเนินการฐานข้อมูลจะทำงานเป็นหน่วยเดียวที่เชื่อถือได้ ซึ่งเป็นแบบอะตอมมิค (atomic) รักษาความสอดคล้อง (consistency-preserving) แยกจากธุรกรรมอื่น (isolated) และคงทนถาวร (durable) เมื่อมีการยืนยัน (committed) แล้ว

ค้นหาหัวข้อด้วย PaperMindเร็ว ๆ นี้Find papers & topics
Tools & resources
ดาวน์โหลดสไลด์
Learn & explore
วิดีโอเร็ว ๆ นี้

Definition

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

Scope

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

Core questions

  • คุณสมบัติแต่ละข้อของ ACID รับประกันอะไรบ้าง?
  • การยืนยันและการยกเลิกกำหนดพฤติกรรมแบบทั้งหมดหรือไม่มีเลยของธุรกรรมได้อย่างไร?
  • การแยกเกี่ยวข้องกับ serializability และการควบคุมการทำงานพร้อมกันอย่างไร?
  • ความคงทนถาวรเกิดขึ้นได้อย่างไรแม้ระบบจะล่ม?
  • ข้อจำกัดของแบบจำลองธุรกรรมสำหรับงานที่ใช้เวลานานหรืองานแบบกระจายมีอะไรบ้าง?

Key concepts

  • หน่วยงานธุรกรรม
  • อะตอมมิค
  • ความสอดคล้อง
  • การแยก
  • ความคงทนถาวร
  • การยืนยันและการยกเลิก
  • การย้อนกลับ
  • แบบจำลองสถานะธุรกรรม

Key theories

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

Clinical relevance

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

History

จิม เกรย์ (Jim Gray) ได้อธิบายแนวคิดของธุรกรรม คุณธรรมและข้อจำกัดของมันในปี 1981; ฮาร์เดอร์และรอยเตอร์ (Härder and Reuter) ได้บัญญัติคำย่อ ACID ในการสำรวจการกู้คืนที่เน้นธุรกรรมในปี 1983 แนวคิดเหล่านี้ซึ่งพัฒนาขึ้นรอบๆ ระบบ R ของ IBM ได้กลายเป็นแบบจำลองมาตรฐานของการประมวลผลข้อมูลที่เชื่อถือได้ และเป็นรากฐานของระบบฐานข้อมูลที่ตามมาทั้งหมด

Key figures

  • Jim Gray
  • Andreas Reuter
  • Theo Härder

Related topics

Seminal works

  • gray1981
  • haerder1983
  • gray1992

Frequently asked questions

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

Methods for this concept

Related concepts