06. SQLite

SQLite è una libreria software scritta in linguaggio C che implementa un DBMS SQL.

Il suo creatore, D. Richard Hipp, lo ha rilasciato nel pubblico dominio, rendendolo utilizzabile quindi senza alcuna restrizione.

Permette di creare una base di dati (comprese tabelle, query, form, report) incorporata in un unico file.

SQLite può essere incorporato all'interno di un programma. È utilizzabile con il linguaggio C/C++, ed esistono binding anche per altri linguaggi, come ad esempio Python e PHP.

Viene utilizzato in Mozilla Firefox e Seamonkey per memorizzare i segnalibri, la cronologia di navigazione ed altre informazioni e in tantissime applicazioni Android e iOS.

I vantaggi che offre SQLite rispetto ad altri database sono i seguenti:

    • esiste una vasta gamma di strumenti e software di supporto;

    • quasi tutti i linguaggi di programmazione possono utilizzare SQLite;

    • esiste una community molto attiva e su GitHub sono disponibili decine di migliaia di repository;

    • è semplice da installare e rendere operativo;

    • è basato su file (l’intero database è memorizzato in un unico file) ed è compatibile con più piattaforme (per copiare il database da un posto ad un altro basta copiare un file);

    • è particolarmente adatto per i file di configurazione, i database con pochi dati, la comunicazione tra processi, etc …

SQLite ha alcuni limitazioni, che ne definiscono gli svantaggi:

    • alcune funzionalità di SQL non sono supportate (RIGHT JOIN, trigger, ALTER COLUMN, DROP COLUMN, ADD CONSTRAINT);

    • non supporta la concorrenza di più client, la gestione degli utenti e delle autorizzazioni utente al di fuori di quanto fornito dal sistema operativo;

    • non impedisce di inserire il tipo di dati sbagliato in un campo (ad esempio una stringa in un campo numerico).

Inoltre è sconsigliato utilizzare SQLite in caso di accessi simultanei agli stessi dati (potrebbero potenzialmente causare un arresto anomalo dei dati), o nel caso di scritture frequenti (che rallentano il database), o di accesso alla rete (estremamente lento), o nel caso di grandi moli di dati.

Il sito di riferimento di SQLite è https://www.sqlite.org.