Module
Retour aux formations
Tech pour PMJunior

Modéliser les données de son produit et les interroger en SQL

Lire et concevoir le modèle de données d’une fonctionnalité, puis répondre à ses propres questions produit en SQL, en lecture seule, avec un SQL rédigé par l’IA que l’on sait vérifier.

63 étapes~3 h 30 minNiveau : Junior · Quelques bases utiles : notions de contexte ou du domaine.

Lire et concevoir le modèle de données d'une fonctionnalité, puis répondre vous-même à vos questions produit en SQL, sans attendre l'équipe data. Vous apprenez à lire un schéma (tables, clés, cardinalités), à modéliser une fonctionnalité avec l'équipe, à choisir entre base relationnelle et base documents, à écrire des requêtes qui filtrent, agrègent et croisent les tables sans piège de NULL ni de jointure, puis à utiliser les fonctions de fenêtre pour les questions de classement et d'évolution. Vous travaillez sur un jeu de données fourni, dans votre navigateur, en lecture seule et sans exposer de données personnelles, avec une IA qui rédige du SQL que vous savez vérifier. Vous terminez avec le modèle de données de votre fonctionnalité et dix requêtes qui répondent à vos questions.

Ce que vous saurez faire

  • Lire un modèle de données (tables, clés primaires et étrangères, cardinalités, diagramme entité-relation) et le relier aux écrans et aux règles du produit.
  • Modéliser les données d'une fonctionnalité (entités, attributs, relations, clés, cardinalités) et faire valider ce modèle par l'équipe technique.
  • Comparer une base relationnelle et une base documents (NoSQL) pour un besoin produit et justifier le choix selon les requêtes, la cohérence et l'évolution attendues.
  • Écrire des requêtes qui filtrent, trient et agrègent (SELECT, WHERE, ORDER BY, GROUP BY, HAVING) en traitant correctement les valeurs NULL et les dates.
  • Combiner plusieurs tables avec des jointures INNER et LEFT, et vérifier que le résultat ne perd ni ne double aucune ligne.
  • Traduire une question produit en requête vérifiable, avec des CTE et des fonctions de fenêtre simples (ROW_NUMBER, LAG, SUM OVER).
  • Interroger les données en lecture seule en protégeant les données personnelles, et faire rédiger du SQL par une IA en vérifiant chaque requête avant d'en utiliser le résultat.

Prérequis

  • Savoir utiliser un tableur (filtres, tableaux croisés dynamiques) ; aucune connaissance en base de données ni en programmation n'est demandée
  • Outils : un navigateur récent suffit (SQLite dans le navigateur) ; sqlite3 en ligne de commande est une option pour travailler en local
  • Cours recommandé avant celui-ci : Expliquer comment fonctionne un produit web, du navigateur au serveur, pour situer la base de données dans l'architecture.
  • Ce cours ne fait pas de vous un administrateur de base de données : il vise la lecture d'un modèle, la conception avec l'équipe et des requêtes de lecture sur des données auxquelles on vous a donné accès.

Programme

Que vais-je savoir faire à la fin de ce cours, et dans quel ordre ?

  1. Objectif · À la fin de cette présentation, vous saurez ce que vous allez produire (le modèle de données d'une fonctionnalité et dix requêtes SQL sur votre produit), avec quel jeu de données vous allez vous entraîner et par quels cinq modules le cours vous y conduit.

Comment les écrans de mon produit se traduisent-ils en tables, et comment concevoir celles de ma prochaine fonctionnalité ?

  1. Objectif · À la fin de cette leçon, vous serez capable de lire le modèle de données d'un produit (tables, colonnes, types, clés primaires et étrangères, cardinalités) sur un diagramme entité-relation, et de relier chaque table et chaque lien à un écran ou à une règle du produit.

  2. Objectif · À la fin de cette leçon, vous serez capable de passer des user stories d'une fonctionnalité à un modèle de données (entités, attributs typés, relations, cardinalités, clés, cycle de vie) en six étapes, et de le présenter à l'équipe technique avec la liste des questions qu'il soulève.

  3. Objectif · À la fin de cette leçon, vous serez capable de comparer une base relationnelle et une base documents (NoSQL) sur quatre critères (forme des données, requêtes attendues, cohérence, évolution du schéma), de justifier un choix pour un besoin produit et de dire où se feront les analyses dans chaque cas.

Comment obtenir moi-même un chiffre fiable à partir d'une table, sans me faire piéger par les valeurs absentes et les dates ?

  1. Objectif · À la fin de cette leçon, vous serez capable de charger le jeu de données Atelio dans SQLite (dans le navigateur ou en local), d'explorer la structure des tables et d'écrire des requêtes SELECT qui choisissent des colonnes, filtrent avec WHERE, trient avec ORDER BY et limitent avec LIMIT.

  2. Objectif · À la fin de cette leçon, vous serez capable de résumer une table avec les fonctions d'agrégation (COUNT, SUM, AVG, MIN, MAX), de calculer ces résumés par groupe avec GROUP BY, de filtrer les groupes avec HAVING et de compter une partie des lignes avec CASE WHEN ou COUNT(DISTINCT).

  3. Objectif · À la fin de cette leçon, vous serez capable de traiter correctement les valeurs NULL (IS NULL, COUNT de colonne, COALESCE, moyenne sur valeurs connues), de regrouper et de filtrer par période avec les fonctions de date, et de vérifier la période couverte par une table avant de calculer un indicateur.

Comment combiner plusieurs tables sans perdre de lignes ni gonfler mes chiffres ?

  1. Objectif · À la fin de cette leçon, vous serez capable de combiner deux tables ou plus avec INNER JOIN et LEFT JOIN sur la bonne clé, d'utiliser des alias de table, et de trouver les lignes sans correspondance (anti-jointure) pour répondre à des questions comme « quels comptes n'ont jamais planifié d'intervention ? ».

  2. Objectif · À la fin de cette leçon, vous serez capable de reconnaître et de corriger les deux erreurs de jointure les plus coûteuses (la démultiplication des lignes qui gonfle les sommes, et le filtre placé dans WHERE qui annule un LEFT JOIN), en raisonnant sur le grain de chaque table et en contrôlant le nombre de lignes.

Comment passer d'une question floue (« nos clients sont-ils actifs ? ») à une requête dont je peux défendre le résultat ?

  1. Objectif · À la fin de cette leçon, vous serez capable de découper une requête en étapes nommées avec WITH (CTE) et d'utiliser trois fonctions de fenêtre (ROW_NUMBER pour garder la dernière ligne de chaque groupe, LAG pour calculer une évolution, SUM OVER pour un cumul ou une part du total).

  2. Objectif · À la fin de cette leçon, vous serez capable de transformer une question produit floue en définition de métrique précise (population, événement, période, exclusions, traitement des NULL), d'en déduire les tables et le grain, d'écrire la requête par étapes et de contrôler sa vraisemblance avant de partager le résultat.

Comment accéder aux vraies données sans risque pour la production ni pour la vie privée, et comment faire écrire du SQL par une IA sans me tromper ?

  1. Objectif · À la fin de cette leçon, vous serez capable de demander un accès aux données conforme au moindre privilège (base d'analyse, lecture seule, périmètre, colonnes exclues, durée), d'écrire des requêtes qui n'exposent que les données personnelles nécessaires et de savoir quoi faire d'un résultat qui en contient.

  2. Objectif · À la fin de cette leçon, vous serez capable de donner à une IA le contexte de schéma dont elle a besoin (tables, colonnes, valeurs, règles métier, dialecte), de lui faire rédiger et expliquer une requête, puis de la relire avec une checklist de dix points avant d'en utiliser le résultat.

  3. Objectif · À la fin de cette leçon, vous aurez produit sur votre propre produit le modèle de données d'une fonctionnalité et dix requêtes SQL commentées (définition, requête, contrôle), vous les aurez auto-évalués avec une grille, et vous repartirez avec un kit de sortie et un plan d'application à 7 et 30 jours.