Propriété de Albiri Sigue
customer 27921 at Fri Mar 11 19:19:45 +0100 2011
218 L’art du développement Android
environnements qu’Android, nous vous conseillons l’ouvrage de Mike Owens, The Definitive Guide to SQLite 1 (Apress, 2006).
Les activités accédant généralement à une base de données via un fournisseur de contenu
(content provider) ou un service, ce chapitre ne contient pas d’exemple complet : vous
trouverez un exemple de fournisseur de contenu faisant appel à une base de données au
Chapitre 28.
Présentation rapide de SQLite
SQLite, comme son nom l’indique, utilise un dialecte de SQL pour effectuer des requêtes
(SELECT), des manipulations de données (INSERT, etc.) et des définitions de données
(CREATE TABLE, etc.). À certains moments, il s’écarte du standard SQL-92, comme la
plupart des autres SGBDR, d’ailleurs. La bonne nouvelle est que SQLite est si efficace en
terme de mémoire que le moteur d’exécution d’Android peut l’inclure dans son intégralité : vous n’êtes donc pas obligé de vous contenter d’un sous-ensemble de ses fonctionnalités pour gagner de la place.
La plus grosse différence avec les autres SGBDR concerne principalement le typage des
données. Tant que vous pouvez préciser les types des colonnes dans une instruction
CREATE TABLE et tant que SQLite les utilise comme indication, tout va pour le mieux.
Vous pouvez mettre les données que vous voulez dans les colonnes que vous souhaitez. Vous
voulez placer une chaîne dans une colonne INTEGER ? Pas de problème ! Et vice versa ?
Cela marche aussi ! C’est ce que SQLite appelle "typage manifeste" ; il est décrit de la
façon suivante dans sa documentation 2 :
Avec le typage manifeste, le type d’une donnée est une propriété de la valeur elle-même,
pas de la colonne dans laquelle la valeur est stockée. SQLite permet donc de stocker une
valeur de n’importe quel type dans n’importe quelle colonne, quel que soit le type déclaré
de cette colonne.
Certaines fonctionnalités standard de SQL ne sont pas reconnues par SQLite, notamment
les contraintes FOREIGN KEY, les transactions imbriquées, RIGHT OUTER JOIN,
FULL OUTER JOIN et certaines variantes de ALTER TABLE.
Ces remarques mises à part, vous disposez d’un SGBDR complet, avec des triggers, des
transactions, etc. Les instructions SQL de base, comme SELECT, fonctionnent exactement
comme vous êtes en droit de l’attendre. Si vous êtes habitué à travailler avec un gros SGBDR
comme Oracle, vous pourriez considérer que SQLite est un "jouet", mais n’oubliez pas
que ces deux systèmes ont été conçus pour résoudre des problèmes différents et que vous
n’êtes pas près de voir une installation complète d’Oracle sur un téléphone.
1. http://www.amazon.com/Definitive-Guide-SQLite/dp/1590596730.
2. http://www.sqlite.org/different.html.
Livre Android.book Page 218 Dimanche, 8. novembre 2009 12:23 12
Précédent

- 233/391

Suivant