SQLite

open source RDBMS senza server
Versione del 21 dic 2004 alle 13:38 di LapoLuchini (discussione | contributi) (aggiunta un po' di roba, riordinato un po')

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).

Collegamenti esterni