SQL ve NoSQL Veri Tabanları Nedir?

Gizem Demir
Innova-tech
Published in
3 min readJan 8, 2024

Veri odaklı günümüz dünyasında bilginin artmasıyla birlikte verileri depolama ve yönetme yöntemleri de oldukça önem kazanmıştır. Veri hacmi genişledikçe ve karmaşıklığı arttıkça uygun veritabanı seçimi önemli bir karar haline gelir.

Bu yazıda, SQL ve NoSQL veritabanları arasındaki temel farkları inceleyerek özelliklerini, güçlü yönlerini, zayıf yönlerini ve bazı örnekleri göstereceğim.

SQL Veri Tabanı Nedir?

İlişkisel veri tabanları, RDBMS (Reletional Database Management System) olarak da bilinir. RDBMS’de bilgiler, farklı veri nitelikleri ve değerleri arasındaki çeşitli ilişkileri temsil eden satırlar ve sütunlar halinde tablo biçiminde depolanır.

İlişkisel Veri Tabanı Örneği

SQL (Structured Query Languge), ilişkisel bir veri tabanında sorguları uygulamak için kullanılan en yaygın dildir. SQL programlama, veri tabanı kayıtlarının eklenmesi, silinmesi, güncellenmesi ve aranması sorgularını içerir. İlişkisel veri tabanlarına örnek olarak MySQL, Oracle, SQL Server, PostgreSQL gibi örnekler verilebilir.

NoSQL Veri Tabanı Nedir?

NoSQL, esnek ve ölçeklenebilir veri depolamayı yönetmek için geliştirilmiş bir veri tabanı kategorisidir. Geleneksel SQL veritabanlarının aksine, NoSQL veritabanları şemasızdır, çeşitli veri formatlarını işleyebilir ve katı tutarlılıktan ziyade ölçeklenebilirliğe öncelik verir.

Belge Veri Tabanı Örneği
  • Belge Veritabanları: Verileri JavaScript Object Notation (JSON) nesnelerine benzer şekilde belgelerde saklar. Belgelerdeki veriler alanlar ve değerler biçiminde saklanır. Değerler dizeler, nesneler, boolean’lar, sayılar veya diziler gibi farklı türlerde olabilir.
  • Anahtar-Değer Veritabanları: Her veri ögesini bir anahtar-değer çifti biçiminde saklar.
  • Geniş Sütunlu Depo: Bu tür NoSQL veritabanı, verileri tablolarda, satırlarda ve dinamik sütunlarda depolar.
  • Grafik Veritabanları: Verileri depolamak için grafik benzeri bir yapı kullanır. Grafikteki düğümler insanlar, nesneler veya yerler gibi verileri depolar. Kenarlar, veriler arasındaki ilişkiler hakkındaki bilgileri temsil eder.

MongoDB, Cassandra, Redis, Neo4j, BaseX gibi veri tabanları NoSQL’e örnek olarak verilebilir.

SQL ve NoSQL Veri Tabanları Arasındaki Farklar Nelerdir?

Veri Yapısı: SQL’de veriler birbiriyle ilişkili bir şekilde tablolar halinde tutulur. Bu şekilde tablolar içinde veri bütünlüğü, doğruluğu ve tutarlılığı sağlanır. Primary ve Foreign Key’ler kullanılarak tablolar arası ilişkiler güçlendirilir. NoSQL veri tabanları ise dinamik ve gelişen veri yapılarına olanak tanıdığı için daha esnek bir veri modeli sunar. Daha önce de belirttiğim gibi SQL’in aksine önceden tanımlanmış bir şema gerektirmediği için yapılandırılmamış verileri belge, grafik, anahtar-değer vb şeklinde tutulabilir.

Ölçeklendirme: SQL veritabanları dikey ölçeklendirme yaparken NoSQL veritabanları yatay ölçeklendirmeyi destekleyen mimariler kullanırlar.

Peki nedir bu ölçeklendirme?

Veri Tabanında tutulmak istenen veriler arttıkça kullanılan veri tabanının fiziksel özellikleri yeterli gelmeyebilir. Dikey ölçeklendirmede mevcuttaki sunucu özelliklerini arttırmak için donanımsal özellikler eklenir. Eklenen bellek alanları, işlemciler elimizdeki tek bir sunucuya ihtiyacımıza uygun bir şelikde büyütürüz.

NoSQL’de SQL’den farklı olarak elimizdeki tek bir sunucuyu donanımsal özellikler ekleyerek büyütmek yerine birden fazla sunucuyu aralarında ağ oluşturarak verilerin ölçeklendirilmesi sağlanır. Böylece yatay ölçekleme, veriler ve trafik büyüdükçe kesintisiz genişlemeye olanak tanır ve NoSQL veritabanlarını yüksek düzeyde ölçeklenebilir hale getirir.

Şema Yapısı: SQL veri tabanlarında sabit şema yapısı kullanılırken NoSQL veri tabanlarında esnek şema yapıları kullanılır. Sabit şema yapısında tablodaki sütun değerleri önceden oluşturulur ve sonradan değiştirilmez. Bu yüzden SQL’de tabloları doğru oluşturmak, mimariyi doğru kurmak oldukça önemlidir. Esnek şema yapısında ise şemaya bağlı kalmadan süreç içinde özellikler değiştirilebilir. Örneğin belge formatında json yapısında tutulan verilerde parametre ekleme çıkarma vb işlemleri yapılabilir.

Bu yazıda genel olarak SQL ve NoSQL veritabanlarının özelliklerini, aralarındaki farkları inceledik. Hem SQL hem de NoSQL veritabanlarının güçlü ve zayıf yönleri vardır. SQL ve NoSQL veritabanları arasında hangisinin daha iyi olduğu sorusunun cevabı proje gereksinimlerinize ve kullanım senaryolarınıza bağlıdır.

Teşekkürler !!

--

--