Rıdvan Akca
HardwareAndro
Published in
2 min readAug 20, 2020

--

Sql Veritabanları vs NoSql Veritabanları

Herkese Merhaba! Bu ilk yazımda sizlere NoSql veritabanlarının Sql veritabanları ile arasındaki farklardan bahsedeceğim.

Ortaya Çıkış Süreçleri

Sql kullanarak eriştiğimiz ilişkisel veritabanları (MySql, Microsoft Sql Server, Oracle, PostgreSql) 1970'li yıllarda, varlıklar ve değişkenler arasındaki ilişkileri içeren verileri işlemek ve veri tekrarını önlemek amacıyla geliştirildi. 2000'lerin sonuna doğru ise web 2.0 ile birlikte ihtiyaçlar değişti. İnternet’in hızlanması ve artan veri boyutuyla birlikte daha hızlı sorgular oluşturabilme, sık ve kolay bir şekilde uygulama değişiklikleri yapabilme ve geliştiriciler için programlamayı basitleştirme gibi ihtiyaçlar doğdu. Bu ihtiyaçları karşılamak amacıyla ise NoSql (ilişkisel olmayan) veritabanları (MongoDB, CouchDB, Redis, DynamoDB, Cassandra) ortaya çıktı.

Veri Depolama Yöntemleri

Sql veritabanları sabit satır ve sütunlara sahip tabloları ilişkilendirerek verileri depolarken Nosql veritabanlarının birden fazla veri depolama yöntemi vardır. Bunlar doküman oluşturma, anahtar-değer çiftleri oluşturma, dinamik sütun ve satıra sahip tablolar oluşturma ya da grafik oluşturma şeklinde özetlenebilir.

Veritabanı Şemaları

İlişkisel veritabanları, veritabanı şemasını ihtiyaçlarınıza yönelik önceden tanımlamanızı ister ve daha sonra tablolar arasındaki ilişkileri kurmanızı bekler. Oldukça katı bir yapıya sahip olduğunu söyleyebiliriz. Bir diğer yandan, ilişkisel olmayan veritabanları ise oldukça esnek ve dinamik bir yapıya sahiptir. Önceden bir şema oluşturmanıza gerek yoktur. İhtiyaçlarınız değiştikçe veritabanı üzerinde değişiklik yapmanız kolaydır. Şemanız dokümandan dokümana değişebilir.

Ölçeklenebilirlik

Büyük veri karşısında iki tip veritabanının da ölçekleme çözümleri farklıdır. Sql veritabanları dikey ölçekleme yapısına sahiptir. Yeni veri geldikçe depolama alanınızı kapasitesi daha büyük olan sunuculara taşımanız gerekmektedir ve bu durum size gittikçe pahalıya mal olmaktadır. Onun yerine, NoSql veritabanları ise yatay ölçekleme yapısına sahiptir. Yani yeni verileri farklı depolama alanlarına bölerek tutarsınız. Bu yaklaşım hem daha ucuzdur hem de verilere ulaşma konusunda size hız kazandırır.

Peki, hangi durumlarda hangi tip veritabanını kullanmalıyız?

Aslında bu soru sizin ne tür ihtiyaçlara sahip olduğunuza göre değişiyor. Eğer daha karmaşık sorgular yapmak istiyorsanız, ileride uygulamanızın trafik hacmi ve veri tipleri için fazla bir değişiklik beklemiyorsanız ilişkisel veritabanlarından birini seçmek daha doğru olacaktır diyebiliriz.

Bu yazımda ilişkisel veritabanları ile ilişkisel olmayan veritabanlarını karşılaştırmaya çalıştım. Umarım faydalı olmuştur. Alt kısma konuyu daha ayrıntılı anlatan bir yazıyı da ekliyorum. Diğer yazılarda görüşmek üzere.

Kaynak: https://www.mongodb.com/nosql-explained/nosql-vs-sql

--

--