สัปดาห์ที่ 11: ฐานข้อมูลและการเชื่อมต่อ Backend

สัปดาห์นี้เรียนรู้การออกแบบและเชื่อมต่อฐานข้อมูลกับ Backend ตั้งแต่ SQL, SQLite/PostgreSQL, ORM, MongoDB/Mongoose, Database Schema Design ไปจนถึง Migration และ Seeding สำหรับการทำงานเป็นทีม

ผลลัพธ์การเรียนรู้

  1. เขียนคำสั่ง SQL สำหรับ CRUD, JOIN และ Aggregate ได้
  2. เชื่อมต่อ SQLite/PostgreSQL กับ Node.js ได้ในภาพรวม
  3. ใช้ Prisma หรือ Sequelize เพื่อจัดการข้อมูลผ่าน ORM ได้
  4. อธิบายแนวคิด NoSQL, MongoDB และ Mongoose ได้
  5. ออกแบบ ERD, Primary Key, Foreign Key และ Relationship ได้
  6. จัดการ Migration และ Seed Data ได้อย่างเป็นระบบ

บทเรียนย่อย

ลำดับ หัวข้อ ไฟล์บทเรียน สไลด์
1 SQL เบื้องต้น: SELECT, INSERT, UPDATE, DELETE, JOIN webprogram-11-database-backend-01-sql-basics.md webprogram-11-database-backend-01-sql-basics-slides.mdx
2 การใช้ SQLite/PostgreSQL กับ Node.js webprogram-11-database-backend-02-sqlite-postgresql-node.md webprogram-11-database-backend-02-sqlite-postgresql-node-slides.mdx
3 ORM ด้วย Prisma หรือ Sequelize webprogram-11-database-backend-03-orm-prisma-sequelize.md webprogram-11-database-backend-03-orm-prisma-sequelize-slides.mdx
4 NoSQL เบื้องต้น: MongoDB และ Mongoose webprogram-11-database-backend-04-nosql-mongodb-mongoose.md webprogram-11-database-backend-04-nosql-mongodb-mongoose-slides.mdx
5 Database Schema Design และ Relationship webprogram-11-database-backend-05-schema-design-relationship.md webprogram-11-database-backend-05-schema-design-relationship-slides.mdx
6 การจัดการ Migration และ Seeding webprogram-11-database-backend-06-migration-seeding.md webprogram-11-database-backend-06-migration-seeding-slides.mdx

ลำดับการเรียน

  1. เริ่มจาก SQL และคำสั่งจัดการข้อมูล
  2. ทดลองเชื่อมต่อฐานข้อมูลกับ Node.js
  3. ใช้ ORM เพื่อลด boilerplate และเพิ่ม type safety
  4. เปรียบเทียบ SQL กับ NoSQL
  5. ออกแบบ schema และ relationship
  6. จัดการ migration และ seed data สำหรับทีม

แบบทดสอบหลังเรียนภาพรวม

  1. DDL และ DML ต่างกันอย่างไร
  2. Parameterized Query ช่วยป้องกัน SQL Injection อย่างไร
  3. ORM ช่วยลดความซับซ้อนของ backend ได้อย่างไร
  4. MongoDB เหมาะกับข้อมูลลักษณะใด
  5. Junction Table ใช้ในความสัมพันธ์แบบใด
  6. เหตุใด migration file ควรถูก commit เข้า Git

กลับรายวิชา