credit: http://www.codecademy.com

ฐานข้อมูลคืออะไร?

ชุดของข้อมูลที่ถูกจัดอย่างเป็นระเบียบ สะดวกในการเข้าถึงและจัดการข้อมูล เช่น การแก้ไขปรับปรุง การลบ การนำออกมาใช้ เป็นต้น

ฐานข้อมูลอาจแบ่งออกได้เป็นสองกลุ่มใหญ่ๆ คือ Relational Database และ NoSQL

Relational database และ NoSQL แตกต่างกันอย่างไร?

Relational database หรือ ฐานข้อมูลเชิงสัมพันธ์ จะมีการจัดเก็บข้อมูลเป็นระบบ มีโครงสร้างของข้อมูลที่สัมพันธ์กัน ในขณะที่ NoSQL หรือ ฐานข้อมูลที่ไม่ใช่ SQL จะเป็นการจัดเก็บข้อมูลในรูปแบบอื่นๆที่ไม่เป็นไปตามการโครงสร้างของฐานข้อมูลสัมพันธ์ซึ่งมีหลายรูปแบบมาก สร้างตามวัตถุประสงค์สำหรับโมเดลข้อมูล มีความยืดหยุ่นสูง

Relational Database

ฐานข้อมูลเชิงสัมพันธ์ มีโครงสร้างที่ช่วยให้ผู้ใช้สามารถระบุหรือเข้าถึงข้อมูลที่มีความเกี่ยวข้องกับข้อมูลอื่นๆในฐานข้อมูลได้ บ่อยครั้งฐานข้อมูลประเภทนี้จะถูกจัดอยู่ในตาราง

การสร้างตารางใน relational database จะประกอบด้วยแถวแนวตั้งและแนวนอน แถวแนวตั้งเรียกว่า column ซึ่งแต่ละ column จะมีข้อความกำกับว่า column นี้เก็บข้อมูลอะไร และเป็น data type ชนิดไหน

แถวแนวนอน เรียกว่า row หรือ record ใช้สำหรับเก็บข้อมูลตามข้อมูลและชนิด data type ของข้อมูลที่ระบุในแต่ละ column

ในแต่ละตารางสามารถมีได้หลาย column และสามารถมีได้เป็นพันๆ record

RDBMS คืออะไร?

RDBMS คือ Relational database management system เป็นโปรแกรมที่ช่วยให้เราสร้าง ปรับปรุง และบริหารจัดการฐานข้อมูลเชิงสัมพันธ์ได้ RDBMS ส่วนมากจะใช้ภาษา SQL ในการเข้าถึงฐานข้อมูล

SQL คืออะไร?

SQL ย่อมาจาก Structured Query Language เป็นภาษา scripting ที่ใช้ในการสื่อสารกับข้อมูลที่เก็บไว้ใน RDBMS โครงสร้างประโยคคล้ายภาษาอังกฤษ

RDBMS ส่วนใหญ่ใช้ SQL (หรือภาษาที่มีรูปแบบเหมือน SQL) ในการเข้าถึงข้อมูลในตาราง

ตัวอย่าง RDBMS ที่เป็นที่นิยม

MySQL

เป็นฐานข้อมูลแบบ open source SQL ที่ได้รับความนิยมมากที่สุด ราคาไม่แพง ใช้งานง่าย น่าเชื่อถือ (มีมานานแล้วตั้งแต่ปี 1995) มีกลุ่มนักพัฒนาขนาดใหญ่ที่สามารถช่วยตอบคำถามได้หากเกิดปัญหาหรือต้องการคำแนะนำ ข้อเสียของมันคือ performance ไม่ค่อยดีเวลา scaling

SQLite

อันนี้ก็เป็นฐานข้อมูลแบบ open source SQL ที่ได้รับความนิยมมากเหมือนกัน จุดเด่นอยู่ที่สามารถเก็บข้อมูลได้โดยไม่ต้องเชื่อมต่อฐานข้อมูลเข้ากับ server และยังเก็บข้อมูลทั้งหมดได้ในไฟล์เดียวทำให้มีความสะดวก แต่ความสะดวกนี้ก็กลายเป็นข้อเสียของมัน เพราะการที่ไฟล์ถูกเก็บบนเครื่อง local ทำให้เกิดการ overwrite โดยไม่ตั้งใจได้ง่าย และใครๆก็เข้าถึงไฟล์ได้ ทำให้ความปลอดภัยของข้อมูลต่ำหากไม่มีการ encrypt ข้อมูลก่อนจัดเก็บ

PostgreSQL

อ่านว่า Post-gress-Q-L เป็นฐานข้อมูลแบบ open source SQL เหมือนกัน นิยมใช้ในการพัฒนา web application ใช้งานง่าย ไม่แพง มีคนใช้เยอะพอตัวอยู่ จุดเด่นคือการตั้งค่า foreign key ที่ไม่ซับซ้อน ข้อเสียคือ performance ยังนับว่าช้าอยู่ (ช้ากว่า MySQL) และโฮสต์ที่รับจัดการ PostgreSQL ก็ไม่ได้มีหลายเจ้า

SQL server

เป็นฐานข้อมูลแบบ close source SQL มี Microsoft เป็นเจ้าของ บริษัทใหญ่ๆหลายบริษัทใช้ฐานข้อมูล SQL server ข้อเสีย ราคาแพง ตอนนี้มีเวอร์ชั่นที่ให้บริการฟรีอยู่ เรียกว่า Express แต่ฟรีแค่การใช้งานระดับแรกๆเท่านั้น เวลา scaling ก็ต้องจ่ายเงิน

Oracle DB

เป็นฐานข้อมูลแบบ close source SQL เหมือน SQL server มี Oracle cooperation เป็นเจ้าของ เน้นการให้บริการไปที่บริษัทใหญ่ๆ โดยเฉพาะพวกธนาคารต่างๆ ธนาคารตัวท็อประดับโลกส่วนใหญ่จะใช้ Oracle DB ข้อดีคือมีฟังก์ชั่นต่างๆที่จำเป็นสำหรับธนาคาร ข้อเสีย ราคาแพง

การเลือก RDBMS

เลือกตามระดับความซับซ้อนของแอพพลิเคชั่นที่พัฒนา เช่น ถ้าเป็นแอพพลิเคชั่นแบบง่ายๆ ไม่มีข้อมูลที่อ่อนไหวมาก ก็ใช้ SQLite ก็ได้ เร็วกว่า MySQL อีก แต่ถ้าเป็นแอพพลิเคชั่นใหญ่ๆ โปรเจ็คใหญ่ และมีกำลังเงินก็เลือกเอาอันที่สะดวกต่อการใช้งานมากที่สุดก็จะดี