NoSQL ve RDBMS Veritabanları

Sinem Guner
Turk Telekom Bulut Teknolojileri
4 min readJan 7, 2022

Nosql Veritabanları

‘Nosql’ terimi, ‘Not Only SQL’ yani ‘Yalnızca SQL Değil’ anlamında kullanılır. İlişkisel olmayan veritabanı türlerini ifade eder. İlişkisel olmayan veritabanları, geleneksel veritabalarının çoğundan farklı olarak satır ve sütunların bulunduğu tablo şemasını kullanmaz. NoSQL veritabanları çoğunlukla big data ve gerçek zamanlı web uygulamaları için kullanılır. İlişkisel veritabanlarından farklı olarak depolanan verinin belirli gereksinimlerine göre farklı formatlarda tutulabilirler.

NoSql Veritabanı Türleri

Nosql veritabanları çok çeşitlidir. En çok kullanılanları aşağıdaki gibidir.

· Doküman (Document) Tabanlı: Bu sistemlerde veriler doküman olarak saklanır. Dökümanlar genelde JSON formatında tutulur. Bu format programlama mantığına benzer bir yapıdır. Sınıf oluşturup o sınıfın nesnelerine uygun özellikler vermek şeklinde düşünülebilir. Mongodb, Couchbase bu türe örnektir.

· Anahtar/Değer (Key/Value) Tabanlı: Verileri key/value çifti halinde tutar. Bu veritabanı türü diğer veritabanlarının erişemeyeceği kadar yatay ölçeklendirmeye uyumludur. Anahtar/değer veritabaları özellikle için oyun ve reklam teknolojilerinde kullanıldığını söyleyebiliriz. Redis bu modeli uygulayan veritabanlarından biridir.

· Wide-Column Store: Bu veritabanları doküman tabanlı ve ilişkisel veritabanları arasında bir yerde konumlandırabiliriz. İlişkisel veritabanlarında olduğu gibi tablo, kolon, satır gibi yapıları barındırır ama ilişkisel veritabanlarından farklı olarak bir tablo isim ve yapı olarak birbirinden farklı satırlara sahip olabilir çünkü veriler kolon bazında gruplandırılmıştır. Cassandra bu veritabanlarından biridir. Çok hızlı write/read yapabilir.

· Graph Veritabanı: Grafik veritabanları ilişkisel veritananındaki satırlara benzeyen düğümler ve aradaki bağı temsil eden kenarlar olarak verileri tutar. Grafik veritabanlarına örnek bir veritabanı olarak Neo4j verilebilir.

NoSQL Veritabanlarınını Avantajları

· İlişkisel olmayan veritabanlarının en büyük avantajlarından biri yüksek erişilebilir olmalıdır. Yani yatay büyüme göstermesidir. Yatay büyümede sistem kaynaklarının yetersiz olduğu durumlarda herhangi bir değişiklik yapmaya gerek kalmadan aynı özelliklerde ya da sisteminizin ihtiyaçları doğrultusunda farklı sunucuları, diskleri yine sisteminize dahil ederek kaynak ihtiyaçlarınızı ilişkisel veritabanlarına göre daha az maliyetle giderebilirsiniz

· Bir diğer önemli özelliği ise kolay ölçeklendirilebilir olmasıdır. Bu durum Nosql veritabanlarının yüksek performans göstermesine olanak sağlar. Yatay ölçeklenme mantığıyla çalışır. “Data Sharding” teknolojisi ile veriler birden çok sunucuya dağıtılarak, bütün sunucu kaynaklarında paralel olarak kullanılır. Bu da bazı donanımsal sorunların, kullanıcıları hiçbir şekilde etkilemeden çözülebilmesini sağlar.

· Nosql veritabanları, ilişkisel veritabanlarına göre daha esnek bir yapıdadır. Bu esneklik bizlere yarı yapılandırımış ve yapılandırılmamış veriler için büyük kolaylık sağlar.

NoSQL Veritabanlarının Dezavantajları

· İlişkisel bir yapı kurduysanız bu yapıyı ilişkisel olmayan bir yapıya dönüştürmek zor ve maliyetli bir işlemdir. Özellikle ‘join’ kullandığınız her yer sizin için ekstra iş yükü olacaktır. Çünkü Nosql veritabanlarında doğrudan ‘join’ işlemi yoktur.

· Verinizi ve uygulamanızı modellerken, modelinize uygun Nosql çözümü kullanmanız gerekir. Çünkü Nosql çözümlerini kendi aralarında taşınırken de az ya da çok iş yükü çıkarabilir.

· Her Nosql veritabanı türü verileri sorgulamak ve yönetmek için kendi söz dizinine sahiptir. Yani bir veritabanından diğerine geçerken de yeni veritabanın nasıl yönetildiği veya sorgularının nasıl yapıldığını yeniden öğreniyor olacaksınız.

İlişkisel Veritabanı (Relational Database Management System)

İlişkisel veritabanı, düzenlenmiş verilerin tablolarda belirli kurallara göre saklanması ve bu tablolar arasında kurulan ilişkilerle oluşturulur. Tablolar satır ve sütunlardan oluşur ve bu tablolara veri eklenebilir, silinebilir, güncellenebilir ve veriler saklanabilirler. Tablonun sütunları nitelikleri, satırlar ise bu niteliklerin değerlerini ifade eder. Tablo üzerindeki her satıra kayıt denilebilir. Kayıtların veri tipi, sütunlar oluşturulurken belirlenen veri tipinde olmalıdır.

SONUÇ

Sonuç olarak, her ne kadar bu yazıda Nosql avantajlarından daha çok bahsetmiş olsam da aslında önemli olan nokta, kurduğunuz modele ve uygulamanıza uygun olan veritabanını seçmek. Eğer bir banka uygulamanız varsa bunun için ilişkisel veritabanından vazgeçemezsiniz çünkü veri bütünlüğü ve tutarlılığı sizin için en önemli nokta olacaktır. Big data gibi bir süreç yönetiyorsanız sizin için performans önemliyse ve veri büyümesi çok hızlı artıyorsa o zaman da Nosql kullanımına yönelebilirsiniz. Yani şu an için bazı durumlarda ilişkisel veritabanları sizin için daha verimliyken bazı durumlarda nosql daha verimli olabilir ve bazen birbirlerinin yerine kullanılamaz koşullar olabilir.

Kaynakça
https://www.linkedin.com/pulse/ili%C5%9Fkisel-veri-taban%C4%B1-ve-olmayan-tabanlar%C4%B1-haktan-akda%C4%9F/
https://www.dal.net.tr/destek/nosql-veritabani-sistemi-nedir.html

--

--