1.ง่าย
คีย์แทน (surrogate key) คืออะไร?
- Aคีย์ที่สร้างจากข้อมูลจริง เช่น อีเมล
- Bคีย์ที่ใช้เฉพาะในวิว
- Cตัวระบุที่สร้างขึ้นซึ่งไม่มีความหมายทางธุรกิจ เช่น id ที่เพิ่มอัตโนมัติ
- Dคีย์ที่อ้างอิงอีกตารางหนึ่ง
2.ง่าย
อนุประโยคใดกรองแถวก่อนการจัดกลุ่ม?
- AGROUP BY
- BWHERE
- CHAVING
- DORDER BY
3.ง่าย
คำสั่งใดเพิ่มคอลัมน์ใหม่ให้ตารางที่มีอยู่?
- AINSERT COLUMN
- BCREATE COLUMN
- CALTER TABLE
- DUPDATE TABLE
4.ปานกลาง
คุณสมบัติ ACID ใดหมายความว่าทรานแซกชันที่ทำพร้อมกันไม่เห็นการเปลี่ยนแปลงที่ยังไม่เสร็จของกันและกัน?
- ADurability
- BAvailability
- CAtomicity
- DIsolation
5.ปานกลาง
WHERE EXISTS (subquery) เป็นจริงสำหรับแถวเมื่อใด?
- Aเมื่อซับคิวรีคืนอย่างน้อยหนึ่งแถว
- Bเมื่อซับคิวรีไม่คืนค่า NULL
- Cเมื่อซับคิวรีคืนหนึ่งแถวพอดี
- Dเมื่อซับคิวรีคืนตัวเลขที่มากกว่าศูนย์
6.ปานกลาง
ROLLBACK TO SAVEPOINT s1 ทำอะไร?
- Aจบทรานแซกชันและ commit ทั้งหมด
- Bยกเลิกทั้งทรานแซกชันตั้งแต่ต้น
- Cยกเลิกการเปลี่ยนแปลงหลังจุดบันทึก s1 โดยคงทรานแซกชันไว้
- Dลบจุดบันทึกและตารางทั้งหมดที่เปลี่ยนตั้งแต่นั้น
7.ยาก
เหตุใด NATURAL JOIN จึงถือว่าเสี่ยงในคิวรีที่ใช้งานจริง?
- Aเชื่อมบนทุกคอลัมน์ที่ชื่อเดียวกัน คอลัมน์ใหม่จึงอาจเปลี่ยนผลลัพธ์โดยไม่รู้ตัว
- Bเพิกเฉยคีย์หลักและคีย์นอกและเก็บเฉพาะแถว NULL
- Cคืนผลคูณคาร์ทีเซียนเสมอ
- Dไม่มีฐานข้อมูลใดรองรับ
8.ยาก
สำหรับการเชื่อมแบบเท่ากันระหว่างสองตารางใหญ่ที่ไม่มีดัชนีที่เป็นประโยชน์ ตัวปรับแต่งมักเลือกอัลกอริทึมการเชื่อมใด?
- Ahash join
- Bcross join
- Cbitmap join บนคีย์หลัก
- Dnested loop join ที่ค้นด้วยดัชนี
เฉลย
- 1. C · ตัวระบุที่สร้างขึ้นซึ่งไม่มีความหมายทางธุรกิจ เช่น id ที่เพิ่มอัตโนมัติ
- 2. B · WHERE
- 3. C · ALTER TABLE
- 4. D · Isolation
- 5. A · เมื่อซับคิวรีคืนอย่างน้อยหนึ่งแถว
- 6. C · ยกเลิกการเปลี่ยนแปลงหลังจุดบันทึก s1 โดยคงทรานแซกชันไว้
- 7. A · เชื่อมบนทุกคอลัมน์ที่ชื่อเดียวกัน คอลัมน์ใหม่จึงอาจเปลี่ยนผลลัพธ์โดยไม่รู้ตัว
- 8. A · hash join
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com