SQLite est une bi­blio­thèque de pro­grammes ou une base de données légère et in­dé­pen­dante qui est déjà intégrée dans de nom­breuses ap­pli­ca­tions. C’est notamment l’absence de structure client-serveur qui ca­rac­té­rise ce système de base de données. Les al­ter­na­tives à SQLite méritant d’être men­tion­nées sont MySQL, MongoDB et Post­greSQL.

Qu’est-ce que SQLite ?

SQLite est le système de base de données le plus répandu et le plus utilisé au monde. Le logiciel, ini­tia­le­ment conçu par D. Richard Hipp en 2000 pour l’armée amé­ri­caine, est aujourd’hui dans le domaine public et donc libre de droits d’auteur. Le nom « SQLite » est composé de « SQL » (abré­via­tion de « Struc­tu­red Query Language »), et de « lite », un terme familier désignant une version plus légère et moins gourmande en mémoire.

Ce nom s’explique notamment par le fait que la base de données re­la­tion­nelle SQLite ne nécessite pas de logiciel serveur sup­plé­men­taire, con­trai­re­ment aux autres bases de données courantes. La taille réduite de seulement quelques centaines de ki­looc­tets ainsi que le stockage d’une base de données complète dans un seul fichier ont également contribué au choix du nom.

SQLite est écrit en langage de pro­gram­ma­tion C, notamment utilisé dans de nombreux systèmes d’ex­ploi­ta­tion et pro­grammes comme Android, iOS ou Windows Phone, la mes­sa­ge­rie ins­tan­ta­née Skype ainsi que les na­vi­ga­teurs Google Chrome, Mozilla Firefox et Safari SQLite. Les données res­pec­tives sont stockées dans des tables dans la bi­blio­thèque du programme et peuvent être con­sul­tées colonne par colonne. Une in­té­gra­tion dans d’autres pro­grammes ne pose aucun problème via l’interface C ou une interface telle que Ruby, PHP ou Python.

Avec SQLite3 en Python, le langage de pro­gram­ma­tion dispose même d’un module d’in­té­gra­tion pour SQLite. Il n’est pas né­ces­saire d’installer ou de con­fi­gu­rer le système de base de données open source.

Comment fonc­tionne SQLite ?

SQLite ne nécessite pas une longue phase d’ap­pren­tis­sage, mais peut être intégré di­rec­te­ment dans une ap­pli­ca­tion sans avoir recours à un logiciel serveur sup­plé­men­taire. Celle-ci reçoit alors au­to­ma­ti­que­ment et sans autre outil des fonctions de base de données complètes. Toutes les tables, ré­fé­rences, liens et autres sont regroupés dans un seul fichier compact, qu’il est également possible de stocker dans la mémoire prin­ci­pale.

L’uti­li­sa­tion d’un fichier dans dif­fé­rents systèmes est donc très simple et il devient possible de stocker n’importe quelles données dans une table. Ceux-ci ne sont alors convertis qu’en cas de besoin, de sorte que même le passage d’un système à l’autre avec un ordre d’octet différent peut être envisagé.

En tant que système de gestion de base de données re­la­tion­nelle, SQLite utilise un principe à deux clés pour iden­ti­fier les entrées dans une table et relier dif­fé­rentes tables entre elles. Une clé primaire et une clé étrangère sont utilisées à cet effet.

  • Clé primaire : il s’agit d’une valeur unique qui peut être attribuée à une ligne spé­ci­fique dans la table.
  • Clé étrangère : celui-ci est utilisé pour relier plusieurs tables entre eux.

Ces ré­fé­rences per­met­tent d’alléger con­si­dé­ra­ble­ment la structure et fa­ci­li­tent le travail avec SQLite par rapport à d’autres bases de données. Ces attributs ont également contribué à la diffusion mondiale du système de base de données.

Quels types de données sont possibles sous SQLite ?

Sous SQLite, les données peuvent être stockées dans dif­fé­rents formats. Il en résulte également qu’une con­ver­sion n’est pas né­ces­sai­re­ment requise pour un trai­te­ment ultérieur inter-systèmes. Les types de données possibles pouvant être en­re­gis­trées et stockées sont les suivants :

  • INTEGER : comprend toutes les valeurs entières.
  • REAL : comprend les re­pré­sen­ta­tions ap­proxi­ma­tives d’un nombre réel sous forme de nombre à virgule flottante ou de nombre à virgule flottante.
  • TEXT : contient tous les contenus en texte clair.
  • BLOB : abré­via­tion de Binary Large Object et contient des valeurs binaires telles que des images d’aperçu ou des fichiers de con­fi­gu­ra­tion au format XML.
  • NULL : les valeurs nulles peuvent également être re­pré­sen­tées dans SQLite.

Cela signifie que tous les types de données courants peuvent être stockés dans SQLite.

Comment les données sont-elles sau­ve­gar­dées sous SQLite ?

Il existe deux façons de s’assurer que la cohérence d’une base de données est maintenue dans SQLite:

  • Rollback Journal : avec cette méthode, un journal tem­po­raire de toutes les mo­di­fi­ca­tions ef­fec­tuées est au­to­ma­ti­que­ment créé. Ce journal contient le nom de la base de données concernée et le suffixe « -journal ». En cas de problèmes avec la base de données ou certains fichiers, il est ainsi possible d’effectuer un rollback pour revenir à un état antérieur.
  • Write Ahead Log (WAL) : dans le cas d’un Write Ahead Log, toutes les mo­di­fi­ca­tions sont en­re­gis­trées dans un fichier journal. Ensuite, lorsque la base de données est fermée comme prévu, les données sont insérées dé­fi­ni­ti­ve­ment dans la base de données. Vous pouvez également les en­re­gis­trer ma­nuel­le­ment à l’aide d’une commande commit. En parallèle, un index est créé dans le fichier Shared Memory (SHM).

Quels sont les avantages de SQLite ?

SQLite offre de nombreux avantages et s’est forgé une bonne ré­pu­ta­tion auprès des dé­ve­lop­peurs d’ap­pli­ca­tions com­mer­ciales et des uti­li­sa­teurs privés. Parmi les arguments en faveur du système re­la­tion­nel figurent les points suivants :

Portée

Le faible besoin en mémoire est un grand avantage du système de base de données. Avec seulement quelques centaines de ki­looc­tets, une bi­blio­thèque ne prend que très peu de place, ce qui a bien sûr un effet positif sur la vitesse. C’est là que SQLite porte par­fai­te­ment son nom et se révèle être une solution puissante pour les grandes comme les petites ap­pli­ca­tions.

Pas de logiciel sup­plé­men­taire

SQLite fonc­tionne sans autre logiciel serveur et s’intègre fa­ci­le­ment et sans problème. Aucun autre programme ou paquet externe n’est né­ces­saire. La puissance du serveur qui doit ainsi être mise à dis­po­si­tion est également trans­pa­rente.

Po­ly­va­lence

Non seulement SQLite prend en charge la plupart des commandes de langage SQL, mais sa com­pa­ti­bi­lité avec une grande partie des entrepôts de données courants est également un grand avantage. Ce n’est pas un hasard si la bi­blio­thèque est utilisée dans de nom­breuses ap­pli­ca­tions comme Facebook ou WhatsApp, ainsi que dans tous les systèmes d’ex­ploi­ta­tion courants pour or­di­na­teurs de bureau et té­lé­phones portables, les na­vi­ga­teurs et de nombreux pro­grammes com­mer­ciaux. Comme l’échange entre deux systèmes dif­fé­rents est également possible sans trop de problèmes, de nombreux dé­ve­lop­peurs misent sur la solution allégée comme base de leur logiciel.

Por­ta­bi­lité

Les aspects men­tion­nés ci-dessus ont également pour con­sé­quence que les fichiers SQLite sont très faciles à sau­ve­gar­der et à trans­por­ter. Comme il n’est pas né­ces­saire de con­fi­gu­rer SQLite de manière ap­pro­fon­die et que les fichiers res­pec­tifs sont in­dé­pen­dants des pro­grammes serveur, il est possible de l’utiliser sans problème sur dif­fé­rents systèmes.

Ré­sis­tance aux pannes

L’accès unifié aux données, la faible con­som­ma­tion de res­sources et l’in­dé­pen­dance par rapport à une structure serveur-client font de SQLite une option très sûre. Les erreurs de mémoire ou les problèmes dus au manque de mémoire vive ont également moins d’im­por­tance ici.

Domaine public

SQLite est dis­po­nible sans licence. Seuls certains add-ons et le support sont payants.

Quels sont les in­con­vé­nients de SQLite ?

Malgré ses avantages, SQLite présente également quelques in­con­vé­nients à prendre en compte si vous envisagez d’utiliser le système de base de données. Il s’agit notamment des suivantes :

Res­tric­tion d’uti­li­sa­tion

SQLite ne propose pas d’option pour plusieurs comptes uti­li­sa­teurs. C’est ce qui distingue cette solution des autres. Une connexion de plusieurs clients n’est ainsi pas possible.

Besoin croissant d’espace

Même si SQLite est en fait une solution très légère, les besoins aug­men­tent à mesure que la base de données devient plus grande. Cela peut également avoir un impact négatif sur les per­for­mances.

Flexi­bi­lité

Certes, SQLite est une solution glo­ba­le­ment flexible, ce qui est prin­ci­pa­le­ment dû à son in­dé­pen­dance vis-à-vis des struc­tures de serveurs externes. Toutefois, cela implique également qu’aucune demande de données ne peut être effectuée à partir du client. De plus, il n’est pas possible de traiter plusieurs con­nexions à la fois, ce qui peut entraîner des retards.

Quelles sont les al­ter­na­tives à la bi­blio­thèque de pro­grammes ?

Il existe de nom­breuses al­ter­na­tives à SQLite. Outre la solution NoSQL orientée documents MongoDB et le re­la­tion­nel Post­greSQL, MySQL notamment constitue une al­ter­na­tive très répandue, en partie pro­prié­taire et en partie open source. Cette option est également très con­vi­viale. Pour savoir comment utiliser ce système de base de données, consultez le tutoriel MySQL du Digital Guide.

Conseil

Une flexi­bi­lité maximale à petit prix : avec MongoDB de IONOS, vous bé­né­fi­ciez d’une évo­lu­ti­vité ho­ri­zon­tale, d’une com­pa­ti­bi­lité totale et d’une as­sis­tance de la part de nos experts. Choi­sis­sez parmi les dif­fé­rents packs le modèle qui cor­res­pond le mieux à vos besoins.

Aller au menu principal