“Apache CouchDB has started. Time to relax.” Così gli utenti del sistema di gestione del database CouchDB sono accolti all’avvio. Secondo gli svi­lup­pa­to­ri del sistema, il relax e la spen­sie­ra­tez­za sono le priorità prin­ci­pa­li nella gestione del database, perché “Couch” è pro­get­ta­to per essere facile da capire e facile da uti­liz­za­re, anche per chi non ha di­me­sti­chez­za con questa tec­no­lo­gia. Molti elementi intuitivi e di facile utilizzo rendono il software open source un vero e proprio unicum, in cui gli approcci dei database orientati ai documenti sono collegati a quelli dei database re­la­zio­na­li.

In questo articolo potete scoprire cosa offre Apache CouchDB, come e dove viene uti­liz­za­to, e quali vantaggi può portare alle aziende.

I database sono il fon­da­men­to del software

I database sono la base su cui le aziende lavorano e su cui viene svi­lup­pa­to il software. I dati dei clienti, i dati dei prodotti, i dati di spe­di­zio­ne e di pagamento e centinaia di altri set di dati co­sti­tui­sco­no il sistema nervoso della maggior parte delle aziende. Il modo in cui i dati vengono me­mo­riz­za­ti dipende fon­da­men­tal­men­te dal modello di database uti­liz­za­to.

Il modello tra­di­zio­na­le dei database re­la­zio­na­li, ad esempio, ordina i record di dati secondo le relazioni comuni. I modelli non re­la­zio­na­li, chiamati anche database NoSQL, uti­liz­za­no altri metodi: ad esempio, una forma di database non re­la­zio­na­li sono i database orientati ai documenti, come la soluzione Apache CouchDB.

N.B.

CouchDB può essere im­ple­men­ta­to fa­cil­men­te su qualsiasi server. Per un utilizzo ef­fi­cien­te e che sfrutti tutte le po­ten­zia­li­tà, Apache CouchDB può essere in­stal­la­to nel cloud, ad esempio su un server cloud di IONOS.

Dati concreti più im­por­tan­ti su CouchDB

CouchDB è un Database Ma­na­ge­ment System che sfrutta i vantaggi dei database orientati ai documenti per rag­giun­ge­re le pre­sta­zio­ni dei database re­la­zio­na­li. Couch è svi­lup­pa­to dall’Apache Software Foun­da­tion, che ha iniziato a lavorare sul software libero Apache CouchDB nel 2005 e ha con­ti­nua­to a svi­lup­par­lo da allora.

CouchDB è com­pa­ti­bi­le con i popolari sistemi operativi Linux, Unix, macOS e Windows, ed è stato svi­lup­pa­to nel lin­guag­gio di pro­gram­ma­zio­ne Erlang. Il lin­guag­gio di scripting pre­de­fi­ni­to per l’accesso ai set di dati Couch è Ja­va­Script.

CouchDB come al­ter­na­ti­va ai database re­la­zio­na­li

I database basati su documenti come CouchDB me­mo­riz­za­no i record di dati come documenti autonomi, piuttosto che come tabelle e righe. Un po’ come avviene con le fatture.

Una fattura è un documento a sé stante che riunisce tutte le in­for­ma­zio­ni rilevanti in un set di dati unico e completo: il soggetto che emette la fattura, il numero di fattura, il de­sti­na­ta­rio, il prezzo, gli articoli venduti e l’indirizzo sia del soggetto che emette la fattura che del de­sti­na­ta­rio sono tutte in­for­ma­zio­ni es­sen­zia­li che rendono il set di dati, in questo caso la fattura, unico e in­con­fon­di­bi­le.

Mentre in un database re­la­zio­na­le, queste in­for­ma­zio­ni sono suddivise su molte righe diverse, CouchDB consente di rac­co­glie­re tutte queste in­for­ma­zio­ni in un unico documento. Facendo sì che i dati non debbano essere strut­tu­ra­ti in anticipo, in quanto la struttura deriva dal documento stesso. CouchDB può quindi essere con­si­de­ra­to un sistema di gestione di database senza schema.

L’approccio orientato ai documenti sem­pli­fi­ca no­te­vol­men­te il processo di sviluppo. Inoltre, permette di rag­grup­pa­re insiemi di dati se­man­ti­ca­men­te simili (ad esempio con gli stessi formati di file), ma che dif­fe­ri­sco­no sin­tat­ti­ca­men­te (in termini di or­ga­niz­za­zio­ne e struttura interna).

I vantaggi di Apache CouchDB

Uno dei vantaggi di CouchDB è la sua capacità di sin­cro­niz­za­re più database, e questa sin­cro­niz­za­zio­ne ef­fi­cien­te è par­ti­co­lar­men­te im­por­tan­te quando si di­stri­bui­sco­no i dati su un cluster CouchDB. Le ri­don­dan­ze di dati che si ve­ri­fi­ca­no in questo modo al­leg­ge­ri­sco­no l’intero sistema. Di con­se­guen­za, le query del database possono trovare risposta in diverse istanze CouchDB. Diventa così possibile di­stri­bui­re geo­gra­fi­ca­men­te anche enormi reti di database.

Apache CouchDB utilizza una strategia in­cre­men­ta­le per sin­cro­niz­za­re il database per diversi utenti in diverse località. Facendo così si ottiene un netto vantaggio, ossia di non pre­giu­di­ca­re il processo di sin­cro­niz­za­zio­ne qualora le con­nes­sio­ni di rete siano scadenti o smettano ad­di­rit­tu­ra di fun­zio­na­re. Una volta risolti i problemi e ri­sta­bi­li­ta la con­nes­sio­ne, il software del database riprende esat­ta­men­te da dove si era in­ter­rot­to al momento della perdita della con­nes­sio­ne. Gli svi­lup­pa­to­ri sot­to­li­nea­no che il sistema non ignora tali con­tin­gen­ze e pre­sup­po­ne che tali errori possano quo­ti­dia­na­men­te ve­ri­fi­car­si.

Inoltre, CouchDB utilizza il formato JSON entry-level (ab­bre­via­zio­ne di Ja­va­Script Object Notation) per tra­sfe­ri­re e me­mo­riz­za­re i suoi set di dati. Questo formato fornisce una struttura priva di schemi che, a dif­fe­ren­za dei modelli re­la­zio­na­li, consente di me­mo­riz­za­re in­for­ma­zio­ni non pre­ce­den­te­men­te strut­tu­ra­te.

Gli utenti possono anche contare sulla facilità d’uso di CouchDB perché si basa su tec­no­lo­gie web comuni e ben note come REST, JSON e Ja­va­Script. Non c’è nulla che impedisca l’uso sia di grandi cluster di server che di di­spo­si­ti­vi mobile.

Perché CouchDB non è il database ideale per tutti

Gli stessi svi­lup­pa­to­ri di Apache CouchDB sot­to­li­nea­no che non vogliono e non possono superare i database re­la­zio­na­li, ma vogliono piuttosto po­si­zio­na­re CouchDB al loro fianco e offrire agli utenti una al­ter­na­ti­va che si con­trad­di­stin­gua per la sua sem­pli­ci­tà. Un database orientato ai documenti non sempre è la soluzione migliore per ogni azienda, in quanto, ad esempio, potrebbe non essere suf­fi­cien­te.

Ad esempio, è bene sapere che i sistemi di banche dati re­la­zio­na­li sono più pratici e di più facile utilizzo per chi vuole esaminare re­go­lar­men­te i propri set di dati sotto forma di calcoli o altre richieste più complesse. Anche CouchDB dovrebbe im­ple­men­ta­re queste ca­rat­te­ri­sti­che, ma la cosa im­pli­che­reb­be un notevole aumento degli oneri e pre­sup­por­reb­be un know-how ne­ces­sa­rio da parte dell’utente.

Aree di utilizzo di Apache CouchDB

Come accennato in pre­ce­den­za, CouchDB è una buona al­ter­na­ti­va per lo sviluppo di ap­pli­ca­zio­ni web con molte ca­rat­te­ri­sti­che di facile utilizzo. Gli svi­lup­pa­to­ri sot­to­li­nea­no che altri sistemi di database sono spesso adattati per il web, mentre CouchDB è stato creato ap­po­si­ta­men­te per il web. Ad esempio, questa soluzione viene uti­liz­za­ta in molti siti web e ap­pli­ca­zio­ni Facebook. È stata anche usata in passato da Ubuntu, la di­stri­bu­zio­ne pro­ba­bil­men­te più popolare di Linux, per sin­cro­niz­za­re se­gna­li­bri e indirizzi, un altro esempio dei co­sid­det­ti “Real World Data”.

In­stal­la­re e accedere a CouchDB in pochi clic

CouchDB è com­pa­ti­bi­le con tutti i prin­ci­pa­li sistemi operativi, ragion per cui gli svi­lup­pa­to­ri offrono sul loro  sito web versioni di download per ogni sistema operativo. A seconda del sistema, la procedura di in­stal­la­zio­ne è diversa. Su Linux/Ubuntu, ad esempio, i passaggi necessari sono i seguenti:

per prima cosa, ag­gior­na­te il sistema di gestione dei pacchetti di Ubuntu e ag­giun­ge­te il re­po­si­to­ry PPA:

sudo apt update
sudo apt install software-properties-common

Ag­gior­na­te un’altra volta il sistema di gestione dei pacchetti:

sudo apt update

Quindi uti­liz­za­te il seguente comando da terminale per in­stal­la­re CouchDB:

sudo apt install couchdb
Consiglio

Per istru­zio­ni det­ta­glia­te sull’in­stal­la­zio­ne dei vari sistemi, potete con­sul­ta­re la do­cu­men­ta­zio­ne online di Apache CouchDB.

Vai al menu prin­ci­pa­le