การจัดการธุรกรรมใน DBMS: คุณสมบัติ ACID คืออะไร
ธุรกรรมฐานข้อมูลคืออะไร?
A ธุรกรรมฐานข้อมูล เป็นหน่วยการประมวลผลเชิงตรรกะใน DBMS ซึ่งเกี่ยวข้องกับการดำเนินการเข้าถึงฐานข้อมูลอย่างน้อยหนึ่งรายการ โดยสรุปแล้ว ธุรกรรมฐานข้อมูลแสดงถึงเหตุการณ์ในโลกแห่งความเป็นจริงขององค์กรใดๆ
การดำเนินการเข้าถึงฐานข้อมูลทุกประเภทที่อยู่ระหว่างคำสั่งธุรกรรมเริ่มต้นและสิ้นสุดถือเป็นธุรกรรมเชิงตรรกะเดียวใน DBMS ในระหว่างธุรกรรม ฐานข้อมูลจะไม่สอดคล้องกัน เมื่อมีการยืนยันฐานข้อมูลแล้วเท่านั้น สถานะจะเปลี่ยนจากสถานะที่สอดคล้องกันหนึ่งไปเป็นอีกสถานะหนึ่ง
ข้อเท็จจริงเกี่ยวกับธุรกรรมฐานข้อมูล
- ธุรกรรมคือหน่วยโปรแกรมที่การดำเนินการอาจเปลี่ยนแปลงเนื้อหาของฐานข้อมูลหรือไม่ก็ได้
- แนวคิดการทำธุรกรรมใน DBMS ดำเนินการเป็นหน่วยเดียว
- หากการดำเนินการฐานข้อมูลไม่ได้อัปเดตฐานข้อมูล แต่ดึงข้อมูลเท่านั้น ธุรกรรมประเภทนี้เรียกว่าธุรกรรมแบบอ่านอย่างเดียว
- ธุรกรรมที่สำเร็จสามารถเปลี่ยนฐานข้อมูลจากสถานะที่สอดคล้องกันหนึ่งไปยังอีกสถานะหนึ่งได้
- ธุรกรรม DBMS จะต้องเป็นแบบอะตอม สอดคล้อง แยกตัว และคงทน
- หากฐานข้อมูลอยู่ในสถานะไม่สอดคล้องกันก่อนธุรกรรม ฐานข้อมูลจะยังคงอยู่ในสถานะไม่สอดคล้องกันหลังธุรกรรม
เหตุใดคุณจึงต้องเห็นพ้องในธุรกรรม
ฐานข้อมูลเป็นทรัพยากรที่ใช้ร่วมกันที่เข้าถึงได้ มีผู้ใช้จำนวนมากและกระบวนการต่างๆ ถูกใช้ไปพร้อมๆ กัน ตัวอย่างเช่น ระบบธนาคาร ระบบจองรถไฟและทางอากาศ การติดตามตลาดหุ้น สินค้าคงคลังในซูเปอร์มาร์เก็ต และการชำระเงิน เป็นต้น
การไม่จัดการการเข้าถึงพร้อมกันอาจทำให้เกิดปัญหาเช่น:
- ความล้มเหลวของฮาร์ดแวร์และระบบล่ม
- การทำธุรกรรมเดียวกันพร้อมกัน การหยุดชะงักหรือประสิทธิภาพที่ช้า
สถานะของการทำธุรกรรม
สถานะต่างๆ ของแนวคิดธุรกรรมใน DBMS มีดังต่อไปนี้:
สถานะ | ประเภทธุรกรรม |
---|---|
สถานะใช้งาน | ธุรกรรมจะเข้าสู่สถานะใช้งานเมื่อกระบวนการดำเนินการเริ่มต้น ระหว่างสถานะนี้ การดำเนินการอ่านหรือเขียนสามารถดำเนินการได้ |
มุ่งมั่นบางส่วน | ธุรกรรมจะเข้าสู่สถานะที่มีความมุ่งมั่นบางส่วนหลังจากสิ้นสุดธุรกรรม |
รัฐที่มุ่งมั่น | เมื่อธุรกรรมมีความมุ่งมั่นในการระบุ ธุรกรรมดังกล่าวได้เสร็จสิ้นการดำเนินการเรียบร้อยแล้ว นอกจากนี้การเปลี่ยนแปลงทั้งหมดจะถูกบันทึกไว้ในฐานข้อมูลอย่างถาวร |
รัฐล้มเหลว | ธุรกรรมจะถือว่าล้มเหลวเมื่อการตรวจสอบรายการใดรายการหนึ่งล้มเหลว หรือหากธุรกรรมถูกยกเลิกในขณะที่อยู่ในสถานะใช้งานอยู่ |
รัฐที่สิ้นสุด | สถานะของธุรกรรมถึงสถานะสิ้นสุดเมื่อธุรกรรมบางอย่างที่จะออกจากระบบไม่สามารถเริ่มใหม่ได้ |
มาศึกษาก แผนภาพการเปลี่ยนสถานะ ที่เน้นย้ำถึงการเคลื่อนย้ายธุรกรรมระหว่างรัฐต่างๆ เหล่านี้
- เมื่อธุรกรรมระบุการดำเนินการแล้ว ธุรกรรมนั้นจะกลายเป็นการดำเนินการ และสามารถออกคำสั่งอ่านหรือเขียนได้
- เมื่อการดำเนินการอ่านและเขียนเสร็จสมบูรณ์ ธุรกรรมจะอยู่ในสถานะดำเนินการบางส่วน
- ถัดไป โปรโตคอลการกู้คืนบางอย่างจำเป็นต้องตรวจสอบให้แน่ใจว่าความล้มเหลวของระบบจะไม่ส่งผลให้ไม่สามารถบันทึกการเปลี่ยนแปลงในธุรกรรมได้อย่างถาวร หากการตรวจสอบนี้สำเร็จ ธุรกรรมจะกระทำและเข้าสู่สถานะที่มุ่งมั่น
- หากการตรวจสอบล้มเหลว ธุรกรรมจะเข้าสู่สถานะล้มเหลว
- หากธุรกรรมถูกยกเลิกในขณะที่อยู่ในสถานะใช้งาน ธุรกรรมจะเข้าสู่สถานะล้มเหลว ควรย้อนกลับธุรกรรมเพื่อเลิกทำผลของการดำเนินการเขียนบนฐานข้อมูล
- สถานะที่สิ้นสุดหมายถึงธุรกรรมที่ออกจากระบบ
คุณสมบัติของกรดคืออะไร?
คุณสมบัติของกรด ใช้เพื่อรักษาความสมบูรณ์ของฐานข้อมูลในระหว่างการประมวลผลธุรกรรม 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 สามประเภทนั้นขึ้นอยู่กับพื้นที่แอปพลิเคชัน การดำเนินการ และโครงสร้าง
- กำหนดการเป็นกระบวนการที่สร้างกลุ่มเดียวของธุรกรรมแบบขนานหลายรายการและดำเนินการทีละรายการ
- ความสามารถในการทำให้เป็นอนุกรมเป็นกระบวนการค้นหากำหนดการที่เกิดขึ้นพร้อมกันซึ่งมีเอาต์พุตเท่ากับกำหนดการแบบอนุกรมที่ธุรกรรมจะถูกดำเนินการทีละรายการ