พิจารณาตาราง StudentCourse (StudentID FK, CourseID FK, Grade, EnrollDate) โดยมี Composite PK เป็น (StudentID, CourseID) ปัญหาใดอาจเกิดขึ้นหากนักศึกษาลงทะเบียนวิชาเดิมซ้ำ (Retake) ในปีการศึกษาถัดไป

ควรลบตารางนี้และรวมข้อมูลเข้าตาราง Student แทน
ควรเปลี่ยน Composite PK เป็น Grade เป็น PK แทน
ไม่สามารถบันทึกการลงทะเบียนซ้ำได้เพราะ (StudentID, CourseID) ซ้ำกัน จึงควรเพิ่ม Semester หรือ AcademicYear เข้าใน Composite PK
ไม่มีปัญหา เพราะ Composite PK ป้องกันความซ้ำซ้อนได้อยู่แล้ว

เฉลยอธิบาย

เมื่อนักศึกษาลงทะเบียนวิชาเดิมในเทอมอื่น (StudentID, CourseID) จะซ้ำกัน ทำให้ INSERT ล้มเหลวเพราะละเมิด PK Constraint วิธีแก้คือเพิ่ม Semester หรือ AcademicYear เข้าใน Composite PK เป็น (StudentID, CourseID, Semester) ตัวเลือก A ผิดเพราะการ Retake จะทำให้เกิดปัญหา ตัวเลือก C ผิดเพราะ Grade ไม่ใช่ตัวระบุเอกลักษณ์ ตัวเลือก D ผิดเพราะการรวมตารางจะเกิด Redundancy

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

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