เมื่อฐานข้อมูลต้องรองรับผู้ใช้จำนวนมากพร้อมกันและมีการแก้ไขข้อมูลพร้อมกันหลายครั้ง การที่สองธุรกรรมอ่านข้อมูลเดียวกันแล้วได้ค่าต่างกัน (Dirty Read) เป็นปัญหาเกี่ยวกับระดับการแยกแยะแบบใด?

Read Committed เพราะอนุญาตให้อ่านได้เฉพาะค่าที่ธุรกรรมอื่น commit แล้ว
Read Uncommitted เพราะยอมให้ธุรกรรมอ่านการเปลี่ยนแปลงที่ยังไม่ commit
Repeatable Read เพราะรักษาค่าที่อ่านแล้วให้คงเดิมตลอดธุรกรรมเดียวกัน
Serializable เพราะทำให้ผลของธุรกรรมพร้อมกันเทียบได้กับการทำงานตามลำดับ

เฉลยอธิบาย

Read Uncommitted ตามมาตรฐานเป็นระดับที่อาจยอมให้ dirty read ส่วนระดับสูงกว่าป้องกันปรากฏการณ์นี้ ดังนั้นคำตอบที่เหมาะที่สุดคือ “Read Uncommitted เพราะยอมให้ธุรกรรมอ่านการเปลี่ยนแปลงที่ยังไม่ commit” ส่วนตัวลวงที่ใกล้เคียงที่สุดไม่ผ่านเพราะ Read Committed ป้องกัน dirty read ด้วยการไม่เปิดเผยค่าที่ยังไม่ commit

ข้อสอบอื่นในวิชาความรู้เกี่ยวกับระบบฐานข้อมูล (Database System) และ ระบบการบริหารจัดการข้อมูล (Database Management System)

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