Base di dati orientata al documento: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Nessun oggetto della modifica |
m →Implementazioni: sistemazione fonti, smistamento lavoro sporco e fix vari |
||
(24 versioni intermedie di 14 utenti non mostrate) | |||
Riga 1:
{{F|informatica|giugno 2024}}
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.▼
▲Una '''
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.▼
▲Le basi di dati orientate al documento non memorizzano i dati in tabelle con campi uniformi per ogni [[record (database)|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 ==
Il concetto fondamentale è quello di ''Documento''. Ogni implementazione differisce nei dettagli della definizione di documento, ma
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:
{
Riga 27:
}
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 di database|chiave]] è una semplice [[stringa (informatica)|stringa]], in alcuni casi è un [[Uniform Resource Identifier|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 [[Application programming interface|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 ==
Tutti i [[database XML]] sono database orientati al documento. Alcuni esempi:
* [[Lotus Notes]] (IBM)
*
* Apstrata<ref>{{cita web | url = http://www.apstrata.com/ | titolo = Apstrata | accesso = 4 giugno 2010 | urlarchivio = https://web.archive.org/web/20100130110031/http://www.apstrata.com/ | urlmorto = sì }}</ref>
*
*
*
* [[MUMPS]] Database<ref>
*
*
Implementazioni Open source:
*
*
* [[CouchDB|Apache CouchDB]] ([[Software release life cycle#Beta|Beta software]]), ([[Apache License]])
*
* [[MongoDB]] - database orientato al documento. ([[Affero General Public License|GNU AGPL v3.0]] <ref>
*
*
*
▲* [http://riak.basho.com/ Riak] - Decentralizzato, tolleranza all'errore, datastore di documenti scalabile orizzontalmente ([[Apache License]])
*
▲* [[ThruDB]] ( [[Licenza BSD]])
*
▲* [http://persvr.org/ Persevere] è un database [[JSON]] e un [[JavaScript Application Server]]. Fornisce un'interfaccia [[RESTful]] JSON per l'acceso alla creazione, lettura, aggiornamento e cancellazione dei dati. Supporta anche le interrogazioni JSONQuery/JSONPath.
▲* [http://code.nytimes.com/projects/dbslayer DBSlayer] è un leggero [[database abstraction layer]] (su [[MySQL]]) che può parlare ai client via JSON su HTTP usato dal [[New York Times]].
== Note ==
<references/>
== Voci correlate ==
*[[Base di dati XML]]
*[[Base di dati in tempo reale]]
*[[Internet Message Access Protocol]]
{{Portale|informatica}}
[[Categoria:
|