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 (ความรู้, เครื่องมืออุปกรณ์)

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

Day 2

  • การใช้งาน Database

    • Architecture ของ Database
      • Standalone
      • Master-slave
      • Cluster
    • Design for scaling
    • การออกแบบ และ ใช้งาน Database
    • การใช้งาน Index ประเภทต่าง ๆ
  • 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