
Bases de données
Présentation
Une base de données est un ensemble organisé de données qui sont stockées de manière à ce qu’elles puissent être facilement consultées, gérées et mises à jour. L’informatique a été créée pour faciliter le traitement de l’information. Ainsi, il est important de pouvoir efficacement stocker des données pour opérer dessus.
Les mots “base de données” peuvent sembler compliqués mais sont en fait très simples. Techniquement, tout ce qui peut comporter des informations est une base de données. Par exemple, un tableur qui liste des employés avec leur nom et leur numéro de téléphone est une base de données.
Avec les nouvelles technologies qui sortent régulièrement, il est difficile de choisir correctement son système de gestion de bases de données. Je recommande l’article How to choose the right database for your application publié sur geeksforgeeks qui explique bien quelles sont les contraintes auxquelles on doit faire face dans la gestion d’un volume important de données.
Mon expérience
J’ai premièrement utilisé des bases de données pour un projet étudiant nommé MyAdminQL. Ce projet avait pour but la refonte du site web d’Aberia, un blog informatif et site vitrine de l’entreprise. Nous avons utilisé, par contrainte de l’école, une WAMP stack (Windows, Apache, MySQL, PHP). J’ai donc pris le temps d’optimiser notre modèle de données en utilisant les règles de Merise. Ensuite, j’ai optimisé les requête en créant des index sur de multiples colonnes et en ajoutant des vues pour accélérer nos requêtes de lecture d’informations. C’est grâce à cette optimisation constante et à ma persévérance dans l’amélioration de notre gestion de données que nous avons pu développer une application performante.
Depuis, je n’ai cessé d’utiliser les bases de données dans mes projets étudiants et professionnels, et ainsi de m’améliorer dans cette compétence.
Récemment, j’ai développé un formulaire agent téléphonique, c’est à dire un formulaire qui apparaît après un appel pour rentrer des informations : raison de l’appel, qualité de celui-ci, type d’appelant, etc. C’est grâce à mes solides connaissances que nous avons instauré une architecture de données stable et efficace. Une première base MongoDB permet de stocker les questions et réponses sous format JSON, ce qui est important car le formulaire peut posséder un schéma non fixe. La requête étant lente par nature, j’ai aussi mis en place une base de données Redis utilisée comme cache pour accélérer l’application et réduire les latences.
Enfin, pour simplifier l’utilisation des réponses au formulaire dans un but de création de statistiques, j’ai utilisé des outils tels que Apache Spark pour transformer les données sous un format de tables et colonnes relationnelles dans une instance de MySQL. C’est cette multiplicité qui offre toute la flexibilité et la performance nécessaire à notre produit.
Autocritique
Je me considère à un bon niveau d’utilisation de bases de données. J’ai de l’expérience avec les bases SQL classiques, mais assez peu avec sa variante “orienté colonne” ou avec les bases de type graphe. Il me reste donc encore beaucoup à apprendre. Je dois pouvoir utiliser sereinement d’autres SGBD afin de m’y habituer, et faciliter la possible transition entre deux systèmes.
Étant donné que c’est le cœur même de l’informatique de savoir traiter des informations, il est primordial de pouvoir utiliser des bases de données dans notre domaine. Je n’ai pas besoin en tant que développeur d’avoir une connaissance exhaustive des différents SGBD, mais je dois impérativement être capable de choisir et utiliser le système qui semble le plus adéquat au besoin des différents projets qui me sont assignés.
Quatre ans après ma première expérience en MySQL, le monde des bases de données a changé : de nouveaux systèmes sont sortis, des systèmes existants ont vu des mises à jours importantes, d’anciens systèmes ont été dépréciés.
Il est nécessaire de pouvoir utiliser différents systèmes de bases de données, afin de gérer efficacement tout le cycle de vie de n’importe quel logiciel. J’aimerais donc encore acquérir des compétences dans ce domaine, et j’apprécierai suivre des formations comme celles proposées par RedisLabs.
Enfin, pour prendre du recul sur ma compétence, j’aurai aimé comprendre plus tôt l’importance du choix de SGBD. Je recommande pour cela la superbe vidéo de Fireship.io 7 Database Paradigms.