ACID database

ACID

ในวงการ computer ACID ย่อมาจาก Atomicity, Consistency, Isolation, Durability ซึ่งทั้งหมดคือ กลุ่มของคุณสมบัติสำหรับ database transactions ตามความหมายของ “database”  transactions จะหมายถึง ชุดกระบวนการทาง database ที่มีต่อข้อมูล เช่น การโอนเงินข้ามธนาคาร จะมีกระบวการที่เกิดขึ้นคือ หักเงินจากบัญชีหนึ่ง ไปใส่เพิ่มในอีกบัญชีหนึ่ง ซึ่งทั้งหมดรวมกันเป็น 1 transaction

คุณสมบัติ ACID

Atomicity

requires that each transaction be "all or nothing"

คือ การที่แต่ละ transacion ต้อง “all or nothing”  หมายถึง ถ้ามีกระบวนการใดหรือส่วนหนึ่งส่วนใด fail ทั้งหมดของ transaction นั้นมีค่าเป็น fail และ database จะยกเลิกการเปลี่ยนแปลงที่เกิดจาก transaction นั้น รวมถึงรับประกันว่าต้องรองรับทุกสถานการณ์ที่อาจจะเกินขึ้น ไม่ว่าจะไฟดับ หรือ ระบบล่ม

Consistency

ensures that any transaction will bring the database from one valid state to another

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

Isolation

ensures that the concurrent execution of transactions

คือคุณสมบัติที่จะมั่นใจว่า ทุกๆผลลัพธ์จากการทำงานของ transactions จะถูกต้อง ต่อให้กระบวกการของ transactions ก่อนจะไม่สมบูรณ์ ก็จะไม่มีผลกระทบต่อ transactions อื่นๆ

Durability

ensures that once a transaction has been committed

คือ คุณสมบัติที่เมื่อใดก็ตามที่ transaction มีการ “committed” ข้อมูล transaction นั้นจะต้องยังคงอยู่ครบถ้วน ถึงแม้จะเกิดไฟดับ หรือ ระบบล่มหลังจากนั้น ซึ่งใน relational database เมื่อใดก็ตามที่ รัน SQL ผลลัพธ์จะต้องถูกเก็บลงถาวรเพื่อป้องกันระบล่ม โดยจะต้องถูกเก็บลงใน non-volatile memory

 

Author: Suphakit Annoppornchai

Credit: https://saixiii.com,https://en.wikipedia.org

3 Thoughts to “คุณสมบัติของ ACID database คืออะไร มีอะไรบ้าง”

  1. […] ACID สามารถอ่านเพิ่มเติมได้ที่ คุณสมบัติของ ACID คืออะไร […]

Leave a Reply