Skip to main content

แนะนำ Mysql และ Database

dom-event-javascript สามารถดู video ของหัวข้อนี้ก่อนได้ ดู video

เราเดินทางมาถึงจุดที่ 5 ของแผนผัง - Database

intro-1 ฐานข้อมูล คือสิ่งที่ใช้สำหรับเก็บข้อมูลที่เกิดขึ้นภายในเว็บไซต์ไว้ เช่น

  • ข้อมูลการสมัครของ user
  • ข้อมูลสินค้าที่ใช้ขายของ
  • ข้อมูลการซื้อขาย ทุกข้อมูลจะถูกเก็บในฐานข้อมูล ความสะดวกสบายกว่าการเก็บใส่ disk ของฐานข้อมูลคือ เหล่าฐานข้อมูลพวกนี้จะมีความสามารถเรียกใช้งานที่ง่ายกว่า (ผ่านคำสั่งที่เตรียมไว้) มันจึงเหมาะสำหรับการเอาไปใช้เก็บข้อมูลร่วมกับ Backend server

ปกติฐานข้อมูลแบ่งเป็น 2 ประเภท คือ SQL และ NoSQL

intro-2

Ref: https://phoenixnap.com/kb/sql-vs-nosql

  1. Relational Database (ตระกูล SQL)

คือฐานข้อมูลที่จะเก็บข้อมูลไว้เป็นโครงสร้างที่ถูกกำหนดไว้ก่อนแล้ว ปกติจะอยู่ในรูปแบบตาราง เช่น user เราสร้าง column สำหรับจัดเก็บข้อมูล ชื่อ, นามสกุล, เพศ ก็จะต้องเก็บอยู่ใน column เท่านั้น

ตัวอย่างการเก็บข้อมูล intro-3

Ref: https://phoenixnap.com/kb/what-is-a-relational-database

ตัวที่เราจะใช้

Mysql เป็น ฐานข้อมูลแบบ Relational Database แบบนึงที่ต้องกำหนด column ในการเก็บฐานข้อมูลให้ชัดเจนและสื่อสารผ่านภาษา SQL เพื่อให้เราสามารถึงข้อมูลที่ต้องการออกมาจากฐานข้อมูลได้

  1. Non - Relational Database (ตระกูล NoSQL)

คือฐานข้อมูลที่จะเก็บข้อมูลไว้แบบ Dynamic นั่นคือ ไม่จำเป็นต้องกำหนดโครงสร้างพื้นฐานก่อนก็สามารถเก็บข้อมูลเข้าไปได้ เช่น เรามีตารางชื่อ users ถ้า

  • user คนแรกมีชื่อจริง, นามสกุล
  • user อีกคนมีชื่อจริง, นามสกุล, ชื่อกลาง
  • user อีกคนมีแค่ชื่อจริง ทั้ง 3 คนนี้สามารถจัดเก็บไว้ในตารางเดียวกันได้ (ศัพท์ฝั่ง NoSQL ส่วนนึงจะเรียกว่า เก็บไว้ใน collection เดียวกันได้)

ตัวอย่างการเก็บข้อมูล

intro-4

Ref: https://learn.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data

info

เราจะยังไม่เรียนรู้กันในตอนนี้ NoSQL เป็น technology ที่มีหลากหลายประเภทมาก เราจะพาเล่นกันอีกทีใน session อื่นๆ

Reference