NoSQL Nedir?

Merhaba arkadaşlar. Bu yazımda birlikte , günümüzde fazlaca popüler olan, ilişkisel veritabanlarına alternatif olarak ortaya çıkan NoSQL yapısını basitçe inceleyeceğiz.  🙂 

                            nosql-nedir

NoSQL denildiğinde aklımıza ilk olarak “SQL değil” anlamı gelse de NoSQL için NOT ONLY SQL yani “Sadece SQL Değil” kavramı da kullanılmaktadır.

Yazının başında ilişkisel veritabanlarına alternatif olarak ortaya çıkan tabirini kullandım. İlişkisel veritabanlarında kullanılan SQL sorguları NoSQL’de yoktur. Veriler JSON ya da XML formatında tutulur. 

“Neden kullanıyorlar ki bunu? Amaç nedir abi?” sorusu için şöyle bir açıklama getirebilirim. Günümüzde internetin yaygınlaşması ve hızlanması sebebi ile sistemler sürekli büyüyen bir veri yumağına dönüşüyor. Sistemlerin büyümesi ile veritabanları da karmaşıklaşıyor ve karmaşık veritabanlarında sürekli değişiklik yapmak zorlaşıyor.

Tabloları ve sütunları ekleyip, son olarak ilişkileri düzenlediğimiz, fazla sayıda veri barındıran bir veritabanı düşünelim. Bir süre sonra tabloya yeni bir sütun eklememiz ya da önceden planlayamadığımız bir değişiklik yapmamız gerektiğinde , tabloyu ve ilişkileri yeniden tasarlamamız, belki veritabanı tasarımını baştan yapmamız gerekebilir. Bahsedilen değişiklikleri büyük bir sistem üzerinde uygulamak verimsiz/maliyetli sonuçlar doğurabilir.

NoSQL de sonradan değişiklik yapmak ilişkisel veritabanlarında olduğu kadar verimsizlik yaratmaz. Çünkü tablo veya sütun kavramlarının olmadığı NoSQL de tek yapmanız gereken eklemek istediğiniz veriyi JSON ya da XML formatında eklemektir. 

İlişkisel veritabanları transaction alt yapısıyla çalışır. Yani veri bütünlüğünü sağlamak için çeşitli prensiplere dayanarak işlem yapılır. NoSQL’de transaction kavramı yoktur. Fire and Forget adı verilen bir prensiple çalışan bu sistemde amaç hız ve performansı maximize etmektir. Yani %100 veri bütünlüğü sağlamaz. Bankacılık gibi hassas , verinin aynı anda her yerde güncellenmesi gereken sistemlerde NoSQL tercih edilmemektedir. 

Günümüzde Google Big Table , Amazon ise DynamoDB adını verdiği NoSQL veritabanı sistemi ile verilerini saklamaktadır. NoSQL genel olarak çoğu sistemin belli kısımlarında, parça parça kullanılmaktadır. 

NoSQL kendi içinde şu şekilde gruplandırılmıştır :

1) Wide-column stores

2)Document databases

3)Key-value stores

4)Graph stores

Şimdilik NoSQL hakkında bildiklerim bu kadar. Öneri ve düzeltmeler için yorum yapabilirsiniz. Bir daha ki yazıda görüşmek üzere. Mutlu günler 🙂 

Bye-smiley