La maggior parte delle applicazioni e dei programmi nell’era moderna hanno bisogno di un posto dove memorizzare i dati. Per le applicazioni web, un database è un ingranaggio cruciale.

Tra i fattori da considerare quando si sceglie un database ci sono prima di tutto il suo costo, ma anche la flessibilità e il supporto dei fornitori di hosting sono fondamentali. Un database open source è la scelta migliore per molte ragioni.

Per esempio, un database open source non avrà un grosso impatto sul budget, né vi imporrà restrizioni su come usarlo. Come succede anche con i sistema di gestione dei contenuti (CMS) come WordPress, gli strumenti open source possono offrire immensa potenza e funzionalità. Ancora meglio, alcuni dei database più popolari (e supportati) sono soluzioni open source.

Diamo un’occhiata a diversi software per database open source e facciamo una carrellata di diverse alternative.

Guardate la Nostra Video-Guida al Miglior Software di Database Open Source

Un’Introduzione al Software per Database Open Source

Un database è l’archivio di backend per un’applicazione – come, per esempio, una web app (che è il tipo di app principale a cui faremo riferimento in questo articolo). Il database stesso si troverà sul vostro server, insieme ad altri elementi di backend come i file principali del vostro sito, qualsiasi media che usate e i file di configurazione del server.

In senso generale, il database è uno degli endpoint del vostro sito. Per esempio:

  • Le pagine del vostro sito useranno HTML e PHP per parlare al server.
  • Il server accederà al database per conto vostro (un processo senza soluzione di continuità), estrarrà o spingerà i dati e li restituirà al frontend.
  • Il vostro sito visualizzerà o aggiornerà il suo contenuto in base al database.

È un pezzo fondamentale della tecnologia del vostro sito e del vostro server. Per questo vi servirà avere quanta più flessibilità e conoscenza possibile del vostro database.

Questo porta alla prima considerazione: se optare per un database open source o uno proprietario.

Un database open source sarà disponibile al 100% per quanto riguarda il codice base e le potenzialità del sistema. Al contrario, una soluzione proprietaria completamente chiusa non offrirà lo stesso livello di profondità o flessibilità a meno che lo sviluppatore non scelga di abilitarlo.

Alcuni database operano su una base “source-available”, come MongoDB:

Il logo MongoDB che mostra una foglia verde a sinistra del nome del brand ("mongoDB").
Il logo di MongoDB.

Tuttavia, questo rappresenta un’eccellente via di mezzo per alcuni sviluppatori. Infatti, ci sono molti fan del database “NoSQL”, ma queste persone incontrano ancora delle restrizioni nell’uso di un database con codice disponibile o con codice chiuso. D’altra parte, un’opzione open source sarà più adattabile alle vostre esigenze.

Come (e Dove) Si Usa un Database Open Source

Vale la pena notare che il tipo di licenza non limita necessariamente le applicazioni per cui potete usarlo. Tuttavia, un database open source ha alcuni casi d’uso diversi che si combinano bene con la licenza:

  • WordPress: Il nucleo open source di WordPress funziona bene con un database open source, principalmente a causa della mancanza di restrizioni. Questo significa che poteet creare un’applicazione potente e personalizzata per le vostre esigenze, specialmente quando lavorate con le API REST.
  • Archiviazione chiave-valore: Scoprirete che la memorizzazione di chiavi-valore è un compito pesante in termini di risorse che a volte ha bisogno del tocco abile di una sviluppatrice o sviluppatore esperto per essere ottimizzato. Una soluzione di database open source permetterà a chi si occupa di sviluppo di scavare nel codice e fare quelle modifiche alla perfezione.
  • Tecnologie di nicchia: Molte applicazioni tecnologiche beneficiano di altri strumenti open source come i database. Intelligenza artificiale (AI), grafici e diverse nicchie possono lavorare con un database open source proprio come WordPress (senza restrizioni) e sfruttare la flessibilità del database stesso.
  • Data science: La data science è un’altra area in cui un database open source funziona bene. Di nuovo, i linguaggi popolari in questo settore, come Python e R, funzionano meglio con MySQL, MariaDB e MongoDB, ma meno con le soluzioni proprietarie.
  • Memorizzazione dei dati: Un database open source può essere più sicuro di uno proprietario (a causa del codice visibile), quindi è anche una buona soluzione per l’archiviazione dei dati incentrata sulla privacy. Questo migliora ulteriormente quando combinate il database con altre soluzioni incentrate sulla privacy, creando una configurazione notevolmente sicura che è scalabile a un basso costo.

Il fil rouge di tutti questi casi d’uso è che un database open source offre poche restrizioni. Per questo motivo, potete sfruttare la potenza del software del database e adattarlo alle vostre esigenze.

Questo ci porta al perché usare un database open source potrebbe essere un vantaggio.

Perché Conviene Usare un Database Open Source

Naturalmente, un database in sé è un componente essenziale di qualsiasi applicazione web. Vi sarà difficile creare qualcosa di utile senza di esso. Tuttavia, potreste non vedere i benefici immediati quando scegliete un database open source.

Scoprirete che usereste un database open source per le stesse ragioni per cui scegliereste un CMS open source come WordPress. Per esempio:

  • Le informazioni che tenete nel database sono vostre, senza compromessi o restrizioni.
  • Potete costruire sopra il software del database, proprio come si fa con WordPress. Questo apre possibilità quasi infinite per ciò che potete realizzare.
  • Un database open source è un ottimo modo per scalare e portare live un’applicazione e un business senza preoccuparsi delle licenze o dei costi di acquisto più elevati. Potete concentrarvi sul far funzionare il database per voi piuttosto che combattere con le licenze.

A questo punto, potete probabilmente vedere come un database open source sia un discutibile vincitore rispetto alle soluzioni proprietarie o anche a quelle con codice sorgente disponible. Tenendo questo a mente, ecco alcune delle migliori opzioni sul mercato.

Il Meglio del Software per Database Open Source: 10 Esempi

La seguente lista contiene alcuni database open source, ma non è esaustiva. Ci saranno molte più opzioni di quelle che potremmo mai includere qui, quindi abbiamo inserito solo le opzioni che noi reputiamo migliori.

La nostra prima voce è probabilmente l’opzione più importante per un database open source, quindi iniziamo da lì.

1. MySQL

Se vi prendete un minuto per cercare database per le applicazioni, MySQL apparirà spesso in cima alla lista. Anche noi lo inseriamo per primo perché si tratta da anni di un’opzione quasi scontata per chi lavora nello sviluppo.

Il logo MySQL con la scritta "My" in blu e "SQL" in giallo, con il contorno blu di un delfino che salta sopra il testo.
Il logo di MySQL.

Oracle lo ha sviluppato come un sistema di gestione di database relazionali (RDMS). Questo significa che userete delle tabelle per memorizzare i dati e questi tipi di dati memorizzati potrebbero essere tra loro collegati in qualche modo.

Il nucleo di MySQL era quello di prendere un vecchio (ma popolare) sistema di database proprietario, mantenere la maggior parte della compatibilità e rendere i risultati open source. Poiché chi si occupa di sviluppo può passare a esso senza dover imparare MySQL, è stato un punto fermo dello sviluppo di applicazioni per decenni.

Molte delle funzionalità che troverete in diversi database rispecchiano MySQL o derivano da esso. Per esempio, userete il linguaggio SQL (Structured Query Language) per lavorare con il database in modo relazionale e vi servirete di quasi ogni linguaggio di programmazione per connettervi al database stesso.

Non avete bisogno di sapere molto di SQL per usare MySQL e la curva di apprendimento non è ripida. Potete lavorare con il database dalla riga di comando e MySQL ha un’alta compatibilità con quasi tutti i sistemi operativi (OS).

Nel complesso, MySQL è ottimo per la maggior parte dei casi d’uso, in quanto è solido, veloce e affidabile. A causa di questo e del suo posizionamento rispetto ad altre soluzioni nel corso degli anni, la maggior parte degli host supporta i database MySQL. Tuttavia, ci sono anche alcuni svantaggi da considerare:

  • MySQL è efficiente nella maggior parte dei casi, ma può essere più lento con i database di grandi dimensioni.
  • Inoltre, i suoi strumenti di debug potrebbero migliorare rispetto ad altre soluzioni (anche proprietarie).
  • Ci sono casi di corruzione dei dati, anche se non è un problema grave.

È difficile nominare troppi aspetti negativi perché, nel complesso, MySQL è un database solido e affidabile che si adatta alla maggior parte delle applicazioni. Tuttavia, alcuni utenti cercano altri prodotti per ragioni che approfondiremo in seguito.

2. MariaDB

Al momento in cui scriviamo questo articolo, Oracle possiede MySQL e lo offre ancora come soluzione open source, ma la sua reputazione non è quella di grande sostenitore dell’open source. Quando è avvenuta l’acquisizione, uno dei fondatori ha fatto un fork di MySQL per creare MariaDB:

Il logo di MariaDB.
Il logo di MariaDB.

È un database open source che supportiamo a Kinsta e infatti lo trovate tra le opzioni all’interno di DevKinsta:

Come scegliere MariaDB nel cruscotto di DevKinsta: schermata che mostra il nome del sito, il server web, la versione di PHP e il database (quest'ultimo è impostato su
Scegliere MariaDB in DevKinsta.

Poiché è un fork di MySQL, la compatibilità è quasi 1:1. Anche al team di sviluppo di MariaDB piace mantenere la compatibilità con il suo fork. Per questo potete usare MariaDB come un sostituto “drop-in” di MySQL senza quasi nessuna conseguenza e migrare a esso senza problemi.

Nonostante MariaDB sia un fork di MySQL, si sforza ancora molto per delineare con precisione il suo percorso. Ecco alcune delle caratteristiche uniche del database open source che dovreste conoscere:

  • MariaDB usa il motore di archiviazione Aria per gestire le query SQL complesse. Questo rende il database più veloce rispetto a MySQL.
  • Potete usare righe dinamiche per le colonne della tabella, il che aiuta la flessibilità e l’adattabilità.
  • Ci sono alcuni motori di archiviazione specializzati per casi d’uso specifici che non troverete in MySQL. Per esempio, potete implementare l’archiviazione distribuita, le transazioni distribuite e molto altro.

A causa della stretta compatibilità, potete usare MariaDB ovunque usiate MySQL senza troppe penalità. Per questo potete tranquillamente considerarlo adatto a tutte le applicazioni, proprio come il suo fork. Tuttavia, vale la pena notare che la compatibilità è solo a senso unico, quindi dovrete scegliere da che parte stare: MySQL o MariaDB. Questo database open source esige lealtà!

3. PostgreSQL

Se tutto quello che conoscete è PHP e WordPress, probabilmente non sapete granché di PostgreSQL. Si tratta di un database relazionale open source che molti sviluppatori e sviluppatrici usano nella data science, nei grafici e nell’industria dell’intelligenza artificiale perché è ideale per le applicazioni Python e Ruby (anche se potreste usare PHP).

Il logo di PostgreSQL.
Il logo di PostgreSQL.

Se paragonato alla robustezza di MySQL, PostgreSQL è decisamente più fine: è un database ben pensato e open source che fornisce molte caratteristiche importanti:

  • Potete implementare la replica asincrona.
  • C’è un supporto nativo per l’archiviazione di documenti in stile JSON, l’archiviazione di valori chiave e XML.
  • Potete effettuare ricerche full-text nel vostro database.
  • Alcune applicazioni potranno godere di diversi tipi di dati integrati, come la geolocalizzazione, gli array e gli intervalli.

Anche così, dovrete maneggiare PostgreSQL con cura, dato che non è così abile come altre soluzioni pensate appositamente per la lettura. Per prima cosa, se dovete creare regolarmente rapporti da dati esistenti, l’archiviazione dei documenti di PostgreSQL potrebbe soffrire di un set di dati così grande.

Tuttavia, questo stesso modello di archiviazione dei documenti è ideale se volete includere funzionalità in stile NoSQL su una base ibrida. Il supporto nativo per l’archiviazione chiave-valore e documento è un risparmio di tempo che vi permette di progredire velocemente con un progetto.

4. Redis

Redis è diverso dal resto dei database open source di questa lista, perché non si usa per quasi nessuna delle stesse applicazioni.

Il logo Redis con il testo in minuscolo, che mostra una pila di tre piastrelle rosse a sinistra su cui sono disegnate una stella, un cerchio e un triangolo bianchi.
Il logo Redis.

È un database che vi permette di strutturare i dati come coppie chiave-valore. Funziona in modo simile agli array associativi in PHP o ai dizionari in Python; è un modo di collegare i dati per farvi riferimento in seguito:

<?php
$type = array("Charmander"=>"fiery", "Squirtle"=>"soggy", "Snorlax"=>"sleepy");
echo "Snorlax is " . $type['Snorlax'] . " all the time.";
?>

“Velocità” è il termine cruciale qui perché Redis è un database di riferimento per il caching. Ci sono alcune ragioni per cui questo accade:

  • Redis è una soluzione di archiviazione “in-memoria” – interamente in RAM – il che significa che le velocità di lettura e scrittura sono incredibilmente veloci.
  • Potete imparare le basi di Redis in pochi minuti e iniziare subito a memorizzare oggetti.
  • Potete impostare i tempi di scadenza delle stringhe, che è un componente critico del caching.
  • Una nuova funzione Pub/Sub usa Redis come buffer per i messaggi tra un mittente e un destinatario. Invece di questi endpoint che effettuano una connessione diretta, un mittente invia un messaggio a un “canale” Redis dedicato, che poi lo trasferisce al ricevitore (e viceversa).

Tutto questo significa che Redis è ottimo per i dati distribuiti e per implementare il caching. Non sarà il migliore per applicazioni più complesse, ma questo non rientra nelle sue competenze. Lo userete invece insieme a un altro database come MariaDB per fargli supportare il resto della vostra applicazione.

5. SQLite

Per questo database relazionale open source, l’indizio del suo punto forte è nel nome: SQLite è una piccola e leggera libreria che offre un motore per database.

Il logo di SQLite, che mostra una silhouette di piuma che borda il lato destro di un riquadro blu sfumato.
Il logo di SQLite.

Lo troverete spesso nei dispositivi più piccoli come gli smartphone perché è leggero. Infatti, l’intero database consiste in un file <code>.sqlite</code> che può vivere ovunque sul vostro sistema. Per usare SQLite non avrete bisogno di installare alcun software server o di connettervi ad altri servizi.

Nonostante il database sia uno strumento così leggero, potreste comunque avere una dimensione del database di centinaia di terabyte, con una dimensione massima delle righe di gigabyte. Anche con dimensioni di file così grandi, SQLite rimane veloce.

Scoprirete che ci sono molti buoni casi d’uso per usa SQLite come database:

  • Chi sviluppa applicazioni semplici amerà SQLite perché è una soluzione diretta e senza fronzoli.
  • È ottimo per le applicazioni Internet of Things (IoT) dove non ci sarà (o non può esserci) l’admin di sistema o un team di sviluppo a portata di mano.
  • SQLite può adattarsi a siti web a basso traffico perché quelle esigenze saranno semplici.
  • Anche se qui stiamo parlando principalmente di applicazioni web, anche le applicazioni desktop potrebbero usare SQLite per mantenere alte le prestazioni.

Data la struttura di SQLite, non funzionerà bene per i siti a grande traffico poiché le prestazioni non saranno ottimali. Inoltre, in questo database open source più leggero mancano alcune caratteristiche che potrebbero essere importanti. Per esempio, non potete interrogare il database con un client come MySQL o MariaDB.

6. Neo4j

La maggior parte dei database open source di questa lista sono relazionali. Per cambiare, Neo4j è basato su grafici.

Il logo Neo4j in minuscolo, con un globo blu minimalista a sinistra del testo che presenta tre cerchi verdi collegati da file di punti bianchi.
Il logo di Neo4j.

È uno strumento fantastico per alcune delle applicazioni web più moderne: Neo4j è praticamente (almeno per ora) l’unica soluzione che troverete per implementare un database basato su grafici.

I dati generalmente non arrivano in un array ordinato di tabelle, righe e colonne. Li organizziamo così attraverso i database relazionali. Tuttavia, è difficile replicare la connettività organica usando SQL per le moderne applicazioni web, come i social network. Non è strutturato, il che lo rende il completo opposto di SQL.

Per questo motivo Neo4j è un database unico per quasi tutte le applicazioni che può gestire e offre molti vantaggi:

  • È fantastico per trasformare i dati tabulari in grafici e supportare l’analisi risultante.
  • Neo4j è stellare anche per le applicazioni transazionali.
  • C’è un linguaggio di query dedicato (Cypher) che vi aiuta a raggiungere i dati e lavorare con essi in modo ottimale.

Le prestazioni possono essere un problema, però, a causa di come è strutturato il database. Per esempio, potete usare solo “indici hash” per ordinare i dati, a differenza degli indici range di altre soluzioni. Questo può tassare le risorse del vostro sistema e avere un impatto sulle prestazioni.

Tuttavia, se volete implementare un database basato su grafici, Neo4j può soddisfare le vostre esigenze. È un database open source di prim’ordine, a condizione che lo usiate nel modo in cui è stato concepito.

7. OrientDB

Abbiamo detto che in giro “quasi” non ci sono altri database open source basati su grafici, ma questo lascia spazio ad altri. OrientDB è tra questi. Anche se ha cambiato proprietà nel corso degli anni, rimane un modo eccellente per implementare un database basato su grafici per la vostra applicazione web.

Il logo OrientDB con le lettere "DB" in arancione e dei raggi intorno alla lettera O
Il logo di OrientDB.

OrientDB è in grado di gestire diversi modelli, come oggetti, grafici, documenti e chiavi-valore. Anche così, è classificato come una soluzione NoSQL, e ci sono connessioni dirette ai record, quindi il suo nucleo è come un database basato su grafici.

Il vantaggio principale di OrientDB è la sua flessibilità e scalabilità. Molto simile a Neo4j, è veloce ma ha delle limitazioni per quanto riguarda le prestazioni. Tuttavia OrientDB è più flessibile e sta sviluppando altri meccanismi di indicizzazione per aiutare gli utenti.

Scoprirete che OrientDB è altrettanto capace di Neo4j nella stessa gamma di applicazioni come social network, banche e finanza, gestione del traffico e altro.

8. CouchDB

Apache – il tipo di server – sviluppa anche CouchDB. In modo molto simile a SQLite, questo è un piccolo e discreto database open source che è una soluzione di lavoro per innumerevoli progetti.

Il sito di CouchDB che mostra la silhouette di un divano in rosso a sinistra del testo
Il sito web di CouchDB.

Il focus di questo database open source è l’affidabilità. L’idea è che i dati si trovino all’interno di un cluster di più nodi distribuiti. Alcuni di questi nodi saranno offline e “terranno” i dati fino a quando non saranno di nuovo online. L’insieme dei dati viene poi alimentato al cluster e distribuito agli altri nodi della rete.

Per spiegarlo meglio, immaginate un database che contiene dati generati su un dispositivo mobile. Non c’è garanzia che questo dispositivo acceda a una connessione online, quindi i dati rimarranno lì finché il suo “nodo” non sarà di nuovo online.

Pertanto, CouchDB è un database resistente e affidabile che dovrebbe essere una considerazione chiave se avete bisogno di tolleranza offline.

Detto questo, il lato positivo più significativo di CouchDB è allo stesso tempo uno svantaggio. Deve memorizzare copie ridondanti di dati, il che aumenterà le dimensioni dei file. Inoltre, vedrete che le velocità di scrittura non sono veloci, quindi non è adatto a casi d’uso che richiedono una risposta rapida.

Tuttavia, essendo un database open source offline-first progettato per l’affidabilità, CouchDB è in prima linea per le applicazioni che si adattano allo scopo.

9. FirebirdSQL

FirebirdSQL non è così noto come altri database in questa lista, ma può svolgere un ruolo vitale in scenari specifici.

Il logo FirebirdSQL, che mostra una silhouette arancione e gialla di una testa di fenice all'interno di un cerchio, senza alcun testo di accompagnamento
Il logo di FirebirdSQL.

Scoprirete che FirebirdSQL ha quasi tutte le stesse caratteristiche e funzionalità di altri database basati su SQL e offre piena compatibilità con MySQL. Questo è probabilmente il motivo per cui non troverete molti sostenitori del database: ci sono troppe somiglianze con altre piattaforme. Tuttavia, può stare in piedi da solo in diversi modi:

  • Offre un ingombro piccolo, il che è comodo dove lo spazio è prezioso.
  • Potete usare FirebirdSQL come database per un’applicazione desktop che ha bisogno di scalare, come LibreOffice.
  • Il database è multipiattaforma e ha poche esigenze in termini di hardware. Questo lo rende una soluzione solida quando avete bisogno di gestire grandi database.

Ci sono anche utenti di alto profilo di FirebirdSQL, come National Rail nel Regno Unito. Nonostante la prevalenza di altre soluzioni, FirebirdSQL potrebbe funzionare come un database open source leggero ma potente per il vostro progetto.

10. BigchainDB

Vi diamo subito un indizio sull’industria e l’applicazione in cui BigchainDB sembra eccellere: questa soluzione open source prende un database distribuito e si fonde con la tecnologia blockchain per migliorare l’esperienza.

Il logo BigchainDB logo con le lettere "DB" in verde.
Il logo di BigchainDB.

In modo simile agli elementi chiave di blockchain, BigchainDB usa l’immutabilità, la decentralizzazione e i “multiasset” per aiutarvi a gestire i dati.

Potete personalizzare la vostra rete in base a ricche impostazioni di permessi, asset personalizzati e altro ancora. Il database può funzionare anche con configurazioni decentralizzate, anche se le applicazioni incentrate sulla sicurezza o sulla privacy offrono i migliori casi d’uso.

Per esempio, scoprirete che è un grande alleato nel preservare i diritti di proprietà intellettuale (IP) e nel verificare le credenziali degli utenti. Però vi accorgerete anche che BigchainDB non è adatto ad applicazioni più tipiche e può essere davvero troppo per molte applicazioni web.

Proprio come Neo4j o OrientDB, se il vostro è un caso d’uso rigoroso e avete bisogno di BigchainDB, questa soluzione vi farà felici. Potete aggiungere un sacco di sfaccettature uniche alla vostra applicazione web incentrata sulla privacy, quindi potrebbe funzionare proprio accanto al vostro database centrale open source per migliorare la vostra fornitura.

Riepilogo

Se volete creare un’app di qualsiasi tipo, avete bisogno di un database. Le app web devono avere almeno un database, ma potreste averne bisogno di diversi per contenere tutti i dati che elaborate nei vari casi d’uso.

Anche se ci sono molti database con vari tipi di licenza, un database open source è la scelta migliore per la maggior parte dei casi.

Proprio come le soluzioni open source come WordPress, un database open source vi offrirà flessibilità, scalabilità e sicurezza a livello di base. Ancora meglio, strumenti come MySQL, MariaDB, PostgreSQL e Redis sono tutti open source, popolari e supportati da molti web host.

Avete un database open source preferito tra quelli di questa lista? Fateci sapere perché lo avete scelto nella sezione commenti qui sotto!

Salman Ravoof

Salman Ravoof is a self-taught web developer, writer, creator, and a huge admirer of Free and Open Source Software (FOSS). Besides tech, he's excited by science, philosophy, photography, arts, cats, and food. Learn more about him on his website, and connect with Salman on Twitter.