SQLite

Da Wikipedia, l'enciclopedia libera.


SQLite
Sviluppatore Dr. Richard Hipp
Ultima versione 3.6.16 / 27 giugno 2009
SO Multipiattaforma
Genere RDBMS
Licenza Public domain o Licenza commerciale
Sito web http://www.sqlite.org/


SQLite è una libreria software scritta in linguaggio C che implementa un DBMS SQL di tipo ACID incorporabile all'interno di applicazioni. Il suo creatore, D. Richard Hipp, lo ha rilasciato nel pubblico dominio, rendendolo utilizzabile quindi senza alcuna restrizione.

SQLite permette di creare una base di dati (comprese tabelle, query, form, report) incorporate in un unico file, come nel caso dei modulo Access di Microsoft Office e Base di OpenOffice.org e analogamente a prodotti specifici come Paradox o Filemaker.

SQLite non è un processo standalone utilizzabile di per sé, ma può essere linkato all'interno di un altro programma. È utilizzabile con il linguaggio C/C++ ed esistono binding anche per altri linguaggi, in particolare Tcl. È inoltre stato integrato nella versione 5 di PHP, consentendo a tale popolare linguaggio di disporre di un RDBMS indipendentemente dalla presenza di MySQL.


[modifica] In dettaglio

La libreria offre molte interessanti caratteristiche:

  • È molto piccolo (meno di 500KB per l'intera libreria alla versione 3.6.14).
  • È molto veloce; in molti casi più di MySQL e PostgreSQL.
  • Il codice sorgente è liberamente disponibile, chiaro e ben commentato
  • È in grado di interpretare stringhe SQL, a differenza di altre librerie simili; supporta buona parte dello standard SQL92.
  • L'API è semplice da utilizzare
  • Ha transazioni atomiche, consistenti, isolate e durabili (ACID), anche in caso di crash di sistema o blackout.
  • E' multipiattaforma.
  • Contiene un programma di utilità che permette l'accesso al database anche manualmente (come su MySQL, Postgresql e tanti altri DB) o tramite scripting.
  • Supporta database che possono essere anche molto grandi; attualmente il limite è 2TB (241 byte).
  • Il database consiste di un unico file il cui formato interno è indipendente dalla piattaforma e dal relativo Ordine dei byte.
  • Non ha dipendenze esterne.
  • Normalmente non richiede alcun lavoro di amministrazione, ma supporta il comando SQL VACUUM nel caso si renda necessario comprimere il database.

SQLite presenta dei limiti legati in parte alla finalità di semplice database da incorporare in altre applicazioni:

  • Non possiede le stored procedure.
  • Non prevede la gestione dei permessi (demandata al software con cui si interagisce con il database o al File System.
  • Non ha una vera gestione della concorrenza: le applicazioni che lo utilizzano, se necessario, devono implementarla.
  • Per garantire la coerenza del file del database si appoggia al lock del File System e quindi può dare problemi qualora quest'ultimo non lo implementi correttamente ad esempio per risorse in rete (ad esempio con NFS.
  • Non offre alcuna cache per le query (e non ne ha la possibilità, non esistendo un processo server centrale).
  • Non ha protocolli di rete, non essendo utilizzabile come programma standalone; è possibile utilizzare un database in remoto, ma solo servendosi del File system del sistema operativo, con prestazioni difficilmente accettabili.
  • Non è in grado di gestire dati binari in modo sicuro.
  • Non supporta alcuni importanti comandi SQL quali RIGHT e FULL OUTER JOIN.
  • Non supporta le sottoquery variabili.
  • Non supporta la scrittura nelle viste
  • Il comando ALTER TABLE è limitato alla modifica del nome della tabella e all'aggiunta di colonne alla fine.
  • Non supporta vincoli sulle chiavi esterne comunque simulabili tramite TRIGGER

Una peculiarità di SQLite è la gestione flessibile dei tipi di dati: ogni campo può contenere qualsiasi tipo di dato (o quasi; gestito differentemente nella versione 2 e 3).

[modifica] Interfacce grafiche per SQLite

Pur gestibile da altre applicazioni, esistono delle interfacce grafiche appositamente sviluppate per SQLite:

  • SQLite Database Browser (sito)— è un'applicazione multipiattaforma che consente di amministrare in modo semplificato, con una interfaccia grafica, database di SQLite; Licenza public domain
  • TkSQLite (sito)— applicazione multipiattaforma. Licenza BSD-style
  • sqlite-manager (sito)— è una estensione per browser basati su Gecko (Firefox 3, Thunderbird 3, Seamonkey 2, Sunbird 1.0, Komodo 5.0, etc.) multipiattaforma, che consente di amministrare in modo semplificato, con l'interfaccia grafica del browser, database di SQLite;
  • SQLiteManager (sito)— è un'applicazione multipiattaforma, basata sul web, che consente di amministrare in modo semplificato, con una interfaccia grafica, database di SQLite; Lingua francese
  • Sqliteman (sito)— applicazione realizzata con le librerie Qt4 - versione per GNU/Linux, Mac, Windows, richiede SQLite versione 3.
  • Database Master (sito) freeware, per Windows, anche per MySQL.

[modifica] Collegamenti esterni

Strumenti personali