เมื่อลบข้อมูลลูกค้าออก แต่ยังมีข้อมูลคำสั่งซื้อของลูกค้านั้นอยู่ในฐานข้อมูล จะเกิดปัญหา Referential Integrity หรือไม่ และควรแก้อย่างไร

ต้องลบข้อมูลคำสั่งซื้อก่อน แล้วค่อยลบข้อมูลลูกค้า
ไม่เกิดปัญหา เพราะข้อมูลคำสั่งซื้อยังสามารถมีอยู่ได้
ใช่ เพราะมี Foreign Key ชี้ไปยังลูกค้าที่ไม่มีอยู่แล้ว ต้องกำหนด ON DELETE CASCADE หรือ ON DELETE SET NULL
เกิดปัญหา Normalization เท่านั้น ไม่ใช่ Referential Integrity

เฉลยอธิบาย

Referential Integrity คือการรักษาความสอดคล้องของข้อมูลระหว่างตาราง โดยต้องป้องกันไม่ให้ Foreign Key ชี้ไปยังข้อมูลที่ไม่มีอยู่ วิธีแก้ปัญหาคือกำหนด ON DELETE CASCADE (ลบข้อมูลที่เกี่ยวข้องด้วย) หรือ ON DELETE SET NULL (ตั้งค่า Foreign Key เป็น NULL) ตัวเลือก B ผิดเพราะจะเกิด Orphaned Records ตัวเลือก C ผิดเพราะเป็นเรื่องต่างกัน

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

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