NoSQL ve MongoDB Nedir? - Yazılım Mimarileri ve Tasarım Desenleri Üzerine

NoSQL ve MongoDB Nedir?

Merhaba,

Bu içeriğimizde NoSQL ve MongDB teknolojilerinin genel tanımlarını, ne olduklarını, neye istinaden bu teknolojilere ihtiyaç duyulduğunu vs. konularını ele alıyor olacağız.

NoSQL Nedir?

NoSQL, herşeyden önce SQL yok demek değildir! ‘Sadece SQL değil’ manasına gelen ‘Not Only SQL’in kısaltılmış halidir. Bol ziyaretçi trafiğine sahip ve yoğun işlemler gerektiren durumlarda yani maliyetin hat safhada olduğu durumlarda ilişkisel veritabanı sistemlerine(RDBMS – Relational Database Management System) nazaran maliyeti daha rahat karşılayabilmek için geliştirilmiş bir sistemdir.

Tabi, sizler bu siteye uğrayıp bu içeriğe göz atmadan önce kim bilir onlarca içerik taradınız, makaleler okudunuz. Muhtemelen şu ana kadar NoSQL’in yeni bir veritabanı olduğuna ve hatta büyük verileri depolayabilmek ve yönetebilmek için geliştirilmiş bir veritabanı olduğuna dair bilgiler edinmişsinizdir. Bu edinilen bilgiler kısmen doğru olsada olayı kuramsal açıdan değerlendirdiğimizde dar anlamda yorumlamakta ve hafif yanlış düşüncelere sevk edebilmektedirler.

Dikkat ederseniz NoSQL’i bir sistem diye sıfatlandırmış bulunmaktayım. Evet; nasıl ki, RDBMS(ilişkisel veritabanları) bir sistemse NoSQL’de bir veritabanı değil; sistemdir, yaklaşımdır, yöntemdir. Bu yaklaşımı ya da yöntemi uygulayan veritabanları vardır.

RDBMS’ler de tüm verileri organize bir şekilde tutabilmek için katı bir şekilde tutulacak verinin türleri belirlenmiş kolonlar ve bu kolonları barındıran tasarlanmış tablolar mevcuttur. Tablolar arası ilişkiler veriler arasında bağlantı kurmakta ve bu işlem komple veritabanı için bir bütünlüğü arz etmektedir. NoSQL ise anahtar/değer(key/value) ilişkisi mantığına dayalı yapıda veritabanlarına sahiptir. Veriler arasında fiziksel ilişki olmadığından dolayı oldukça hızlıdır. İşte bu ilişkisel yapının olmaması ve inanılmaz hız faktörü genel olarak büyük verilere istinaden yorumlanmakta ve NoSQL deyince büyük veriler akla gelmektedir. Halbuki NoSQL veritabanlarında, verinin bir şema zorunluluğu olmadığı için bu perspektiften bakınca NoSQL deyince akla organik verilerin gelmesi daha doğru olacaktır.

Nihayetinde büyük veriden kasıt milyarlarca bilgi/satır/veri barındıran yapılardır. Günümüzde bu tarz yapıları oldukça başarılı şekilde kaldırabilen ilişkisel veritabanları mevcuttur. Dolayısıyla NoSQL, büyük veriler deyince değil organik veri deyince akla gelmelidir.

İlişkisel veritabanlarında verinin yapısal sınırları önceden çizildiği için süreçteki herhangi bir müdahale sonucu yeni veri ilgili tabloya uygun olmayacağından dolayı hata verecektir. Bilakis NoSQL’de yukarıda bahsedildiği gibi veriye çizilen bir sınır ya da şema zorunluluğu olmadığından dolayı veri üzerinde herhangi bir müdahale önceki verilerin fiziksel yapılarından bağımsız olabileceğinden dolayı sıkıntısız veritabanına yansıtılabilecektir.

İlişkisel veritabanlarında veriler tablolarda sütun bazlı satır satır barındırılırken; NoSQL’de tablolarda değil, document(döküman) yapılarında JSON olarak barındırılır. Bu yapılar sayesinde; ilişkisel veritabanlarındaki tablolarda çizilmiş sınırlar tüm veriler için geçerliyken, NoSQL’de böyle bir sınırlılık geçerli değildir. Yani herhangi bir veride herhangi bir kolon özel bir işlem gerektirmeksizin eklenebilir ya da çıkarılabilir ve bu işlemin tüm veriler için geçerli olması gerekmemektedir.

İlişkisel veritabanlarına kıyasla NoSQL sistemleri yüksek erişilebilirlik özelliklerinden dolayı daha performanslı ve az maliyetlidirler.

Ayrıca ilişkisel veritabanları dikey genişlerken, NoSQL yaklaşımı yatay ölçeklendirilebilen sistemlerdir.

MongoDB Nedir?

Döküman tabanlı bir NoSQL veritabanıdır. Verileri yapısal olarak Json formatında ve documentlar halinde collectionlar içerisinde tutmaktadır. Herhangi bir alana yahut aralığa göre sorgu yazılabilmektedir.

MongoDB’de ki yapıları ilişkisel veritabanlarındaki yapılarla kıyaslarsak eğer;

MongoDBRDBMS
CollectionTablo
DocumentSatır
RDBMS’de bir tablo içerisindeki tüm satırlar kolon açısından birebir aynı iken, MongoDB’de documentler arasında farklı kolonlar/alanlar barıdırılabilir.

MongoDB Kurulumu

MongoDB’yi indirebilmek için şuradaki adrese gitmeniz gerekmektedir.
NoSQL ve MongoDB Nedir?
İlgili adreste yukarıdaki ekran görüntüsünde olduğu gibi “Community Server” sekmesinde bilgisayarınıza uygun versiyonu belirttikten sonra “Download” butonuna tıklamanız yeterlidir.

İndirdiğiniz programı çalıştırıp, kurulumu gerçekleştirdikten sonra “C:\Program Files\MongoDB\Server” dizisine göz atarsanız eğer MonguDB’nin kaynak dosyalarına erişebilmekteyiz. Dizin içerisinde versiyon isminde klasör altında “/bin” klasörü bizim MongoDB’ye erişmemizi sağlamaktadır.

Komut Satırı Arayüzü

“Komut İstemi” penceresini açıp “C:\Program Files\MongoDB\Server\4.0\bin”(bu makale yazılırken MongoDB 4.0 versiyonundaydı) dizinine geçiniz.

mongo --version

komutunu çalıştırırsanız bilgisayarınıza yüklü MongoDB hakkında versiyon bilgisi alırsınız.

mongo

komutu ise MongoDB Komut Satırı Arayüzünü aktifleştirecektir. Bu komuttan sonra yazılan tüm komutlar MongoDB’de yorumlanır ve çıktı üretilir.

show dbs

komutu serverdaki tüm veritabanlarını getirecektir.
NoSQL ve MongoDB Nedir?

use [veritabanı adı]

komutu adı belirtilen veritabanını kullanılabilir vaziyette seçecektir.

show collecitons

komutu ise üzerinde çalışılan veritabanındaki collectionları getirecektir.

İlgilenenlerin faydalanması dileğiyle…

Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar…

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

*

Copy Protected by Chetan's WP-Copyprotect.