Çok modelli veritabanı - Multi-model database

Çoğu Veritabanı Yönetim Sistemleri tek bir veri örneği verilerin nasıl organize edilebileceğini, depolanabileceğini ve değiştirilebileceğini belirler. Aksine, bir çok modelli veritabanı tek, entegre bir arka uçta birden çok veri modelini desteklemek için tasarlanmıştır.[1] Belge, grafik, ilişkisel, ve anahtar / değer modeller, çok modelli bir veritabanı tarafından desteklenebilecek veri modellerinin örnekleridir.

Arka fon

ilişkisel veri modeli yayınlandıktan sonra popüler oldu Edgar F. Codd 1970 yılında. yatay ölçeklenebilirlik ve hata toleransı, NoSQL veritabanları 2009'dan sonra öne çıktı. NoSQL veritabanları, çeşitli veri modellerini kullanır. belge, grafik ve anahtar-değer modelleri popüler.[2]

Çok modelli veritabanı, verileri birden fazla modelde depolayabilen, indeksleyebilen ve sorgulayabilen bir veritabanıdır. Bir süredir, veritabanları öncelikle aşağıdaki gibi yalnızca bir modeli desteklemiştir: ilişkisel veritabanı, belge odaklı veritabanı, grafik veritabanı veya üçlü mağaza. Bunların çoğunu birleştiren bir veritabanı çok modellidir.

Bir süredir, Relational dışında başka veritabanı modellerinin de olduğu tamamen unutulmuştu (ya da ilgisiz görülmüştü). İlişkisel model ve kavramı üçüncü normal biçim tüm veri depolama için fiili standarttı. Bununla birlikte, yaklaşık 1980'den 2005'e kadar İlişkisel veri modellemesinin hakimiyetinden önce, hiyerarşik veritabanı modeli yaygın olarak kullanıldı ve 2000 veya 2010'dan beri birçok NoSQL Belgeler, üçlüler, anahtar-değer depoları ve grafikler gibi ilişkisel olmayan modeller popülerdir. Muhtemelen, jeo-uzamsal veriler, zamansal veriler ve metin verileri de ayrı modellerdir, ancak indekslenmiş, sorgulanabilir metin verileri genellikle "arama motoru "bir veritabanı yerine.

"Çoklu model" kelimesi veri tabanlarıyla ilk kez 30 Mayıs 2012'de Almanya'nın Köln kentinde Luca Garulli'nin anahtar notu sırasında ilişkilendirildi "NoSQL Benimseme - Sonraki Adım Nedir?".[3][4] Luca Garulli, 1. nesil NoSQL ürünlerinin, çoklu kullanım durumlarında kullanılabilen daha fazla özelliğe sahip yeni ürünlere dönüşmesini öngördü.

Çok modelli veritabanları fikri geriye doğru izlenebilir Nesne-İlişkisel Veri Yönetim Sistemleri (ORDBMS) 1990'ların başında ve daha geniş bir kapsamda, 1980'lerin başında federe ve entegre DBMS'ler için bile. Bir ORDBMS sistemi, etki alanına özgü veri türlerini, işlevleri ve dizin uygulamalarını DBMS çekirdeklerine ekleyerek ilişkisel, nesne, metin ve uzamsal gibi farklı veri türlerini yönetir. Çok modelli bir veritabanı, en doğrudan "çok dilli kalıcılık "Martin Fowler tarafından tanımlandığı gibi çok modelli bir yetenek elde etmek için her biri farklı bir model sunan birden fazla veritabanı ürününü bir araya getirme yaklaşımı.[5] Bu stratejinin iki büyük dezavantajı vardır: operasyonel karmaşıklıkta önemli bir artışa yol açar ve ayrı veri depolarında veri tutarlılığını sürdürmek için destek yoktur, bu nedenle çok modelli veritabanları bu boşluğu doldurmaya başlamıştır.

Çok modelli veritabanları, poliglot kalıcılığının veri modelleme avantajlarını sunmayı amaçlamaktadır,[5] dezavantajları olmadan. Özellikle operasyonel karmaşıklık, tek bir veri deposunun kullanılmasıyla azaltılır.[2]

Veritabanları

Çok modelli veritabanları şunları içerir (alfabetik sırayla):

Çok modelli veritabanlarının karşılaştırılması

Çok modelli verilerle uğraşmak için gittikçe daha fazla platform önerildiğinden, çok modelli veri tabanlarının karşılaştırılması üzerine birkaç çalışma bulunmaktadır. Örneğin Pluciennik,[7] Oliveira,[8] ve UniBench[9] mevcut çok modelli veritabanlarını gözden geçirdi ve sırasıyla çok modelli veritabanları ile diğer SQL ve NoSQL veritabanlarını karşılaştırmaya yönelik bir değerlendirme çalışması yaptı. Çok modelli veri tabanlarının tek model veri tabanlarına göre avantajlarının şu şekilde olduğuna dikkat çekmişlerdir: (i) CSV (Graph, Relational dahil), JSON gibi çeşitli veri formatlarını herhangi bir ek çaba sarf etmeden depolamaya alabilirler. , (ii) graph-JSON-key / value, XML-relational ve JSON gibi ilişkili çok modelli verileri almak için AQL, Orient SQL, SQL / XML, SQL / JSON gibi birleşik bir sorgu dili kullanabilirler. tek bir platformda ilişkisel. (iii) bağımsız modda çok modelli ACID işlemlerini destekleyebilirler.

Mimari

Mevcut çok modelli veritabanları arasındaki temel fark, mimarileriyle ilgilidir. Çok modelli veritabanları, motor içinde veya motorun üstündeki farklı katmanlar aracılığıyla farklı modelleri destekleyebilir. Bazı ürünler, belgeleri ve grafikleri destekleyen bir motor sunarken, diğerleri bir anahtar-anahtar deposu üzerinde katmanlar sağlar.[10] Katmanlı bir mimari ile her veri modeli kendi bileşen.

Kullanıcı tanımlı veri modelleri

Tek bir veri deposunda birden çok veri modeli sunmanın yanı sıra, bazı veritabanları, geliştiricilerin özel veri modellerini kolayca tanımlamasına olanak tanır. Bu özellik, yüksek performans ve ölçeklenebilirliğe sahip ACID işlemleri ile etkinleştirilir. Özel bir veri modelinin eşzamanlı güncellemeleri desteklemesi için, veritabanının güncellemeleri birden çok anahtar arasında senkronize edebilmesi gerekir. ACID işlemleri, yeterince performans gösteriyorsa, bu tür senkronizasyona izin verir.[11] JSON belgeleri, grafikleri ve ilişkisel tabloların tümü, temeldeki veri deposunun yatay ölçeklenebilirliğini ve hata toleransını miras alacak şekilde uygulanabilir.

Ayrıca bakınız

Referanslar

  1. ^ 451 Grubu, "Ne Balık Ne Fowl: Çok Modelli Veritabanlarının Yükselişi"
  2. ^ a b Infoworld, "Çok Modelli Veritabanının Yükselişi"
  3. ^ "Çok Modelli depolama 1/2 tek ürün". 2012-06-01.
  4. ^ "Nosql Matters Conference 2012 | NoSQL Matters CGN 2012" (PDF). 2012.nosql-matters.org. Alındı 2017-01-12.
  5. ^ a b Çok dilli Kalıcılık
  6. ^ https://docs.microsoft.com/en-us/azure/cosmos-db/create-graph-dotnet
  7. ^ Ewa Pluciennik ve Kamil Zgorzalek. "Çok Modelli Veritabanları - Bir Gözden Geçirme". Bdas 2017: 141–152.
  8. ^ Fábio Roberto Oliveira, Luis del Val Cura. "Polyglot Kalıcılık Uygulamalarında NoSQL Çok Modelli Veri Depolarının Performans Değerlendirmesi". Fikirler '16: 230–235.
  9. ^ Chao Zhang, Jiaheng Lu, Pengfei Xu, Yuxing Chen. "UniBench: Çok Modelli Veritabanı Yönetim Sistemleri için Bir Kıyaslama" (PDF). TPCTC 2018.CS1 bakimi: birden çok ad: yazarlar listesi (bağlantı)
  10. ^ "katman"
  11. ^ ODBMS, "Polyglot Persistence veya Multiple Data Models?"

Dış bağlantılar