Welcome to My Blog 👋

Java, Spring Framework, Microservices, Docker, Kubernetes, AWS and Others 🚀
Follow Me

SQL - NOSQL



  November 10, 2018    Labels:,,,,,,,, 

NOSQL, yıllardır kullanılan ilişkisel veritabanlarına alternatif olarak ortaya çıkmış bir veritabanı sistemidir. Günümüzde verilerin boyutlarının çok fazla artışından ve big data denilen kavramın ortaya çıkışından sonra artık ilişkisel veritabanları ihtiyaçları tam anlamıyla karşılamamaya başlamıştır. Bu yüzden NOSQL veritabanları ilişkisel veritabanlarına bu anlamda bir alternatif üretmek için ortaya çıkmıştır. NOSQL sistemlerinde SQL dili kullanılmadığı için NOSQL olarak adlandırılmıştır.

NOSQL'in önemini şöyle vurgulayabiliriz. Google yıllardır indekslediği sitelerin bilgilerini ilişkisel veritabanında(RDBMS) değil Big Table üzerinde tutuyor. Bu sayede RDBMS gibi büyük verileri performanslı bir şekilde işleyemeyen pahalı sistemler yerine açık kaynaklı ucuz ve performanslı sistemleri tercih ediyor.

NOSQL, RDBMS gibi işlem tabanlı çalışmaz. Bunun yerine yatay büyüme yaparak, performans kazancı sağlar. Verileri bölerek kopyalarını dağınık sistemin farklı parçalarına ekler böylelikle tutarlılık sağlar ve her bir parça için harcanan yük azaltılmış olur.

RDBMS önceden tasarlanıp sütunları belirlenir ve satır satır eklenir. Ancak NOSQL de bu tip bir tanıma gerek yoktur. Bunun yerine daha esnek bir yapı bulunur. Bu kafanızda soru işareti bırakıyorsa şöyle düşünün. 2 adet kolonu olan bir tablonuzda integer verileri tutuyorsunuz yeni satırınızda bunlar yerine varchar eklemeniz gerekiyor. Hiçbir değişikliğe gerek kalmadan verinizi ekleyebilirsiniz. A kolonu B kolonu varken C ve D'ye gerek yok.

NOSQL birincil indeks değerine ihtiyaç duyar ve bunun üzerinden erişim sağlar. RDBMS de bu zorunlu değildir. Oluşan indeks üzerinden belirli aralığa hızlıca ulaşılabilir.

RDBMS bir sistem kullanırken verinin nasıl depolanacağınız ile ilgilenirken, NOSQL için depoladığınız veriyi nasıl kullanacağınızı düşünüyorsunuz.

NOSQL Türleri
  • Döküman (Document) tabanlı:  Bu tip veri tabanları JSON yapısında kayıt yapar. Bu yapılarda sınırsız alan oluşturabilirsiniz. Hatta sınırsız alanların içine sınırsız alanlar ve onların da içine şeklinde devam edebilirsiniz. MongoDB, CouchDB, Amazon Simple DB, Cassandra, HBase...
  • Anahtar / Değer (Key / Value) tabanlı:  Bu sistemlerde anahtarlara karşılık gelen tek bir bilgi bulunur. Kolon yapısı yoktur. MemcacheDB, Berkeley DB, Azure Table Storage...
  • Grafik (Graph) tabanlı:  Bu sistemler diğerlerinden farklı olarak verilerin ilişkisini saklayan Graph Theory modelindeki sistemlerdir. Neo4J, FlockDB...



No comments:

Post a Comment