ชุดที่ 8 ระบบฐานข้อมูล การออกแบบ และภาษา SQL
✍️ ฝึกทำ เห็นผลทันทีเมื่อส่ง
ชุดนี้สำหรับผู้ที่มีสิทธิ์ชุดข้อสอบนี้
ซื้อชุดตะลุยข้อสอบ หรือคอร์สติวที่รวมชุดนี้ไว้ เพื่อทำได้ไม่จำกัด
รายละเอียดชุดนี้
ชุดนี้ครอบคลุมแนวคิดฐานข้อมูลและ DBMS แบบจำลองเชิงสัมพันธ์ คีย์และบูรณภาพของข้อมูล ER Diagram การแปลงเป็นตาราง การทำให้เป็นบรรทัดฐาน (1NF–3NF) คำสั่ง SQL ทั้ง DDL DML และ DCL การค้นคืนด้วย WHERE GROUP BY HAVING JOIN และคำสั่งย่อย ทรานแซกชันและ ACID ดัชนี วิว ความปลอดภัย SQL Injection NoSQL และการใช้ฐานข้อมูลกับ Python เน้นการไล่ผลลัพธ์คำสั่งจริง
ซีรีส์ตะลุยข้อสอบครูผู้ช่วย เอกคอมพิวเตอร์ 2569 • exammvp.com
สรุปก่อนทำข้อสอบ
แนวคิดพื้นฐาน
- ลำดับชั้นข้อมูล: บิต → ไบต์ → เขตข้อมูล (Field) → ระเบียน (Record) → แฟ้ม/ตาราง → ฐานข้อมูล
- DBMS ลดความซ้ำซ้อนและความขัดแย้งของข้อมูล ควบคุมการเข้าถึง รองรับผู้ใช้พร้อมกัน สำรองและกู้คืนได้
- ศัพท์เชิงสัมพันธ์: รีเลชัน = ตาราง · ทูเพิล = แถว · แอตทริบิวต์ = คอลัมน์ · ดีกรี = จำนวนคอลัมน์ · คาร์ดินาลิตี = จำนวนแถว
- คีย์: Candidate key (ระบุแถวได้ไม่ซ้ำ) → เลือกเป็น Primary key (ห้ามซ้ำ ห้ามว่าง) · Foreign key อ้างอิงคีย์หลักของอีกตาราง (Referential integrity) · Composite key ใช้หลายคอลัมน์ร่วมกัน
การออกแบบ
- ER แบบ Chen: สี่เหลี่ยม = เอนทิตี · วงรี = แอตทริบิวต์ (ขีดเส้นใต้ = คีย์) · สี่เหลี่ยมขนมเปียกปูน = ความสัมพันธ์
- 1:N → ใส่คีย์ของฝั่ง 1 เป็นคีย์นอกในตารางฝั่ง N · M:N → สร้างตารางเชื่อมที่มีคีย์ของทั้งสองฝั่ง
- 1NF: ค่าในช่องเป็นค่าเดี่ยว ไม่มีกลุ่มซ้ำ · 2NF: ไม่มีการขึ้นต่อบางส่วนของคีย์ประกอบ · 3NF: ไม่มีการขึ้นต่อแบบถ่ายทอด (คีย์ → A → B)
- ความผิดปกติ (Anomaly): การเพิ่ม การลบ และการแก้ไข
SQL
- DDL: CREATE · ALTER · DROP · TRUNCATE | DML: SELECT · INSERT · UPDATE · DELETE | DCL: GRANT · REVOKE
- ลำดับการประมวลผล: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT
- WHERE กรองแถวก่อนจัดกลุ่ม · HAVING กรองกลุ่มหลังจัดกลุ่ม · ฟังก์ชันรวม (COUNT, SUM, AVG, MAX, MIN) ไม่นับ NULL ยกเว้น COUNT(*)
- เปรียบเทียบ NULL ต้องใช้ IS NULL / IS NOT NULL · BETWEEN รวมค่าขอบ · LIKE: % แทนอักขระกี่ตัวก็ได้ _ แทนหนึ่งตัว
- INNER JOIN เอาเฉพาะแถวที่จับคู่ได้ · LEFT JOIN เอาทุกแถวของตารางซ้าย ส่วนที่ไม่มีคู่เป็น NULL · ผลคูณคาร์ทีเซียน = จำนวนแถว × จำนวนแถว
- ทรานแซกชัน ACID: Atomicity · Consistency · Isolation · Durability · ป้องกัน SQL Injection ด้วย Parameterized query
ตารางตัวอย่างที่ใช้ในหลายข้อ
- Student (sid, name, room, score): (1, Anan, M4/1, 78) (2, Bua, M4/2, 85) (3, Chai, M4/1, 62) (4, Dao, M4/2, 91) (5, Ek, M4/1, NULL) (6, Fon, M4/3, 80)
- Club (cid, cname): (10, Robot) (20, Music) (30, Art)
- Member (sid, cid): (1, 10) (2, 10) (4, 20) (6, 10) (4, 10)