MongoDB Nedir ?

Vedat Taşcı

Updated on:

Günümüzde veri boyutlarının hızla artması alışıla gelmiş ilişkisel veri tabanı modellerinin yetersiz kalmasına ve NOSQL (Not Only SQL) veri tabanı modellerinin popülarite kazanmasına sebep olmuştur. Bu yazımızda en çok kullanılan NOSQL veri tabanı yönetim sistemlerinden olan MongoDB’yi inceleyeceğiz.

MongoDB 11 Şubat 2009 tarihinde MongoDB Inc. firması tarafından C++ programlama dili ile geliştirilen ilişkisel olmayan NOSQL açık kaynak kodlu verileri JSON benzeri belgelerle dinamik şema ile depolayan veri tabanı uygulamasıdır.

RDBMS (İlişkisel Veri Tabanı Yönetim Sistemi) verileri birbirleri ile ilişkilendirerek depolama imkanı sağlamaktadır. (Oracle SQL, MsSQL, MySQL, PostreSQL gibi)

Gelenekselleşmiş yöntem olan RDBMS, verileri genel olarak satır ve sütundan oluşan tablo şemalarıyla kaydetmekte, tablolar arasında ise ilişki kuracak şekilde birbirleri ile bağlantılı olmasını sağlamaktadır. RDBMS, verileri belirli kurallara (şemalara) bağlı kalarak depolar. Aynı zaman da bu yöntem de veriler parçalı değil bütünsel olarak kaydedilmektedir. Belirli kalıpları olduğu için esneklik özelliğinden çok fazla söz edemeyiz. Veri okuma, yazma ve belirleme işlemlerinde bütünsel olduğu için NOSQL’e göre bu işlemler daha yavaştır. Günümüzde veriler her saniye her dakika artmakta olduğundan bu verilere ulaşmada hız çok büyük bir önem kazanmaktadır. İşte bu verilere daha hızlı ulaşmak istediğimizde NOSQL veri yönetim sistemini kullanan MongoDB uygulaması ön plana çıkmaktadır.

MongoDB Özellikleri;

  • MongoDB şemasız JSON veri formatında veriler depolamaktadır.
  • Depolanan verileri aramak için düzenlenebilir arama yöntemleri kullanır.
  • MongoDB kullanılan veri tabanlarının çoğaltılmasına izin vermektedir.
  • MongoDB ölçeklenebilir bir yapıya sahiptir.
  • Verileri depolarken dikey olarak değil yatay olarak depolar.
  • Depolama işlemini büyük parçalar halinde  değil de küçük parçalar halinde gerçekleştirir.
  • Kurallara bağlı olmayan esnek bir yapıda verilerin depolanmasını sağlar.

MongoDB çok sayıda programlama dilini destekler ve çoğu platformda çalışabilir, Mongo sürücüleri çoğu dil için sürücü desteği vermektedir. Başlıcaları şunlardır;

  • C
  • C++
  • C#
  • PHP
  • Python
  • Java
  • Node.js
  • .NET

MongoDB’nin Dezavantajları;

  • Karmaşık işlemler gerçekleştirilemez.
  • Dizinleme işlemi düzenli bir şekilde yapılmadığında aranan verinin bulunması zorlaşabilir.
  • MongoDB, RDBMS sistemlerinde bulunan güçlü bir ACID(Atomicity, Consistency, Isolation ve Durability) bir yapıya sahip değildir.

Sonuç Olarak;

MongoDB gerek yüksek hızlarda veri işlemesine olanak sağlamasından, öğrenim kolaylığından, verileri kopyalayarak çoğaltmasından, çoğu platform için sürücü desteği olması göz önüne alındığında gerçek zamanlı oyunlar, gerçek zamanlı uygulamalar, e-ticaret bazlı ürün uygulamaları, blog ve içerik yönetimi, sosyal ağ uygulamaları ve özellikle çok büyük veriler için ilişkisel veri tabanlarına göre avantajlı konuma geçerek ön plana çıkmaktadır. MongoDB performans olarak Oracle SQL, MySQL ve SQL tabanlı veri tabanlarına göre oldukça hızlı olsa da kuralları ve standartları olmadığı esnek bir yapıda olduğu için önemli verilerin olduğu sistemlerde kullanırken çok dikkatli kullanılması gerekmektedir. MongoDB hızlı veri tabanı yönetimi için ek donanım maliyeti olmadan kullanılabilecek NOSQL bir veri yönetim programı olarak karşımıza çıkmaktadır.

Okuduğunuz için teşekkürler…

Yorum yapın