รูปแบบ ACID ของการออกแบบฐานข้อมูลเป็นหนึ่งในแนวคิดที่เก่าแก่และสำคัญที่สุดของทฤษฎีฐานข้อมูล มันกำหนดเป้าหมายสี่ประการที่ทุกระบบการจัดการฐานข้อมูลต้องมุ่งมั่นเพื่อให้บรรลุ: atomicity ความสม่ำเสมอความโดดเดี่ยวและความทนทาน ฐานข้อมูลเชิงสัมพันธ์ที่ไม่สามารถปฏิบัติตามเป้าหมายทั้งสี่นี้ไม่สามารถเชื่อถือได้ ฐานข้อมูลที่มีคุณลักษณะเหล่านี้ถือว่าเป็น ACID
ระบุกรด
ลองใช้เวลาสักครู่เพื่อตรวจสอบแต่ละลักษณะเหล่านี้ในรายละเอียด:
- อะตอมมิกซิตี้ ระบุว่าการปรับเปลี่ยนฐานข้อมูลต้องเป็นไปตามกฎ "ทั้งหมดหรือไม่มีเลย" แต่ละรายการมีการกล่าวถึงว่าเป็น "อะตอม" หากส่วนหนึ่งของธุรกรรมล้มเหลวธุรกรรมทั้งหมดล้มเหลว เป็นสิ่งสำคัญที่ระบบการจัดการฐานข้อมูลจะรักษาลักษณะอะตอมของการทำธุรกรรมแม้จะมีระบบ DBMS ระบบปฏิบัติการหรือฮาร์ดแวร์ล้มเหลวก็ตาม
- ความมั่นคง ระบุว่าจะมีการเขียนข้อมูลที่ถูกต้องลงในฐานข้อมูลเท่านั้น ถ้าด้วยเหตุผลบางอย่างธุรกรรมถูกดำเนินการที่ละเมิดกฎความสอดคล้องของฐานข้อมูลการทำธุรกรรมทั้งหมดจะถูกยกเลิกและฐานข้อมูลจะถูกเรียกคืนไปยังสถานะที่สอดคล้องกับกฎเหล่านั้น ในทางกลับกันถ้าการทำธุรกรรมสำเร็จจะใช้ฐานข้อมูลจากรัฐหนึ่งที่สอดคล้องกับกฎไปยังสถานะอื่นที่สอดคล้องกับกฎด้วย
- ความเหงา กำหนดให้ธุรกรรมหลายรายการเกิดขึ้นในเวลาเดียวกันไม่ส่งผลต่อการดำเนินการของผู้อื่น ตัวอย่างเช่นถ้า Joe ออกธุรกรรมกับฐานข้อมูลในเวลาเดียวกันกับที่ Mary ออกธุรกรรมอื่นธุรกรรมทั้งสองควรทำงานบนฐานข้อมูลในลักษณะที่แยกต่างหาก ฐานข้อมูลควรทำธุรกรรมทั้งหมดของ Joe ก่อนดำเนินการ Mary's หรือ vice-versa การทำเช่นนี้จะป้องกันการทำธุรกรรมของ Joe จากการอ่านข้อมูลระดับกลางซึ่งเป็นผลข้างเคียงของส่วนหนึ่งของการทำธุรกรรมของ Mary ที่จะไม่ได้มุ่งมั่นกับฐานข้อมูลในที่สุด โปรดทราบว่าคุณสมบัติการแยกไม่ได้รับประกันว่าการทำธุรกรรมใดที่จะดำเนินการก่อนเพียงว่าธุรกรรมจะไม่รบกวนกันและกัน
- ความทนทาน มั่นใจได้ว่าธุรกรรมใด ๆ ที่ทำกับฐานข้อมูลจะไม่สูญหาย ความทนทานจะมั่นใจผ่านการใช้ฐานข้อมูลการสำรองข้อมูลและบันทึกการทำธุรกรรมที่อำนวยความสะดวกในการฟื้นฟูการทำธุรกรรมที่มุ่งมั่นแม้จะมีซอฟต์แวร์หรือฮาร์ดแวร์ที่ตามมาล้มเหลว
วิธีการทำงานของกรดในทางปฏิบัติ
ผู้ดูแลระบบฐานข้อมูลใช้กลยุทธ์หลายอย่างในการบังคับใช้ ACID
หนึ่งที่ใช้ในการบังคับ atomicity และความทนทานเป็น เขียนบันทึกล่วงหน้า (WAL) ซึ่งรายละเอียดการทำรายการจะถูกเขียนขึ้นครั้งแรกในบันทึกที่มีข้อมูลการทำซ้ำและเลิกทำ เพื่อให้แน่ใจว่าฐานข้อมูลสามารถตรวจสอบบันทึกและเปรียบเทียบเนื้อหากับสถานะของฐานข้อมูลได้
อีกวิธีหนึ่งที่ใช้ในการระบุถึงความเป็นปึกแผ่นและความทนทานคือ เงาเพจ ซึ่งจะมีการสร้างหน้าเงาเมื่อต้องการแก้ไขข้อมูล การปรับปรุงของแบบสอบถามจะถูกเขียนลงในหน้าเงาแทนที่จะเป็นข้อมูลจริงในฐานข้อมูล ฐานข้อมูลมีการแก้ไขเฉพาะเมื่อการแก้ไขเสร็จสิ้น
กลยุทธ์อื่นเรียกว่า การกระทำสองเฟส โปรโตคอลที่มีประโยชน์อย่างยิ่งในระบบฐานข้อมูลแบบกระจาย โปรโตคอลนี้แยกคำขอเพื่อปรับเปลี่ยนข้อมูลออกเป็นสองขั้นตอนคือเฟสการร้องขอแบบคำขอและขั้นตอนการส่งมอบ ในเฟรมคำขอทุก DBMS ในเครือข่ายที่ได้รับผลกระทบจากธุรกรรมจะต้องยืนยันว่าได้รับและมีความสามารถในการทำธุรกรรม เมื่อได้รับการยืนยันจาก DBMSs ที่เกี่ยวข้องแล้วขั้นตอนการกระทำจะเสร็จสมบูรณ์ซึ่งข้อมูลจะได้รับการแก้ไขจริง