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.
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:
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 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.

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 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ı
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. "
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.
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.
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.
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:
- Tutarlılık
- Uygunluk
- 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.
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.







