Base de données : quel choix ?

1024 683 Trax LRS

Quant on parle de bases de données aujourd’hui, on voit s’affronter 2 camps : d’une part les partisans des bases relationnelles classiques (MySQL, MariaDB, PostgreSQL, etc), d’autre part les promoteurs de la tendance dite « NoSQL » (MongoDB en tête). Sans rentrer dans les détails techniques, je vais essayer d’expliquer les 2 tendances et présenter le choix que j’ai retenu pour Trax LRS.

NoSQL

Si vous avez commencé à explorer xAPI, vous savez que les traces d’apprentissage sont exprimées grâce au format JSON. JSON est un format structuré, simple et compact, qui tend à remplacer XML. Sa popularité est grandissante, si bien que se pose la question du stockage de ces données.

Ça tombe bien puisque les bases de données dites « NoSQL » sont pour beaucoup spécialisées dans le stockage de « documents » JSON. Elles en optimisent l’indexation et permettent la création de requêtes basées sur les données JSON. Ajoutons à cela que ces bases de données sont aussi conçues pour être déployées à grande échelle, ce qui en fait des solutions adaptées au Big Data.

Que d’avantages me direz-vous ! Mais comme on n’a rien sans rien, ces bases sont aussi moins habiles pour traiter certains types de requêtes, dont la nature relationnelle est prédominante (la notion de jointure n’existe pas). Et puis on accepte aussi certains compromis en termes d’intégrité de données, domaine dans lequel les bases relationnelles restent supérieures (propriétés ACID).

Relationnel & Hybride

Du coté des bases relationnelles, on a l’avantage d’une très longue expérience puisque ce modèle domine l’informatique depuis les années 70, contrairement au NoSQL qui date du début des années 2010.

En revanche, on peut reprocher aux bases relationnelles une trop grande rigidité. En effet, les données doivent obéir à un schéma rigide destiné à les faire rentrer dans des tables liées entre elles. L’exercice peut s’avérer difficile quand on parle de données JSON, dont la structure peut être complexe et changeante. À première vue, le relationnel semble donc moins indiqué que le NoSQL pour stocker des données JSON.

Cependant, depuis quelques années, les éditeurs de bases relationnelles ont lancé la contre-offensive . En plus du modèle relationnel classique, ils intègrent désormais presque tous un format JSON. On peut ainsi parler de solutions hybrides. Cette approche est prometteuse puisqu’elle permet de réconcilier les avantages des deux modèles au sein d’une seule technologie.

Le choix Trax LRS

À ce jour, je serais bien incapable de faire des pronostics sur l’évolution des ces technologies durant les prochaines années. Il est également très dur de dire quel modèle est le plus adapté à un LRS. Dans la pratique, on retrouve les 2 approches au sein des solutions LRS du marché.

Dès lors, mon choix pour Trax LRS est d’offrir un maximum de flexibilité en supportant les 2 modèles, avec pas moins de 4 bases de données prises en charge :

  • MySQL 5.7+
  • MariaDB 10.2+
  • PostgreSQL 10+
  • MongoDB 3+
Sébastien Fraysse

xAPI, Trax LRS, Learning Analytics, Moodle, Laravel

Tous les articles de : Sébastien Fraysse

Déposer un commentaire

Votre adresse email ne sera pas publiée