แนะนำ Mysql และ Database
สามารถดู video ของหัวข้อนี้ก่อนได้ ดู video
เราเดินทางมาถึงจุดที่ 5 ของแผนผัง - Database
ฐานข้อมูล คือสิ่งที่ใช้สำหรับเก็บข้อมูลที่เกิดขึ้นภายในเว็บไซต์ไว้ เช่น
- ข้อมูลการสมัครของ user
- ข้อมูลสินค้าที่ใช้ขายของ
- ข้อมูลการซื้อขาย ทุกข้อมูลจะถูกเก็บในฐานข้อมูล ความสะดวกสบายกว่าการเก็บใส่ disk ของฐานข้อมูลคือ เหล่าฐานข้อมูลพวกนี้จะมีความสามารถเรียกใช้งานที่ง่ายกว่า (ผ่านคำสั่งที่เตรียมไว้) มันจึงเหมาะสำหรับการเอาไปใช้เก็บข้อมูลร่วมกับ Backend server
ปกติฐานข้อมูลแบ่งเป็น 2 ประเภท คือ SQL และ NoSQL
Ref: https://phoenixnap.com/kb/sql-vs-nosql
- Relational Database (ตระกูล SQL)
คือฐานข้อมูลที่จะเก็บข้อมูลไว้เป็นโครงสร้างที่ถูกกำหนดไว้ก่อนแล้ว ปกติจะอยู่ในรูปแบบตาราง เช่น user เราสร้าง column สำหรับจัดเก็บข้อมูล ชื่อ, นามสกุล, เพศ ก็จะต้องเก็บอยู่ใน column เท่านั้ น
ตัวอย่างการเก็บข้อมูล
Ref: https://phoenixnap.com/kb/what-is-a-relational-database
Mysql เป็น ฐานข้อมูลแบบ Relational Database แบบนึงที่ต้องกำหนด column ในการเก็บฐานข้อมูลให้ชัดเจนและสื่อสารผ่านภาษา SQL เพื่อให้เราสามารถึงข้อมูลที่ต้องการออกมาจากฐานข้อมูลได้
- Non - Relational Database (ตระกูล NoSQL)
คือฐานข้อมูลที่จะเก็บข้อมูลไว้แบบ Dynamic นั่นคือ ไม่จำเป็นต้องกำหนดโครงสร้างพื้นฐานก่อนก็สามารถเก็บข้อมูลเข้าไปได้ เช่น เรามีตารางชื่อ users ถ้า
- user คนแรกมีชื่อจริง, นามสกุล
- user อีกคนมีชื่อจริง, นามสกุล, ชื่อกลาง
- user อีกคนมีแค่ชื่อจริง ทั้ง 3 คนนี้สามารถจัดเก็บไว้ในตารางเดียวกันได้ (ศัพท์ฝั่ง NoSQL ส่วนนึงจะเรียกว่า เก็บไว้ใน collection เดียวกันได้)
ตัวอย่างการเก็บข้อมูล
Ref: https://learn.microsoft.com/en-us/azure/architecture/data-guide/big-data/non-relational-data
เราจะยังไม่เรียนรู้กันในตอนนี้ NoSQL เป็น technology ที่มีหลากหลายประเภทมาก เราจะพาเล่นกันอีกทีใน session อื่นๆ
Reference