บริษัทต้องการออกแบบฐานข้อมูลเก็บข้อมูลพนักงานและแผนกที่พนักงานสังกัด โดยพนักงานแต่ละคนสังกัดได้เพียงหนึ่งแผนก การออกแบบตารางใดต่อไปนี้เป็นไปตามหลักการ 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 ได้อย่างถูกต้อง

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

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