Timeline
Chat
Prospettiva

Base di dati orientata al documento

Da Wikipedia, l'enciclopedia libera

Remove ads

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.

Remove ads

Documenti

Riepilogo
Prospettiva

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

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

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.

Remove ads

Implementazioni

Riepilogo
Prospettiva

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:

  • Apache Jackrabbit (Apache License)
  • BaseX, base di dati XML (Licenze BSD)
  • Apache CouchDB (Beta software), (Apache License)
  • FleetDB[4] una base di dati senza schema implementato in Clojure e ottimizzato per uno sviluppo agile. (Licenza MIT)
  • MongoDB - database orientato al documento. (GNU AGPL v3.0 [5])
  • OrientDB[6] - Database orientato al documento, ma con una gestione ottimizzata delle relazioni fra documenti come avviene in un database a grafo. Open source con licenza commercial friendly (Apache License)
  • RavenDB - Transazionale .NET basato su database a documento RESTful.[7] (commercial o GNU AGPL v3.0)
  • Riak[8] - Decentralizzato, tolleranza all'errore, datastore di documenti scalabile orizzontalmente (Apache License)
  • ThruDB ( Licenza BSD)
  • Persevere[9] è un database JSON e un JavaScript Application Server. Fornisce un'interfaccia RESTful JSON per l'accesso alla creazione, lettura, aggiornamento e cancellazione dei dati. Supporta anche le interrogazioni JSONQuery/JSONPath.
  • DBSlayer[10] è un leggero database abstraction layer (su MySQL) che può parlare ai client via JSON su HTTP usato dal New York Times.
Remove ads

Note

Voci correlate

Loading content...
Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads