SQL ve NoSQL Farkı

Bu bölümde SQL ve NoSQL farkını aşağıdaki tabloda özet şeklinde görebilirsiniz. Daha detaylı bilgi de sonrasında açıklanmıştır.


SQL Veritabanı NoSQL Veritabanı
Data Depolama Modeli Sabit satır ve sütunlara sahip tablolar Belge: JSON belgeleri
Key-Value: anahtar / değer çiftleri,
Wide-column: satır ve dinamik sütun içeren tablolar,
Grafik: düğümler ve kenarlar
Gelişim Süreci 1970'lerde veri tekrarını azaltmaya odaklanılarak geliştirildi. Agile ve DevOps uygulamaları tarafından yönlendirilen hızlı uygulama değişikliğine izin vererek ve ölçeklendirmeye odaklanarak 2000'lerin sonunda geliştirildi.
Örnekler Oracle, MySQL, Microsoft SQL Server, and PostgreSQL Belge: MongoDB and CouchDB,
Key-Value: Redis and DynamoDB,
Wide-column: Cassandra and HBase,
Grafik: Neo4j and Amazon Neptune
Öncelikli Amacı Genel Amaçlı Belge: genel amaçlı,
Key-Value: basit arama sorgularıyla büyük miktarda veri,
Wide-column: öngörülebilir sorgu modellerine sahip büyük miktarda veri,
Grafik: bağlantılı veriler arasındaki ilişkileri analiz etme ve çaprazlama
Şekiller Katı Esnek
Ölçekleme Dikey (daha büyük bir sunucu ile ölçek büyütme) Yatay (ticari sunucularda ölçeklenebilir)
Çoklu Kayıtlı ACID İşlemleri Destekler Çoğu, çoklu kayıt ACID işlemlerini desteklemez. Ancak, MongoDB gibi bazıları bunu yapar.
Join Gerekli Gerekli Değil
Veri Nesne Eşleme ORM gerektirir (nesne ilişkisel eşleme) Çoğu ORM gerektirmez. MongoDB belgeleri, en popüler programlama dillerindeki veri yapılarıyla doğrudan eşleşir.

Kaynak

Farkları özet şeklinde kolayca görebilirsiniz ancak ne anlatmaya çalıştığımızı biraz detaylandıralım:

• SQL veritabanları öncelikle İlişkisel Veritabanları (RDBMS) olarak adlandırılır; NoSQL veritabanı ise öncelikle ilişkisel olmayan veya dağıtılmış veritabanı olarak adlandırılır.

• SQL veritabanları, veriye dayalı yapılandırılmış sorgu dilini (SQL) tanımlar ve işler. Bir yandan bakınca bu dil son derece güçlü. SQL, mevcut en çok yönlü ve yaygın olarak kullanılan seçeneklerden biridir ve bu da onu özellikle büyük karmaşık sorgular için güvenli bir seçim haline getirir. Ancak diğer taraftan kısıtlayıcı olabilir. SQL, verilerinizle çalışmadan önce verilerinizin yapısını belirlemek için önceden tanımlanmış şemaları kullanmanızı gerektirir. Ayrıca tüm verileriniz aynı yapıyı takip etmelidir. Bu, önemli bir ön hazırlık gerektirebilir, bu da yapıdaki bir değişikliğin tüm sisteminiz için hem zor hem de yıkıcı olacağı anlamına gelir. Bir NoSQL veritabanı, yapılandırılmamış veriler için dinamik şemaya sahiptir. Veriler birçok şekilde depolanır; bu, belgeye dayalı, sütun odaklı, grafik tabanlı veya bir KeyValue deposu olarak organize edilebileceği anlamına gelir. Bu esneklik, belgelerin önce tanımlı yapıya sahip olmadan oluşturulabileceği anlamına gelir. Ayrıca her belgenin kendine özgü bir yapısı olabilir. Sözdizimi, veritabanından veritabanına değişir ve ilerledikçe alanlar ekleyebilirsiniz.

• Hemen hemen tüm durumlarda, SQL veritabanları dikey olarak ölçeklenebilir. Bu, RAM, CPU veya SSD gibi şeyleri artırarak tek bir sunucu üzerindeki yükü artırabileceğiniz anlamına gelir. Ancak diğer yandan NoSQL veritabanları yatay olarak ölçeklenebilir. Bu, NoSQL veritabanınıza daha fazla sunucu ekleyerek daha fazla trafiği yönetebileceğiniz anlamına gelir. Mahalleye daha fazla bina eklemek yerine aynı binaya daha fazla kat eklemeye benzer. Böylece NoSQL nihayetinde daha büyük ve daha güçlü hale gelebilir, bu da bu veritabanlarını büyük veya sürekli değişen veri kümeleri için tercih edilen seçenek haline getirir.

• SQL veritabanları tablo tabanlıdır, diğer yandan NoSQL veritabanları ya KeyValue çiftleri, belge tabanlı, grafik veritabanları veya wide-column depolarıdır. Bu, ilişkisel SQL veritabanlarını, bir muhasebe sistemi gibi çok sıralı işlemler gerektiren uygulamalar veya ilişkisel bir yapı için oluşturulmuş eski sistemler için daha iyi bir seçenek haline getirir.

• SQL veritabanları ACID özelliklerini (Atomic, Consistency, Isolation ve Durability) takip ederken, NoSQL veritabanı Brewers CAP teoremini (Consistency, Availability ve Partition Tolerance) izler.

Kaynak