Basic of SQL and Database - up1/training-courses GitHub Wiki
Course :: Basic of SQL and Database
เนื้อหาหลักสูตร
เป็นหลักสูตรสำหรับปูพื้นฐานของการออกแบบการจัดการข้อมูลในฐานข้อมูล ตั้งการการทำ data modeling เพื่อให้ตรงกับปัญหา use case หรือความต้องการ รวมทั้งเรื่องของ Data model ที่มีหลากหลายรูปแบบ ทั้ง
- Relational หรือ เชิงความสัมพันธ์
- NoSQL ชนิดต่าง ๆ เช่น Key-value, Document-based เป็นต้น
จากนั้นทำความเข้าใจของ trade-off ของการออกแบบ ตามแนวคิดของ Nomalization และ Denomalization ว่าเป็นอย่างไร เมื่อใดควรใช้หรือไม่ควรใช้ รวมทั้งปัญหาที่จะตามมา จากการออกแบบในรูปแบบต่าง ๆ
โดยใน workshop จะใช้งาน PostgreSQL database เพื่อให้เข้าใจและเห็นภาพมากยิ่งขึ้น ทั้ง
- การสร้าง table และความสัมพันธ์ประเภทต่าง ๆ
- การใช้งานคำสั่ง CRUD (create, read, update, delete)
- การสร้าง constraint ต่าง ๆ เพื่อจัดการความถูกต้องของข้อมูล
- การสร้างและใช้งาน index ประเภทต่าง ๆ เพื่อปรับปรุงประสิทธิภาพของการดึงข้อมูล
Pre-Requisite (ความรู้, เครื่องมืออุปกรณ์)
- Database PosgreSQL
- Text edittor
Course Outline
Day 1
- Database Management System
- ทำความเข้าใจเกี่ยวกับ Data model ของการจัดการข้อมูล
- Relational
- NoSQL
- Key-value
- Document-based
- Column-based
- Graph
- Time-serie
- Search - Vector
- หลักการในการออกแบบ Relational Database Model
- ชุดคำสั่งพื้นฐานของ SQL
- การสร้าง table, constraint (Nullable, Not null, Unique) - Data types ต่าง ๆ เช่น NULL value,
- การใช้งาน CRUD(Create, READ, Update, Delete) operation
- การจัดการความสัมพันธ์ระหว่าง table
- One-to-one
- One-to-many
- Many-to-many
- การใช้งาน Index สำหรับการปรับปรุงประสิทธิภาพของการดึงข้อมูล
- ชุดคำสั่งพื้นฐานของการดึงข้อมูล
- SELECT and Sub-query
- Filtering with Conditions (WHERE)
- Aggregate Functions (Count, Sum, Average) with Summarizing Data (GROUP BY)
- Joins with relationships (JOINS)
- Data Manipulation and Transformation (CASE)
- Summarize data
- Normalization vs Denormalization
- Design for read and Design for write
- ชุดคำสั่งพื้นฐานของ SQL
Day 2
-
การใช้งาน Database
- Architecture ของ Database
- Standalone
- Master-slave
- Cluster
- Design for scaling
- การออกแบบ และ ใช้งาน Database
- การใช้งาน Index ประเภทต่าง ๆ
- Architecture ของ Database
-
Workshop with PostgreSQL database
- Install
- Essential configuration and tuning
- Max connection
- Shared buffers
- Max memory
- Effective cache size
- Checkpoint timeout
- WAL buffers
- Enable logging and slow query
- Monitoring database
-
Workshop with use cases
- Create data into database
- Query with complex data
- Explain query
- Tuning query and database