ระบบโทรคมนาคมมีตาราง Call (CallID, CallerNumber, ReceiverNumber, Duration, CallTime) และต้องรองรับ Query ค้นหาประวัติการโทรของเบอร์โทรศัพท์หนึ่งๆ บ่อยครั้ง กลยุทธ์การสร้าง Index ที่เหมาะสมที่สุดคือข้อใด

สร้าง Composite Index บน (CallerNumber, CallTime) และ Index แยกบน ReceiverNumber เพื่อรองรับการค้นหาทั้งผู้โทรออกและผู้รับสาย
สร้าง Index เฉพาะบน CallID ซึ่งเป็น Primary Key เพราะระบบจัดการ Index ให้อัตโนมัติและเพียงพอสำหรับทุก Query
สร้าง Index บน Duration และ CallTime เพื่อรองรับการกรองข้อมูลตามช่วงเวลาและความยาวของการโทร
สร้าง Unique Index บน CallerNumber และ ReceiverNumber พร้อมกันเพื่อป้องกันการบันทึกการโทรซ้ำและเพิ่มความเร็วในการค้นหา

เฉลยอธิบาย

Query ค้นหาประวัติการโทรของเบอร์หนึ่งๆ มักใช้เงื่อนไข WHERE CallerNumber = ? หรือ WHERE ReceiverNumber = ? การสร้าง Composite Index บน (CallerNumber, CallTime) ช่วยให้ค้นหาผู้โทรออกและเรียงตามเวลาได้เร็ว ส่วน Index แยกบน ReceiverNumber รองรับการค้นหาฝั่งผู้รับสาย ทำให้ครอบคลุมทั้ง 2 กรณีที่พบบ่อยในระบบโทรคมนาคม ตัวเลือกอื่นไม่ตรงกับ Query ที่ระบุหรือใช้ Index ไม่ถูกวัตถุประสงค์

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

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