SQLite

Un article de Wikipédia, l'encyclopédie libre.

SQLite
Image:sqlite.png
logo officiel
Développeur D. Richard Hipp
Dernière version 3.5.9 (le 12 mai 2008)
Environnement Multi-plateforme
Type Base de données relationnelle
Licence Domaine public
Site web SQLite

SQLite est une petite bibliothèque écrite en C qui propose un moteur de base de données SQL et implémentant en grande partie le standard SQL92 et les propriétés ACID. Contrairement aux serveurs de bases de données comme MySQL ou PostgreSQL, sa particularité est de ne pas reproduire le schéma habituel client/serveur mais d'être intégré directement aux programmes en utilisant des fichiers de bases de données. D. Richard Hipp, le créateur de SQLite, a choisi de mettre cette bibliothèque dans le domaine public.

SQLite est le moteur de base de données le plus distribué, grâce à ses implantations dans de nombreux logiciels grand public comme Skype, Firefox, Google Gears et certains produits McAfee, dans de nombreux langages comme PHP, Python et Perl et dans certains téléphones portables dont l'iPhone et ceux fonctionnant sous Symbian, ce qui totalise plus de 200 millions d'implantations de la bibliothèque [1].

Sommaire

[modifier] Caractéristiques

SQLite ne fonctionne pas selon le paradigme client/serveur, mais est une bibliothèque de fonctions. Parmi ses autres caractéristiques, on notera :

  • l'absence de procédure d'installation et de configuration. Cela inclut l'absence de gestion de comptes et de droits utilisateurs.
  • toute la base est stockée dans un seul fichier.
  • le type de chaque donnée stockée en base est une propriété de la donnée, pas de la colonne. Une colonne peut donc contenir des données de type différent.

SQLite implémente la majorité de la norme SQL 92 à l'exception de :

  • la gestion des droits avec GRANT et REVOKE
  • la gestion des clés étrangères
  • les jointures de type RIGHT OUTER JOIN et FULL OUTER JOIN
  • les déclencheurs ne sont que partiellement pris en compte
  • les possibilités de modifier la structure d'une table sont limitées : on peut renommer une table et y ajouter des colonnes, mais pas modifier ou supprimer des colonnes.

SQLite peut se révéler intéressant au niveau des performances et être utile dans bien des cas (impossibilité d'utiliser un serveur de bases de données, pour des sites internet ou dispositifs et applications embarquées, etc), mais il ne permet pas à différents processus ou thread d'accéder en écriture à la même base de données et n'est donc pas conçu pour gérer de nombreux accès simultanés.

La bibliothèque peut être utilisée en Python, C et C++. Des modules pour Perl, PHP, TCL et d'autres langages de scripts sont disponibles.

PHP inclut SQLite dans la distribution de base depuis sa version 5, alors qu'il n'était disponible sous la version 4 que sous la forme d'une extension PECL.

Python inclut également SQLite 3 dans ses librairies standard depuis la version 2.5.

[modifier] Différentes versions

SQLite existe sous 2 principales versions : 2.x et 3.x. Les versions 2 et 3 de SQLite se distinguent par 3 choses :

  • les fichiers des bases ne sont pas compatibles entre eux. Cela signifie qu’une base au format sqlite2 ne pourra pas être lue par sqlite3 et vice et versa.
  • Des syntaxes SQL ne sont pas présente en SQLite2 :

IF NOT EXISTS pour les requêtes CREATE TABLE ADD column et RENAME column pour les requêtes ALTER TABLE table

  • PHP utilise une classe PDO pour gérer SQLite 3 alors qu’il utilise des fonctions sqlite_*() pour sqlite 2.

[modifier] Références

  1. SQLite: Most Widely Deployed SQL Database

[modifier] Liens externes