logologo
Ai badge logo

Bu madde yapay zeka desteği ile üretilmiştir.

MongoDB

Yazılım Ve Yapay Zekâ+1 Daha
fav gif
Kaydet
viki star outline

MongoDB, esnek veri yapılarıyla çalışan açık kaynaklı, belge tabanlı bir NoSQL veritabanı yönetim sistemidir (VTYS). Geleneksel ilişkisel veri tabanlarının (RDBMS) aksine, verileri satır ve sütunlarda değil, JSON benzeri belgelerde (BSON) depolar. MongoDB, yüksek hacimli veri işlemleri için ölçeklenebilir ve esnek bir çözüm sunar; bu da onu özellikle büyük veri ve bulut tabanlı uygulamalar için ideal hale getirir.

Tarihçe

MongoDB, ilk olarak 2009 yılında 10gen (şimdiki MongoDB Inc.) tarafından geliştirilmiştir. 16 Ekim 2018 tarihine kadar olan sürümler AGPL lisansı altında sunulurken, bu tarihten sonraki tüm sürümler Sunucu Tarafı Kamu Lisansı (SSPL) v1 ile lisanslanmaktadır.

Temel Mimari

MongoDB, ilişkisel veri tabanlarında kullanılan tablolar ve satırlar yerine koleksiyonlar (collections) ve belgeler (documents) kullanır. Belgeler, ilişkisel veri tabanlarındaki kayıtlara karşılık gelirken, koleksiyonlar ise tablo işlevi görür. Belgeler, anahtar-değer çiftlerinden oluşur ve her biri farklı yapıda olabilir; bu durum MongoDB'nin şemasız (schemaless) yapısını ifade eder.

MongoDB'nin temel veri formatı, Binary JSON (BSON)'dur. BSON, JSON'dan farklı olarak tarih, tamsayı gibi daha fazla veri türünü destekler. MongoDB belgeleri iç içe geçebilir, yani gömülü belgeler ve diziler gibi karmaşık veri yapıları doğrudan desteklenir.

Özellikleri

  • Özel Sorgular: Alan, aralık, regex gibi kriterlerle esnek sorgulama desteği sunar.
  • Dizinleme: Tek alan, bileşik, metin, coğrafi ve çok anahtarlı dizinleme gibi yöntemlerle hızlı veri erişimi sağlar.
  • Çoğaltma (Replication): Birincil ve ikincil sunucular içeren replika kümeleri sayesinde yüksek kullanılabilirlik sunar.
  • Yatay Ölçekleme (Sharding): Verilerin birden fazla makineye dağıtılmasına olanak tanır, böylece sistem büyük veri iş yüklerine karşı dirençli olur.
  • Yük Dengeleme: Yatay ve dikey ölçeklemeyi doğal olarak destekleyerek özel yük dengeleyicilere olan ihtiyacı azaltır.
  • Toplama (Aggregation): Veri tabanı içinde karmaşık veri analizlerini gerçekleştiren MapReduce benzeri işlemleri destekler.
  • Veri Esnekliği: Belgelerin yapısı belge bazında değişebilir, bu da uygulama geliştirme sürecinde büyük esneklik sağlar.

Uygulama ve Entegrasyon

MongoDB, C, C++, C#, Go, Java, Python, Ruby ve Swift gibi birçok programlama diliyle uyumludur. MongoDB Shell, MongoDB’ye etkileşimli erişim sağlayan JavaScript tabanlı bir komut satırı aracıdır. Ayrıca MongoDB; Hadoop, Spark gibi büyük veri platformlarıyla entegre çalışabilir ve GridFS dosya sistemi ile 16 MB üzeri büyük dosyaların saklanmasını destekler.

Kullanım Alanları

MongoDB, aşağıdaki kullanım senaryolarında yaygın olarak tercih edilir:

  • Büyük veri yönetimi
  • Gerçek zamanlı analiz uygulamaları
  • İçerik yönetim sistemleri
  • IoT platformları
  • Mobil ve web uygulamaları
  • Hibrit ve çoklu bulut veri entegrasyonları

Avantajları

  • Şemasız yapı sayesinde veri yapıları üzerinde büyük esneklik.
  • Belgelerin nesnelere benzer yapısı, uygulama geliştirmede kolaylık.
  • Yatay ölçeklenebilirlik, büyük veri uygulamalarında üstün performans.
  • Topluluk ve üçüncü taraf desteği, eklenti ve genişletilebilirlik açısından zengindir.

Dezavantajları

  • Veri tutarlılığı konusunda, yabancı anahtar gibi kısıtlamaların eksikliği nedeniyle dikkatli kullanılmalıdır.
  • Ana düğüm odaklı yazma işlemleri, yoğun yazma gereksinimlerinde performans sınırlamaları yaratabilir.
  • Otomatik devralma süresi, geçici erişim kayıplarına neden olabilir.
  • Güvenlik varsayılanları, sistem yöneticileri tarafından manuel olarak yapılandırılmadığında açıklar doğurabilir.


MongoDB Arayüzü - Görsel Linki

MongoDB'nin Diğer Veritabanlarıyla Karşılaştırılması

MongoDB'nin MySQL ile Karşılaştırılması

MongoDB, bir NoSQL veri tabanı olarak, MySQL gibi ilişkisel veri tabanlarından temel olarak farklılıklar gösterir. MySQL, verileri tablolarda, satır ve sütunlarda saklarken, MongoDB belgeler şeklinde, JSON benzeri bir formatta veri depolar. Bu, MongoDB'nin şema esnekliği sağlamasına olanak tanır ve geliştiricilere veri modelini gerektiği gibi değiştirme veya geliştirme imkânı verir. MySQL ise önceden tanımlanmış bir şemaya ve sıkı veri tiplerine dayanır, bu da veri bütünlüğünü korumada güçlü bir araçtır. MongoDB, ilişkisel veri tabanlarındaki JOIN işlemleri ve karmaşık sorguları desteklemez, bu da çok tabakalı ilişkiler gerektiren uygulamalarda MySQL'in daha uygun olmasını sağlar. Ancak MongoDB, büyük veri uygulamaları ve esnek modelleme gereksinimlerinde daha iyi bir performans gösterir.


MySQL Arayüzü - Görsel Linki

MongoDB'nin PostgreSQL ile Karşılaştırılması

PostgreSQL, güçlü ve gelişmiş özelliklere sahip bir ilişkisel veri tabanı yönetim sistemidir. MongoDB ile karşılaştırıldığında, PostgreSQL ilişkisel veri yapıları ve SQL dili ile güçlü veri bütünlüğü ve karmaşık ilişkiler kurma yeteneği sunar. PostgreSQL, ACID (Atomicity, Consistency, Isolation, Durability) uyumlu olup, işlemler arasında yüksek tutarlılık ve güvenilirlik sağlar. MongoDB ise, şeması daha esnek olan, yatayda kolayca ölçeklendirilebilen ve büyük veri setlerini yönetmekte daha verimli olan bir NoSQL veri tabanıdır. MongoDB, verilerin yapılandırılmamış olduğu ve değişen veri modellerinin hızla adapte edilebilmesi gereken durumlar için daha uygundur. PostgreSQL'in karmaşık sorgulama yetenekleri ve ilişkisel veri yapıları, çok daha sıkı veri tutarlılığı gerektiren uygulamalarda daha güçlüdür. MongoDB, bu tür ilişkileri doğrudan modelleyemediğinden, PostgreSQL daha iyi bir tercih olabilir.


PostgreSQL Arayüzü - Görsel linki

MongoDB'nin Redis ile Karşılaştırılması

Redis, temel olarak bir anahtar-değer veri tabanı olup, bellek tabanlı bir sistem olarak çalışır. MongoDB ile karşılaştırıldığında, Redis daha hızlı veri okuma ve yazma işlemleri sunar, çünkü veri büyük ölçüde RAM üzerinde saklanır. Bu, Redis’in özellikle yüksek performans gerektiren uygulamalar ve önbellekleme işlemleri için ideal olmasını sağlar. MongoDB ise, disk tabanlı olarak çalışır ve büyük veri kümelerini yönetme kapasitesine sahiptir. Ayrıca, MongoDB veri yapısının esnekliği, yarı yapılandırılmış veya yapılandırılmamış verilerle çalışmayı kolaylaştırırken, Redis'in sunduğu veri yapıları (anahtar-değer çiftleri) daha basittir. Redis veri kalıcılığı sağlamak için sınırlı seçeneklere sahipken, MongoDB daha güçlü kalıcılık mekanizmaları sunar. Redis genellikle yalnızca verilerin geçici depolanması amacıyla kullanılırken, MongoDB, daha geniş veri yönetimi ve analiz ihtiyaçlarını karşılayacak şekilde tasarlanmıştır.


Redis Arayüzü - Görsel Linki

MongoDB'nin Apache Cassandra ile Karşılaştırılması

Apache Cassandra, büyük veri ve yüksek hacimli yazma işlemleri gerektiren dağıtık veri tabanı sistemidir. MongoDB, yatay ölçeklenebilirlik ve esneklik konusunda güçlü olsa da, Cassandra'nın özellikle büyük ölçekli dağıtık uygulamalar için optimize edilmiş olduğunu söyleyebiliriz. Cassandra, yüksek yazma performansı ve düşük gecikme süresi sunar, bu da onu büyük veri kümeleri üzerinde sürekli veri akışının olduğu sistemler için ideal kılar. MongoDB, aynı şekilde yatay ölçeklenebilir olsa da, veri tabanı yazma ve okuma işlemlerindeki tutarlılık garantilerini daha esnek tutar. Cassandra, veri tutarlılığı konusunda daha sıkı bir model kullanırken, MongoDB, genellikle eventual consistency (sonunda tutarlılık) modelini benimser. Bu, MongoDB’nin daha esnek ve daha hızlı ölçeklenebilir olmasını sağlar, ancak Cassandra daha sağlam bir veri tutarlılığı sağlar ve verilerin çok büyük dağıtık sistemlerde yönetilmesinde daha iyi bir performans sunar.

Kaynakça

Amazon Web Services. “The Difference Between MongoDB vs MySQL.” Erişim tarihi: 11.04.2025.https://aws.amazon.com/tr/compare/the-difference-between-mongodb-vs-mysql/.


IBM. “MongoDB.” Erişim tarihi: 11.04.2025. https://www.ibm.com/think/topics/mongodb.


MongoDB, Inc. “MongoDB Architecture.” Erişim tarihi: 11.04.2025.https://www.mongodb.com/resources/products/fundamentals/mongodb-architecture.


MongoDB, Inc. “What is MongoDB?” Erişim tarihi: 11.04.2025. https://www.mongodb.com/company/what-is-mongodb.


TechTarget. “MongoDB.” SearchDataManagement. Erişim tarihi: 11.04.2025.https://www.techtarget.com/searchdatamanagement/definition/MongoDB.

Sen de Değerlendir!

0 Değerlendirme

Yazar Bilgileri

Avatar
Ana YazarYağmur Nur Küçükarslan11 Nisan 2025 07:03
KÜRE'ye Sor