ในการวิเคราะห์ฐานข้อมูลของห้องเรียน ข้อมูลมี นักเรียน วิชา และคะแนน ซึ่งนักเรียนหนึ่งคนเรียนวิชาหลายวิชา และวิชาหนึ่งมีนักเรียนหลายคน ถ้าต้องการเก็บข้อมูลคะแนนสอบและวันที่สอบ ควรจัดโครงสร้างตารางอย่างไรที่ดีที่สุด
กสร้าง 2 ตาราง: Students ที่มี Score และ ExamDate เพิ่มเติม, และ Subjects
ขสร้าง 3 ตาราง: Students, Subjects, Enrollments โดย Enrollments เก็บ StudentID, SubjectID, Score, ExamDate
คสร้าง 4 ตาราง: Students, Subjects, Enrollments, Exams
งสร้าง 1 ตาราง: รวม Students, Subjects, Score และ ExamDate ไว้ในตารางเดียวกันทั้งหมด โดยแต่ละแถวเก็บชื่อนักเรียน ชื่อวิชา คะแนน และวันที่สอบซ้ำกันตามจำนวนวิชาที่ลงทะเบียน
เฉลยอธิบาย
โครงสร้างที่ดีที่สุดคือ 3 ตาราง: Students (ข้อมูลนักเรียน), Subjects (ข้อมูลวิชา), Enrollments (ตารางกลางที่เก็บความสัมพันธ์และเก็บ StudentID, SubjectID, Score, ExamDate) วิธีนี้หลีกเลี่ยง Data Redundancy และทำให้โครงสร้างสอดคล้องกับหลักการ Normalization ตัวเลือก B ผิดเพราะจะเกิด Redundancy เมื่อเก็บคะแนนในตาราง Students ตัวเลือก C มีตารางมากเกินไป ตัวเลือก D ไม่เป็นปกติ