NoSQL, “Not Only SQL” (Sadece SQL değil) ifadesinden gelir.
Yani klasik SQL (ilişkisel veritabanları) mantığının dışında, daha esnek veri tutma yöntemleri sunan veritabanlarını ifade eder.
—
📌 NoSQL’in Temel Özellikleri:
Tablo yerine farklı veri modelleri kullanır (doküman, key-value, grafik, kolon tabanlı).
Schema (şema) zorunluluğu yoktur → Her kayıtta farklı alanlar olabilir.
Yatay ölçeklenebilir → Sunuculara ekleme yaparak çok büyük veriler yönetilebilir (Facebook, Google, Amazon gibi).
Büyük veri (Big Data), gerçek zamanlı uygulamalar ve esnek veri yapıları için uygundur.
—
📊 NoSQL Veri Modelleri:
1. Document Store (Doküman Tabanlı)
JSON benzeri yapılar tutar.
Örn: MongoDB, CouchDB, Firebase Firestore.
{
“id”: 1,
“name”: “Ahmet”,
“age”: 25,
“skills”: [“Flutter”, “Dart”]
}
2. Key-Value Store (Anahtar-Değer)
En basit haliyle key: value mantığı.
Örn: Redis, DynamoDB.
“user:1001” -> { “name”: “Ahmet”, “age”: 25 }
3. Column-Oriented (Kolon Tabanlı)
Satırlar yerine kolonlara göre organize edilir (büyük veride hızlı).
Örn: Apache Cassandra, HBase.
4. Graph Databases (Graf Tabanlı)
Veri düğümler (nodes) ve ilişkiler (edges) ile tutulur.
Örn: Neo4j.
—
✅ NoSQL Avantajları:
Çok büyük verilerle hızlı çalışır.
Esnek yapı (önceden şema tanımlamaya gerek yok).
Dağıtık çalışmaya uygun (cloud tabanlı sistemler için ideal).
JSON/doküman yapısı → Modern uygulamalara uygun.
❌ Dezavantajları:
SQL kadar karmaşık sorgular (JOIN vs.) kolay olmayabilir.
Veri tutarlılığı (consistency) bazen ikinci planda olur → CAP Theorem yüzünden.
—
📌 Özetle:
SQL = düzenli, şemalı, ilişkisel (tablo + sütun + satır)
NoSQL = esnek, şemasız, büyük veri ve dağıtık sistemler için
uygun
—
İstersen sana SQL vs NoSQL karşılaştırmasını tablo halinde hazırlayayım mı?