Una base di dati orientata al documento è un programma per applicazioni orientate al documento. Questi sistemi potrebbero essere implementati come strato sopra un database relazionale o a oggetti.

Le basi di dati orientate al documento non memorizzano i dati in tabelle con campi uniformi per ogni record come nei database relazionali, ma ogni record è memorizzato come un documento che possiede determinate caratteristiche. Qualsiasi numero di campi con qualsiasi lunghezza può essere aggiunto al documento. I campi possono anche contenere pezzi multipli di dati.

Documenti

modifica

Il concetto fondamentale è quello di Documento. Ogni implementazione differisce nei dettagli della definizione di documento, ma in generale si assume che siano incapsulati e codificati i dati o le informazioni in base ad uno standard. Le codifiche più comuni sono XML, YAML, JSON, e BSON così come formati binari tipo PDF o Microsoft Office.

I documenti all'interno della base di dati sono simili ai record dei database relazionali, ma sono meno rigidi. Non è richiesta l'adesione ad uno schema standard. Un esempio di documento:

 {
    Nome:"Mario", 
    Indirizzo:"Via Veneto 10", 
    Hobby:"Calcio"
 }

Un altro esempio potrebbe essere questo:

 {
     Nome:"Luca", 
     Indirizzo:"Via del Popolo 20", 
     Figli:[
        {Nome:"Annamaria", Eta:3}, 
        {Nome:"Luigi", Eta:2}
   ]
 }

I documenti negli esempi hanno similitudini e differenze. Diversamente da un database relazionale, in cui in ogni record ci sono gli stessi attributi ed i campi inutilizzati rimangono vuoti, non ci sono campi vuoti in nessun documento. Questo sistema consente di aggiungere nuove informazioni e non richiede che vengano indicati i campi vuoti.

Chiavi

modifica

I documenti sono indirizzati all'interno del database mediante key univoche. Spesso la chiave è una semplice stringa, in alcuni casi è un URI o una path. Solitamente il database mantiene un indice delle chiavi per consentire un recupero veloce del documento.

Recupero

modifica

Una delle caratteristiche particolari di un database orientato ai documenti è che, oltre alla semplice ricerca del documento per chiave, il database offre anche API (o un semplice linguaggio di query) che permette il recupero in base al contenuto. Questo, ad esempio, consente di recuperare documenti basandosi sul valore di un determinato campo. Il set di API (o il linguaggio di interrogazione) così come le performance variano in maniera significativa a seconda dell'implementazione.

Implementazioni

modifica

Tutti i database XML sono database orientati al documento. Alcuni esempi:

  • Lotus Notes (IBM)
  • askSam (askSam Systems)[1]
  • Apstrata[2]
  • Datawasp (Significant Data Systems)
  • SimpleDB (Amazon.com)
  • CRX (Day Software)
  • MUMPS Database[3]
  • UniVerse (Rocket Software)
  • UniData (Rocket Software)

Implementazioni Open source:

Note

modifica
  1. ^ DLIST - The University of Arizona Campus Repository, su dlist.sir.arizona.edu. URL consultato il 4 giugno 2010 (archiviato dall'url originale il 1º ottobre 2009).
  2. ^ Apstrata, su apstrata.com. URL consultato il 4 giugno 2010 (archiviato dall'url originale il 30 gennaio 2010).
  3. ^ Extreme Database programming with MUMPS Globals (PDF), su gradvs1.mgateway.com. URL consultato il 4 giugno 2010 (archiviato dall'url originale il 6 luglio 2016).
  4. ^ FleetDB (archiviato dall'url originale il 20 settembre 2014).
  5. ^ Licensing - MongoDB.
  6. ^ OrientDB.
  7. ^ RavenDB - 2nd generation document database, su ravendb.net. URL consultato il 29 aprile 2019 (archiviato dall'url originale il 6 aprile 2019).
  8. ^ Riak (archiviato dall'url originale il 17 marzo 2010).
  9. ^ Persevere (archiviato dall'url originale il 24 agosto 2011).
  10. ^ DBSlayer (archiviato dall'url originale il 19 marzo 2011).

Voci correlate

modifica
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

📚 Artikel Terkait di Wikipedia

Base di dati

alle basi di dati del paradigma "Object Oriented", tipico della programmazione a oggetti, Document-oriented (NoSQL), Key-Value Store (NoSQL), Graph-based

CRUD

possono essere implementate, per esempio, con basi di dati document-oriented, object-oriented, XML, testuali o file binari. Nota: alcuni sistemi di big

SAP HANA

tecnologie, tra cui il motore di ricerca TREX (motori di ricerca column-oriented), P*TIME (piattaforma OLTP in-memory acquisita da SAP nel 2005), e MaxDB

Orient ODBMS

strutturato, magari utilizzando linguaggi Object Oriented. Seguendo l'evoluzione dei linguaggi, il mercato dei Database management system (allora dominato dai DBMS

Modello relazionale

object-oriented, come la possibilità di definire tipi di dato "utente"[non chiaro]. ^ Atzeni 2018, p. 15. ^ Codd 1970. ^ Breve storia dei database relazionali

Base di dati a oggetti

(EN) Opere riguardanti Object-oriented databases, su Open Library, Internet Archive. (EN) Denis Howe, object-oriented database, in Free On-line Dictionary

RavenDB

gennaio 2021. Kaur, Harpreet, and Kamal Jeet Kaur. "A Review: Study of Document oriented databases and their Security." International Journal of Advanced Research

Sistema informatico

(informatica) Hardening Risorsa informatica Reingegnerizzazione Service-oriented architecture SCADA Sistema operativo Sistema distribuito Sistema legacy