รู้จักกับ SQL และ NOSQL (Relational Database & Non-Relational Database)
ฐานข้อมูล (Database) หมายถึง กลุ่มข้อมูลที่ถูกรวบรวมและจัดเก็บไว้อย่างมีโครงสร้าง โดยมีรูปแบบการจัดเก็บที่ชัดเจน เป็นระเบียบและง่ายต่อการทำไปใช้ตามวัตถุประสงค์ที่ต้องการ
ฐานข้อมูลที่นิยมใช้ในปัจจุบันแบ่งออกเป็น 2 แบบ ได้แก่
- ฐานข้อมูลเชิงสัมพันธ์ (Relational Database)
- ฐานข้อมูลไม่ใช่เชิงสัมพันธ์ (Non-Relational Database)
ฐานข้อมูลเชิงสัมพันธ์ (Relational Databases)
- เป็นฐานข้อมูลที่ใช้ภาษา SQL (Structure Query Language) มาดำเนินการกับข้อมูล (เพิ่ม , ลบ , แก้ไข , ค้นหา)
- จัดเก็บข้อมูลแบบตาราง (Table)
- *กำหนดโครงสร้างการจัดเก็บข้อมูลที่ชัดเจน (Structure Data)
- มีการเชื่อมโยงความสัมพันธ์กับข้อมูลตารางอื่นๆด้วย
Database Management System (DBMS)
ระบบจัดการฐานข้อมูล SQL ที่ได้รับความนิยมในปัจจุบัน
- MySQL
- Oracle
- PostgreSQL
- SQL Server
ฐานข้อมูลไม่ใช่เชิงสัมพันธ์ (Non-Relational Database)
ฐานข้อมูลไม่ใช่เชิงสัมพันธ์ (Non-Relational Database)หรือเรียกอีกชื่อ คือ NoSQL (Not-Only SQL) ถูกคิดค้นขึ้นเพื่อจัดการข้อจำกัดของการใช้งาน Relational Database ในอดีต เพื่อปรับเปลี่ยนโครงสร้างการจัดเก็บข้อมูลให้มีความยืดหยุ่นที่มากขึ้นด้วย
NoSQL ถูกนำมาใช้งานการสำหรับประมวลผลข้อมูลจากการใช้งาน Internet อย่างแพร่หลายในยุคปัจจุบันไม่ว่าจะมาจาก Social Media ต่างๆ ที่มีข้อมูลขนาดใหญ่ (Big Data) เพื่อแปลข้อมูลที่มีความหลากหลายมากขึ้น เช่น ข้อมูลรูปภาพ วิดีโอ เสียง ตัวอักษร เป็นต้น ซึ่งจะตอบโจทย์ในเรื่องความเร็วและความยืดหยุ่นในการจัดเก็บข้อมูล
ฐานข้อมูลไม่ใช่เชิงสัมพันธ์ (Non-Relational Databases)
- ไม่มีการจัดเก็บข้อมูลในแบบตารางที่มีความสัมพันธ์กัน
- ไม่มีโครงสร้างการจัดเก็บข้อมูลที่แน่นอน (Unstructure Data)
- ง่ายต่อการปรับขนาดและโครงสร้าง
รูปแบบการจัดเก็บข้อมูล (NoSQL Store)
NoSQL ไม่มีโครงสร้างการจัดเก็บข้อมูลที่แน่นอน เพื่อที่จะสามารถปรับเปลี่ยนโครงสร้างได้ในอนาคต โดยจะเก็บข้อมูลอยู่ 4 รูปแบบ (ตามลักษณะการใช้งาน)
- Key — Value Store
- Document Store
- Graph Store
- Wide Column Store
Key-Value Store เป็นระบบจัดเก็บข้อมูลในรูปแบบที่เรียกว่า ”Associative Arrays ” หรืออาร์เรย์ของชุดข้อมูลที่มีความสัมพันธ์กันในรูปแบบคู่คีย์ (key : value) หรือเรียกอีกชื่อว่า Dictionary
โดยคีย์ (key) จะทำหน้าที่เป็นตัวเชื่อมโยงไปยังค่า (value) ในโครงสร้างของฐานข้อมูลซึ่งจะมีได้แค่คีย์เดียว และการดึงข้อมูลต้องระบุคีย์ที่เก็บค่าข้อมูลนั้นๆไว้
ตัวอย่างฐานข้อมูลแบบ Key — Value Store
- Redis
- Oracle NoSQL Database
- Aerospike
Document Store เป็นฐานข้อมูลเชิงเอกสารที่ออกแบบมาเพื่อจัดเก็บข้อมูล ดึงข้อมูล และจัดการข้อมูล ที่เรียกว่า “Document-Oriented” คือ ใช้โครงสร้างภายในของเอกสารเพื่อระบุการจัดเก็บข้อมูล ซึ่งมีลักษณะแบบกึ่งโครงสร้าง (Semi Structure Data) โดยเอกสาร (Document) จะถูกเข้ารหัสข้อมูลและจัดให้อยู่ในรูปแบบของ XML , JSON
ตัวอย่างฐานข้อมูลแบบ Document Store
- MongoDB
- CouchDB
Graph Store เป็นการจัดเก็บข้อมูลและความสัมพันธ์ของข้อมลในรูปแบบกราฟ ข้อมูลด้านในจะเรียกว่า โหนด (Node) ซึ่งจะเก็บ Entity ของข้อมูลและกำหนดความสัมพันธ์ที่เชื่อมโยงความสัมพันธ์ดังกล่าวผ่าน Edge การใช้งานกราฟจะถูกนำเสนอผ่านความสัมพันธ์ของข้อมูล เช่น Social Network , AI และ Machine Learning เป็นต้น
Wide Column Storage เป็นการจัดเก็บข้อมูลเป็นเรคอร์ดหรือในรูปแบบ ตาราง แถว และคอลัมน์ ซึ่งจะแตกต่างจาก Relational Database คือจะมีความยืดหยุ่นมากกว่า ชื่อและรูปแบบของคอลัมน์สามารถเปลี่ยนจากแถวหนึ่งไปอีกแถวภายในตารางเดียวกันได้และขยายคอลัมน์ได้จำนวนมาก (Extensible Record Store : ขยายการจัดเก็บข้อมูลในแต่ละเรคอร์ด) อาจจะมองเป็นรูปแบบ key:value ในรูปแบบ 2 มิติก็ได้
ตัวอย่างฐานข้อมูลแบบ Wide Column Store
- Cassandra
- HBase
- DynamoDB
- Microsoft Azure Cosmos DB
🎓 เนื้อหาที่เกี่ยวข้อง