Un peu de noSQL pour MariaDB

Logo de MariaDB

MariaDB un fork de MySQL

Un message très heureux m’est parvenu de MariaDB, le fork très prometteur de MySQL. Avec un commit très récent dans leur repository, MariaDB se permet d’assouplir un peux le modèle relationnel classique. Avec l’introduction des colonnes dynamiques (traduction libre de « Dynamique Column ») la prochaine version (5.3) de MariaDB contiendra donc apparemment un zeste de noSQL!

Un but principal lors du développement était de rendre ces colonnes utilisables via une syntaxe SQL classique. De façon interne les colonnes dynamiques sont sauvegardées en tant que BLOB (Binary Large Object).

Pour illustrer un peux le fonctionnement de ce nouveau type, un petit exemple:

Select All Code:
1
2
3
4
INSERT INTO exemple (nom, classe, prix, attributs) VALUES
("HTC Desire Z", "telephone", 420, COLUMN_CREATE(1.5, "Gris")),
("Nokia E7", "telephone", 509, COLUMN_CREATE(32, "noir", 2, "Clavier")),
("Lenovo Thinkpad E420", "ordinateur", 1019, COLUMN_CREATE(1, "noir", 3, "Win7 Pro", "500Go"));

Comme vous pouvez donc le voir, le tout ressemble à une requête tout à fait classique, au détail de la colonne « attributs » près. Dans l’exemple chaque entrée possède donc des données classiques, plus un champ « attributs » qui contiens un nombre variable de données (N.B.: contrairement aux champs classiques, une entrée de tableau dynamique ne possède qu’un numéro d’adressage, mais apparemment les développeurs comptent encore changer ça).

Pour créer une entrée pour la colonne on utilise donc COLUMN_CREATE(), pour mettre à jours ou effacer une entrée il faut utiliser la fonction COLUMN_ADD() dans un appel UPDATE normal:

Select All Code:
1
2
UPDATE exemple SET attributs=COLUMN_ADD(attributs, 1, "jaune")
  WHERE COLUMN_GET(attributs, 1 AS CHAR(10)) = "noir";

L’exemple illustre aussi assez bien l’utilisation de COLUMN_GET() qui permet d’accéder à un attribut de la colonne. Il existe aussi COLUMN_LIST() qui retourne la liste des colonnes dynamiques présentes.

Si jamais vous souhaitez déjà essayer cette nouvelle fonctionnalité, jettez-vous sur votre compilateur et le repository de MariaDB; les binaires ne seront disponibles qu’avec la version 5.3 de MariaDB.



Partager cet article:

Laisser un commentaire