veritabanı nedir

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.

Belge Tabanlı Veritabanı Nedir?

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:

CRUD işlemleri

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.

  • Create : Veritabanında dokümanlar oluşturulabilir. Her belgenin benzersiz bir tanımlayıcısı vardır.

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 Veritabanlarının Faydaları

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.

  • Yapılandırılmış ve yapılandırılmamış verileri yönetme yeteneği : Daha önce de belirtildiği gibi, ilişkisel veritabanları katı bir yapıya uyan verileri depolamak için çok uygundur. Belge veritabanları, yapılandırılmış verileri işlemek için de kullanılabilir, ancak gerektiğinde yapılandırılmamış verileri depolamak için de oldukça kullanışlıdır.
  • Yapılandırılmış verileri, satırlar ve sütunlar içeren bir elektronik tabloda kolayca temsil edebileceğiniz türden bilgiler olarak düşünebilirsiniz, oysa yapılandırılmamış veriler çerçevelemek o kadar kolay değildir. Yapılandırılmamış veri örnekleri, insan tarafından oluşturulan metinler ve multimedya içeren zengin sosyal medya gönderileri, birleşik formatı takip etmeyen sunucu günlükleri veya akıllı evlerdeki çok sayıda farklı sensörden gelen verilerdir.
  • Tasarım gereği ölçeklenebilirlik : ilişkisel veritabanları genellikle yazma kısıtlıdır ve performanslarını artırmak için dikey olarak ölçeklendirmeniz gerekir (yani verilerini daha güçlü ve performanslı veritabanı sunucularına taşımanız gerekir). Tersine, döküman veritabanları, bunun yerine yatay olarak ölçeklendirmenize izin veren dağıtılmış sistemler olarak tasarlanmıştır (tek bir veritabanını birden çok sunucuya böldüğünüz anlamına gelir).
  • Belgeler hem verileri hem de şemayı içeren bağımsız birimler olduğundan, bunları sunucu düğümleri arasında dağıtmak nispeten önemsizdir. Bu, büyük miktarda veriyi daha az operasyonel karmaşıklıkla depolamayı mümkün kılar.

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.

Belge veritabanı ne zaman kullanılır? 

  • Uygulamanız tablo şeklinde olmayan verilere ihtiyaç duyduğunda. 
  • Uygulamanızın çok sayıda küçük sürekli okuma ve yazma işlemi yapması gerektiğinde ve tek ihtiyacınız olan hızlı bellek içi erişimdir. 
  • Uygulamanızın CRUD (Oluştur, Oku, Güncelle ve Sil) uygulamaları oluşturması gerektiğinde. 
  • Uygulamanızın çok çeşitli erişim modelleri ve veri türleri üzerinde çalışması gerektiğinde; bunlar genellikle esnektir ve iyi performans gösterir.

elektronik ticaret uygulamaları ve günlük (blog) siteleri gibi esnek veri yapısına ihtiyaç duyan uygulamalar için uygundur.

Çözüm

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.

Leave a Comment