Base de données

Ma définition

Une base de données permet de stocker, d’interroger et de manipuler des données pour les rendre accessibles et exploitables. Dans un contexte professionnel, cette compétence est primordiale pour structurer les informations de l’entreprise de manière logique, ce qui permet de garantir la cohérence et la sécurité des données qui, de nos jours, sont des mines d’or pour les entreprises.

Ces données jouent un rôle central dans de nombreux secteurs comme l’analyse des ventes, la gestion des stocks ou encore l’exploitation de données pour entraîner et utiliser l’intelligence artificielle. Par exemple, dans le domaine du e-commerce, les bases de données permettent de gérer efficacement les catalogues de produits, les commandes clients et les inventaires en temps réel. Les entreprises cherchent de plus en plus à exploiter leurs données pour gagner en compétitivité et innover.

L’arrivée du RGPD en Europe a mis en lumière l’importance de la gestion responsable des données personnelles, renforçant ainsi le besoin de professionnels ayant des compétences en bases de données.

1ère anecdote

Durant mon stage en entreprise, j’ai eu l’occasion de travailler sur un projet de gestion des bases de données. Airbus dispose d’une base de données appelée CMDB (Configuration Management DataBase), qui centralise les noms de domaine complets (FQDN) et les statuts des machines utilisées (utilisé ou retiré). Du côté d’Ansible d’Airbus, la plateforme possède une autre base de données contenant des informations similaires, mais un peu différentes car rentrées manuellement par les utilisateurs.

Le problème résidait dans le fait que ces deux bases de données n’étaient pas synchronisées. Concrètement, lorsqu’une machine était marquée comme “non utilisée” dans la CMDB, elle n’était pas automatiquement supprimée de la base de données d’Ansible. Cela entraînait des coûts inutiles, car des licences Ansible étaient toujours attribuées à des machines qui n’étaient plus en service.

Pour résoudre ce problème, après avoir récupéré les données des deux bases, j’ai dû analyser toutes les colonnes afin de récupérer celles qui m’intéressaient pour les intégrer dans une base de données SQLite dédiée, qui servait de support de comparaison. Combinée à un script Python, j’ai pu extraire la liste des machines à supprimer dans la base de données Ansible, automatisant ainsi une tâche auparavant réalisée manuellement.

Grâce à cette solution, j’ai non seulement permis de réduire considérablement le temps nécessaire à cette vérification, mais également fait économiser à Airbus des coûts non négligeables liés aux licences inutilisées. Ma réalisation a donc eu un impact direct en termes d’efficacité pour Infotel et de réduction des dépenses pour Airbus.

2ème anecdote

Lors de ma première année de scolarité, j’avais du mal à réaliser certains exercices de requêtes SQL. J’ai donc cherché un problème que j’avais dans ma vie personnelle qui pouvait être résolu en utilisant une base de données et qui pourrait me permettre de développer ma compétence en gestion de bases de données. Je cherchais à organiser une bibliothèque de films et séries car je ne me souvenais jamais de ce que j’avais vu ou non. J’ai décidé de mettre en pratique ce que j’apprenais en cours pour résoudre ce problème.

J’ai donc créé une base de données sur PHPMyAdmin pour mieux structurer les informations. J’y ai ajouté plusieurs tables, une pour les films, une pour les séries et une autre pour les épisodes. J’ai ainsi pu apprendre à écrire des requêtes SQL pour extraire rapidement les informations, comme les épisodes non vus ou les films d’un même réalisateur.

Grâce à cette base de données, j’ai pu gérer ma bibliothèque plus facilement tout en renforçant ma compétence. Cela m’a offert une expérience concrète en gestion de données et j’ai ainsi pu réutiliser ces compétences lors des projets scolaires suivants.

Mon autocritique

En évaluant ma compétence en bases de données, je considère avoir atteint un bon niveau de maîtrise, surtout sur MySQL et PostgreSQL. Je crée sans difficultés des bases de données, conçois des schémas et modèles relationnels, et effectue des requêtes assez complexes via SQL.

Ma marge de progression en gestion des bases de données se situe principalement dans l’optimisation des performances et l’adaptabilité à des systèmes de gestion non relationnels avec NoSQL. Je maîtrise bien les bases relationnelles et l’optimisation des requêtes SQL classiques, mais je dois encore approfondir mes connaissances pour gérer des bases de données à très large échelle, dans des environnements qui possèdent de fortes charges.

Dans mon rôle d’Expert en ingénierie, la gestion des bases de données contribue directement à la fiabilité et à l’efficacité des systèmes que je peux concevoir. C’est une compétence permettant de garantir la scalabilité et la pérennité des projets techniques, car une mauvaise structure de données peut rapidement conduire à des performances médiocres ainsi qu’à des failles de sécurité.

Contrairement à certaines compétences, ma vitesse d’acquisition pour la compétence de base de données n’a pas été aussi rapide, il m’a fallu du temps pour acquérir la logique des bases de données relationnelles. Avec le recul, je réalise à quel point la modélisation des données est cruciale pour éviter les erreurs dès le départ et assurer une bonne cohérence des systèmes d’information.

Je conseille à toute personne souhaitant développer cette compétence de pratiquer directement à partir d’un projet avec des données personnelles de tous les jours, ça peut être la création d’une base de données concernant son véhicule afin de gérer toutes les informations la concernant comme les derniers contrôles techniques et réparations ou encore le kilométrage mensuel par exemple. Créer une base de données avec des informations qui sont familières m’a personnellement permis de mieux comprendre ce que je faisais.

Mon évolution dans cette compétence

À moyen terme, je souhaite approfondir mes connaissances des bases de données NoSQL afin d’obtenir un niveau confirmé. Mon objectif est de devenir pleinement compétent dans l’administration et la maintenance de systèmes complexes en entreprise.

Pour réaliser cet objectif je prévois de suivre des formations avancées sur MongoDB liées à l’outil Elasticsearch pour développer mes compétences en traitement de grandes quantités de données. Je vais dans un premier temps suivre la formation d’Orsys « Bases de données NoSQL, enjeux et solutions » puis m’autoformer sur MongoDB et Elasticsearch.

Réalisations en lien