Mongodb Nedir Nasıl Kullanılır

Mongodb Nedir Nasıl Kullanılır

Bilgisayar teknolojisinin yaygınlaşması beraberinde bilgisayar kullanımının Web ve Mobil tabanlı uygulamalara dönüşmesine yol açtı. Artık binlerin, milyonların kullandığı uygulamaların böyle talepleri karşılaması gerekliydi. Veri trafiği, veri saklama, yazma / okuma vs gibi işlemlerin bu istemci trafiğine karşı hata vermeden istikrarlı çalışması yeni yazılım, veritabanı sistemlerinin ortaya çıkmasına neden oldu.

Bu gibi nedenlerden dolayı ortaya çıkan NoSQL veritabanı sistemleri çokta yeni bir kavram olmasa da artık daha fazla kullanılmaya başlandı. Kavramı kullanan birçok araç olmasına rağmen yaygın olarak bilinen sistemlerden biride MongoDB.

MongoDB Nedir?

MongoDB bilinen veritabanlarının sistemlerinin aksine doküman tabanlı, ilişkisel olmayan, açık kaynaklı veritabanıdır. Çoğu girişimci tarafından kullanılan veritabanı sistemlerine artı olarak farklı işlemlerin hızlandırılması amaçlı kullanılmıştır. MongoDB Foursquare, Linkedin, Ebay, The New York Times gibi birçok girişimci tarafından kullanılmaktadır.

MongoDB Özellikleri

  • JSON formatında veri saklar.
  • Doküman tabanlıdır.
  • SQL ile yapı bakımından farklı olduğu için SQL’i desteklemez.
  • NoSQL veritabanı sistemidir.
  • C, C++, C# /.NET, JAVA, PHP gibi birçok dil desteği vardır.
  • Windows, MAC OS X, Linux ve Solaris sürümü mevcuttur.
  • İlişkisel değildir. Bu yüzden Join’e pek gerek duyulmaz.

Bu özellikleri açıklamak gerekirse,

1. JSON formatında veri saklar.

JSON, Javascript uygulamaları için oluşturulmuş bir veri formatıdır.  Javascript Object Notation’ın kısaltmasıdır. JSON’un amacı veri alış verişi yaparken daha küçük boyutlarda veri alıp göndermektir. Bu özelliği de çok hızlı uygulamaları oluşturabilmeyi sağlar. MongoDB de JSON formatında oluşturulmuş verilerin her biri collection(table) olarak adlandırılır. Buradaki Collection SQL’de tablolara karşılık gelir.

JSON Kullanımına örnek vermek gerekirse; 

Nesne “{“ (süslü parantez aç) ile başlar ve “}” (süslü parantez kapat) ile biter. Her isim’den sonra “:” (iki nokta üst üste) gelir ve sonrasına değer yazılır. Oluşturulan her isim – değer çifti virgül ile ayrılır.

{
   "tur":"Opera",
   "besteci":"Wolfgang Amadeus Mozart"
}

Dokuman tabanlı ifadesini, bir veri saklama şekli olarak ifade edebiliriz. Böyle sistemler de bir kayıt doküman olarak isimlendirilir. MongoDB de veriler JSON formatında saklanır.2)Doküman tabanlıdır

2. SQL ile yapı bakımından farklı olduğu için SQL’i desteklemez

SQL ile MONGODB arasında yapısal farklar mevcuttur. Örneğin: SQL ilişkisel bir veritabanıyken MongoDB ilişkisel değildir. MongoDB bir NoSQL veritabanı sistemi olduğundan dolayı yatay olarak genişleme özelliğine sahiptir. Veri saklama yöntemleri farklıdır. SQL’deki satırlar, MongoDB’deki JSON verilerine karşılık gelir, kolonlar ise alanlara karşılık gelir.

3. NoSQL veritabanı sistemidir

Klasik ilişkisel veritabanı yapısında bulunmayan ve sorgulama için SQL kullanmayan veritabanı türüdür. Genel olarak Xml yada Json formatında veri depolama yapmaktadır. Buradaki NoSQL, SQL değil anlamında değildir. Yaygın olarak bu adı kullanılmaktadır. NonRel, NoRDBMS(ilişkisel değil) gibi isimleride vardır. NoSQL Not Only SQL kısaltmasından gelir.

Tek başına bir kavram olmayan NoSQL bu sistemi kullanan araçlarla çalışır. MongoDB, BigTable, DynomoDB, RavenDB gibi sistemler tarafından kullanılır. Ayrıca Google ve Amazon tarafından da kullanılmaktadır. Google inanılmaz büyüklükteki internet verisini RDBMS’de değil, Big Table üstünde saklıyor. Ayrıca verilerine RDBMS(Relational Database Management System) ‘den daha hızlı ve daha ucuz ulaşıyor.

NoSQL’in kısaca üç unsuru mevcut: Hız, İşlevsellik ve ölçeklendirme. Ayrıca NoSQL veritabanları Fire & Forget prensipleri ile çalışır. Fire and Forget prensibinden bahsetmek gerekirse sözcük anlamına yak ve unut fırlat ve unut diyebiliriz. İstemci olarak düşünürsek “işlemi gerçekleştir gerisine aldırma” da denilebilir. Bunun sebebi NoSQL’in RAM üstünde çalışmasıdır. Bu yüzden bankacılık uygulamaları gibi tutarlılık isteyen işlemlerde kullanılması sakıncalıdır. Daha çok hız gerektiren işlemler de kullanılması daha doğru olur. Örneğin: Sahibinden.com’un kategorilerde kullanması, Foursquare’ın check-in’ler de kullanması gibi.

4. C, C++, C# /.NET, JAVA, PHP gibi birçok dil desteği vardır

MongoDB’nin C, C++, C#, JAVA, PHP gibi dillere sürücü desteği vardır. Aşağıdaki linkte resmi sitesinde sürücüler mevcuttur.

https://docs.mongodb.org/ecosystem/drivers/

5. Windows, MAC OS X, Linux ve Solaris sürümü mevcuttur

Farklı platformlar için resmi sitesinde farklı sürümlerini bulabilirsiniz.

https://www.mongodb.org/downloads?_ga=1.146911669.365516696.1447679099#production

6. İlişkisel değildir

MSSQL, MYSQL gibi ilişkisel veritabanlarının aksine ilişkisel olmadığı için JOIN’i desteklemez. SQL dilinde JOIN birden fazla tabloyu birleştirme ya da ilgili başka tablodan veri çekmek için kullanılır.

SQL vs NoSQL

SQL;

  • İlişkisel veritabanıdır.
  • Tablo yapısı vardır. Veriler satır sütün şeklinde tutulur.
  • Şemalı bir tasarım vardır.
  • Güvenlik gerektiren işlemler için kullanılabilir.(Transaction)

NoSQL;

  • Şemasız dinamik bir tasarım vardır.
  • Performans, hız gerektiren işlemler için kullanılır.(Transaction olmayan yerlerde)
  • Orta ve büyük içerikli veriler için tasarlanmıştır.
  • İlişkisel değildir.
  • Veriler dokümanlar şeklinde saklanır.(JSON)

NoSQL hangi durumlarda kullanılmalı?

  • Yüksek yazma okuma trafiği
  • Karmaşık sorgu & Analiz ihtiyacı
  • Kullanıcı IO, haber, duyuru, verileri
  • LOG verileri
  • Ürün, katalog verileri saklanması
  • Resim ve Video saklanması

WİNDOWS İÇİN MONGODB KURULUMU

  • İlk olarak MongoDB’nin resmi sitesinden platformunuza uygun olan sürümünü indirmeniz gerekli. Link daha önce yukarıda verilmiştir.
  • İndirme işlemi bittikten sonra MongoDB’yi default(varsayılan) olarak kuruyoruz. Bu 64 bit işletim sistemi bir bilgisayarda buradaki dizine kurulmasına neden olacaktır. “C:Program FilesMongoDB”.
  • Ayrıca İsterseniz C veya D bölümünüzde herhangi bir yere klasör oluşturup yüklemeyi oraya yapabilirsiniz.
  • Kurulum işleminden sonra MongoDB ‘nin çalışması için Database dosyalarının ve Log dosyalarının duracağı klasörleri belirlemeniz gerekiyor.
  • C:Program FilesMongoDBServer3.0 dizinine gelerek Log ve Db path’leri için cfg dosyası oluşturmamız gerekiyor.  Bu aşağıda resimdeki gibi mongod.cfg adında olmalı ve içeriği aşağıdaki gibi yazılmalıdır.

C:Program FilesMongoDBServer3.0 dizini

Cfg dosyasının içeriği

Aynı dizinin içine DB yolu için data isimli bir klasör, data klasörü içine de db adında bir klasör daha açıyoruz.

Burada CMD ekranında bu yolu göstermemiz gerekiyor. Aşağıdaki komut satırını yazıp kodumuz çalıştırıyoruz.

Aşağıdaki resim yukarıda çalıştırdığınız komut satırının sonucudur böyle bir görüntü aldıysanız MongoDB’nin varsayılan port’u 27017 portundan bağlantı beklenildiğini göreceksiniz. Sorunsuz bağlantı olduğu taktirde “connection now open “ uyarısını alacaksınız. Bu metin size MongoDB hizmetinin açık olduğu anlamına gelir.

CMD ekranını kapatmadan yeni bir CMD ekranı açın ve aşağıdaki komutları girin;

cd C:Program FilesMongoDBServer3.0in

mongo.exe

Komut dosyası çıktısı aşağıdaki gibi olmalıdır.

Bu adımlardan sonra servis ayarı yapıp Windows üzerinden MongoDB’yi çalıştırabilirsiniz. Eğer MongoDB servisi otomatik çalışmıyor ise bağlantı oluşturduğunuz ekranı açık bırakarak servisin açık kalmasını sağlayabilirsiniz.

Aynı şekilde bu devam eden bu ekranda;

db.Rehber.insert({“Adsoyad”:”Hakan Özmen” , “TelefonNo”:”5301234567″})

Yazarak bir veri ekleyebiliriz. Yapılan işlemlerde dizinlere, klasör isimlerinin doğruluğuna dikkat ediniz.

Hafzullah Yıldırım

Merhaba. Ben Hafzullah! Kocaeli'de yaşayan bir yazılım geliştiriciyim. 12 yıldır doğrudan sektörün içerisindeyim. Şu anda Hafzullah.com.tr yazılım firmasının kurucusuyum. İş hayatım, örgün eğitim gören bir üniversite öğrencisiyken başladı. Freelance çalışan olarak birçok web ve masaüstü projesi içerisinde yer aldım. Düzenli olarak ekibim ile altında imzam olan-olacak projeler geliştiriyoruz.

İlk Yorumu Sen Yap

Benzer Yazılar