12 เม.ย. เวลา 08:23 • การศึกษา
NOSQL By Shoper Gamer

NOSQL คืออะไร

โดย
ในยุคที่ข้อมูลขยายตัวอย่างรวดเร็วทั้งในด้านปริมาณ ความเร็ว และ ความหลากหลายระบบฐานข้อมูลแบบเดิมเริ่มแสดงข้อจำกัด NoSQL จึงเกิดขึ้นเพื่อตอบโจทย์การทำงานกับข้อมูลขนาดใหญ่ (Big Data) และ แอปพลิเคชันสมัยใหม่ ที่ต้องการประสิทธิภาพ และ ความยืดหยุ่นสูง
1
  • ​NOSQL คืออะไร
NoSQL (Not Only SQL) คือ ระบบจัดการฐานข้อมูลแบบไม่ใช้โครงสร้างตารางแบบเดิม ออกแบบมาเพื่อ
- จัดการข้อมูลปริมาณมาก
- ประมวลผลด้วยความเร็วสูง
- รองรับข้อมูลรูปแบบหลากหลาย (ทั้งโครงสร้าง และ ไม่มีโครงสร้าง)
💡 ตัวอย่าง : โฟลเดอร์ในคอมพิวเตอร์ ที่คุณสามารถใส่ไฟล์อะไรก็ได้เข้าไป เช่น ไฟล์ภาพ, ไฟล์เอกสาร, คลิปเสียง โฟลเดอร์หนึ่งอาจมีแค่ภาพอย่างเดียว แต่อีกโฟลเดอร์อาจมีทั้งภาพ และ ข้อความ
3
  • ​NOSQL ทำงานอย่างไร
1
1) Schema-less : ไม่ต้องกำหนดโครงสร้างข้อมูลตายตัว
2) Horizontal Scaling : ขยายขนาดด้วยการเพิ่มเซิร์ฟเวอร์
3) BASE Model (แทน ACID):
- Basically Available
- Soft state
- Eventually consistent
  • ​กลไกการจัดเก็บข้อมูล
- ใช้ระบบ Distributed Architecture
- เก็บข้อมูลแบบ Document, Key-Value, Graph หรือ Wide-Column
- ออกแบบให้ทำงานกับ Cluster ของเซิร์ฟเวอร์
  • ​ประเภทของ NOSQL
1) Document Database
- ลักษณะ: เก็บข้อมูลเป็นเอกสาร (รูปแบบ JSON/XML)
- ตัวอย่างระบบ: MongoDB, CouchDB
- การใช้งานทั่วไป: ระบบจัดการเนื้อหา, บันทึกข้อมูลผู้ใช้
2) Key-Value Database
- ลักษณะ: เก็บข้อมูลแบบคู่ Key-Value
- ตัวอย่างระบบ: Redis, DynamoDB
- การใช้งานทั่วไป: ระบบแคช, การจัดการ Session
3) Wide-Column Database
- ลักษณะ: เก็บข้อมูลแบบคอลัมน์
- ตัวอย่างระบบ: Cassandra, HBase
- การใช้งานทั่วไป: ระบบ IoT, การวิเคราะห์ข้อมูล
4) Graph Database
- ลักษณะ: เก็บความสัมพันธ์ข้อมูลแบบกราฟ
- ตัวอย่างระบบ: Neo4j, ArangoDB
- การใช้งานทั่วไป: โซเชียลเน็ตเวิร์ก, ระบบแนะนำ
  • ​ประโยชน์
✅ ประสิทธิภาพสูงด้วยการอ่าน/เขียนเร็ว
✅ ขยายขนาดได้ง่าย (Horizontal Scaling)
✅ ยืดหยุ่นโครงสร้างข้อมูล
✅ รองรับข้อมูลหลากหลายรูปแบบ
✅ ออกแบบสำหรับ Cloud และ Distributed Systems
  • ​ตัวอย่างการใช้งาน
1) แอปพลิเคชัน Social Media
- ระบบที่ใช้ : MongoDB (Document)
- เหตุผล : รองรับข้อมูลโปรไฟล์ที่ซับซ้อน และ เปลี่ยนแปลงบ่อย
2) ระบบ Real-time Analytics
- ระบบที่ใช้ : Cassandra (Wide-Column)
- เหตุผล : ประมวลผลข้อมูลจำนวนมหาศาลแบบเรียลไทม์
3) ระบบ Recommendation
- ระบบที่ใช้ : Neo4j (Graph)
- เหตุผล : วิเคราะห์ความสัมพันธ์ระหว่างข้อมูลได้ดี
4) ระบบ Shopping Cart
- ระบบที่ใช้ : Redis (Key-Value)
- เหตุผล : การอ่าน/เขียนเร็ว เหมาะสำหรับข้อมูลชั่วคราว
  • ​ตัวอย่างโค้ด MongoDB (Document DB)
```javascript
// การเชื่อมต่อ
const MongoClient = require('mongodb').MongoClient;
const url = 'mongodb://localhost:27017';
// เพิ่มข้อมูล
async function addUser() {
const client = new MongoClient(url);
await client.connect();
 
const db = client.db('shop');
await db.collection('users').insertOne({
username: 'john_doe',
name: 'John Doe',
joined: new Date()
});
 
await client.close();
}
```
  • ​ควรใช้ NOSQL เมื่อไหร่?
✔️ เมื่อมีข้อมูลปริมาณมาก และ เพิ่มขึ้นเร็ว
✔️ เมื่อต้องการความเร็วในการอ่าน/เขียนสูง
✔️ เมื่อข้อมูลมีโครงสร้างซับซ้อน หรือ เปลี่ยนแปลงบ่อย
✔️ เมื่อระบบต้องขยายขนาดได้ง่าย
✏️ Shoper Gamer
  • ​SQL คืออะไร 👇
  • ​Big Data คืออะไร 👇
  • ​JSON คืออะไร ทำไมถึงครองใจนักพัฒนา 👇
Credit :
👇
  • ​https://www.mongodb.com/resources/basics/databases/nosql-explained
  • ​https://www.ibm.com/think/topics/nosql-databases
  • ​https://www.geeksforgeeks.org/dbms/introduction-to-nosql/
  • ​https://azure.microsoft.com/en-au/resources/cloud-computing-dictionary/what-is-nosql-database

ดูเพิ่มเติมในซีรีส์

โฆษณา