NoSql vs İlişkisel veritabanı


Yanıtlar:


123

Tüm veriler ilişkisel değildir. Bu durumlar için NoSQL yardımcı olabilir.

Bununla birlikte, NoSQL "Sadece SQL Değil" anlamına gelir. SQL'i vurmak veya yerine koymak için tasarlanmamıştır.

SQL'in birçok büyük avantajı vardır:

  1. Güçlü matematiksel temel.
  2. Açıklayıcı sözdizimi.
  3. Yapısal Sorgulama Dili'nde (SQL) iyi bilinen bir dil.

Bunlar gitmedi.

Bunu bir ya da argüman olarak düşünmek yanlıştır. NoSQL, insanların uyurken dikkate alması gereken bir alternatiftir, hepsi bu.

Belgeler CouchDB gibi ilişkisel olmayan veritabanlarında saklanabilir.

Belki okuma bu irade yardım.


10
İlişkisel olmayan verilere bazı örnekler verebilir misiniz?
user496949

7
Belgeler ve görüntüler SQL Server ve Oracle gibi RDBMS içinde depolanabilir mi? O zaman neden NoSQL?
user496949

2
Yarı yapılandırılmış veriler böyle bir sınıftır. XML, E-posta, JSON vb. İçerir. Üzerindeki wikipedia sayfasına bakın. Genel kural, yapının orada olması, ancak gevşek bir şekilde tanımlanmış ve dinamik olarak genişletilebilir olmasıdır (ikincisi ilişkisel modelle sınıflandırma eğilimindedir - ve modellemek imkansız olmasa da, kesinlikle hantaldır). Başka bir sınıf "doğal veri" dir: Her ikisi de meta veri eklenmemiş bir Roman, Bir Görüntü.
CRAP CEVAPLARI

2
Yapamazsın SELECT blob FROM images WHERE blob CONTAINS('red car'). Bu nedenle, verileri ham veritabanında depolayabilseniz de, meta veri eklemeden bu verileri arayamazsınız. RDBMS sistemlerindeki tam metin arama modülleri, yarı yapısal boşluğun bir kısmını köprüler.
12/10

1
@duffymo: Belgeler "ilişkisel değil". Belgeler genellikle SQL DBMS'lerde depolanır ve bunun için bir NOSQL DBMS'ye ihtiyacınız yoktur. Aslında NOSQL veritabanları genellikle ilişkisel modele göre uygulamada daha az genel ve daha sınırlı veri modelleri kullanır . Örneğin, grafik veritabanları. Saklanan veri türü NOSQL'in herhangi bir avantajını açıklamaz.
nvogel

98

Tarih böyle görünüyor:

  1. Google, tersine çevrilmiş arama dizini için bir depolama katmanına ihtiyaç duyar. Geleneksel bir RDBMS'nin onu kesmeyeceğini düşünüyorlar. Bu nedenle, GFS dosya sistemlerinin üzerine BigTable olan bir NoSQL veri deposu uyguluyorlar. Büyük kısmı, binlerce ucuz emtia donanım makinesinin hız ve yedekliliği sağlamasıdır.

  2. Herkes Google'ın ne yaptığını fark eder.

  3. Brewers CAP teoremi kanıtlanmıştır. Tüm RDBMS kullanım sistemleri CA sistemleridir. İnsanlar CP ve AP sistemleriyle de oynamaya başlar. K / V mağazaları oldukça basittir, bu nedenle araştırmanın birincil aracıdır.

  4. Hizmet olarak yazılım sistemleri genel olarak SQL benzeri bir mağaza sağlamaz. Bu nedenle, insanlar NoSQL tipi mağazalarla daha fazla ilgilenirler.

Kalkışın büyük bölümünün bu tarihle ilgili olabileceğini düşünüyorum. Ölçeklendirme Google, Google'da bazı yeni fikirler aldı ve herkes bunu takip ediyor, çünkü şu anda ölçeklendirme sorununa bildikleri tek çözüm bu. Bu nedenle, Google'ın dağıtılmış veritabanı fikri etrafındaki her şeyi yeniden işlemeye hazırsınız çünkü belirli bir boyutun ötesine ölçeklenmenin tek yolu bu.

C - Tutarlılık
A - Kullanılabilirlik
P - Bölüm toleransı
K / V - Anahtar / Değer


10
CAP, CP, AP, K / V nedir?
bilinenasilya

3
Wikipedia'da CAP Teoremine bakın. CA ve CP oradan kaynaklanıyor. K / V, anahtarlardan değerlere (dağıtılmış) sonlu eşleme olan Anahtar / Değer kısaltmasıdır.
CRAP CEVAPLARINI VERİYORUM

" Herkes Google'ın ne yaptığını fark eder. " Bana bir İskoç cevabı gibi görünüyor (diğer adıyla CRAP).
Ruffin

38

NoSQL, NoSQL'in aşağıdaki nedenleri / özellikleri nedeniyle RDBMS'den daha iyidir

  1. Yarı yapılandırılmış verileri ve geçici verileri destekler
  2. Şeması yok
  3. Okuma / Yazma hızı çok yüksek
  4. Yatay ölçeklenebilirlik kolayca sağlanabilir
  5. Terra Bytes ve Peta Bytes ciltlerinde Bigdata'yı destekleyecek
  6. Bigdata'nın üstündeki Analitik araçlar için iyi destek sağlar
  7. Daha ucuz donanım makinelerinde barındırılabilir
  8. Sorguların performansını artırmak için bellek içi önbellekleme seçeneği kullanılabilir
  9. Geliştiriciler için daha hızlı geliştirme yaşam döngüleri

DÜZENLE:

" RDBMS'nin neden ölçeklenemediğini" yanıtlamak için lütfen Stavros Harizopoulos, Daniel J. Abadi, Samuel Madden ve Michael Stonebraker tarafından yazılan RDBMS Genel Giderleri pdf dosyasına bakın.

RDBMS'ler, Terabytes & Peta baytlarının büyük veri hacimlerini işlemede zorluklarla karşı karşıyadır . Yedekli Bağımsız / Ucuz Diskler Diziniz (RAID) ve veri parçalama olsa bile, büyük miktarda veri için iyi ölçeklenmez. Çok pahalı bir donanıma ihtiyacınız var.

Günlük Kaydı : Günlük kayıtlarının birleştirilmesi ve veritabanı yapılarındaki tüm değişikliklerin izlenmesi performansı yavaşlatır. Kurtarılabilirlik bir gereklilik değilse veya kurtarılabilirlik başka yollarla sağlandıysa (örn. Ağdaki diğer siteler) günlüğe kaydetmeye gerek olmayabilir.

Kilitleme : Geleneksel iki fazlı kilitleme, veritabanı yapılarına tüm erişim ayrı bir varlık olan Kilit Yöneticisi tarafından yönetildiği için büyük bir yük oluşturur.

Kilitleme : Çok iş parçacıklı bir veritabanında, birçok veri yapısına erişilmeden önce kilitlenmeleri gerekir. Bu özelliğin kaldırılması ve tek iş parçacıklı bir yaklaşıma gitmenin, belirgin bir performans etkisi vardır.

Arabellek yönetimi : Bir ana bellek veritabanı sisteminin sayfalara bir tampon havuzu aracılığıyla erişmesi gerekmez ve her kayıt erişiminde dolaylı bir seviyeyi ortadan kaldırır.

Bu, SQL üzerinden NoSQL kullanmamız gerektiği anlamına gelmez.

Yine de, RDBMS'nin aşağıdaki nedenleri / özellikleri nedeniyle RDBMS NoSQL'den daha iyidir

  1. Yapılan işlemler ASİT Atomsallık, Tutarlılık, İzolasyon & Dayanıklılık - özelliklerinde
  2. Yazılan / okunan verinin Güçlü Şemasına bağlılık
  3. Gerçek zamanlı sorgu yönetimi (veri boyutu <10 Tera bayt olması durumunda)
  4. Cümleler tarafından birleştirme ve gruplandırmayı içeren karmaşık sorguların yürütülmesi

İş durumuna ve gereksinimlerine bağlı olarak RDBMS (SQL) ve NoSQL (Sadece SQL değil) kullanmalıyız


2
Bazı NoSQL veritabanlarının ACID işlemlerini desteklediğini belirtmek gerekir.
Dave Cassel

15

NOSQL'in ilişkisel veritabanı modeline göre özel bir avantajı yoktur. NOSQL, mevcut SQL DBMS'lerin belirli sınırlamalarına yöneliktir, ancak önceki veri modellerine göre temelde yeni yetenekler anlamına gelmez.

NOSQL, yalnızca SQL (veya "sadece SQL" değil) anlamına gelir, ancak bu ilişkisel olmadığı anlamına gelmez . Prensipte ilişkisel bir veritabanı çok iyi bir NOSQL çözümü yapar - sadece mevcut NOSQL ürünleri setinin hiçbiri ilişkisel modeli kullanmaz.


4
Görünüşe göre, son O'Reilly Strata Konferansı'nda, Mark Madsen, veritabanları tarihinde "NoSQL" adlı yeni bir yorumu "Only SQL" yerine geçmeden değiştirdi. Şimdi: "Hayır, SQL" ;-)
Lukas Eder

4

RDBMS daha çok ilişkiye odaklanır ve NoSQL daha çok depolamaya odaklanır.

Sen kullanarak düşünebiliriz NoSQL sizin zaman RDBMS darboğazları ulaşır. NoSQL , RDBMS'yi daha esnek hale getirir .


4

NoSQL'in RDBMS'ye göre en büyük avantajı Ölçeklenebilirliktir .
NoSQL veritabanları birçok düğüme kolayca ölçeklenebilir, ancak RDBMS için çok zordur.
Ölçeklenebilirlik size daha fazla depolama alanı sağlamakla kalmaz, aynı zamanda birçok ana bilgisayar aynı anda çalıştığından çok daha yüksek performans sağlar.


3

Yüksek performansla çok miktarda veri işlemeniz gerekiyorsa

VEYA

Veri modeli önceden belirlenmemişse

sonra

NoSQL veritabanı daha iyi bir seçimdir.


2

Yukarıda verilen tüm bilgilere ekleyerek

NoSql Avantajları:

1) Şema içermeyen ve nesne yönelimli mimari desteği sayesinde hızlı bir şekilde üretime hazır olmak istiyorsanız NoSQL iyidir.

2) NoSql db'leri nihayetinde tutarlıdır, bu da basit dilde RDBMS'de olduğu gibi veriler (belgeler) üzerinde herhangi bir kilit sağlamayacakları anlamına gelir ve bunun anlamı, verilerin en son anlık görüntüsünün her zaman kullanılabilir olması ve böylece uygulamanızın gecikmesini arttırmasıdır. .

3) Verilerin (belgelerin) anlık görüntüsünü korumak ve oluşturmak için MVCC (Çoklu görünüm eşzamanlılık kontrolü) stratejisini kullanır.

4) Dizinlenmiş verilere sahip olmak istiyorsanız, verileri verdiğiniz görünüm tanımına göre otomatik olarak dizinleyecek görünüm oluşturabilirsiniz.

NoSql Dezavantajları:

1) Sonunda tutarlı olduğu ve ASİT özelliklerini desteklemediği için kesinlikle büyük ağır işlem uygulamaları için uygun değildir.

2) Ayrıca, eşzamanlılık kontrolü için MVCC metodolojisini kullandığından verilerinizin (belgelerinizin) birden fazla anlık görüntüsünü (revizyonları) oluşturur, bunun sonucunda alan eskisinden daha hızlı tüketilir ve bu da sıkıştırmayı ve dolayısıyla yeniden endekslemeyi daha sık yapar ve yavaşlatır. uygulamanızdaki veri ve işlem büyüdükçe uygulama yanıtı. Bunun için düğümleri yatay olarak ölçeklendirebilirsiniz ancak daha sonra sql veritabanını karşılaştırırken daha yüksek maliyet olacaktır.


1

Gönderen mongodb.com :

NoSQL veritabanları dört ana alandaki eski, ilişkisel teknolojiden farklıdır:

Veri modelleri : NoSQL veritabanı, sisteme herhangi bir veri eklemeden önce şemanızı tanımlamanızı sağlayan ilişkisel veritabanlarının aksine şemayı tanımlamanıza gerek kalmadan bir uygulama oluşturmanıza olanak tanır. Önceden tanımlanmış bir şema, verileriniz ve gereksinimleriniz değiştikçe NoSQL veritabanlarının güncellenmesini çok daha kolay hale getirmez.

Veri yapısı : İlişkisel veritabanları, verilerin oldukça yapılandırıldığı ve ilişkileri tarafından açıkça tanımlandığı bir çağda oluşturulmuştur. NoSQL veritabanları, bugün var olan verilerin çoğunu oluşturan yapılandırılmamış verileri (ör. Metinler, sosyal medya gönderileri, video, e-posta) işlemek için tasarlanmıştır.

Ölçeklendirme : Bir NoSQL veritabanını ilişkisel bir veritabanından ölçeklendirmek çok daha ucuzdur, çünkü ucuz, emtia sunucularını ölçeklendirerek kapasite ekleyebilirsiniz. İlişkisel veritabanları ise, tüm veritabanınızı barındırmak için tek bir sunucu gerektirir. Ölçeklendirmek için daha büyük, daha pahalı bir sunucu satın almanız gerekir.

Geliştirme modeli : NoSQL veri tabanları açık kaynak kodlu iken, ilişkisel veri tabanları yazılımlarının kullanımına verilen lisans ücretleriyle tipik olarak kapalı kaynak kodludur. NoSQL ile, yazılım ücretlerine önceden ciddi bir yatırım yapmadan bir projeye başlayabilirsiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.