MongoDB ve NoSQL

November 2, 2016

MongoDB’yi anlamak için öncelikle bir konuyu ele alıp kavramamız gerekir: NoSQL.

NoSQL, “Not Only SQL” diye açılımı olan yaygın ve çok büyük veri setleri için çok kullanışlı bir veri yönetimi ve veritabanı tasarımı yaklaşımıdır. NoSQL, geniş alanları kapsayan teknolojilerin ve mimarilerinin ölçeklenebilirlik ve büyük veri performansı konusunda çözümler arar. NoSQL, özellikle bir kurumun masif sayıdaki yapısız verilere erişme ve analiz etme ihtiyacını karşılar.

İsminden anlaşılanın tam aksine, NoSQL SQL’i önlemez. NoSQL sistemleri tamamen ilişkisel olmayan şekildededir. Diğerleri tablo şemaları ve join operasyonları gibi belirli ilişkisel fonksiyonları kullanmaktan kaçınır.

Tartışmasız en popüler NoSQL veritabanı Apache Cassandra’dır. Cassandra, 2008’de açık kaynak kodlu yayımlanan ve Facebook tarafından kullanılan yaygın bir veritabanıdır. Diğer NoSQL implementasyonları ise SimpleDB, Google BigTable, Apache Hadoop, MapReduce, MemcacheDB and Voldemort. Netflix, LinkedIn ve Twitter, NoSQL’i kullanan başlıca şirketlerdendir.

MongoDB ise, C++ dili ile yazılmış, yüksek performans, yüksek kullanılabilirlik ve otomatik ölçeklenebilirlik sağlayan açık kaynak ve belge tabanlı (document database) bir NOSQL veritabanı uygulamasıdır. MongoDB, bir Nesne-İlişkisel Haritalama (ORM) ihtiyacını ortadan kaldırarak geliştirmeyi kolaylaştırmaktadır.

Belgeler (Documents)

MongoDB’deki bir kayıt, alan ve değer eşlemesinden oluşan bir veri yapısına sahip bir belgedir. Bu özelliği ile MongoDB belgeleri, JSON nesneleriyle benzerlik gösterir.

1. Yüksek Performans

MongoDB veri sürekliliğinde yüksek performans sağlar. Veritabanı sistemlerindeki giriş çıkış aktivitelerinde azaltmalar yaparak gömülü veri modellerini destekler.

2. Zengin Kuyruk Dili

MongoDB, okuma ve yazma işlemlerini zengin bir kuyruk diliyle sahip olduğu veri birleştirme ve metin arama özellikleriyle destekler.

3. Çoklu Saklama Motorlarını Destekleme

MongoDB; WiredTiger Storage Engine ve MMAPv1 Storage Engine gibi çoklu saklama motorlarını destekler.

4. Yatay Ölçeklendirebilirlik

MongoDB, kendi çekirdek fonksiyonelliğinin bir parçası olan yatay ölçeklerilebilirlik sağlar.

5. Yüksek Kullanılabilirlilik

MongoDB’nin “replica set” denilen bir çoğaltma sistemi vardır. Bu sistem otomatik yük devretme ve veri fazlalığı sağlar. Bir “replica set”, aynı veri setlerinden oluşan, fazlalık sağlayan ve veri kullanılabilirliğini arttıran bir grup MongoDB sunucularıdır.