บริษัทต้องการออกแบบฐานข้อมูลเก็บข้อมูลพนักงานและแผนกที่พนักงานสังกัด โดยพนักงานแต่ละคนสังกัดได้เพียงหนึ่งแผนก การออกแบบตารางใดต่อไปนี้เป็นไปตามหลักการ Normalization ในรูปแบบ 3NF ที่ถูกต้องที่สุด
กแยกเป็น 2 ตาราง คือ ตาราง Employee(EmpID, EmpName, DeptID) และตาราง Department(DeptID, DeptName) โดยใช้ DeptID เป็น Foreign Key เชื่อมความสัมพันธ์
ขเก็บข้อมูลทั้งหมดในตารางเดียว Employee(EmpID, EmpName, DeptID, DeptName) เพื่อลดความซับซ้อนในการ Query ข้อมูล
คแยกเป็น 2 ตาราง คือ ตาราง Employee(EmpID, EmpName, DeptName) และตาราง Department(DeptID, DeptName) โดยไม่มี Foreign Key เชื่อมกัน
งเก็บข้อมูลในตาราง Employee(EmpID, EmpName) และใช้ DeptName เป็น Attribute โดยตรงโดยไม่ต้องสร้างตาราง Department แยก
เฉลยอธิบาย
การออกแบบที่ถูกต้องตามหลัก 3NF คือการแยกตาราง Employee และ Department ออกจากกัน โดยตาราง Employee เก็บ EmpID, EmpName และ DeptID ซึ่ง DeptID ทำหน้าที่เป็น Foreign Key อ้างอิงไปยังตาราง Department(DeptID, DeptName) วิธีนี้ขจัด Transitive Dependency เพราะ DeptName ขึ้นกับ DeptID ไม่ใช่ EmpID โดยตรง และลด Data Redundancy ได้อย่างถูกต้อง