SQLite
SQLite est un moteur de base de données relationnelles transactionnelles très léger (< 300 ko) idéal pour les bases de données mono-poste et mono-application inférieures à quelques Go. Il utilise le langage SQL et est très simple d'utilisation : à la différence d'autres moteurs de bases de données (MySql, PostgreSQL, ...) qui sont des programmes indépendants auxquels un programme utilisateur accède dans une relation 'client-serveur', SQLite est une bibliothèque et fait donc partie intégrante du logiciel utilisateur par l'édition de liens à la compilation ou via des commandes dans le cas où le programme appelant est un script (cf. TCL). Il est à noter que les opérations sont atomiques, ce qui assure l'intégrité de la base. La base de données est stockée dans un fichier dont l'encodage est indépendant de la plateforme, ce qui facilite les déploiements et les portages.
Il n'y a pas de phase d'installation.
- SQLite peut être utilisé dans l'embarqué.
- SQLite peut aussi bien fonctionner en mode synchrone (chaque opération sollicite le support de stockage) qu'en mode asynchrone (à l'aide des instructions BEGIN ... COMMIT) qui offre alors des performances décuplées au détriment de la fiabilité en cas de défaillance.
- fichier au format .sql,
- respecte les standards du SQL92 avec quelques exceptions (cf. le paragraphe Limitations),
- syntaxe des requêtes très semblable à MySql.
Pour ces raisons de nombreux utilitaires (voire même de simples shellscripts) permettent de convertir une base de données depuis et vers SQlite.
Utilisé au laboratoire IRAP en remplacement de MySql pour une base de données atomiques et moléculaires.
- Pas de gestion de privilèges, d'utilisateurs, ni de droits d'accès
- Ne supporte pas bien le multithread, chaque processus qui accède en lecture ou en écriture à la base bloque l'accès à la base
- Impossibilité de supprimer ou de modifier les colonnes d'une table déjà remplie
- Impossibilité de modifier une vue
Quelques particularités :
- SQlite ne dispose pas nativement des énumérations (type ENUM),
- SQlite stocke en mémoire, tous les champs de type INT (tinyint, mediumint, ...) ainsi que BOOLEAN sous une forme unique d'entier signé tout en assurant un forme adaptative lors du stockage sur disque.
Commentaires
"SQLite peut être utilisé dans l'embarqué"
Après réflexion, c'est probablement le seul choix judicieux pour implémenter une base de données SQL dans un matériel embarqué.
(A ne pas confondre avec le choix d'un serveur SQL extérieur au matériel embarqué, qui peut être totalement différent car pas soumis aux mêmes contraintes.)
C'est peut-être le fait d'un
C'est peut-être le fait d'un profil "crypté" (usage d'un mot de passe principal).
Auquel cas, un autre exemple d'usage de sqlite pourrait être le suivant:
:)
Obtenir de ses préférences Firefox la liste des favoris ...
... selon la recette indiquée génère pour moi :