Banca dati documentaria
Un database documentario è costituito da un insieme di programmi che memorizzano, recuperano e gestiscono dati di documenti o dati in qualche modo strutturati. Questo tipo di database costituisce una delle principali sottocategorie all'interno dei cosiddetti database NoSQL. A differenza dei database relazionali, questi database sono progettati attorno a una nozione astratta di "Documento".
I documenti
Il concetto centrale di un database orientato ai documenti è il concetto di Documento stesso . Sebbene ogni implementazione di database orientata ai documenti differisca nei dettagli, in generale condividono tutti il principio che i documenti incapsulano e codificano dati o informazioni seguendo un formato standard. Le codifiche attualmente utilizzate includono XML , YAML e JSON , nonché formati binari come BSON .
I documenti all'interno di un database orientato ai documenti sono in qualche modo simili a record, tuple o righe in un database relazionale, ma meno rigidi. Non sono tenuti a conformarsi a uno schema standard o avere tutte le stesse sezioni, attributi, chiavi o simili. Ad esempio un documento può essere:
{
Nome: Miguel Ignacio Barboteo Piñero
Indirizzo: Málaga
Professione: "banchiere"
}
Mentre un altro:
{
Nome: Miguel Ignacio Barboteo Piñero
Indirizzo: Málaga
Figli maschi:[
{Nome:"Iñaki"},
{Nome:"Nando"},
{Nome:"Maria"},
Moglie:[
{Nome:"Maria Begoña"},
Questi documenti contengono alcune informazioni simili e alcune diverse. Contrariamente a un database relazionale in cui tutti i record devono avere gli stessi attributi -che possono essere lasciati vuoti-, non ci sono 'campi' vuoti in un documento. In questo modo è possibile aggiungere nuove informazioni senza la necessità di stabilire quali informazioni sono escluse.
Chiavi
I documenti vengono indirizzati utilizzando una chiave univoca che identifica il documento. Di solito questa chiave è composta da una semplice stringa. In alcuni casi può essere un URI o un percorso, utilizzato per recuperare il documento dal database. Il database generalmente mantiene un indice di queste chiavi, quindi il ripristino è rapido.
Recupero
Un'altra caratteristica distintiva di un database orientato ai documenti è che, oltre alla semplice mappatura chiave-documento (o valore-chiave) utilizzata per recuperare un documento, il database offre un'API o un linguaggio di query per recuperare i documenti in base al loro contenuto. Ad esempio, per richiedere tutti i documenti che hanno un determinato valore in un campo. Il set di funzionalità dell'API o del linguaggio di query, nonché ciò che ottieni, varia in modo significativo tra le diverse implementazioni.
Organizzazione
Le diverse implementazioni di banche dati documentali che possiamo organizzare i documenti in modi molto diversi, tra cui sono:
- Collezioni
- tag
- metadati nascosti
- Gerarchie di directory
Implementazioni
| Nome | Editore | Licenza | Lingua | gradi | API RESTful |
|---|---|---|---|---|---|
| BaseX | Squadra BaseX | bsd | Java , XQuery | Supporta XML, JSON e formati binari; architettura client-server; ricerche simultanee full-text. | sì |
| ArangoDB | triAGENS | Apache 2 | C , C++ e Javascript | Archivio documenti e presentazione grafica. | Sì [ 1 ] |
| punto di grappolo | Clusterpoint Ltd. | Gratuito/Commerciale [ 2 ] | C++ | Database documenti senza schema, ricerca full text, ordinamento per rilevanza e funzionamento in Cluster . | sì |
| CouchbaseServer | Couchbase, Inc. | Apache | Erlang e C. | Database NoSQL documentario distribuito. | Sì [ 3 ] |
| DivanoDB | Apache Software Foundation | Apache | Erlang | JSON su REST/HTTP con proprietà ACID tramite il controllo della concorrenza multiversione limitato . Usa mappa e riduci per visualizzazioni e query. [ 4 ] | Sì [ 5 ] |
| esistere | esiste , [2] | GPL | XQuery , Java | XML su REST/HTTP, WebDAV, ricerca full-text Lucene , convalida, controllo delle versioni, clustering , trigger , riscrittura URL, raccolte, ACL, aggiornamento XQuery | Sì [ 6 ] |
| FleetDB | FleetDB | MIT | clown | Un database basato su JSON senza schema ottimizzato per lo sviluppo Agile . | (sconosciuto) |
| lepre | Apache Software Foundation | Apache | Giava | (sconosciuto) | |
| note di loto | IBM | proprietario | LotusScript , Java , Lotus @Formula | (sconosciuto) | |
| MarkLogic | MarkLogic Corporation | gratuito o commerciale | REST , Java , XQuery , XSLT , C++ | Database documentale distribuito con controllo della concorrenza multiversione , ricerca full-text e transazioni ACID . | sì |
| MongoDB | MongoDB, Inc. | GNU AGPL v3.0 [ 7 ] | C++ | Database di documenti ottimizzato per contenuti molto transitori | Opzionale [ 8 ] |
| PARTIUME [ 9 ] | Proprietario e GNU Affero GPL [ 10 ] | PAROTITE | Ampiamente usato nelle applicazioni mediche. | (sconosciuto) | |
| OrienteDB | Orient Technologies Archiviato il 20-04-2012 in Internet Archive | Apache | Giava | JSON su HTTP | sì |
| Redis | Licenza BSD | ANSI-C | Negozio chiave-valore con elenco e supporto per set | (sconosciuto) | |
| Razzo U2 | Software missilistico | proprietario | UniData, UniVerse | Sì (beta) | |
| RavenDB | rinoceronti in letargo | GNU AGPL v3.0 [ 11 ] [ 12 ] o Commerciale | C# | JSON su HTTP | sì |
| Knosys | Micronet, SA | proprietario | C++, Java, C# | Database di documenti con controllo del flusso di lavoro | sì |
Database XML
La maggior parte dei database XML sono orientati ai documenti.
Vedi anche
Riferimenti
- ^ "API REST ArangoDB" . Archiviato dall'originale il 4 luglio 2014 . Estratto il 4 marzo 2013 .
- ↑ Opzioni di licenza DBMS Clusterpoint
- ^ "Copia archiviata" . Archiviato dall'originale il 20 agosto 2012 . Estratto il 21 agosto 2012 .
- ↑ Panoramica di CouchDB Archiviata il 20-10-2011 su Wayback Machine
- ^ "API del documento CouchDB" . Archiviato dall'originale il 1 marzo 2013 . Estratto il 4 marzo 2013 .
- ↑ [1]
- ↑ Licenza MongoDB
- ↑ "Interfacce REST MongoDB" . Archiviato dall'originale il 29-01-2013 . Estratto il 4 marzo 2013 .
- ↑ Programmazione Extreme Database con MUMPS Globals
- ↑ GTM MUMPS FOSS su SourceForge
- ^ "Database di documenti NoSQL - Incorporamento di RavenDB in un'applicazione ASP.NET MVC 3" . docs.microsoft.com . 2011 . Estratto il 4 gennaio 2021 .
- ↑ Licenza RavenDB OSS Archiviata il 14-05-2010 su Wayback Machine