L’antisèche c’est une série d’articles qui synthétise des grandes thématiques produit pour vous éviter d’être à sec en entretiens, réunions, soirées mondaines et rendez-vous galants !
Après avoir abordé dans l’article #2 le sujet des API, on s’attaque aujourd’hui à la notion de base de données.
Qu’est ce que c’est une base de données ?
Une base de données (abrégée en BDD, database en anglais) est un ensemble d’informations stockées électroniquement : des mots, des chiffres, des images, des vidéos, des fichiers… Une base de données peut est requêtée par des utilisateurs qui peuvent interagir avec ces données de 4 manières, on parle de “CRUD” :
- C : Create (Saisir des donnée)
- R : Read (Consulter des données)
- U : Update (Mettre à jour des données)
- D : Delete (Supprimer des données)
La forêt des bases de données est dense. Les 2 principaux types de bases de données sont :
- Les bases de données relationnelles ou SQL sont les plus connues et les plus répandues. Elles s’appuient sur l’algèbre relationnelle qui a été inventée en 1970 par Edgar Frank Codd, à l’époque directeur de recherche du centre IBM. Le modèle de données utilisé est structuré et rigide avec des tables (composées de lignes et colonnes) liées entre elles par des relations prédéfinies. Le langage SQL (Structured Query Language) est utilisé pour les requêtes.
- Les bases de données non relationnelles ou NoSQL sont de plus en plus utilisées. Elles sont adaptées aux grandes quantités de données non / peu structurées, comme on peut trouver dans le big data. Le modèle de données utilisé est flexible et évolutif et ne comporte, à la différence des bases de données relationnelles, ni de tables, ni de relations.
Toute base de données est accompagnée d’un système de gestion de base de données (abrégé en SGBD, database management system / DBMS en anglais). Celui-ci permet de :
- Créer des bases de données
- Exécuter les requêtes des applications et des utilisateurs des bases de données
- Maintenir la structure des bases de données
- Assurer la sécurité et l’intégrité des données
- Assurer la sauvegarde et la récupération des données en cas de problème
Voici quelques exemples de systèmes de gestion pour les BDD relationnelles :
Et quelques exemples pour les BDD non relationnelles :
En quoi est-ce utile ?
Les bases de données apportent des bénéfices notamment en termes de :
- Organisation et gestion :
- Permet de structurer et de gérer de grandes quantités de données
- Peut être accédée par plusieurs utilisateurs simultanément
- Centralise des collections de données disparates
- Sécurité et conformité :
- Contrôle les accès aux données, notamment les plus sensibles
- Permet de régulièrement sauvegarder les données
- Permet de respecter la réglementation, notamment la RGPD
- Fiabilité et cohérence :
- Dispose de règles et de contraintes pour avoir des données correctes
- Scalabilité :
- Permet de gérer une plage importante d’utilisateurs et de données
Comment procéder ?
En tant que PM, vous pouvez avoir affaire aux bases de données dans plusieurs situations. Voici les 2 les plus probables :
- Situation 1 : La base de données est créée et vous avez envie d’en savoir plus sur ces données. Vous avez sûrement affaire à des BDD relationnelles : la plupart du temps un outil de data visualisation (voir L’antisèche #1) sera suffisant pour extraire des insights macros de ces bases de données. Si néanmoins, vous avez besoin de plus de détails, le langage SQL est votre ami pour requêter ces BDD. Pour vous aider à écrire les requêtes SQL, vous pouvez jeter un coup d’œil au site : SQL Tutorial (w3schools.com).
- Situation 2 : La base de données n’est pas encore créée et vous avez des décisions à prendre avec vos collègues (architectes, administrateurs de BDD, développeurs…) en termes d’outil et de design de base de données. Gardez en tête que le choix de l’outil et du design de base de données n’est pas une décision qui doit se prendre de manière précipitée : contrairement au code pouvant être refacto facilement, il n’est pas commode de revenir sur ce choix. En tant que PM, vous aurez certainement des questions autour des inputs (ex: volumétrie et types de données) et des outputs de cette BDD (ex: volumétrie d’utilisateurs et fréquence d’utilisation), en bref sur le besoin fonctionnel.
Quelques exemples
Vous avez besoin d’inspiration pour mettre le pied à l’étrier ?
Voici 2 exemples de cas d’usage de bases de données :
- Les systèmes de réservation des compagnies aériennes – Il s’agit d’un des premiers cas d’usage de BDD. Beaucoup de données sont utiles pour les clients et pour les compagnies aériennes avec notamment :
- Des données sur les vols : horaires des vols, disponibilités des sièges, informations sur les billets…
- Des données sur les clients : historiques de réservations des clients, préférences des clients, programmes de fidélité des clients…
- Les systèmes de recommandation de contenu audiovisuels – Pour proposer aux particuliers des contenus audiovisuels personnalisés (podcasts, films, séries, musiques…), beaucoup de données sont utiles, parmi lesquelles :
- Des données sur les contenus : titre, description, genre, date de sortie
- Des données sur les clients : playlists, historiques, préférences
Une mise en situation
Rien ne vaut la pratique pour monter en compétence sur le sujet : sur le site Top 100 SQL Problems – Naukri Code 360 vous pouvez trouver 100 problèmes ludiques issus d’entretiens réels à résoudre avec SQL. L’interface est particulièrement agréable : elle permet de tester des requêtes de manière itérative autant de fois que vous voulez (bouton “RUN”) avant de poser le crayon et de soumettre votre requête finale (bouton “SUBMIT”). Gardez en tête que :
- Il y a plusieurs niveaux de difficulté.
- Il n’y a pas une unique requête solution pour chaque problème.
- Il y a un temps de résolution moyen affiché, mais pas de limite de temps.
- Il est préférable de vérifier et de tester plusieurs fois la requête avant de la soumettre, bien qu’il n’y ait pas de limite de nombre de soumissions.
Je vous conseille par exemple ces 2 problèmes autour d’une BDD IMDB de films :
- Un premier pour s’échauffer : IMDb Rating (MCQ Problem) – Naukri Code 360
- Un deuxième plus corsé : https://www.naukri.com/code360/problems/imdb_1755912
C’est plutôt satisfaisant de réussir ces problèmes par soi-même. Ne vous découragez pas et évitez de regarder la solution avant d’avoir trouvé !
Pour aller plus loin avec les bases de données
L’océan des possibles des bases de données est immense avec l’essor des produits orientés data. Les bases de données sont incontournables dans les métiers du produit et particulièrement pour les data product managers. Nous espérons que cette antisèche vous donne envie d’explorer davantage.
Voici quelques pistes pour aller plus loin :
- Database Lesson #1 of 8 – Introduction to Databases (Video, En)
- 7 Database Paradigms (Video, En)
- How to choose the right database (Video, En)
- Qu’est-ce qu’une base de données ? Définition et fonctionnement (Article, Fr)
- Base de données : qu’est-ce que c’est, et comment ça fonctionne ? (Article, Fr)
- Base de données : qu’est-ce que c’est ? Définition et présentation (Article, Fr)
- Concevoir une structure de base de données (Article, Fr)
- The Ultimate Guide to Database Design for Product Managers (Article, En)
- Basic SQL Skills for Product Managers (Article, En)
- SQL Skills for Product Managers – Department of Product (Article, En)
A vous de jouer !
Cet article vous a plu ? Allez vite découvrir les deux antisèches précédentes : C’est quoi une API ? et C’est quoi la dataviz ?