Conception de base de données


Introduction

La majorité de nos données, qu'elles appartiennent à une entreprise ou bien à nous-même, sont sauvegardées numériquement. Ces données sont stockées dans ce qu'on appelle des bases de données, des sortes de conteneurs omniprésents et organisés de manière structurelle selon les besoins. Au-delà de stocker des données, les bases de données peuvent permettre de modifier, supprimer et partager des informations à plusieurs acteurs.

Contexte professionnel

De nos jours, dans un contexte professionnel, il est rare de voir une application métier qui ne possède pas de base de données et encore moins d'entreprises ne stockant pas les leurs en cloud ou localement en intranet dans un de ces conteneurs.

Nous trouvons deux grands types de base de données. Les bases de données dites :

Il conviendra de choisir l'un de ces deux types selon le besoin spécifié et de savoir respecter les normes pour pouvoir proposer une base de données adaptée.

La conception de bases de données permet par ailleurs d'améliorer la sécurité, la flexibilité et l'efficacité des données des systèmes d'informations.

Experience

J'ai pu concevoir une variété de base de données à travers mes différentes réalisations. Notamment un projet sur lequel j'ai travaillé (Lien El Armana).

Un doctorant avait pour projet l'analyse de réseaux. Il a conçu une base de données dans le cadre de sa thèse pour pouvoir par la suite l'exploiter. Dans son projet, il avait besoin d'une interface pour alimenter rapidement sa base, application que j'ai fournie. Durant le développement de cette interface et de l'API, je me suis rendu compte qu'une partie de sa structure sur les contraintes de clés étrangères – ce qui permet de lier les tables entre elles - n'était pas adaptée. Cette problématique rendait la tâche compliquée pour gérer les données et plus précisément les supprimer à travers l'interface. En effet, au lieu de laisser le moteur SQL s'en charger, il aurait fallu supprimer la donnée et ses occurrences dans toutes les différentes tables et dans le bon ordre. La tâche devenait alors fastidieuse.

J'ai dû refaire une partie de la structure relationnelle en paramétrant correctement les contraintes de la base pour que le moteur SQL puisse gérer ces suppressions automatiquement.
Ceci m'a permis de gagner du temps sur le développement des requêtes API et de proposer au doctorant une base mieux structurée.

Je qualifierais mon niveau de maitrise comme confirmé. Néanmoins, ma marge de progression reste importante puisque certaines personnes font de la conception de bases de données leurs métiers. Je pense que dans la majorité de mes futurs projets informatiques, je peux appliquer mes connaissances pour résoudre des problématiques structurelles.

Autocritique et conseils

J'ai acquis et perfectionné cette compétence au travers de réalisations variées. Avec du recul, je conseillerais de commencer par apprendre la création de bases relationnelles. Elles ont l'avantage de s'appuyer sur des règles strictes et par conséquent nous force à ordonner notre pensée. Cela peut aussi aider à comprendre la programmation objet - ou POO -.

Je recommande notamment d'apprendre à rédiger des MCD – pour Modèle Conceptuel des Données- qui permet très simplement de conceptualiser une base de données sur papier avant même de la créer et la déployer, ceci apporte une meilleure vision de l'ensemble.

Je préfère de mon point de vue, utiliser pour mes projets, des bases de données dites relationnelles, même si celles-ci s'avèrent plus longues à concevoir, elles sont moins permissibles.

Future

Sachant que le stockage et l'accès aux données sont devenus un réel enjeu, je compte continuer à développer cette compétence qui me semble primordiale pour le développement d'application.

A terme, je souhaite m'améliorer dans ce domaine pour développer un profil un peu plus Data Scientist. Ceci me permettrait de mieux appréhender des bases de données avec des volumes d'informations plus importants et de travailler également à terme sur le développement d'applications d'analyses statistiques type « Big Data ».


Projets associés à cette compétence