SQLite
Da Wikipedia, l'enciclopedia libera.
| SQLite software | |
|---|---|
| Genere | Relational database management system |
| Sviluppatore | Dwayne Richard Hipp |
| Data prima versione | agosto 2000 |
| Ultima versione | 3.51.2 (9 gennaio 2026) |
| Sistema operativo | Multipiattaforma |
| Linguaggio | C |
| Licenza | Public domain o Licenza commerciale (licenza libera) |
| Lingua | inglese |
| Sito web | sqlite.org |
| Modifica dati su Wikidata · Manuale | |
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 pubblicato 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, come nel caso dei moduli Access di Microsoft Office e Base di OpenOffice.org e Libre Office; analogamente a prodotti specifici come Paradox o Filemaker.
SQLite non è un processo standalone utilizzabile di per sé, ma può essere incorporato 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 altro RDBMS indipendentemente dalla presenza di MySQL. Viene utilizzato in Mozilla Firefox e Seamonkey per memorizzare i segnalibri, la cronologia di navigazione ed altre informazioni.
La libreria offre molte interessanti caratteristiche:
- è compatta (meno di 750KB per l'intera libreria alla versione 3.39.0);
- è 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;
- ha la possibilità di interpretare campi in JSON;
- l'API è semplice da utilizzare;
- ha transazioni atomiche, consistenti, isolate e durabili (ACID), anche in caso di crash di sistema o blackout;
- è multipiattaforma;
- include un programma di utilità a riga di comando per accedere al database anche manualmente (come su MySQL, Postgresql e tanti altri DB) o tramite scripting;
- supporta database nell'ordine dei terabyte, con righe grandi fino a 1GB[1];
- un 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 compattare esplicitamente i dati del database.
SQLite presenta dei limiti legati in parte alla finalità di semplice database da incorporare in altre applicazioni:
- non offre le stored procedure.
- non prevede la gestione dei permessi d'accesso, demandata al software con cui si interagisce con il database e/o al meccanismo dei permessi del file system;[2]
- non ha una vera gestione della concorrenza: le applicazioni che lo utilizzano, se necessario, devono implementarla;
- per garantire la coerenza del file del database sono usati i lock del file system, e quindi vi possono essere problemi qualora quest'ultimo non li implementi correttamente, ad esempio con file system di rete (come 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 a sé; è possibile utilizzare un database remoto, ma solo tramite file system di rete del sistema operativo, con prestazioni difficilmente accettabili;
- non ha un supporto completo per il costrutto SQL "ALTER TABLE".[2]
- non supporta la scrittura diretta nelle viste (occorre usare trigger "INSTEAD OF");[2]
- non supporta trigger di tipo "FOR EACH STATEMENT" ma solo "FOR EACH ROW", eventualmente combinato con "INSTEAD OF";[2]
- il supporto ai trigger ricorsivi ed ai vincoli sulle chiavi esterne, introdotto rispettivamente nelle versioni 3.6.18 e 3.6.19, deve essere attivato dal programmatore oppure definito in fase di compilazione della libreria.
Una peculiarità di SQLite è la gestione flessibile dei tipi di dati: ogni campo può contenere qualsiasi tipo di dato (gestito differentemente nella versione 2 e 3).
Pur gestibile da altre applicazioni, esistono delle interfacce grafiche appositamente sviluppate per SQLite:
- DaDaBIK (sito)- software proprietario scritto in PHP che permette di creare un Web front-end per SQLite senza scrivere codice. Anche per MySQL e PostgreSQL;
- SpatiaLite (sito) Archiviato il 22 luglio 2011 in Internet Archive.- estensione per il supporto dei dati geografici all'interno di database SQLite, può essere utilizzato da console o tramite un'interfaccia grafica dedicata.
- Database Browser for SQLite (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) per Windows, anche per MySQL, PostgreSQL, FireBird, Oracle, DB2, Informix, ODBC, OleDB, SQL-Server, MongoDB.
- Sqlite-Workbench (sito) - applicazione online per la gestione grafica di database sql
- DataBase.Net (sito) Applicazione sviluppata .Net / Gratuita (La versione commerciale non ha limiti in tante funzioni)
Chromium (e quindi anche Google Chrome), Mozilla Firefox e Mozilla Thunderbird memorizzano varie informazioni di configurazione (segnalibri, cookie, contatti della rubrica, ecc) in database SQLite. Skype è un altro software molto diffuso che utilizza SQLite.[4] Adobe utilizza SQLite come formato file in Adobe Photoshop Lightroom, come database di appoggio alle applicazioni in Adobe AIR e internamente in Adobe Reader.[5]
Grazie alle ridotte dimensioni SQLite è particolarmente adatto ai sistemi embedded. SQLite viene inoltre utilizzato su iOS e MacOS per la gestione degli SMS e MMS, per il calendario, la cronologia delle chiamate e la memorizzazione dei contatti. La libreria è inoltre utilizzata in Symbian OS ed Android, sul sistema operativo del BlackBerry e su webOS di Palm. SQLite è inoltre integrato nei linguaggi PHP e Python.[6]
- ↑ Limits In SQLite, su sqlite.org.
- 1 2 3 4 (EN) SQL Features That SQLite Does Not Implement, su sqlite.org. URL consultato il 14 gennaio 2010.
- ↑ Most Widely Deployed and Used Database Engine, su sqlite.org.
- ↑ Skype client using SQLite?, su mail-archive.com.
- ↑ Well-Known Users of SQLite, su sqlite.org.
- ↑ Well-known Users of SQLite, su sqlite.org.
Wikimedia Commons contiene immagini o altri file su SQLite
| Android | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Sviluppo software |
| |||||||||||||||
| Versioni | 1.0 · 1.1 · Cupcake (1.5) · Donut (1.6) · Eclair (2.0–2.1) · Froyo (2.2) · Gingerbread (2.3) · Honeycomb (3.x) · Ice Cream Sandwich (4.0) · Jelly Bean (4.1–4.3) · KitKat (4.4) · Lollipop (5.x) · Marshmallow (6.0) · Nougat (7.x) · Oreo (8.x) · Pie (9) · 10 · 11 · 12 · 13 · 14 · 15 | |||||||||||||||
| Derivati | Android Auto · Android Things · Android TV · Wear OS | |||||||||||||||
| Dispositivi mobili |
| |||||||||||||||
| Varianti personalizzate | /e/ · Android-x86 · AOKP · Baidu Yi · Barnes & Noble Nook · ColorOS · CyanogenMod · Fire OS · Funtouch OS · Flyme OS · HyperOS · LineageOS · MIUI · Nokia X Software Platform · OmniROM · OxygenOS · Paranoid Android · Replicant · Ubuntu for Android · XobotOS | |||||||||||||||
| Applicazioni | Assistente (Google Now) · Earth (Sky) · Gmail · Google Chrome for Android · Goggles · Hangouts · Maps · Pay (Send) · Play (Giochi · Libri) · TV · Voice | |||||||||||||||
| API | Google Maps · Google Play Services · Google Search | |||||||||||||||
| Interfacce utente alternative | Asus ZenUI · HTC Sense · Google Pixel UI · LG UX (Optimus UI) · One UI (Experience · TouchWiz) · EMUI · MIUI | |||||||||||||||
| Elenchi | Applicazioni per webmaster · Dispositivi Android · Distribuzioni derivate da Android AOSP · Servizi Google per Android · Servizi web di Google · Videogiochi per Android | |||||||||||||||
| Voci correlate | Google · Chromecast · Java vs. Android API · Questioni giuridiche (Oracle contro Google · Guerra per i brevetti sugli smartphone) · XDA Developers · Rooting | |||||||||||||||
| Controllo di autorità | GND (DE) 7544619-4 |
|---|


