20 Şubat 2013

NoSQL


2010 yılının başlarında ortaya çıkmış olan bir kavram. 
NoSql Sql yok manasında değil, Not Only Sql kelimelerinin kısaltması, “sadece SQL değil” bu işin çözümü demek isteyen bir kavram. Evet veri saklamanın ve sorgulamanın tek yolu Sql değil.
Oracle, Microsoft Sql Server, Postgre Sql, Mysql derken insanların aklında veri saklama ve sorgulama yöntemi olarak sadece tablolar ve aralarındaki ilişkileri mecburi kılan bir yapı vardı. Yani tüm veri tabanları excell formundan çok da ileri değillerdi yapısal olarak.

İşi bu kadar küçümsemek ciddi haklarını yemek olabilir. Index'ler, Trigger'lar, Relation'lar, Full-Text Index ve Arama sistemleri gibi bir sürü teknoloji içerirler. Fakat bu kadar çok teknoloji sistemin işleyişini bir miktar yavaşlatır. Ayrıca kurallar ve sınırlar olması bazen verilerinizi çok fazla bölmek zorunda bırakırdı.

Şimdi bu isim geyiklerini bir kenara bırakıp ana farkın ne olduğunu değineyim. NoSql veritabanlarında tablo yok, dolayısıyla türleriniz field'lar ile kısıtlı değiller.
( Nasıl yani Object Oriented falan ne oldu diyeceksiniz. Claslarım fieldlarım, propertylerim ... Yazdıklarımı okurken evet diyorsanız eskidiniz ya da bir hayli geriden geliyorsunuz diyeceğim. Aşın bunları bir miktar daha ... :)

NoSql veritabanlarında tutmak istediğiniz veriler JSON ya da XML formatlarında saklanmakta. Bu da size ağaç yapısında bir veri saklayabilme, kayıta özel field'lar kullanabilme gibi tonlarca imkan sunuyor.



KAYIT 1 
{ 
  “_id” : “edfnsjnjkuisdhbhhjbda32123”,
  “Yazar” :“DarkRed”,
  “Sorular” : {
    “nasilsin”:”iyiyim”,
    “istanbulnasil”:”her zamanki gibi, renkli”
  }
}
KAYIT 2
{
   “_id” : “edfnsjnjkuisdhbdsabda32123” 
   “Yazar” : “Red”,
   “Sorular” : {
      “nasilsin”:”süperim”,
      “antalyanasil”:”senfonisi güzel ve güneşli”
      “neicersin”:”kimse yok iken pepsi :)”
   }
}


farkettiyseniz 2 farklı yazarımıza farklı sorular sorup dolayısıyla farklı cevaplar alabildik. Bu yazarlarımızın özelliklerine bağlı sorulardı.

Konuyu biraz daha açmak gerekirse, büyük bir alışveriş sitesinde ürünler düşünün.
Otomobillerde var olması gereken bir field kesinlikle motor hacmi, kapı adedi, aktarma (vites) şekli ...
Fakat ürün cep telefonu ise bambaşka fieldlar saklanmalı, ekran boyutu, pil ömrü gibi ...

Gereksiz mi gözüktü, biliyorum bu sorunları siz başka biçimlerde çözüyordunuz.. Fakat FourSquare, Linked-in, ebay ... (şimdi reklam olmasın hepsini saymayayım) Projeniz büyükse, hız, işlevsellik ve yatay büyüyebilme sizin için kritik önem arz ediyorsa, kuralsız ve gerçek hayata daha yakın nesneleriniz varsa projelerinizin illaki bir bölümünde NoSql veritabanları kullanmalısınız.

Kimler var bu konuda :

 
En çok kullanılan ve alışılması ve kullanılması en kolay olanı diyebilirim





Japonların geliştirdiği çook güzel bir veritabanı, seçim yapmadan önce kesinlikle inceleyin derim.


Apache tarafından geliştirilmiş, “Web için veritabanı” ismi ile andıkları veritabanı.


 vmware'in ana sponsoru olduğu, bulut bilişim için geliştirilen nosql veritabanı.






KURALLI İLİŞKİLERDEN ve BAĞIMLILIKLARDAN HOŞLANMIYORSANIZ NOSQL TAM SİZE GÖRE ...

Hiç yorum yok:

Yorum Gönder