NoSQL Eğitimi: NoSQL Veritabanı Türleri ve Örneği

⚡ Akıllı Özet

NoSQL, sabit bir şema gerektirmeyen, birleştirmelerden kaçınan ve kolayca ölçeklenebilen ilişkisel olmayan bir veritabanı yönetim sistemidir. Bu kaynak, NoSQL'in ne olduğunu, neden var olduğunu, tarihini, özelliklerini, dört veritabanı türünü, CAP teoremini, nihai tutarlılığı ve avantajlarını ve dezavantajlarını açıklamaktadır.

  • ???? Tanım: Büyük ve dağıtılmış veri kümeleri için tasarlanmış, ilişkisel olmayan, şema içermeyen bir veri deposu.
  • 📈 Neden: Çok sayıda sunucuya yayarak ölçeklendirme, büyük verileri dikey ölçeklendirmeye göre daha hızlı işler.
  • 🗂️ Dört Tür: Anahtar-değer, sütun odaklı, grafik tabanlı ve belge odaklı.
  • 🇧🇷 CAP Teoremi: Dağıtılmış bir depolama sistemi yalnızca tutarlılık, kullanılabilirlik ve bölümleme toleransından ikisini garanti edebilir.
  • 🔁 BASE: Temel olarak kullanılabilir, Esnek durum, Kopyalar arasında nihai tutarlılık.

NoSQL Eğitimi

NoSQL nedir?

NoSQL Veritabanı NoSQL, sabit bir şema gerektirmeyen, ilişkisel olmayan bir veri yönetim sistemidir. Birleştirmelerden kaçınır ve ölçeklendirilmesi kolaydır. NoSQL veritabanı kullanmanın temel amacı, çok büyük veri depolama ihtiyaçlarına sahip dağıtılmış veri depolarıdır. NoSQL, büyük veri ve gerçek zamanlı web uygulamaları için kullanılır. Örneğin, Twitter, Facebook ve benzeri şirketler NoSQL kullanmaktadır. Google Her gün terabaytlarca kullanıcı verisi topluyor.

NoSQL veritabanı "NoSQL", "Not Only SQL" veya "Not SQL" kelimelerinin kısaltmasıdır. Daha uygun bir terim "NoREL" olsa da, NoSQL yaygınlaştı. Carl Strozzi, NoSQL kavramını 1998'de tanıttı.

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

NoSQL Veritabanı

Neden NoSQL?

NoSQL veritabanları kavramı, internet devleri arasında popüler hale geldi. Google, Facebook, 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 alternatif çözümü, yük arttığında veritabanı yükünü birden fazla sunucuya dağıtmaktır. Bu yöntem "ölçeklendirme" olarak bilinir.

NoSQL

NoSQL veritabanları ilişkisel olmayan veritabanlarıdır, bu nedenle web uygulamaları düşünülerek tasarlandıkları için ilişkisel veritabanlarına göre daha iyi ölçeklenebilirlik sunarlar.

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 piyasaya sürüldü.
  • 2007 – Araştırma makalesi üzerine Amazon Dinamo serbest bırakıldı.
  • 2008 – Facebook açık kaynaklı hale getirdi Cassandra projesi.
  • 2009 – NoSQL terimi yeniden kullanıma girdi.

NoSQL'in özellikleri

İlişkisel olmayan

  • NoSQL veritabanları hiçbir zaman aşağıdaki kurallara uymaz: ilişkisel model.
  • Tablolara asla düz, sabit sütunlu kayıtlar eklemeyin.
  • Bağımsız kümeler veya BLOB'larla çalışın.
  • Nesne-ilişki haritasına gerek yok.ping ve veri normalizasyonu.
  • Sorgu dilleri, sorgu planlayıcıları, referans bütünlüğü birleştirmeleri veya ACID gibi karmaşık özellikler yok.

Şema içermez

  • NoSQL veritabanları ya şemasızdır ya da gevşek şemalara sahiptir.
  • Veri şemasının herhangi bir tanımına gerek yoktur.
  • Aynı etki alanında heterojen veri yapıları sunun.
NoSQL'in özellikleri
NoSQL Şema İçermez

Basit API

  • Veri depolama ve sorgulama için kullanımı kolay arayüzler sunar.
  • API'ler, düşük seviyeli veri işleme ve seçim yöntemlerine olanak tanır.
  • HTTP ve REST protokolleri çoğunlukla JSON ile birlikte kullanılan metin tabanlı protokollerdir.
  • Çoğunlukla standart tabanlı olmayan NoSQL sorgu dili kullanılmıştır.
  • İnternete açık hizmetler olarak çalışan, web tabanlı veritabanları.

Dağıtılmış

  • Birden fazla NoSQL veritabanı dağıtılmış bir şekilde çalıştırılabilir.
  • Otomatik ölçeklendirme ve arıza durumunda devreye girme özellikleri sunar.
  • ACID konsepti çoğu zaman ölçeklenebilirlik ve verimlilik uğruna feda edilebiliyor.
  • Dağıtılmış düğümler arasında çoğunlukla senkron replikasyon yoktur; asenkron çoklu ana sunucu replikasyonu, eşler arası replikasyon, HDFS replikasyonu kullanılır.
  • Sadece nihai tutarlılığı sağlamak.
  • Paylaşımsız mimari. 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ı Veritabanları temel olarak dört türe ayrılır: Anahtar-değer çifti, Sütun tabanlı, Grafik tabanlı ve Belge tabanlı. Her kategorinin kendine özgü özellikleri ve sınırlamaları vardır. Yukarıda belirtilen veritabanlarından hiçbiri tüm sorunları çözmede daha iyi değildir. Kullanıcılar, ürün ihtiyaçlarına göre veritabanını 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 saklanır. Çok miktarda veriyi ve ağır yükü kaldıracak şekilde tasarlanmıştır. Anahtar-değer çifti depolama veritabanları, her anahtarın benzersiz olduğu ve değerin JSON, BLOB (İkili Büyük Nesneler), dize vb. olabileceği bir karma tablo olarak veri depolar.

Örneğin, bir anahtar-değer çifti, "Web sitesi" gibi bir anahtar ve "..." gibi bir değer içerebilir.Guru99. "

Anahtar Değer Çifti Tabanlı

Bu, en temel NoSQL veritabanı örneklerinden biridir. Bu tür NoSQL veritabanları koleksiyonlar, sözlükler, ilişkisel diziler vb. için kullanılır. Anahtar-değer depoları, geliştiricinin şemasız verileri depolamasına yardımcı olur. Özellikle küçük işletmeler için en iyi sonucu verirler.ping Sepet içeriği.

Redis, Dynamo ve Riak, anahtar-değer tabanlı veritabanlarının bazı NoSQL örnekleridir. Hepsi de şu temele dayanmaktadır: AmazonDinamo kağıdı.

sütun tabanlı

Sütun odaklı veritabanları sütunlar üzerinde çalışır ve BigTable makalesine dayanmaktadır. GoogleHer sütun ayrı ayrı ele alınır. Tek sütunlu veritabanlarının değerleri ardışık olarak saklanır.

Sütun Tabanlı NoSQL Veritabanı

Sütun tabanlı NoSQL veritabanı

Toplama, sayma gibi toplama sorgularında yüksek performans sağlarlar. AVGVeriler sütun halinde kolayca erişilebilir olduğundan, MIN vb. gibi işlemler kullanılır. Sütun tabanlı NoSQL veritabanları, veri ambarlarını yönetmek için yaygın olarak kullanılır. iş zekasıCRM ve kütüphane kart katalogları.

HBase, CassandraHypertable ve diğer NoSQL sorgu örnekleri, sütun tabanlı veritabanlarına aittir.

Belge Odaklı

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

İlişkisel Vs. Belge

İlişkisel Vs. Belge

Soldaki diyagramda satır ve sütunları, sağda ise JSON'a benzer bir yapıya sahip belge tabanlı bir veritabanını görebilirsiniz. İlişkisel veritabanı için hangi sütunlara sahip olduğunuzu vb. bilmeniz gerekir. Ancak, belge tabanlı bir veritabanı için JSON nesnesi gibi bir veri deposuna sahipsiniz. Bunu tanımlamanıza gerek yoktur, bu da onu esnek kılar.

Bu belge türü çoğunlukla CMS sistemleri, blog platformları, gerçek zamanlı analiz ve e-ticaret uygulamaları için kullanılır. Birden fazla işlem veya farklı toplu yapılar üzerinde sorgu gerektiren karmaşık işlemler için kullanılmamalıdır.

Amazon BasitDB, CouchDB, MongoDBRiak ve Lotus Notes, popüler belge odaklı yazılımlardır. DBMS sistemleri.

Grafik Tabanlı

Bir grafik veritabanı, varlıkların yanı sıra bu varlıklar arasındaki ilişkileri de depolar. Varlık, düğüm olarak, ilişki ise kenarlar olarak saklanır. Bir kenar, düğümler arasında bir ilişki kurar. Her düğüm ve kenarın benzersiz bir tanımlayıcısı vardır.

Grafik Tabanlı

Tabloların gevşek bir şekilde birbirine bağlı olduğu ilişkisel veritabanlarına kıyasla, grafik veritabanları doğası gereği çok ilişkilidir. İlişkiler zaten veritabanında yakalanmış olduğundan ve hesaplanmalarına gerek olmadığından, ilişkiler arasında gezinme hızlıdır. Grafik tabanlı veritabanları çoğunlukla sosyal ağlar, lojistik ve mekansal veriler için kullanılır.

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

NoSQL için Sorgu Mekanizması araçları

En yaygın veri alma mekanizması, GET kaynağı kullanılarak anahtar/kimlik değerine dayalı REST tabanlı veri alma yöntemidir.

Belge tabanlı veritabanları, anahtar-değer çiftindeki değeri anladıkları için daha karmaşık sorgulara olanak tanır. Örneğin, CouchDB MapReduce ile görünümler tanımlamaya olanak tanır.

CAP Teoremi Nedir?

CAP teoremi, Brewer teoremi olarak da adlandırılır. Dağıtılmış bir veri deposunun üç garantiden ikisinden fazlasını sunmasının imkansız olduğunu belirtir:

  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 kopyalarının bulunması anlamına gelir. Bu nedenle, bir makinedeki herhangi bir veri öğesinde yapılan değişikliklerin diğer kopyalara da yayılması gerekir.

Veri çoğaltma işlemi anlık olmayabilir; bazı kopyalar hemen güncellenirken diğerleri zaman içinde güncellenir. Bu kopyalar birbirleriyle tutarsız olabilir, ancak zaman içinde tutarlı hale gelirler. Bu nedenle, "nihai tutarlılık" adı verilir.

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

  • Temel olarak, "mevcut" ifadesi, CAP teoremi uyarınca veritabanının her zaman erişilebilir olduğu anlamına gelir.
  • Yumuşak durum, herhangi bir girdi olmasa bile sistem durumunun değişebileceği anlamına gelir.
  • Nihai tutarlılık, sistemin zaman içinde tutarlı hale gelmesi 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 bir arıza noktası yok.
  • Kolayca çoğaltılabilir.
  • Ayrı bir önbellekleme 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 aynı derecede etkili bir şekilde işleyebilir.
  • Kullanımı kolay ve esnek olan nesne yönelimli programlama.
  • NoSQL veritabanları, özel bir yüksek performanslı sunucuya ihtiyaç duymaz.
  • Önemli geliştirici dillerini ve platformlarını destekleyin.
  • İlişkisel veritabanı yönetim sistemine (RDBMS) göre uygulaması daha basittir.
  • Ç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 verilerle ilgilenir.
  • Dağıtılmış veritabanı ve çoklu veri merkezi operasyonlarında mükemmeldir.
  • Verileri depolamak için özel bir önbellekleme katmanına duyulan ihtiyacı ortadan kaldırır.
  • Kesinti veya hizmet aksaması olmadan kolayca değiştirilebilen esnek bir şema tasarımı sunar.

NoSQL'in dezavantajları

  • Herhangi bir standardizasyon kuralı yok.
  • Sınırlı sorgulama yetenekleri.
  • RDBMS Veritabanları ve araçlar nispeten olgunlaşmış durumda.
  • Birden fazla işlem aynı anda gerçekleştirildiğinde tutarlılık gibi geleneksel veritabanı yeteneklerini sunmuyor.
  • Veri hacmi arttıkça, anahtarlar zorlaştığı için benzersiz değerleri korumak zorlaşır.
  • İlişkisel verilerle aynı performansı göstermez.
  • Yeni yazılımcılar için öğrenme süreci oldukça zorlu.
  • Açık kaynak kodlu seçenekler kurumsal alanda pek popüler değil.

SSS

NoSQL veritabanları, yapay zeka ve büyük veri işlem hatlarının ürettiği büyük, çeşitli ve hızlı değişen verileri işler. Esnek şemaları ve yatay ölçeklenebilirlikleri, dağıtılmış kümeler genelinde eğitim verilerini, günlükleri ve gerçek zamanlı özellikleri depolamak için uygundur.

Evet. Çeşitli NoSQL veritabanları, örneğin... MongoDB Elasticsearch artık vektör alanlarını ve benzerlik aramasını destekliyor. Bu, yapay zeka uygulamalarının anlamsal arama ve öneri özellikleri için gömülü vektörleri belgelerin yanında saklamasına olanak tanıyor.

SQL veritabanları, sabit bir şemaya sahip ilişkisel veritabanlarıdır ve tablolar, satırlar ve birleştirmeler kullanır. NoSQL veritabanları ise ilişkisel olmayan, esnek şemalar kullanan ve yatay olarak ölçeklenebilen, verileri belgeler, anahtar-değer çiftleri, sütunlar veya grafikler olarak depolayan veritabanlarıdır.

Güçlü ACID işlemleri, karmaşık birleştirmeler veya bankacılık gibi sıkı veri bütünlüğü gerektiren durumlarda NoSQL'den kaçının. Olgun ilişkisel veritabanları, bu gibi durumlarda çoklu kayıt tutarlılığını ve standartlaştırılmış sorguları daha iyi yönetir.

Bu yazıyı şu şekilde özetleyin: