Le basi di dati sono ne­ces­sa­rie per or­ga­niz­za­re le in­for­ma­zio­ni in modo si­ste­ma­ti­co, ma esistono metodi diversi per strut­tu­rar­li. In in­for­ma­ti­ca sono comuni e par­ti­co­lar­men­te diffusi i database re­la­zio­na­li; esistono però anche le co­sid­det­te base di dati orientate ai documenti, che si basano su una semplice struttura di tabelle e documenti per l’ar­chi­via­zio­ne delle in­for­ma­zio­ni. Come fun­zio­na­no questi database e quali vantaggi offrono?

Che cos’è un document store?

Le basi di dati orientate ai documenti, chiamate anche document store, sono uti­liz­za­te per la gestione dei dati semi-strut­tu­ra­ti. Si tratta di dati che non seguono una struttura formale, ma con­ten­go­no etichette o altri marcatori per clas­si­fi­ca­re le in­for­ma­zio­ni e sono co­no­sciu­ti anche come dati senza schema o dati con struttura au­to­de­scrit­ta. A causa della mancanza di una struttura chiara, questi dati non si addicono ai database re­la­zio­na­li perché le loro in­for­ma­zio­ni non possono essere clas­si­fi­ca­te in tabelle.

La base di dati orientata ai documenti crea una semplice coppia: a una chiave viene assegnato un documento specifico. In questo documento, che può essere for­mat­ta­to ad esempio con XML, JSON o YAML, si possono trovare le in­for­ma­zio­ni. Poiché la base di dati non richiede uno schema specifico, è possibile in­te­grar­vi diversi tipi di documenti, le cui modifiche non devono essere condivise.

N.B.

La base di dati orientata ai documenti as­so­mi­glia molto ad altri modelli: potremmo con­si­de­rar­la come una sot­to­ca­te­go­ria dei database NoSQL, mentre nel col­le­ga­men­to chiave-documento vi è una stretta cor­re­la­zio­ne con i database chiave-valore. In quanto sistema or­ga­niz­za­to per riga, si con­trap­po­ne ai database orientati a colonne.

Come fun­zio­na­no le basi di dati orientate ai documenti?

In teoria, in una base di dati orientata ai documenti è possibile me­mo­riz­za­re dati di diversi formati e senza uno schema coerente. Nella realtà, tuttavia, si usa in genere un de­ter­mi­na­to formato di file per i documenti e si clas­si­fi­ca­no le in­for­ma­zio­ni secondo una struttura fissa, al fine di sem­pli­fi­car­ne la gestione. Ad esempio, le richieste di ricerca nel database possono essere elaborate meglio in presenza di una struttura or­ga­niz­za­ta. In generale, si possono eseguire le stesse ope­ra­zio­ni in entrambe le tipologie di database: le in­for­ma­zio­ni possono essere inserite, mo­di­fi­ca­te, can­cel­la­te e richieste.

Per eseguire le ope­ra­zio­ni a ogni documento viene assegnato un ID univoco. In linea di principio non è im­por­tan­te il modo in cui viene gestito. Sia una semplice stringa di caratteri, sia un intero percorso possono essere usati per in­di­riz­za­re il documento. Durante la ricerca d’in­for­ma­zio­ni vengono esaminati i documenti stessi: ciò significa che le varie colonne con i dati rilevanti non vengono cercate all’interno del database, bensì i dati vengono estratti di­ret­ta­men­te dal documento.

Quali sono i vantaggi e gli svantaggi delle basi di dati orientate ai documenti?

Nei database re­la­zio­na­li classici ci deve essere un campo per ogni in­for­ma­zio­ne in ogni voce. Se l’in­for­ma­zio­ne non è di­spo­ni­bi­le, la cella rimane vuota, ma deve essere ugual­men­te creata. Le base di dati orientate ai documenti sono molto più fles­si­bi­li: la struttura dei singoli documenti non deve essere coerente. Possono esservi me­mo­riz­za­ti anche grandi quantità di dati non strut­tu­ra­ti.

È inoltre più facile integrare le nuove in­for­ma­zio­ni: mentre in un database re­la­zio­na­le è ne­ces­sa­rio inserire un nuovo punto in­for­ma­ti­vo in tutti i record di dati, con un document store è suf­fi­cien­te integrare la novità solo in pochi record di dati. Il contenuto ag­giun­ti­vo può essere inserito in altri documenti, ma non è ne­ces­sa­rio.

Inoltre, le in­for­ma­zio­ni nei document store non sono di­stri­bui­te su diverse tabelle connesse tra loro. Tutto è in un unico posto, il che può portare a pre­sta­zio­ni migliori. Tuttavia, le basi di dati orientate ai documenti possono sfruttare questo vantaggio in termini di velocità solo se non sono dotati di elementi re­la­zio­na­li: i ri­fe­ri­men­ti non rientrano ef­fet­ti­va­men­te nel concetto di document store. Tuttavia, se si tenta di collegare in rete i documenti tra loro, il sistema diventa molto complesso e vo­lu­mi­no­so. Un sistema di database re­la­zio­na­le è quindi pre­fe­ri­bi­le per volumi di dati collegati in rete.

Le basi di dati orientate ai documenti più note

Le basi di dati orientate ai documenti sono im­por­tan­ti so­prat­tut­to per lo sviluppo delle ap­pli­ca­zio­ni web. In virtù della domanda crescente che ne è derivata, at­tual­men­te sono di­spo­ni­bi­li sul mercato numerosi sistemi di gestione di database (DBMS). Scopriamo insieme quali sono i più co­no­sciu­ti:

  • BaseX: il progetto open source utilizza Java e XML ed è dotato di un’in­ter­fac­cia grafica utente.
  • CouchDB: software open source ri­la­scia­to dalla Apache Software Foun­da­tion. Il sistema di gestione del database è scritto in Erlang, utilizza Ja­va­Script e viene uti­liz­za­to, tra l’altro, nelle ap­pli­ca­zio­ni Ubuntu e Facebook.
  • Ela­stic­search: motore di ricerca che funziona sulla base di una base di dati orientata ai documenti. A questo scopo vengono uti­liz­za­ti i documenti JSON.
  • eXist: il DBMS eXist open source funziona su una macchina virtuale Java e può quindi essere uti­liz­za­to in­di­pen­den­te­men­te dal sistema operativo. Vengono uti­liz­za­ti prin­ci­pal­men­te documenti XML.
  • MongoDB: MongoDB è il database NoSQL più uti­liz­za­to. Il software è scritto in C++ e utilizza documenti simili a JSON.
  • SimpleDB: Amazon ha svi­lup­pa­to il proprio DBMS con SimpleDB (scritto in Erlang) per i servizi Cloud dell’azienda. Il fornitore richiede un compenso per il suo utilizzo.
Vai al menu prin­ci­pa­le