1.ง่าย
CROSS JOIN ให้ผลลัพธ์อะไร?
- Aทุกชุดค่าผสมของแถวจากสองตาราง
- Bเฉพาะแถวที่ไม่ตรงกัน
- Cเฉพาะแถวที่ตรงกันบนคอลัมน์คีย์ร่วม
- Dเฉพาะแถวของตารางแรก
2.ง่าย
คีย์ผู้สมัคร (candidate key) คืออะไร?
- Aคอลัมน์ที่รอเป็นคีย์นอก
- Bคอลัมน์ใดก็ตามที่มีค่า NULL
- Cชุดคอลัมน์ที่ใช้ร่วมกันระหว่างสองตารางเพื่อเชื่อมแถว
- Dชุดคอลัมน์ที่เล็กที่สุดที่ระบุแต่ละแถวได้อย่างไม่ซ้ำกัน
3.ง่าย
ข้อจำกัด UNIQUE บนคอลัมน์รับประกันอะไร?
- Aไม่มีสองแถวใดมีค่าที่ไม่ใช่ NULL เหมือนกันในคอลัมน์นั้น
- Bค่าในคอลัมน์เปลี่ยนไม่ได้หลังแทรก
- Cค่าในคอลัมน์ถูกเรียงลำดับ
- Dคอลัมน์นั้นกลายเป็นคีย์หลักของตารางโดยอัตโนมัติ
4.ปานกลาง
คีย์นอกถูกประกาศด้วย ON DELETE CASCADE เกิดอะไรขึ้นเมื่อแถวแม่ถูกลบ?
- Aคีย์นอกในแถวลูกถูกตั้งเป็น NULL โดยอัตโนมัติ
- Bแถวลูกที่อ้างอิงแถวนั้นถูกลบโดยอัตโนมัติ
- Cการลบถูกปฏิเสธเสมอ
- Dแถวแม่ถูกคัดลอกไปยังตารางเก็บถาวร
5.ปานกลาง
ตารางเก็บที่อยู่ของลูกค้าในทุกแถวคำสั่งซื้อ การเปลี่ยนที่อยู่ในแถวหนึ่งแต่ไม่เปลี่ยนในแถวอื่นเป็นตัวอย่างของ:
- Aความผิดปกติในการแทรก (insertion anomaly)
- Bความผิดปกติในการแก้ไข (update anomaly)
- Cphantom read
- Dความผิดปกติในการลบ (deletion anomaly)
6.ปานกลาง
เหตุใดจึงสร้างดัชนี (index) บนคอลัมน์?
- Aเพื่อให้การแทรกและการแก้ไขข้อมูลบนคอลัมน์เหล่านั้นเร็วขึ้น
- Bเพื่อป้องกันค่า NULL
- Cเพื่อเร่งการค้นหาและการเชื่อมบนคอลัมน์เหล่านั้น
- Dเพื่อประหยัดพื้นที่ดิสก์
7.ยาก
การล็อกสองระยะ (two-phase locking, 2PL) รับประกัน:
- Aตารางเวลาที่ conflict-serializable
- Bว่าทรานแซกชันไม่ต้องรอเลย
- Cว่า deadlock ไม่มีทางเกิดขึ้น
- Dว่าไม่ต้องใช้ล็อก
8.ยาก
มีดัชนีประกอบบน (last_name, first_name) เงื่อนไขใดใช้ดัชนีนี้ได้อย่างมีประสิทธิภาพที่สุด?
- AWHERE first_name LIKE '%a'
- BWHERE first_name = 'Eva'
- CWHERE last_name = 'Jansen'
- DWHERE UPPER(first_name) = 'EVA'
เฉลย
- 1. A · ทุกชุดค่าผสมของแถวจากสองตาราง
- 2. D · ชุดคอลัมน์ที่เล็กที่สุดที่ระบุแต่ละแถวได้อย่างไม่ซ้ำกัน
- 3. A · ไม่มีสองแถวใดมีค่าที่ไม่ใช่ NULL เหมือนกันในคอลัมน์นั้น
- 4. B · แถวลูกที่อ้างอิงแถวนั้นถูกลบโดยอัตโนมัติ
- 5. B · ความผิดปกติในการแก้ไข (update anomaly)
- 6. C · เพื่อเร่งการค้นหาและการเชื่อมบนคอลัมน์เหล่านั้น
- 7. A · ตารางเวลาที่ conflict-serializable
- 8. C · WHERE last_name = 'Jansen'
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com