NoSQL Eğitimi: Nedir, NoSQL Veritabanlarının Türleri ve Örnek

NoSQL nedir?

NoSQL Veritabanı, sabit bir şema gerektirmeyen, ilişkisel olmayan bir Veri Yönetim Sistemidir. Birleştirmeleri önler ve ölçeklendirilmesi kolaydır. NoSQL veritabanı kullanmanın asıl amacı, çok büyük veri depolama ihtiyaçları olan dağıtılmış veri depoları içindir. NoSQL, Büyük veri ve gerçek zamanlı web uygulamaları için kullanılır. Örneğin Twitter, Facebook ve Google gibi şirketler her gün terabaytlarca kullanıcı verisi topluyor.

NoSQL veritabanı "Yalnızca SQL Değil" veya "SQL Değil" anlamına gelir. Daha iyi bir terim "NoREL" olsa da NoSQL benimsendi. Carl Strozz, 1998 yılında NoSQL konseptini tanıttı.

Geleneksel RDBMS, daha fazla bilgi edinmek amacıyla verileri depolamak ve almak için SQL sözdizimini kullanır. Bunun yerine NoSQL veritabanı sistemi, yapılandırılmış, yarı yapılandırılmış, yapılandırılmamış ve çok biçimli verileri depolayabilen çok çeşitli veritabanı teknolojilerini kapsar. Bu NoSQL veritabanı eğitimindeki bir diyagramla NoSQL'i anlayalım:

NoSQL Veritabanı

Neden NoSQL?

NoSQL veritabanları kavramı Google, Facebook gibi internet devleri arasında popüler hale geldi. Amazon, vb. büyük miktarda veriyle uğraşırlar. Büyük hacimli veriler için RDBMS kullandığınızda sistemin yanıt süresi yavaşlar.

Bu sorunu çözmek için mevcut donanımımızı yükselterek sistemlerimizi "ölçeklendirebiliriz". Bu süreç pahalıdır.

Bu sorunun alternatifi, yük arttığında veritabanı yükünü birden fazla ana bilgisayara dağıtmaktır. Bu yönteme "ölçek genişletme" adı verilir.

NoSQL

NoSQL veritabanı ilişkisel değildir, dolayısıyla web uygulamaları göz önünde bulundurularak tasarlandıkları için ilişkisel veritabanlarından daha iyi ölçeklenir.

NoSQL Veritabanlarının Kısa Tarihi

  • 1998- Carlo Strozzi, hafif, açık kaynaklı ilişkisel veritabanı için NoSQL terimini kullandı
  • 2000- Grafik veritabanı Neo4j başlatıldı
  • 2004- Google BigTable kullanıma sunuldu
  • 2005- CouchDB başlatıldı
  • 2007- Araştırma makalesi Amazon Dinamo piyasaya sürüldü
  • 2008- Facebook'un kaynakları açık Cassandra proje
  • 2009- NoSQL terimi yeniden kullanılmaya başlandı

NoSQL'in özellikleri

İlişkisel olmayan

  • NoSQL veritabanları hiçbir zaman aşağıdaki kurallara uymaz: ilişkisel model
  • Hiçbir zaman düz sabit sütunlu kayıtlar içeren tablolar sağlamayın
  • Bağımsız kümeler veya BLOB'larla çalışma
  • Nesne-ilişkisel haritalama ve veri normalleştirme gerektirmez
  • Sorgu dilleri, sorgu planlayıcıları, referans bütünlüğü bağlantıları, ACID gibi karmaşık özellikler yok

Şema içermez

  • NoSQL veritabanları ya şemasızdır ya da esnek şemalara sahiptir
  • Veri şemasının herhangi bir tanımına ihtiyaç duymaz
  • Aynı etki alanında heterojen veri yapıları sunar
NoSQL'in özellikleri
NoSQL Şema İçermez

Basit API

  • Sağlanan verilerin depolanması ve sorgulanması için kullanımı kolay arayüzler sunar
  • API'ler düşük düzeyde veri işleme ve seçim yöntemlerine izin verir
  • Çoğunlukla JSON'lu HTTP REST ile kullanılan metin tabanlı protokoller
  • Çoğunlukla standart tabanlı NoSQL sorgu dili kullanılmadı
  • İnternete yönelik hizmetler olarak çalışan web özellikli veritabanları

Dağıtılmış

  • Birden fazla NoSQL veritabanı dağıtılmış bir şekilde yürütülebilir
  • Otomatik ölçeklendirme ve yük devretme özellikleri sunar
  • Ölçeklenebilirlik ve verim için çoğu zaman ASİT konsepti feda edilebilir
  • Dağıtılmış düğümler arasında çoğunlukla eşzamanlı çoğaltma yoktur. Eşzamansız Çoklu Ana Bilgisayar Çoğaltma, eşler arası, HDFS Çoğaltma
  • Yalnızca nihai tutarlılığı sağlamak
  • Hiçbir Şey Paylaşılmadı Archidoku. Bu daha az koordinasyon ve daha yüksek dağıtım sağlar.
NoSQL'in özellikleri
NoSQL Hiçbir Şey Paylaşılmaz.

NoSQL Veritabanlarının Türleri

NoSQL Veritabanları temel olarak dört türe ayrılır: Anahtar/değer çifti, Sütun odaklı, Grafik tabanlı ve Belge odaklı. Her kategorinin kendine özgü nitelikleri ve sınırlamaları vardır. Yukarıda belirtilen veri tabanlarının hiçbiri tüm sorunları çözmek için daha iyi değildir. Kullanıcılar veritabanını ürün ihtiyaçlarına göre seçmelidir.

NoSQL Veritabanlarının Türleri:

  • Anahtar/değer çiftine dayalı
  • Sütun Odaklı Grafik
  • Grafik tabanlı
  • Belge odaklı

NoSQL Veritabanlarının Türleri

Anahtar Değer Çifti Tabanlı

Veriler anahtar/değer çiftleri halinde depolanır. Çok fazla veriyi ve ağır yükü kaldırabilecek şekilde tasarlanmıştır.

Anahtar-değer çifti depolama veritabanları, verileri her anahtarın benzersiz olduğu ve değerin bir JSON, BLOB (İkili Büyük Nesneler), dize vb. olabileceği bir karma tablo olarak depolar.

Örneğin, bir anahtar/değer çifti, "Guru99" gibi bir değerle ilişkilendirilmiş "Web Sitesi" gibi bir anahtar içerebilir.

Anahtar Değer Çifti Tabanlı

En temel NoSQL veritabanı örneklerinden biridir. Bu tür NoSQL veritabanı bir koleksiyon, sözlükler, ilişkisel diziler vb. olarak kullanılır. Anahtar değer depoları, geliştiricinin şemasız verileri depolamasına yardımcı olur. Alışveriş sepeti içerikleri için en iyi şekilde çalışırlar.

Redis, Dynamo, Riak, anahtar-değer deposu Veri Tabanlarının bazı NoSQL örnekleridir. Hepsi dayanmaktadır AmazonDinamo kağıdı.

sütun tabanlı

Sütun odaklı veritabanları sütunlar üzerinde çalışır ve Google'ın BigTable makalesini temel alır. Her sütun ayrı ayrı ele alınır. Tek sütunlu veritabanlarının değerleri bitişik olarak saklanır.

Sütun Tabanlı NoSQL Veritabanı

Sütun tabanlı NoSQL veritabanı

SUM, COUNT gibi toplama sorgularında yüksek performans sağlarlar. AVG, MIN vb. veriler bir sütunda kolayca bulunabildiğinden.

Sütun tabanlı NoSQL veritabanları, veri ambarlarını yönetmek için yaygın olarak kullanılır. iş zekası, CRM, Kütüphane kartı katalogları,

HBase, Cassandra, HBase, Hypertable, sütun tabanlı veritabanının NoSQL sorgu örnekleridir.

Belge Odaklı

Belge Odaklı NoSQL DB, verileri bir anahtar değer çifti olarak saklar ve alır, ancak değer kısmı bir belge olarak depolanır. Belge JSON veya XML formatlarında saklanır. Değer DB tarafından anlaşılır ve sorgulanabilir.

İlişkisel Vs. Belge

İlişkisel Vs. Belge

Sol taraftaki bu şemada satır ve sütunlarımızın olduğunu, sağ tarafta ise JSON'a benzer yapıya sahip bir belge veritabanımızın olduğunu görüyorsunuz. Şimdi ilişkisel veritabanı için hangi sütunlara sahip olduğunuzu vb. bilmeniz gerekir. Ancak bir belge veritabanı için JSON nesnesi gibi bir veri deponuz vardır. Hangisinin onu esnek kıldığını tanımlamanıza gerek yoktur.

Belge türü çoğunlukla CMS sistemleri, blog platformları, gerçek zamanlı analizler ve e-ticaret uygulamaları için kullanılır. Değişen toplu yapılara karşı birden fazla işlem veya sorgu gerektiren karmaşık işlemler için kullanılmamalıdır.

Amazon BasitDB, CouchDB, MongoDB, Riak, Lotus Notes, MongoDB, popüler Belge kökenlidir DBMS sistemleri.

Grafik Tabanlı

Grafik tipi bir veritabanı, varlıkları ve bu varlıklar arasındaki ilişkileri saklar. Varlık, kenarlar olarak ilişkiye sahip bir düğüm olarak depolanır. Kenar, düğümler arasındaki ilişkiyi verir. Her düğüm ve kenarın benzersiz bir tanımlayıcısı vardır.

Grafik Tabanlı

Tabloların gevşek bir şekilde bağlandığı ilişkisel bir veritabanıyla karşılaştırıldığında, Graph veritabanı doğası gereği çoklu ilişkiseldir. Geçiş ilişkisi hızlıdır çünkü bunlar zaten DB'ye yakalanmıştır ve bunların hesaplanmasına gerek yoktur.

Çoğunlukla sosyal ağlar, lojistik ve mekansal veriler için kullanılan grafik tabanlı veritabanı.

Neo4J, Sonsuz Grafik, OrientDB, FlockDB bazı popüler grafik tabanlı veritabanlarıdır.

NoSQL için Sorgu Mekanizması araçları

En yaygın veri alma mekanizması, bir değerin GET kaynağı ile anahtarına/kimliğine dayalı olarak REST tabanlı olarak alınmasıdır.

Belge deposu Veritabanı, anahtar/değer çiftindeki değeri anladıkları için daha zor sorgular sunar. Örneğin, CouchDB MapReduce ile görünümlerin tanımlanmasına izin verir

CAP Teoremi Nedir?

CAP teoremine Brewer teoremi de denir. Dağıtılmış bir veri deposunun üç garantiden ikisinden fazlasını sunmasının imkansız olduğunu belirtiyor

  1. Tutarlılık
  2. Uygunluk
  3. Bölme Toleransı

Tutarlılık:

Veriler, bir işlemin yürütülmesinden sonra bile tutarlı kalmalıdır. Bu, veriler yazıldıktan sonra gelecekteki herhangi bir okuma isteğinin bu verileri içermesi gerektiği anlamına gelir. Örneğin sipariş durumunu güncelledikten sonra tüm istemcilerin aynı verileri görebilmesi gerekir.

Durumu:

Veritabanı her zaman kullanılabilir ve duyarlı olmalıdır. Herhangi bir kesinti olmamalıdır.

Bölüm Toleransı:

Bölüm Toleransı, sunucular arasındaki iletişim istikrarlı olmasa bile sistemin çalışmaya devam etmesi gerektiği anlamına gelir. Örneğin, sunucular birbirleriyle iletişim kuramayan birden fazla gruba bölünebilir. Burada veritabanının bir kısmı kullanılamıyorsa diğer kısımlar her zaman etkilenmez.

Nihai Tutarlılık

"Nihai tutarlılık" terimi, yüksek kullanılabilirlik ve ölçeklenebilirlik elde etmek için verilerin birden fazla makinede kopyalanması anlamına gelir. Bu nedenle, bir makinedeki herhangi bir veri öğesinde yapılan değişikliklerin diğer kopyalara yayılması gerekir.

Veri çoğaltımı anında olmayabilir çünkü bazı kopyalar anında güncellenirken diğerleri zamanla güncellenecektir. Bu kopyalar karşılıklı olabilir ancak zamanla tutarlı hale gelirler. Bu nedenle adı nihai tutarlılıktır.

BASE: Baslına uygun Amevcut Ssık sık devlet, Egeçici tutarlılık

  • Temel olarak mevcut, CAP teoremine göre DB'nin her zaman mevcut olduğu anlamına gelir
  • Yumuşak durum, bir giriş olmadan bile anlamına gelir; sistem durumu değişebilir
  • Nihai tutarlılık, sistemin zaman içinde tutarlı hale geleceği anlamına gelir

Nihai Tutarlılık

NoSQL'in Avantajları

  • Birincil veya Analitik Veri Kaynağı olarak kullanılabilir
  • Büyük Veri Yeteneği
  • Tek Hata Noktası Yok
  • Kolay Çoğaltma
  • Ayrı Önbellek Katmanına Gerek Yok
  • Hızlı performans ve yatay ölçeklenebilirlik sağlar.
  • Yapılandırılmış, yarı yapılandırılmış ve yapılandırılmamış verileri eşit etkiyle işleyebilir
  • Kullanımı kolay ve esnek olan nesne yönelimli programlama
  • NoSQL veritabanlarının yüksek performanslı özel bir sunucuya ihtiyacı yoktur
  • Temel Geliştirici Dillerini ve Platformlarını Destekleyin
  • Uygulaması RDBMS kullanmaktan daha kolaydır
  • Çevrimiçi uygulamalar için birincil veri kaynağı olarak hizmet verebilir.
  • Veri hızını, çeşitliliğini, hacmini ve karmaşıklığını yöneten büyük verileri işler
  • Dağıtılmış veritabanı ve çoklu veri merkezi operasyonlarında mükemmel sonuçlar
  • Verileri depolamak için belirli bir önbelleğe alma katmanına olan ihtiyacı ortadan kaldırır
  • Kesinti veya hizmet kesintisi olmadan kolayca değiştirilebilen esnek bir şema tasarımı sunar

NoSQL'in dezavantajları

  • Standardizasyon kuralı yok
  • Sınırlı sorgu yetenekleri
  • RDBMS veritabanları ve araçlar nispeten olgunlaşmıştır
  • Birden fazla işlem aynı anda gerçekleştirildiğinde tutarlılık gibi geleneksel veritabanı yeteneklerini sunmuyor.
  • Veri hacmi arttığında anahtarlar zorlaştığından benzersiz değerlerin korunması da zorlaşır
  • İlişkisel verilerle pek iyi çalışmıyor
  • Yeni geliştiriciler için öğrenme eğrisi zorludur
  • Açık kaynak seçenekleri işletmeler için pek popüler değil.

ÖZET

  • NoSQL, sabit bir şema gerektirmeyen, birleştirmeleri önleyen ve ölçeklenmesi kolay, ilişkisel olmayan bir DMS'dir.
  • NoSQL veritabanları kavramı Google, Facebook gibi internet devleri arasında popüler hale geldi. Amazon, vb. büyük miktarda veriyle uğraşan
  • 1998 yılında Carlo Strozzi hafif, açık kaynaklı ilişkisel veritabanı için NoSQL terimini kullandı.
  • NoSQL veritabanları hiçbir zaman ilişkisel modeli izlemez; şema içermez veya esnek şemalara sahiptir
  • NoSQL Veritabanının dört türü vardır: 1). Anahtar/değer çiftine dayalı 2). Sütun Odaklı Grafik 3). Grafiklere dayalı 4). Belge odaklı
  • NOSQL yapılandırılmış, yarı yapılandırılmış ve yapılandırılmamış verileri eşit etkiyle işleyebilir
  • CAP teoremi Tutarlılık, Kullanılabilirlik ve Bölüm Toleransı olmak üzere üç kelimeden oluşur
  • BASE'in anlamı Baslına uygun Amevcut Ssık sık devlet, Egeçici tutarlılık
  • "Nihai tutarlılık" terimi, yüksek düzeyde kullanılabilirlik ve ölçeklenebilirlik elde etmek için verilerin birden fazla makinede kopyalanması anlamına gelir
  • NoSQL sınırlı sorgu yetenekleri sunar