NoSQL Nedir? NoSQL’i Tanımak
Adını duyduğunuzdan eminim duymadıysanız bile şimdi duydunuz. Sql kavramını farklı bir boyuta sürükleyen NoSQL'i inceleyeceğim. NoSQL, Not Only SQL in kısaltılmasından gelmekte.
NoSQL 1998 yılında ortaya çıkmıştır. Geliştiricisi Carlo Strozzi'dir.
NoSQL'i kelime anlamından yola çıkarsak. Sql'e bir alternatif olarak görebiliriz. Sql diyince tablolar, alanlar ve ilişkisel veritabanı aklımıza gelmekte. NoSQL'de ise bu düşünce tam olmasa da ortadan kalkıyor. Google ve Amazon gibi firmalarında aralarında bulunduğu büyük sistemler de NoSQL'i kullanmakta. NoSQL kavramı tek başına yeterli değildir. NoSQL sistemini kullanan araçlar ile kullanılmaktadır. MongoDB bunların başında gelmektedir.
NoSQL'e kısa bir giriş yaptık. Şimdi detaylıca inceleyelim.
NoSQL' Giriş?
Yukarıda belirttiğim gibi NoSQL'de ilişkisel olmayan tablolar bulunmayan bir veri topluluğudur. NoSQL hem maliyet hemde verilerinin sistemlerde daha az kaynak tüketimi ile tutulmasına olanak sağlamaktadır. Veriler XML ve ya JSON şeklinde tutulabilmekte. Sql'de ki gibi sorgulama yok! NoSQL Ram'da çalışmaktadır. BigTable olarak veriler tutulmaktadır. NoSQL'i bir Excel'e benzetebilir.
Mobil sistemlerde SqlLite gibi oldukça sık kullanılan bir yöntemdir.
Fire And Forget Prensibi
NoSQL'inn çalışma prensibidir. Verinin çok önem arzettiği uygulamalarda NoSQL kullanılmamalıdır. Bunun sebebi ram üzerinde çalışmasıdır. Herhangi bir olumsuz durumda NoSQL sistemi bir problemle karşılaştığında güncelleme ve yedekleme sistemine güvenemeyiz.
Hızlı olmasının getirdiği sıkıntı sadece bu. Sıkıntı demek doğru değil ama NoSQL sistemleri için
NoSQL Artıları
- Sıkça güncellenen kullanılan verilerin hızla kaydedilmesi ve cevap alınması.
- Veri yönetiminin kolay olması
- Maliyet'in düşün olması.
- NoSQL sisteminin yönetimi kolay olması.
- SQL'de ki gibi sorgulama işlemi yapılmaması.
NoSQL Sistemleri
- BigTable,Hbase,Cassandra
- MongoDB,CouchDB,RavenDB
- AzureTableStorage,MemcacheDB
- AmazonDynamo,Dynomite
- BigData,Neo4J
gibi çeşitleri bulunmaktadır. NoSql sistemlerinin çeşitleri vardır. Bu çeşitlilik sistem ihyacına göre değişmektedir.
Hocam yazı için çok teşekkür ederim oldukça aydınlatıcı oldu fakat bir sorum var.
İlişkisel veritabanları sistemindeki one-to-many tarzı bir tablo sistemi burada nasıl oluyor? Örnek verecek olursak, bir kişinin birden fazla üniversite bitirdiğini düşünelim, yazılım tarafında 2. , 3. üniversite girmeyi opsiyonel verdiğimiz varsayalım (0 olabilir, 1 olabilir, 5 olabilir) . Böyle bir mantıkta 2. ve 3. üniversite kaydını nasıl yapar database (örnek mongodb) ?