Yeni Bir Yazı dizisine daha merhaba, Bu hafta Big Data – No SQL Nedir konusuna değineceğiz ve her hafta bir tane kesin bir yazı yazacağız.
Her hafta yazıcağımız yazı ise Document Store ‘dan mongodb olacak. Elastic Search ile ilgili de yazılar gelicektir.
NoSQL Nedir ?
ilişkisel veritabanı yönetim sistemlerinden farklı ve alternatif bir yaklaşım olarak ortaya çıkan NoSQL, herhangi bir şema formatında ve “ilişkisel olmayan” verileri depolayabileceğiniz veritabanı sistemlerine kavramsal olarak verilen isimdir.
Elimizde her gün bir şekilde veri ürettiğimizi düşünün. Örneğin üstteki firmaların her hareketlerinde bir veri kümesi oluşmaktadır. Bu veriler kimi zaman standart bir yapıda, genellikle de değişken bir yapıda (unstructured) olmaktadır.Gelen alanlar sürekli değişebilir (artabilir,azalabilir) . Bir veride 100 alan gelirken bir sonrakinde bu sayı 200 e çıkabilir . Eğer böyle bir yapıyı İlişkisel Veritabanı kullanarak kurgularsak sürekli olarak tablo, kolon, index, trigger, dao … güncellemeleri gerekebilir
İşte noSQL burada işe yarıyor. Bizi büyük bir zahmetten kurtarıyor.
Kısaca NoSQL yararlarını listelemek istersek ,
- Büyük verileri saklayabilmesi
- Verileri birden fazla makina üzerinde saklayarak veri kaybını önlemesi(replication)
- Kullanım kolaylığı
olarak sıralayabiliriz.
NoSQL’in bir çok çeşidi bulunmaktadır. Burada verilerin karakteristiği ve analiz türüne göre çeşitlerini sıralarsak,
Wide Column Store / Column Families
Aslında ilişkisel veritabanlarına benzemektedir. farkı ise Super Column ile yapıyı belirleriz ve yukarıdaki gibi alanların altına her kayıt için farklı bir kolon oluşturabiliriz.
Kullanıdığı Yerler : Hadoop / HBase , Cassandra
Document Store
Document şeklinde kayıt edilen, saklanan verilerdir. JSON formatında saklanan bir veri örnek olarak gösterilebilir.
Kullanıldığı Yerler : MongoDB, ElasticSearch
Key Value / Tuple Store
Keyler üzerinden hızlı bir şekilde veriye ulaşabiliriz.
Kullanıldığı Yerler : Redis, DynamoDB
Graph Databases
Bu yapı ise birbirleri ile ilişkili olan verilerin tutulduğu yapıdır.
Kullanıldığı yerler : Neo4j
Kısaca bir resimle özetleyecek olursak.
![]()
NoSQL veritabanı özelliklerini;
- SQL sorgulama arayüzü ve bildiğimiz SQL sorguları ile çalışmıyor olmaları (Sorgulama arayüzleri değişkenlik gösteriyor. JSON, REST, RPC vb.. şeklinde farklı API’lerle sorgulanabilen versiyonlar mevcut. RavenDB ise tamamen LINQ ile sorgulanabiliyor!)
- Çok-ögeli (tuple) sabit ilişkisel şemalar yerine veri tipleri önceden belirlenmemiş ve genişletilebilir veri şeması kullanıyor olmaları
- Özellikle yatay ölçeklendirmeye göre tasarlanmış olmaları (Facebook, Google, Amazon gibi her gün terabaytlarca veriyle haşır olan devlerin NoSQL veritabanlarını tercih etmesinin ana nedenlerinden)
- Veriyi disk ya da sadece hafızada taşıyabilir olmaları
NoSQL ile çalışırken alışmış olduğumuz ilişkisel veritabanlarımızdaki gibi verilerimizi satır satır saklamaya ve diğer tablolarla ilişkilendirip tanımlamalarımızı yapmıyoruz.Veriler JSON ya da XML formatında saklanıyor.
Ancak burada dikkat edilmesi gereken nokta NoSQL, Fire and Forget prensibi ile çalıştığı için bankacılık vb. kritik uygulamalarda kullanılmamalıdır. Aksine verinin 100% önemli olmadığı durumlarda kullanılabilir.




