Doküman Veritabanı
- İngilizcesi
- Document Database
- Türkçe karşılığı
- belge veritabanı
- Okunuşu
- dokyumınt deytıbeys
Günlük kullanımda iki ad da yaygın.
Kısaca
Doküman veritabanı, kayıtları genellikle JSON benzeri, kendi içinde bütün dokümanlar olarak saklayan, alanları kayıttan kayda değişebilen NoSQL veritabanıdır.
Doküman veritabanı nedir?
Doküman veritabanı, veriyi genellikle JSON ya da onun ikili bir biçimindeki dokümanlar olarak saklar ve benzer dokümanları koleksiyonlarda gruplar. Her doküman, iç içe nesneler ve diziler dahil bir öğeyle ilgili her şeyi barındırır. Örneğin bir blog yazısı dokümanı başlığını, etiketlerini ve yazarının adını tek bir yerde tutabilir.
Her dokümanın benzersiz bir ID'si vardır ve veritabanı, address.city gibi iç içe olanlar dahil içindeki her alanı indeksleyip sorgulayabilir. Şema esnektir: aynı koleksiyondaki iki dokümanın farklı alanları olabilir; ancak çoğu doküman veritabanı istediğinizde doğrulama kuralları eklemenize izin verir. Tek bir dokümandaki değişiklikler atomiktir, birçok ürün artık çok dokümanlı transaction'ları da destekler ve koleksiyonlar ölçeği büyütmek için sunucular arasında shard'lanabilir. MongoDB ve CouchDB bilinen örneklerdir; PostgreSQL'in JSONB türü ise ilişkisel bir veritabanı içinde doküman tarzı depolama sunar.
Her formun kendi başına tamamlandığı ve bazı formlarda ek bölümlerin doldurulduğu bir kâğıt form klasörü düşünün. Bu model, ürün katalogları, içerik yönetim sistemleri, kullanıcı profilleri, oyun durumu ve mobil uygulama backend'leri gibi genellikle bir bütün olarak okunan ve yazılan veriye uyar.
En yaygın karışıklık ilişkisel veritabanıyla yaşanır. İlişkisel tasarım bir siparişi orders ve order_items tablolarına böler ve birleştirir; doküman veritabanı ise kalemleri sipariş dokümanının içine gömebilir. Bu, siparişin tamamını okumayı hızlı kılar ancak birçok doküman üzerinde rapor almayı zorlaştırır ve senkron tutulması gereken veriyi çoğaltır. Doküman veritabanı ayrıca her değeri yalnızca anahtarla getirilen opak bir blob olarak ele alan key-value store'dan da farklıdır; doküman veritabanı değerin içindeki alanları anlar ve onları arayıp indeksleyebilir.
Önemli noktalar
- Her kayıt, bir koleksiyonda saklanan, kendi içinde bütün, JSON benzeri bir dokümandır.
- Dokümanlar nesne ve dizileri iç içe barındırabilir ve alanları değişebilir.
- İç içe olanlar dahil her alan indekslenip sorgulanabilir.
- İlişkili veriyi gömmek okumaları hızlandırır ancak bilgiyi çoğaltır.
- En yaygın NoSQL veritabanı türlerinden biridir.
Örnek
// One document holds the order and its line items together
await db.orders.insertOne({
customer: { name: "Ada", city: "London" },
items: [
{ sku: "BOOK-1", qty: 2, price: 12.5 },
{ sku: "PEN-3", qty: 1, price: 3 },
],
status: "paid",
});
// Query and index fields nested inside documents
await db.orders.createIndex({ "customer.city": 1 });
const london = await db.orders.find({ "customer.city": "London" }).toArray();Sık sorulan sorular
Doküman veritabanı ile NoSQL aynı şey midir?
Doküman veritabanı, NoSQL veritabanlarının bir türüdür. NoSQL ayrıca key-value store'ları, geniş sütunlu depoları ve çizge veritabanlarını da kapsar.
İlişkili veriyi gömmeli miyim yoksa başvuru mu vermeliyim?
Birlikte okunan ve tek bir üst kayda ait olan veriyi, örneğin bir siparişin kalemlerini gömün. Birçok dokümanca paylaşılan, sık değişen ya da sınırsız büyüyebilen veriye, örneğin popüler bir yazının yorumlarına ID ile başvurun.
Doküman veritabanının şeması var mı?
Baştan bir şema gerektirmez; bu yüzden şemasız ya da şema esnek olarak adlandırılır. Pratikte uygulama yine de belirli alanları bekler ve çoğu doküman veritabanı isteğe bağlı doğrulama kuralları uygulayabilir.
İlgili sayfalar
- NoSQLVeritabanları, s. 21NoSQL, veriyi ilişkisel tablolar yerine doküman, anahtar-değer çifti, geniş sütun ya da çizge gibi başka modellerde saklayan veritabanı ailesidir.
- JSONBackend ve API'ler, s. 24JSON, yapılandırılmış veriyi anahtar-değer çiftleri ve listelerle saklayıp aktarmaya yarayan, insanın da makinenin de okuyabildiği hafif bir metin biçimidir.
- İlişkisel VeritabanıVeritabanları, s. 14İlişkisel veritabanı, veriyi satır ve sütunlardan oluşan tablolarda saklar, tabloları anahtarlarla bağlar ve veriyi SQL ile sorgulayıp birleştirmeyi sağlar.
- Key-Value StoreVeritabanları, s. 16Key-value store, her veriyi benzersiz bir anahtar altında saklayan bir NoSQL veritabanıdır; uygulama veriyi bu anahtarla çok hızlı okuyup yazabilir.
- DenormalizasyonVeritabanları, s. 8Denormalizasyon, sık okumalar daha az birleştirme gerektirsin diye verinin tablo ya da dokümanlara bilerek çoğaltılmasıdır; bedeli daha karmaşık yazmalardır.
- ShardingVeritabanları, s. 28Sharding, bir veritabanının verisini shard adı verilen birkaç sunucuya bölerek ölçeklendirme yöntemidir; her biri toplamın yalnızca bir kısmını saklar ve işler.
- MongoDBVeritabanları, s. 17MongoDB, veriyi tablo satırı yerine esnek, JSON benzeri belgelerde saklayan bir belge veritabanıdır; aynı koleksiyondaki kayıtların alanları farklı olabilir.
- FirebaseVeritabanları, s. 13Firebase, Google'ın web ve mobil uygulamalara veritabanı, kimlik doğrulama, depolama, hosting ve fonksiyonları backend yönetmeden sunan platformudur.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin