SQL VS NoSQL
ในปัจจุบัน เทคโนโลยี Database มีการพัฒนาที่รวดเร็ว และมีความหลากหลายมากกว่าแต่ก่อนเป็นอย่างมาก ซึ่งเทคโนโลยีนี้ สามารถแบ่งได้เป็น 2 ประเภทหลักใหญ่ๆ นั้นก็คือ SQL กับ NoSQL หรือเรียกอีกอย่างนึงว่า relational databases (ฐานข้อมูลเชิงสัมพันธ์)กับ non-relational databases (ฐานข้อมูลไม่เชิงสัมพันธ์) โดยเจ้าเทคโนโลยี 2 ตัวนี้ มีความแตกต่างที่เห็นได้ชัดในทางด้านของ โครงสร้างข้อมูล วิธีการสร้าง และรูปแบบการจัดเก็บข้อมูล พูดให้เข้าใจง่ายๆ ให้เปรียบ SQL เสมือนกับ สมุดโทรศัพท์ ที่ทุกๆข้อมูลจะมีโครงสร้างการจัดเก็บที่เหมือนกัน มีรายละเอียดของ เบอร์โทรศัทพ์ และที่อยู่ ของทุกๆข้อมูล ส่วนในทางด้านของ NoSQL ให้เปรียบเสมือนกับ โฟลเดอร์ ที่เราเอาทุกๆอย่าง ใส่เข้าไปในนั้น ซึ่งจะเหมาะสำหรับการแจกจ่ายงานให้ผู้อื่น

ความแตกต่างของ ทั้ง 2 ตัวนี้ ทำให้ผู้ใช้งานต้องเลือกใช้ตามความเหมาะสม เพราะต่างคน ต่างก็มีช่องว่างที่ต่างกันที่เห็นได้อย่างชัดเจน ดังนั้น ก่อนที่จะเลือกใช้ ก็ควรที่จะพิจารณาตามความเหมาะสมเสียก่อน
SQL
SQL (Structured Query Language) เป็นฐานข้อมูลที่ทุกคนคงจะรู้กันกันดี เป็นเทคโนโลยี ที่มีกลไกในการจัดเก็บข้อมูลมายาวนานกว่า 4 ทศวรรษ ด้วยการทำงานที่เป็นแบบ Relation databases ที่เก็บข้อมูลในรูปแบบของตาราง (Schema-based) ทำให้มีประสิทธิภาพในการจัดเก็บของมูล ที่ค่อนข้างทนทาน ปลอดภัย และโอกาสที่จะเกิดการสูญเสียข้อมูลนั้นมีน้อยกว่า แต่ต้องแลกมากับการสร้างโครงสร้างที่ค่อนข้างชัดเจน ทำให้ความยืดหยุ่นในการขยายฐานข้อมูล เป็นไปได้ยาก
ตัวอย่าง ฐานข้อมูลร้านหนังสือ ที่ใช้การเก็บข้อมูลแบบ SQL

จะเห็นได้ว่า ทุกๆแถว จะเก็บข้อมูลหนังสือที่ต่างกัน การออกแบบตารางมีความชัดเจน แต่ไม่สามารถใส่ข้อมูลอื่นที่แตกต่างกัน ลงไปในตารางนี้ได้
ลักษณะงานที่เหมาะสมกับ SQL
งานที่มีความสอดคล้องกับ ACID(Atomicity, Consistency, Isolation, Durability) ซึ่งความสัมพันธ์เหล่านี้ จะช่วยให้ระบบฐานข้อมูลของคุณ มีความเสถียร ช่วยลดปัญหาของความผิดปกติของระบบ ยกตัวอย่างเช่น การเก็บข้อมูลทางการเงิน ที่จำเป็นต้องอาศัยความแม่นยำสูง
งานที่มีโครงสร้างที่ชัดเจน และไม่มีการเปลี่ยนแแปลง ซึ่งค่อนข้างตอบโจทย์กับ SQL ได้เป็นอย่างดี เนื่องจาก SQL ถูกจำกัดในเรื่อง ความยืดหยุ่นของการขยายฐานข้อมูล
ฐานข้อมูล SQL ที่ได้รับความนิยม
- MySQL
- Oracle
- IMB DB2
- Sybase
- MS SQL Server
- Microsoft Azure
- MariaDB
- PostgreSQL
NoSQL
คำว่า NoSQL จริงๆแล้ว ใช้เรียกเทคโนโลยีฐานข้อมูล ที่ไม่ใช้ SQL โดยกล่าวคือ เริ่มแรกถูกพัฒนามาเพื่อให้ใช้งานเฉพาะทางที่ SQL ไม่สามารถทำได้ โดยที่เห็นได้อย่างชัดเจนเลยก็คือ โครงสร้างที่มีความยืดหยุ่น ทำให้การใช้งานมีความรวดเร็วกว่า และง่ายต่อการขยายฐานข้อมูล
ตัวอย่างฐานข้อมูล NoSQL

จะเห็นได้ว่า รูปแบบการเก็บข้อมูล จะไม่ตายตัว อีกทั้งผู้ใช้สามารถแก้ไขข้อมูล ทั้งการเพิ่ม หรือลบ ได้อย่างง่ายดาย ในขณะที่ SQL จะทำได้ยากกว่า
ลักษณะงานที่เหมาะสมกับ NoSQL
งานที่จำเป็นต้องเก็บข้อมูลจำนวนมาก แต่ไม่เน้นเรื่องโครงสร้าง ลักษณะงานแบบนี้ จะช่วยให้ง่ายต่อการ ขยายฐานข้อมูล ที่ไม่มีความซับซ้อนมากนัก ไม่ต้องกังวลถึงเรื่องโครงสร้าง
งานที่เน้นการพัฒนา เพราะ NoSQL มีความยืดหยุ่นสูง จึงเหมาะสำหรับงานที่มีเสกลที่ยังสามารถขยายเพิ่มอีกได้
งานที่เน้นความรวดเร็ว เนื่องจาก NoSQL ถูกพัฒนาให้ทำงานได้อย่างรวดเร็ว กินทรัพยากรน้อย จึงเป็นตัวเลือกที่ดีในการเลือกใช้คู่กับงานที่ต้องการความเป็น real time
ฐานข้อมูล NoSQL ที่ได้รับความนิยม
- MongoDB
- Apache’s CouchDB
- HBase
- Oracle NoSQL
- Apache’s Cassandra DBRiak
สรุปข้อดี ข้อเสีย
SQL
เนื่องจากเป็นเทคโนโลยีที่มีการพัฒนาต่อเนื่องมาอย่างยาวนาน ทำให้โดดเด่นในทางด้านความทนทาน ความปลอดภัย แต่ในเรื่องของการขยายเสกลงาน ยังไม่สามารถทำได้ยืดหยุ่นพอกับ NoSQL เนื่องจากขีดจำกัดของความสามารถบางอย่าง
NoSQL
โดดเด่นในเรื่องความยืดหยุ่น สามารถขยายเสกลงานได้อย่างกว้างขวาง รวมไปถึงการทำงานข้ามระบบ NoSQL ก็สามารถถูกออกแบบได้ แต่เนื่องจาก เทคโนโลยีนี้ทำงานาแบบ Non-transactional หากต้องใช้กับข้อมูลที่ต้องอาศัยความแม่นยำสูง ผิดพลาดไม่ได้ NoSQL ก็อาจจะไม่เหมาะกับในกรณีนี้
