NoSQL Veritabanları

NoSQL Veritabanları

Bu yazımızda; uygun ölçekte geliştirme kolaylığı, işlevselliği ve performansıyla geniş çaplı olarak kabul gören NoSQL veritabanlarından bahsedeceğiz.
Burak Aslan28 Eki 2022

NoSQL, büyük veri tabanı yönetim sistemlerinin genel adıdır. İlişkisel olmayan veritabanı türlerini ifade eder. Bu tablolar, verileri ilişkisel tablolardan daha farklı bir formatta depolama yapar. Büyük veri ile birlikte ölçekleme ihtiyacından doğmuştur ve klasik RDBMS’lerin (ilişkisel veritabanı yönetim sistemi) yetersiz kaldığı alanlarda tercih edilmektedir.

 

NoSQL ve RDBMS farkları 
 

 NoSQLRDBMS
SorguSorgu dili bildirime dayalı değildir.Yapılandırılmış Sorgu Dili anlamına gelir.
ÖlçeklenebilirlikNoSQL veritabanları yatay olarak ölçeklenebilir.RDBMS veritabanları dikey olarak ölçeklenebilir.
TasarımNoSQL, birden çok veritabanı teknolojisini birleştirir. Bu veritabanları, uygulamanın gereksinimlerine yanıt olarak oluşturulmuştur.RDBMS sistemleri, verilerden anlamlı bilgiler elde etmek için SQL sorguları kullanır.
HızNoSQL veritabanları, kendilerini optimize etmek için denormalizasyon kullanır. Bir kayıt, tüm sorgu verilerini depolar. Bu, sorguları hızlandırıp eşleşen kayıtları bulmayı kolaylaştırır.İlişkisel veritabanı modelleri, farklı tablolardaki verileri içerir; bu yüzden bir sorgu çalıştırırken, bilgileri bütünleştirmeli ve tablodaki kısıtlamaları ayarlamalısınız. Çok fazla tablo nedeniyle, veritabanının sorgu süresi yavaştır.

 

NoSQL veritabanı türleri

 

 

Document Databases (Doküman veritabanları)

  • Yarı yapısal veri üzerinde CRUD(create-read-update-delete) operasyonlarına imkan sağlar.
  • Bu kategori altında mevcut olan veritabanlarının çoğu, XML, JSON, BSON veya YAML'yi kullanır, tipik olarak RESTful API kullanarak HTTP protokolü üzerinden veya çapraz dil (cross-language) birlikte çalışabilirliği için Apache Thrift protokolü üzerinden veri erişimine sahiptir.
  • Document, RDBMS’deki bir satırın karşılığıdır.
  • Document yarı yapısaldır. Her iki satır aynı olmak zorunda ancak her iki document değil. Primary key tarzında bir anahtar bilgisi zorunlu değil.
  • Örnek olarak MongoDB gösterilebilir.

 

Doküman veri tabanlarının avantajları

  • Şema zorunluluğu yoktur.
  • Zaman içinde oluşabilecek farklı türde içeriklerin depolanmasına ihtiyaç duyulan web tabanlı uygulamalarda çok kullanışlıdır.
  • Birden fazla alanda arama yapmak RDBMS’e göre oldukça kolaydır.
  • Arama bir tabloda değil tüm veri tabanında yapılabilir.

Key-Value Databases(Anahtar-Değer Veritabanları)

  • Document veri tabanlarına benzer
  • Şema dayatması yoktur.
  • Değere ulaşmak için anahtar bilme zorunluluğu vardır.
  • En yaygın kullanımı, bellek içi dağıtılmış veya önbellek içindir.
  • Örnek olarak Redis gösterilebilir.

 

Key-value veri tabanlarının avantajları:

  • Anahtara dayalı sorguların optimizasyonunda kullanılır.
  • Bellek içi veri tabanı kullanım ihtiyacında avantaj sağlar.
  • Caching (Önbelleğe alma): Web aplikasyonları için sık ulaşılan bilgileri önbelleğe alır.
  • Session management (Oturum yönetimi):  Kullanıcı bilgilerinin saklar ve geri çağırabilir.
  • Leaderboards (Lider tabloları): Gerçek zamanlı, yüksek düzeyde kullanılabilir veri dilimleme işlemi yapar.
  • Inventory (Envanter): Gerçek zamanlı karmaşık envanteri yönetir.
  • Fraud mitigation (Dolandırıcılık azaltma): Dolandırıcılık tespitini hızlandırır.
  • Claims processing (Taleplerin işlenmesi): Gerçek zamanlı taleplerin verimli, hızlı işlenmesi.


 

Wide-column stores databases (Geniş sütunlu veritabanları):

Sütun yönelimli (column-oriented) veritabanları, verileri RDBMS'de öne çıkan satırların aksine sütunlar olarak depolar.

Row-oriented (Satır odaklı): Yazma işlemlerinde daha hızlı.

Column-oriented (Sütun odaklı): Okuma işlemlerinde daha hızlı.

Wide-column veri tabanlarının avantajları:

  • Aslında bir bakıma döküman bazlı veri tabanlarının bir alt çeşidi sayılabilir.
  • Esnektir. Öngörülemeyen ihtiyaç ve senaryolara kolay uyum sağlar.
  • Yeni bir sütun eklendiğinde varsayılan değer sıkıntısı yoktur.
  • Sütun bazlı hesaplamalarda performanslı.
  • Aynı türde veriler ardışık depolandığı için yazma-okuma ve sıkıştırma performansı iyidir.
  • Uygulamanın sorgulama ihtiyacına göre tasarlanır.
  • Büyük hacimli verileri saklayabilir.
  • Örnek olarak Cassandra, HBase gösterilebilir.
     

 

Graph databases (Grafik veritabanları):

  • İlişkilerin bir çizge (graf-graph) ile gösterildiği veri tabanı çeşididir.
  • Nesneler arasında bağlantı olmalıdır. Örneğin, insanlar arasındaki bağlantı, lojistik noktalar arasındaki bağlantı gibi.
  • Graf veri tabanları, ilişki ağırlıklı veriler için optimize edilmiş özel amaçlı NoSQL veritabanları olarak düşünülebilir.
  • Örnek olarak Neo4j, FlockDB (from Twitter), Janus Graph gösterilebilir.

 

 

Kaynaklar

Miuul topluluğunun bir parçası ol!

Abone ol butonuna tıklayarak Miuul'dan pazarlama ve haber içerikleri almayı onaylıyorum.