MongoDB ve NoSql

Bu yazımızda günümüzde oldukça kullanılan MongoDB ve buna bağlı olarak NoSql’in ne demek olduğunu öğreneceğiz. MongoDB’nin ne olduğunu anlayabilmek için öncelikle NoSql kavramını inceleyeceğiz.

1-) NoSql nedir ?

NoSQL en basit anlamıyla ilişkisel olmayan bir veritabanı çeşididir. Map-Reduce kavramını kullanarak işlem yaparlar. Map ve Reduce fonksiyonel programlamada çok sık kullanılan iki fonksiyondan ibarettir. Buna çok güzel bir örnek olarak Excel gösterilebilir.

Ancak NoSQL veritabanlarında veriler “Fire and Forgot” yani “Yak ve Unut” mantığıyla iş görürler. Yani verinin güvenliğinden önce performans öndedir.

Eğer büyük bir veritabanınız var ise ve çok hızlı işlemler yapmak istiyorsanız NoSQL kesinlikle işinizi görecektir. Ancak verilerinizi güvenli bir halde tutmak için NoSQL ile dizayn edilmiş veritabanlarını (bkzn: MongoDB) incelememiz gerekecek.

NoSQL kullanan en büyük şirket sanıyorum Google’dır. Google indexlediği web sayfalarını NoSQL bir veritabanında tutar. Ancak 1 veri yaklaşık olarak 3 ile 5 makineye aynı anda yazılır. Bunun sebebi yukarda bahsettiğim veri güvenliği konusundan dolayıdır. Yani eğer bir makineye birşey olursa diğer makine işlem yapmaya devam eder.

Diğer NoSQL kullanan bir diğer şirket ise “Foursquare” olarak gösterilebilir. Eğer NoSQL hakkında çok daha fazla bilgiye ihtiyacınız var ise wikipedia‘da oldukça güzel bir kaynak var.

NoSQL dediğimizde aklımıza birden çok NoSQL türü çıkacaktır. Bunlar;

  1. Key/Value Database
  2. Document Oriented Database
  3. Object Database
  4. Graph Database
  5. Tabular

Biz bugün 2. maddenin içinde olan MongoDB’den bahsecedeğiz.

2-) MongoDB nedir?

MongDB, C++ ile geliştirilmiş, açık kaynak kodlu NoSQL kullanan bir veritabanı uygulamasıdır. MongoDB birçok dil ile beraber kullanılabilir. Bunlar en yaygınları Php, NodeJS,  C#, .NET gibi popüler dillerini destekler.

NoSQL ve MongoDB’ye küçük bir giriş yaptık. İleriki zamanlarda MongoDB ile ilgili birçok makale yazacağım. Şimdilik küçük bir giriş yapmış olduk.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir