NoSQL Nedir?
İngilizce: NoSQL
NoSQL, veriyi belge, anahtar-değer, sütun ailesi veya grafik modelleriyle saklayan; esnek şema ve yatay ölçeklemeye odaklanan veritabanı türüdür.
NoSQL Nedir?
NoSQL, ilişkisel tablo modelinin dışındaki veritabanı yaklaşımlarını kapsayan geniş bir kategoridir. “SQL hiç kullanılmaz” anlamına gelmek zorunda değildir; çoğu durumda esnek şema, yatay ölçekleme, yüksek yazma hacmi veya belirli veri modeline uygun sorgulama ihtiyacı öne çıkar.
Bir ürün kataloğunda her kategori farklı özelliklere sahipse belge modeli pratik olabilir. Oturum verisi veya cache için anahtar-değer modeli, sosyal ağ ilişkileri için grafik modeli daha uygun olabilir.
NoSQL Türleri
- Belge veritabanı: JSON benzeri dokümanlar saklar; MongoDB bu gruptadır.
- Anahtar-değer: Basit ve hızlı okuma/yazma için anahtardan değere erişir; Redis sık kullanılan örnektir.
- Geniş sütun: Büyük dağıtık veri kümelerinde sütun aileleriyle çalışır.
- Grafik veritabanı: Düğümler ve ilişkiler üzerinden bağlantılı veriyi sorgular.
Ne Zaman Kullanılır?
NoSQL, veri şeması sık değişiyorsa, çok yüksek okuma/yazma hacmi varsa veya verinin doğal yapısı tablo ilişkilerinden farklıysa tercih edilebilir. Ürün arama, aktivite akışı, IoT ölçümleri, gerçek zamanlı sayaçlar ve cache katmanları tipik örneklerdir.
Bu seçim ilişkisel veritabanlarını gereksiz yapmaz. Finansal kayıt, sipariş, fatura ve tutarlılık gerektiren süreçlerde ilişkisel model hâlâ güçlüdür. MongoDB ve Redis gibi araçlar doğru iş yükünde çok başarılıdır; yanlış veri modeliyle kullanıldığında ise raporlama ve tutarlılık maliyeti artabilir.
İlgili Terimler
Elasticsearch, büyük metin ve log verileri üzerinde hızlı arama, filtreleme ve analitik sorgular çalıştıran dağıtık arama motorudur.
Graf VeritabanıGraf veritabanı, varlıkları düğüm ve kenarlarla modelleyerek ilişkileri hızlı sorgulamak için kullanılan NoSQL veritabanıdır.
MongoDBMongoDB, BSON belgeleriyle çalışan, esnek şema, indeksleme, çoğaltma ve yatay ölçekleme sunan doküman tabanlı NoSQL veritabanıdır.
RedisRedis, veriyi bellekte tutan anahtar-değer yapılı NoSQL sistemidir; önbellek, kuyruk ve oturum verisi için düşük gecikme sunar.