SQLite

open source RDBMS senza server

Template:Infobox Software

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 Open Source di pubblico dominio, privo di qualsiasi licenza. Permette di ottenere una base di dati (comprese tabelle, query, form, report) incorporate in un unico file, come il modulo Access di Microsoft Office o il modulo Base di Open Office org, o prodotti specifici come Paradox o FilemarkerPro.

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, consentendogli di non aver più bisogno di appoggiarsi ad un RDBMS esterno come MySQL e divenendo più concorrenziale rispetto alla piattaforma web ASP.NET di Microsoft. A sua volta MySQL è stato costretto a sviluppare la versione 5 con la gestione delle nuove tabelle InnoDB per diventare più simile a PosgreSQL.

Il pacchetto ha molte interessanti caratteristiche:

  • è molto piccolo (meno di 250KB per l'intera libreria)
  • è molto veloce; in molti casi più veloce 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
  • è 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 è 2TB ( byte)
  • il database consiste di un unico file il cui formato interno è indipendente dalla piattaforma
  • non ha dipendenze esterne
  • normalmente non richiede alcun lavoro di amministrazione, ma supporta il comando SQL VACUUM nel caso si renda necessario

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 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 filesystem del sistema operativo, con prestazioni difficilmente accettabili
  • non è in grado di gestire dati binari in modo sicuro
  • non supporta alcuni importanti comandi SQL:
    • RIGHT e FULL OUTER JOIN
    • sottoquery variabili
    • transazioni annidiate
    • ALTER TABLE offre pochissime possibilità

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

  Portale Software libero: accedi alle voci di Wikipedia che trattano di Software libero