,

Base de données dans AIR - 1ère partie : introduction

Tout comme pour les CSS 3 dans AIR, j'inaugure aujourd'hui une nouvelle rubrique qui concerne le support natif des bases de données dans Adobe AIR. Cette rubrique se déclinera sur une série d'articles qui auront pour but de vous familiariser avec le support de la base de données dans AIR.

Nous n'avons pas depuis une application AIR la possibilité d'écrire en langage serveur tel que PHP (voir chez Wikipedia pour les anglophobes : http://fr.wikipedia.org/wiki/Php) qui nous permettrait d'accéder à une base de données telle que MySQL et donc de stocker tout un tas d'informations propres à notre application.

Malgré cette restriction de langage dit "serveur", Adobe a tout de même inclus une base de données directement dans AIR ainsi que tous les outils nous permettant d'interagir avec celle-ci : SQLite. Les mauvaises langues diront que c'est quelque chose de complètement naturel étant donné que Adobe fait partie du Consortium SQLite.

Au delà de ces considérations purement politiques et qui ne sont pas mon propos dans ce billet, le choix de SQLite parait vraiment pertinent, tant le compromis poids/performance que nous offre cette base de données est intéressant.

L'intégration d'une base de données dans AIR vient compléter cet ensemble déjà bien fourni. Elle va nous permettre de stocker des informations hors ligne, telles que les préférences, et de gérer ces informations facilement.

SQLite : base de données pratique, légère et performante

sqlite.pngContrairement à d'autres bases de données telles que MySQL, SQLite ne se compose que d'un seul et unique fichier. Toute la base de données avec toutes ses tables sont inclues dans ce fichier.
SQLite ne nécessite aucune configuration, ni aucun serveur pour fonctionner et est, tout comme Webkit, complètement Open Source.

SQLite est une base de données et en cela elle est capable des mêmes choses que ses grandes soeurs : création/suppression de tables, insertion/requête/suppression de données dans les tables, etc.

En plus de la création standard d'une base de données "physique" (j'entends par là la création d'un fichier sur le disque dur), AIR nous donne aussi la possibilité de créer des bases de données in memory. Il s'agit de bases de données temporaires qui disparaîtront avec la fermeture de l'application.

Enfin, AIR nous permet également de créer des bases de données encryptées et protégées par mot de passe.

Outils mis à disposition

L'API de AIR a été conçue de telle façon que nativement elle supporte cette base de données. L'API fournie contient un certain nombre de classes et de méthodes Javascript permettant d'interagir directement avec SQLite : créer/supprimer une base, se connecter à une base, créer/supprimer des tables, insérer/requêter/supprimer des données, etc.

Nous verrons dans un prochain article de cette rubrique qu'il existe deux façons d'interagir avec la base de données :

  • de façon synchrone, ce qui met temporairement l'application en pause le temps que la requête se termine ;
  • de façon asynchrone, qui exécute la requête en tâche de fond.

La plupart des opérations standard avec la base de données sont disponibles dans ces deux modes.

Bien évidemment, toutes les requêtes à la base se font en langage SQL. Les personnes déjà habituées n'auront rien à réapprendre, si ce n'est le fait de faire des requêtes SQL à partir de Javascript.

Petit manque cependant dans les outils fournis : pouvoir visualiser notre base de données pendant le développement. Il est toujours plus simple et plus rapide de vérifier visuellement le contenu de notre base de données lors de la création de tables ou de l'affectation d'un type de données.
Pour parer à ce manque, j'ai trouvé plusieurs outils intéressants et plus ou moins complets :

  • une petite application AIR, très simple d'utilisation, assez basique mais qui convient plutôt bien : SQLite Admin ;
  • une extension Firefox (quelle drôle d'idée) plutôt bien faite : SQLite Manager (fonctionne avec les toutes dernières versions de firefox);
  • SQLite Browser qui est multiplateforme ;
  • SQLSpy, Windows uniquement et que je trouve plutôt brouillon au niveau de l'interface.


Cette introduction se termine. Vous pourrez retrouver les liens de cet article dans la partie liens utiles comme d'habitude.
Le prochain article de cette rubrique traitera en profondeur de la création et de la connexion à une base de données depuis AIR.

Bon vent !

2 personnes ont commenté cet article. Et vous ?

Je ne savais pas que l'on pouvais directement manipulé une base de donnée avec AIR. Mais est-ce que cela annonce une arrivée de cette fonctionnalité sous flash ou flex?

Cette fonctionnalité est également disponible dans AIR avec Flex et très probablement avec Flash (dans AIR toujours) étant donné qu'elle fait appel à ActionScript. Concernant son entrée dans Flash ou Flex, je n'ai pas d'éléments là dessus mais le fait est que cela fait appel à des classes ActionScript, donc que cela existe. Par contre, je ne sais pas si le navigateur permet l'exécution de telles fonctionnalités (notamment en termes de sécurité).