Belge tabanlı veritabanı nedir? Belge veritabanları, ilişkisel olmayan (veya NoSQL ) veritabanları olarak kabul edilir. Belgeleri bir bütün halinde düzenlemek için, her belgeye atanmış belirli bir anahtar vardır . Bu özellik, belge depolarını anahtar/değer depolarına benzer hale getirir. Verileri sabit satır ve sütunlarda depolamak yerine esnek belgeler kullanır. Doküman tabanlı veritabanlarının en önemli özelliği “esnek” olmalarıdır.
JSON belgelerindeki tüm veriler, biçimini alan/ değer çiftleri olarak temsil edilir.
Değerler, diziler, sayılar, tarihler, diziler veya nesneler dahil olmak üzere çeşitli türler ve yapılar olabilir.Alan adları, bir belgede ne tür verilerin tutulduğunu bir bakışta anlamanıza olanak tanır.
Nesneler genellikle JSON formatındadır.
JSON verilerin XML benzeri formatta ama daha da sıkıştırılmış ve boyutu daha küçültülmüş halde tutulmasıdır. Böylelikle boyutun küçülmesinin yanında işlem hızı da daha iyi seviyede olmaktadır.
BSON ise JSON verilerin encode edilmiş halidir yani bir kademe daha sıkıştırılmış hali olarak da düşünülebilir.
Amazon , SQL ve bir belge veritabanı olan MongoDB arasında aşağıdaki terminoloji karşılaştırmasını sağlamıştır . Aşağıdaki liste, iki tür veritabanı arasında bir paralellik oluşturmaya yardımcı olur:
Belge veritabanlarında genellikle geliştiricilerin CRUD (oluşturma, okuma, güncelleme ve silme) işlemlerini yürütmesine olanak tanıyan bir API veya sorgu dili bulunur.
Var kayit = [{
"sicil": 2345,
"ad": "ali",
"maas": 3000
},
{
"sicil": 1234,
"ad": "veli",
"maas": 5000
}];
db.person.insert(kayit)
//Read : Belgeler veritabanından okunabilir. API veya sorgu dili, geliştiricilerin benzersiz tanımlayıcılarını veya alan değerlerini kullanarak belgeleri sorgulamasına olanak tanır. Okuma performansını artırmak için veritabanına dizinler eklenebilir.
db.person.find()
db.person.find({"sicil":1234})
db.person.find({"maas":{$lte:4000}})
db.person.find({"ad":{$ne:"mahmut sarı"}})
//Update : Mevcut belgeler tamamen veya kısmen güncellenebilir.
db.person.update({"ad":"ali"} ,{$set:{‘maas':5500}})
Delete : Belgeler veritabanından silinebilir.
db.person.remove({"sicil":"1234"})
db.person.remove("",0)
Belge yönelimli veritabanları her kullanım durumu için doğru seçim olmasa da, ilişkisel veritabanlarından birini seçmenin birçok faydası vardır. En önemli faydalarından birkaçı şunlardır:
Esneklik ve uyarlanabilirlik : Veri yapısı üzerinde yüksek düzeyde kontrole sahip olan belge veritabanları, yeni ortaya çıkan gereksinimlere deneme ve adaptasyon sağlar. Yeni alanlar hemen eklenebilir ve mevcut alanlar her zaman değiştirilebilir. Eski belgelerin değiştirilmesi gerekip gerekmediğine veya değişikliğin yalnızca ileriye doğru uygulanıp uygulanmayacağına karar vermek geliştiriciye kalmıştır.
Gerçek dünya uygulamalarında, hem belge veritabanları hem de diğer NoSQL ve ilişkisel veritabanları genellikle birlikte kullanılır ve her biri en uygun olandan sorumludur. Çeşitli veritabanlarını karıştırma paradigması, çok dilli kalıcılık olarak bilinir.
elektronik ticaret uygulamaları ve günlük (blog) siteleri gibi esnek veri yapısına ihtiyaç duyan uygulamalar için uygundur.
Esneklikleri, ölçeklenebilirlikleri ve kullanım kolaylıkları sayesinde belge veritabanları, uygulama geliştiricileri için giderek daha popüler bir veritabanı seçimi haline geliyor. Belge yönelimli veritabanlarının geniş yelpazesinin belirgin avantajları ve kullanım durumları vardır, bu da herhangi bir görev için en iyi veri tabanını seçmeyi mümkün kılar.