Cosa fa SQLite?
Permette di gestire i dati locali come se fossero memorizzati su un server SQL RDBMS (Relational Data Base Management System) e di accedervi utilizzando lo stesso codice di interrogazione e manipolazione SQL che si userebbe in una situazione di database client/server.Questi dati locali sono, di solito, solo sotto forma di file. Tuttavia si possono anche creare database e/o tabelle "in memoria" ... permettendo di elaborare i dati in memoria come se si fosse creato un database e poi scritto le query o i report da quel database.
Questo è talvolta utile per eseguire complesse elaborazioni di dati in applicazioni mobili (SQLite è spesso incorporato e collegato in tale codice).
Usi appropriati per SQLite
Un vantaggio di usare SQLite per queste operazioni è che le librerie possono far rispettare molti dettagli su come i dati vengono inseriti nelle tabelle, assicurando che ogni riga inserita con successo abbia le colonne di dati richieste e che ogni colonna contenga dati del tipo corretto. Inoltre è possibile, opzionalmente, fare in modo che le librerie applichino l'"integrità referenziale" ... assicurando che i dati che mettono in relazione i dati di una tabella con quelli di un'altra siano presenti e validi --- che non ci siano collegamenti "mancanti" o "rotti" tra di loro. Potete anche descrivere la vostra tabella di dati con vincoli aggiuntivi che sono implicitamente controllati durante le operazioni di INSERT e UPDATE.
In pratica tutto questo significa che potete spingere un sacco di validazione e controllo dei dati, in tutto il vostro codice, alle librerie SQLite con una dichiarazione relativamente modesta.
Questo può anche essere estremamente utile quando avete una serie di diverse utility e applicazioni che dipendono da, e soprattutto, mantengono un corpus comune di dati. Le librerie di SQLite memorizzeranno lo schema negli stessi file e (opzionalmente) lo applicheranno a tutti i vostri programmi e applicazioni indipendentemente dal linguaggio di programmazione. Così avrete molto meno sforzo con i dati condivisi tra Python, Ruby, Java e Javascript, e C, Go(lang) o altri programmi. Tutti si collegheranno alle stesse librerie SQLite che applicheranno lo schema in modo coerente (assumendo che tutti abilitino i corretti pragma(s) --- che sono solo una o due righe di codice che documentano il corretto uso dei vostri dati/schema).