MongoDB, nosql fırtınasının yıldız çocuklarından biri olduğu aşikar. MongoDB’nin bu popülerliliğinin arkasında oldukça haklı sebepler bulunmaktadır. Ancak unutulmamalıdır ki, MongoDB de bir araçtır ve her araçta olduğu gibi, doğru yerde kullanılmalıdır.
Nedir?
Web sayfasından alıntı yapmak gerekirse
ölçeklenebilir, yüksek performanslı, açık kaynak NoSQL veritabanıdır.
Özellikleri arasında:
- döküman tipi veri saklama
- indeks kullanımı
- yedekli çalışma ve yüksek erişilebilirlik
- otomatik sharding
- sorgulama
- map/reduce
- gridFS
- ticari destek
MongoDB Temel Tasarımı
MongoDB’de, ilişkisel veritabanı yönetim sistemlerindeki (rdbsm) gibi “database” yaklaşımı vardır. Yani, bir MongoDB kurulumunda sıfır ya da daha fazla database olabilir. Bu database’ler içerisinde “collection” denilen ve bizim rdbsm’lerde kullandığımız tablo benzeri yapılar vardır. Bu collection’lar ise içlerinde sıfır ya da daha fazla “document” barındırırlar. Bunları veritabanı tablomuzdaki satırlara benzetebiliriz. Bu document’larda sıfır ya da daha fazla “field” bulundururlar. “Field” ise veritabanındaki kolon tanımına benzetebiliriz. Yani her “database” içerisinde “document” barındıran sıfır ya da daha fazla “collection” içerir.
Peki madem bizim bildiğimiz rdbsm’e bu kadar benziyor, neden yeni isimler icat edilmiş? Aslında tasarıma tekrar bakarsak çok ciddi bir farklılık göze çarpacaktır. İlişkisel veritabanlarından kolon bilgisi tabloya ait iken MongDB’de ise “field” bilgisi “document” içerisindedir. Bu sebeple “document” veritabanındaki satıra göre çok daha fazla bilgi tutabilir ve en önemlisi bir “collection” içerisindeki her “document” farklı “field” bilgilerine sahip olabilir.
{isim:”Emrah”, soyisim “Özçelebi}
{isim:”SPP42, ticariUnvan:”SPP42 Yazılım Geliştirme ve Danışmanlık Ltd. Şti”, url:”spp42.com”}
Yukarıdaki örneğe bakarsak, iki “document” da farklı “field” tanımlamalarına sahipler. Bu, bir ilişkisel veritabanında bulamayacağımız bir esnekliktir.
MongoDB’yi Kimler Kullanır?
10Gen’in sayfasına bakacak olursak pek çok dev firma MongoDB’ye güvenmekte. Pek çok alanda başarılarını kanıtlamıştır.
- yüksek hacim/içerikli problemler
- analiz için veri saklanması
- caching sistemleri
- web içerik yönetim sistemleri
- e-ticaret siteleri
- web yorum/etiket saklama ve yönetme
- MMORPG uygulamaları
Ancak önemli olan nokta, MongoDB’nin getirdiği özellikleri ve tasarım yaklaşımını kullanmak olmalıdır. Bire bir şekilde rdbms üzerindeki veriyi taşımak doğru olan yol değildir. Doğru kurgulanmış MongoDB çözümleri en optimum performansı almanızı sağlayacaktır. Veriniz ister megabyte’lar boyunda olsun ister petabyte, MongoDB başarı ile hizmet verecektir.