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