close

Banca dati documentaria

Vai alla navigazione Vai alla ricerca

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.
ArangoDB triAGENS Apache 2 C , C++ e Javascript Archivio documenti e presentazione grafica. [ 1 ]
punto di grappolo Clusterpoint Ltd. Gratuito/Commerciale [ 2 ] C++ Database documenti senza schema, ricerca full text, ordinamento per rilevanza e funzionamento in Cluster .
CouchbaseServer Couchbase, Inc. Apache Erlang e C. Database NoSQL documentario distribuito. [ 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 ] [ 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 [ 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 .
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
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
Knosys Micronet, SA proprietario C++, Java, C# Database di documenti con controllo del flusso di lavoro


Database XML

La maggior parte dei database XML sono orientati ai documenti.

Vedi anche

Riferimenti

  1. ^ "API REST ArangoDB" . Archiviato dall'originale il 4 luglio 2014 . Estratto il 4 marzo 2013 . 
  2. Opzioni di licenza DBMS Clusterpoint
  3. ^ "Copia archiviata" . Archiviato dall'originale il 20 agosto 2012 . Estratto il 21 agosto 2012 . 
  4. Panoramica di CouchDB Archiviata il 20-10-2011 su Wayback Machine
  5. ^ "API del documento CouchDB" . Archiviato dall'originale il 1 marzo 2013 . Estratto il 4 marzo 2013 . 
  6. [1]
  7. Licenza MongoDB
  8. "Interfacce REST MongoDB" . Archiviato dall'originale il 29-01-2013 . Estratto il 4 marzo 2013 . 
  9. Programmazione Extreme Database con MUMPS Globals
  10. GTM MUMPS FOSS su SourceForge
  11. ^ "Database di documenti NoSQL - Incorporamento di RavenDB in un'applicazione ASP.NET MVC 3" . docs.microsoft.com . 2011 . Estratto il 4 gennaio 2021 . 
  12. Licenza RavenDB OSS Archiviata il 14-05-2010 su Wayback Machine