ระบบธนาคารต้องจัดการ Concurrent Transactions จำนวนมาก เช่น ลูกค้าสองคนโอนเงินจากบัญชีเดียวกันพร้อมกัน ยอดเงิน 1000 บาท แต่ระบบแสดงยอดผิดพลาด ปัญหานี้เรียกว่าอะไร และแก้ไขด้วยวิธีใด

Race Condition หรือ Lost Update ปัญหานี้แก้ด้วยการใช้ Transaction Isolation Level ที่เหมาะสม เช่น Serializable
Data Corruption แก้ไขด้วยการสำรองข้อมูลบ่อยขึ้น
Deadlock แก้ไขด้วยการเพิ่ม Index
Buffer Overflow แก้ไขด้วยการเพิ่มหน่วยความจำเซิร์ฟเวอร์

เฉลยอธิบาย

ปัญหานี้เรียกว่า Lost Update หรือ Race Condition ใน Concurrent Transaction เมื่อสองธุรกรรมอ่านค่าพร้อมกัน คำนวณ แล้วเขียนทับกัน ทำให้การอัพเดทของธุรกรรมแรกสูญหาย แก้ไขด้วย Transaction Isolation Level เช่น Serializable หรือ Repeatable Read หรือใช้ Optimistic/Pessimistic Locking ตัวเลือก A เป็นผลเสียหายทั่วไป C คือ deadlock ซึ่งไม่แก้ด้วยดัชนี และ D เป็นปัญหาหน่วยความจำคนละประเภท ตัวเลือก B จึงตรงกับ lost update และแนวทางควบคุม concurrency

ข้อสอบอื่นในวิชาการวิเคราะห์ระบบ ออกแบบฐานข้อมูลและการพัฒนาระบบสารสนเทศ

ดูข้อสอบวิชานี้ทั้งหมด →