Skip to main content

แนะนำการต่อ Database

go-api-postgresql สามารถดู video ของหัวข้อนี้ก่อนได้ ดู video

Database คืออะไร ?

Database คืือ collection ของ data ที่ถูกเก็บเอาไว้ โดยตัว data นั้นสามารถถูกเก็บ, ถูกจัดการ และสามารถถูกดึงนำมาใช้ได้ โดยจุดประสงค์ของการใช้ Database (เทียบกับการเก็บ data แบบทั่วไป)

  • Structured Data = data สามารถถูกกำหนดผ่าน table, collection ให้เป็นระเบียบและมีโครงสร้างได้
  • Database Management Systems (DBMS) = มี software สำหรับจัดการ Database ที่ช่วย create, read, update, and delete data ที่อยู่ใน Database
  • Data Integrity and Transactions = สามารถจัดการให้ข้อมูลสมบูรณ์และถูกต้องอยู่ตลอดได้ รวมถึงสามารถจัดการ transaction, triggers ที่สามารถจัดการ operation พร้อมกันทีละหลายๆ operation ได้
  • Scalability = สามารถรองรับ transaction จำนวนมากและ scale (ขยายเพิ่ม) เพื่อรองรับ transaction จำนวนมากได้
  • Security = Database มักจะมาพร้อมกับ feature ป้องกัน sensitive data ซึ่งจะช่วยจัดการเรื่อง user access controls, encryption รวมถึง security network พื้นฐานเพื่อไม่ให้คนทั่วๆไปสามารถเข้าถึง Database ได้โดยง่าย

ประเภทของ Database

Database นั้นเองก็มีหลายประเภท ตามแต่รูปแบบของข้อมูลที่จะให้จัดเก็บ แต่ในทีนี้ เพื่อให้ง่าย เราจะแบ่งออกเป็น 2 ประเภทใหญ่ๆก่อนคือ

  1. Relational Databases
  • เก็บ data แบบ pre defined structured data (data ที่มีการกำหนดรูปแบบไว้แล้ว) ในรูปแบบของ table โดยจัดเก็บเป็นรูปแบบ row, column
  • data สามารถสร้าง relation ระหว่าง table กันผ่าน foreign keys ได้
  • มักใช้ภาษา SQL (Structured Query Language) เป็นตัวสำหรับจัดการ query และจัดการ data
  • เช่น PostgreSQL, MySQL, Microsoft SQL
  1. NoSQL Databases
  • สามารถเก็บ data แบบ unstructured (ไม่ต้องมีรูปแบบตายตัวได้) โดยไม่มีการ strict format
  • ถูก design ขึ้นมาสำหรับการเก็บข้อมูลขนาดใหญ่และการเก็บข้อมูลแบบกระจ่าย
  • เช่น MongoDB, Cassandra, CouchDB

โดยเพื่อเป็นการปูพื้นฐานการใช้ Database เราจะเริ่มต้นจาก Relational Databases ก่อน เพื่อให้เข้าใจความเป็น Structure ของการเก็บข้อมูลใน Database

เราจะทำอะไรกันบ้างใน Session นี้

  1. รู้จักพื้นฐานของ PostgreSQL
  2. พื้นฐาน SQL Query ที่ใช้งานร่วมกับ PostgreSQL
  3. การดึงข้อมูลผ่าน Go ด้วย database/sql ผ่าน SQL Query
  • CRUD
  • JOIN
  • Transaction
  1. ใช้งานร่วมกับ Fiber
  • สร้าง API พื้นฐานสำหรับ CRUD