1.ง่าย
แผนภาพเอนทิตี–ความสัมพันธ์ (ER diagram) ใช้ทำอะไร?
- Aสร้างแบบจำลองเอนทิตี แอตทริบิวต์ และความสัมพันธ์เมื่อออกแบบฐานข้อมูล
- Bแสดงรายชื่อผู้ใช้ฐานข้อมูล
- Cวัดประสิทธิภาพฐานข้อมูล
- Dแสดงว่าคิวรีถูกประมวลผลอย่างไร
2.ง่าย
ใน PostgreSQL และ MySQL อนุประโยคใดคืนเฉพาะ 10 แถวแรกของผลลัพธ์?
- AMAX 10
- BFIRST 10 ONLY
- CLIMIT 10
- DTOP ROWS 10
3.ง่าย
คีย์นอก (foreign key) คือ:
- Aคีย์ที่ถูกเข้ารหัสเสมอ
- Bคอลัมน์ที่ค่าต้องไม่ซ้ำกันทุกแถวของตาราง
- Cคีย์ที่ผู้ใช้ต่างชาติใช้
- Dคอลัมน์ที่อ้างอิงคีย์หลักของอีกตารางหนึ่ง
4.ปานกลาง
เหตุใดจึงสร้างดัชนี (index) บนคอลัมน์?
- Aเพื่อป้องกันค่า NULL
- Bเพื่อประหยัดพื้นที่ดิสก์
- Cเพื่อให้การแทรกและการแก้ไขข้อมูลบนคอลัมน์เหล่านั้นเร็วขึ้น
- Dเพื่อเร่งการค้นหาและการเชื่อมบนคอลัมน์เหล่านั้น
5.ปานกลาง
ตาราง employees มีคอลัมน์ manager_id ที่อ้างอิงพนักงานอีกคน จะแสดงพนักงานแต่ละคนคู่กับชื่อผู้จัดการได้อย่างไร?
- Aรวมตารางกับตัวมันเองด้วย UNION ALL และตัวกรอง WHERE
- Bสร้างสำเนาที่สองของตารางบนดิสก์
- Cเชื่อมตาราง employees กับตัวเองโดยใช้ชื่อแฝงสองชื่อ
- Dใช้ GROUP BY manager_id อย่างเดียว
6.ปานกลาง
คอลัมน์มีค่า 10, 20 และ NULL AVG(col) คืนค่าอะไร?
- ANULL
- B15
- C10
- D30
7.ยาก
กฎการบันทึกล็อกล่วงหน้า (write-ahead logging, WAL) กำหนดอะไร?
- Aระเบียนล็อกของการเปลี่ยนแปลงต้องถึงที่เก็บข้อมูลเสถียรก่อนหน้าข้อมูลที่เปลี่ยน
- Bล็อกถูกเขียนหลังระบบล่มเท่านั้น
- Cหน้าข้อมูลต้องถูกเขียนก่อนล็อก
- Dทุกคิวรีต้องถูกบันทึกล็อกก่อนถูกแยกวิเคราะห์
8.ยาก
เหตุใด DBMS จำนวนมากจึงใช้ strict two-phase locking โดยถือล็อกแบบเอกสิทธิ์จนถึง commit?
- Aทำให้ deadlock เป็นไปไม่ได้
- Bป้องกัน cascading abort เพราะไม่มีใครอ่านการเขียนที่ยังไม่ commit ได้
- Cไม่ต้องใช้ล็อกของทรานแซกชัน
- Dทำให้ทรานแซกชันอ่านข้อมูล dirty ได้อย่างปลอดภัย
เฉลย
- 1. A · สร้างแบบจำลองเอนทิตี แอตทริบิวต์ และความสัมพันธ์เมื่อออกแบบฐานข้อมูล
- 2. C · LIMIT 10
- 3. D · คอลัมน์ที่อ้างอิงคีย์หลักของอีกตารางหนึ่ง
- 4. D · เพื่อเร่งการค้นหาและการเชื่อมบนคอลัมน์เหล่านั้น
- 5. C · เชื่อมตาราง employees กับตัวเองโดยใช้ชื่อแฝงสองชื่อ
- 6. B · 15
- 7. A · ระเบียนล็อกของการเปลี่ยนแปลงต้องถึงที่เก็บข้อมูลเสถียรก่อนหน้าข้อมูลที่เปลี่ยน
- 8. B · ป้องกัน cascading abort เพราะไม่มีใครอ่านการเขียนที่ยังไม่ commit ได้
เฉลยทีละขั้นตอนฉบับเต็ม: ฝึกหัวข้อนี้ได้ที่ examproblems.com