บริษัท A มี 2 ตาราง: Products (ID, Name, Price) และ Orders (OrderID, ProductID, Quantity) หากทำเป็นตารางเดียวกันโดยแทรก Product Name และ Price โดยตรงในตาราง Orders ปัญหาใดอาจเกิดขึ้น

ทั้ง A และ C ถูกต้อง
Delete Anomaly - เมื่อลบคำสั่งซื้อ จะเสียข้อมูลราคาสินค้า
Update Anomaly - เมื่อราคาสินค้าเปลี่ยน ต้องอัปเดตทุกรายการสั่งซื้อของสินค้านั้น ซึ่งอาจมีจำนวนมาก และอาจลืมอัปเดตบางรายการ
ไม่มีปัญหา เพราะข้อมูลถูกเก็บในตารางเดียว

เฉลยอธิบาย

การแทรก Product Name และ Price ลงในตาราง Orders จะเกิดปัญหา Anomalies ทั้งสองแบบ: (1) Update Anomaly - เมื่อราคาเปลี่ยน ต้องอัปเดตทุกรายการสั่งซื้อของสินค้านั้น (Data Redundancy) (2) Delete Anomaly - เมื่อลบคำสั่งซื้อสุดท้ายของสินค้า จะเสียข้อมูลราคาและชื่อสินค้า วิธีแก้คือเก็บแยกตาราง และใช้ JOIN เพื่อดึงข้อมูล ตัวเลือก A, C ถูกแต่ไม่ครบถ้วน ตัวเลือก B ผิด

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

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