MongoDB Nedir?
En çok kullanılan NoSQL tabanlı veritabanı sisteminden birisi olan ve sıkça sorulan MongoDB nedir, neden kullanılır ve nerelerde kullanılır ile ilgili bilgiler yer alıyor.
MongoDB nedir?
MongoDB verileri JSON biçiminde doküman olarak veritabanında saklayan NoSQL tabanlı bir veritabanıdır.
MongoDB ve SQL arasındaki adlandırmalar aşağıdaki gibidir.
SQL | MongoDB |
---|---|
database | database |
table | collection |
row | document |
column | field |
index | index |
table joins | $lookup, embedded documents |
primary key | primary key (_id) |
aggregation | aggregation pipeline |
transactions | transactions |
NoSQL nedir?
NoSQL veya Not Only SQL temel olarak içinde SQL komutlarının kullanılmadığı veritabanı yapısıdır.
NoSQL veritabanları RDMS tabanlı MySQL, Oracle ve SQL Server gibi veri tabanlarında yer alan ve A.C.I.D olarak adlandırılan veri bütünlüğü, veri güvenliğini sağlayan kurallar tam olarak yoktur.
NoSQL veritabanları yapısına göre çeşitli gruplara ayrılır.
Doküman tabanlı – Verileri doküman biçiminde saklayan veritabanı çeşididir. MongoDB, CouchDB
Anahtar / Değer tabanlı – Verileri anahtar:değer olarak saklayan veritabanı çeşididir. Redis, memcached,
Grafik tabanlı – Verileri graf teorisine göre saklayan veritabanı çeşididir. Neo4J, ArangoDB
Sütun tabanlı – Verileri satır satır yerine sütun sütun saklayan veritabanı çeşididir. Cassandra, HBase
NoSQL tabanlı veritabanları ayrıca işlevlerine, sakladığı veri biçimine ve kullanım alanına göre de gruplara ayrılabilmektedir.
Neden kullanılır?
MySQL, Oracle ve SQL Server gibi ilişkisel veritabanları verileri önceden tanımlanan kurallara göre saklar.
Verilerin artması tanımlanan kurallar nedeniyle işlemlerin yavaşlamasına neden olur.
Performans için veriler çeşitli parçalara bölünebilir veya optimizasyon yapılabilir ancak bu da ek bir maliyet getirecektir.
Veritabanı işlemlerinin hızlı olması gereken anlık mesajlaşma ve gerçek zamanlı uygulamalar hızlı veritabanlarına ihtiyaç duyar.
Temel olarak NoSQL tabanlı veritabanları bu ihtiyaçlardan dolayı geliştirilmiştir.
NoSQL tabanlı veritabanları RDMS tabanlı veritabanları gibi kurallara sahip olmadığından daha hızlıdır.
Örneğin; arama işlemlerinin önemli olduğu uygulamalarda ElasticSearch, birbiri ile ilişkili verilerin olduğu sosyal medya gibi uygulamalarda Neo4J gibi NoSQL tabanlı veritabanları kullanılabilir.
Nerelerde kullanılır?
MongoDB genel olarak hızın önemli olduğu gerçek zamanlı uygulamalar, oyunlar, büyük verilerin olduğu uygulamalarda kullanılır.
Dezavantajları
MongoDB performans olarak MySQL, Oracle ve SQL Server gibi veritabanlarından hızlı olsa da kuralları ve standardı olmadığından dolayı verilerin önemli olduğu uygulamalarda kullanılmaması veya kullanılırken dikkatli olunması gerekir.
MongoDB ile karmaşık sorguların hazırlanması SQL’e göre daha zor olabilir.
MongoDB Derslerine buradan ulaşabilirsiniz…
Hayırlı günler dilerim.