SQLite
SQLite è una libreria C che implementa un DBMS SQL incorporabile all'interno di applicazioni. Il suo creatore è D. Richard Hipp, che lo ha rilasciato come Software libero di pubblico dominio, privo di qualsiasi licenza.
Essendo una libreria, non è un processo standalone utilizzabile di per sé, ma può essere linkato all'interno di un altro programma. È utilizzabile con C/C++ ed esistono binding anche per altri linguaggi, in particolare Tcl. È integrato nella versione 5 di PHP.
Il pacchetto ha molte interessanti caratteristiche:
- è molto piccolo (meno di 250KiB per l'intera libreria)
- è molto veloce; in molti casi più veloce di MySQL e PostgreSQL
- supporta buona parte di SQL92
- ha transazioni atomiche, consistenti, isolate e durabili (ACID), anche in caso di crash di sistema o blackout
- è multipiattaforma
- contiene un programma di utilità che permette l'accesso al database anche manualmente (come MySQL e Postgresql e tanti altri DB) o tramite scripting
- supporta database che possono essere anche molto grandi; attualmente il limite è 2TiB ( byte)
- il database consiste di un unico file il cui formato interno è indipendente dalla piattaforma
- non ha dipendenze esterne
Ci sono, naturalmente, anche degli svantaggi:
- non possiede stored procedures, gestione dei permessi e molte altre funzionalità tipiche dei "colossi"
- non ha una vera gestione della concorrenza (le applicazioni che lo utilizzano, se necessario, devono implementarla)
- non ha protocolli di rete, non essendo utilizzabile come standalone
- non supporta alcuni importanti comandi SQL:
- ALTER TABLE
- RIGHT e FULL OUTER JOIN
- sottoquery variabili
- transazioni annidiate
Una sua peculiarità è il gestire i "tipi" in modo molto flessibile: ogni campo può contenere qualsiasi tipo di dato (o quasi; gestito differentemente nella versione 2 e 3).