NoSQL چیست؟
خانوادهای از دیتابیسها با ساختار داده انعطافپذیر (بدون Schema ثابت) که برای مقیاسپذیری افقی طراحی شدهاند.
چرا مهم است؟
وقتی حجم داده یا ترافیک از ظرفیت یک سرور رابطهای عبور میکند یا ساختار داده مدام تغییر میکند، دیتابیسهای NoSQL مسیر مقیاسپذیری افقی و توسعه سریعتر را باز میکنند.
تعریف
NoSQL ("Not Only SQL") به دیتابیسهایی گفته میشود که برخلاف مدل رابطهای، داده را بدون Schema ثابت و معمولاً بهصورت توزیعشده روی چند سرور ذخیره میکنند.
چهار مدل اصلی
- سندی (Document): MongoDB — هر رکورد یک سند JSON/BSON مستقل است.
- کلید-مقدار (Key-Value): Redis — سریعترین مدل، مناسب Cache و Session.
- ستونی (Column-family): Cassandra — بهینه برای نوشتن حجم بالا و مقیاس افقی.
- گراف (Graph): Neo4j — بهینه برای دادهی پر از رابطه (شبکه اجتماعی، توصیهگر).
مثال سند MongoDB
{
"_id": "u_1024",
"name": "علی رضایی",
"orders": [
{ "id": "o_1", "total": 450000 },
{ "id": "o_2", "total": 120000 }
]
}
بر خلاف مدل رابطهای، اطلاعات سفارشها همانجا داخل سند کاربر جای میگیرد — نیازی به JOIN نیست.
قانون CAP
در سیستم توزیعشده فقط دو مورد از سه ویژگی Consistency، Availability، Partition Tolerance همزمان کاملاً قابل تضمین است؛ اکثر دیتابیسهای NoSQL Availability و Partition Tolerance را روی Consistency لحظهای ترجیح میدهند (Eventual Consistency).
اشتباه رایج
❌ مدلسازی داده در MongoDB دقیقاً مثل جدولهای رابطهای (نرمالسازی کامل) — این کار مزیت اصلی سندیبودن (خواندن سریع بدون JOIN) را از بین میبرد.
منبع و مطالعه بیشتر
خلاصه
NoSQL چهار مدل اصلی دارد: سندی، کلید-مقدار، ستونی و گراف، همه بدون Schema ثابت رابطهای. طبق قانون CAP اکثر آنها Consistency لحظهای را فدای مقیاسپذیری و دسترسپذیری میکنند. مرجع کامل: MongoDB Docs و AWS.
