Bases de données pour business analyste : collaborer avec les développeurs en autonomie
Bases de données pour business analyste : apprends SQL, modélisation et sécurité pour collaborer avec les développeurs. Formation gratuite en ligne.
Ce que tu vas apprendre
- Distinguer SGBD, base de données, tables, lignes et colonnes pour dialoguer avec les développeurs
- Lire un schéma ERD et rédiger un dictionnaire de données
- Écrire des requêtes SQL de lecture avec SELECT, WHERE, JOIN et GROUP BY
- Modifier des données en sécurité avec une checklist d'écriture et des transactions
- Normaliser un fichier plat et modéliser une base en DBML
- Rédiger une demande de changement comprise du premier coup par un développeur
- Définir des droits d'accès, une sauvegarde testée et un accès en lecture seule pour une IA
À propos de cette formation
Cette formation t'aide à comprendre une base de données et à parler le même langage que les développeurs. À partir d'un cas concret, la Boutique Wave/WhatsApp, tu liras un schéma, écriras des requêtes SQL, modéliseras les données, rédigeras des demandes de changement claires, puis tu aborderas les droits d'accès, la sauvegarde, la sécurité et l'accès d'une IA à la base.
Tu avances à ton rythme avec des leçons courtes que tu écoutes ou lis, des exercices pratiques, un quiz de validation par module, un projet final, un examen et une attestation. Un coach IA répond à tes questions tout au long du parcours.
Programme de la formation
4 modules · 29 leçons00Bienvenue
1 leçon
- Introduction : Bases de données pour business analysteCe que tu vas apprendre, et comment ton parcours va se dérouler.5 min
01Module 1 : Lire une base et parler le même langage que les développeurs
9 leçons
Comprendre la Boutique Wave/WhatsApp : tables, clés, relations, ERD et dictionnaire de données, puis écrire tes premières requêtes de lecture.
- Distinguer SGBD, base et SQL sur la Boutique Wave/WhatsAppTu sauras nommer précisément le SGBD, la base, les tables, lignes et colonnes d'une application pour parler juste avec les devs dès le jour 1.15 min
- Choisir clés primaires et clés étrangères pour clients, commandes et paiementsTu sauras justifier une PK et prédire l'effet d'une suppression grâce à l'intégrité référentielle, pour arbitrer avec les devs.15 min
- Classer les cardinalités 1-1, 1-n, n-n de la boutiqueTu sauras repérer quand une table de liaison est nécessaire (commandes ↔ produits), base de toute discussion de modèle avec l'équipe.15 min
- Lire un ERD de 6 tables et l'expliquer en 2 minutesTu sauras lire un ERD et le présenter à un collègue : c'est le langage commun entre métier et développeurs.15 min
- Rédiger le dictionnaire de données de 6 tablesTu produiras un dictionnaire colonne par colonne (type, obligatoire, exemple, règle de gestion), livrable BA de référence en fin de cadrage.20 min
- Écrire tes premières requêtes : SELECT, WHERE, ORDER BY, LIMITTu sauras répondre seul à des questions simples (ventes d'hier, paiements en échec) sans solliciter un développeur.15 min
- Agréger et joindre : totaux Mobile Money et clients avec paiements en échecTu sauras utiliser COUNT, SUM, GROUP BY et JOIN pour produire un reporting autonome, couvrant l'essentiel des demandes réelles.20 min
- Carnet de 10 requêtes : « Le bilan du samedi »Tu traduiras 5 questions d'un commerçant en requêtes, puis 5 autres, pour atteindre 80 % de résultats corrects en autonomie.25 min
- Checkpoint-boss du module 1 : lecture et interrogation d'une baseQuiz de validation sur vocabulaire, clés, cardinalités, ERD, dictionnaire et requêtes de lecture avant de passer à la modification.20 min
02Module 2 : Modifier sans casser, modéliser et spécifier pour les développeurs
9 leçons
Apprendre l'écriture sûre, les transactions, la modélisation DBML, la normalisation, la qualité des données et la rédaction de demandes de changement exploitables.
- Appliquer la règle « SELECT avant UPDATE/DELETE » avec INSERT, UPDATE, DELETETu sauras modifier des données de test sans risque grâce à une checklist d'écriture sûre, pour être fiable face aux développeurs.15 min
- Tester une transaction avec BEGIN, ROLLBACK et COMMITTu comprendras pourquoi « le paiement est passé mais la commande non » et sauras tester une modification avant de la valider.15 min
- Traduire 5 règles de gestion en contraintes NOT NULL, UNIQUE, CHECKTu sauras prescrire des règles que la base fait respecter (montant > 0, téléphone unique) et les formuler clairement aux développeurs.15 min
- Normaliser un fichier Excel de commandes WhatsApp (1NF à 3NF)Tu sauras transformer un fichier plat en modèle relationnel et argumenter ta proposition en citant les anomalies évitées.20 min
- Dessiner l'ERD de la boutique en DBML avec la table predictionsTu produiras un ERD de 6 tables ou plus, dont une table de prédictions IA, comme base de discussion avec les développeurs.25 min
- Détecter les anomalies de qualité : doublons, nuls, montants négatifsTu sauras détecter 5 anomalies par requêtes et produire un rapport qualité d'une page à remettre à l'équipe.15 min
- Rédiger une demande de changement comprise du premier coup par le développeurTu sauras écrire un ticket data-ready (contexte, règle de gestion, contrainte, exemple) pour collaborer sans aller-retour inutile.20 min
- Simuler un développeur qui challenge tes 3 demandes de changementTu t'entraînes face à un développeur simulé par l'IA qui pose 3 questions révélant ce qui manque, pour livrer des tickets sans blocage.25 min
- Checkpoint-boss du module 2 : écriture sûre, modélisation et ticketsQuiz de validation sur transactions, contraintes, normalisation, qualité des données et demande de changement.20 min
03Module 3 : Administrer, sécuriser et ouvrir la base à l'IA, puis former
10 leçons
Rôles et droits, sauvegarde pg_dump, index, sécurité (injection SQL, données personnelles), accès lecture seule pour l'IA et transmission à d'autres personnes, jusqu'au projet final.
- Comprendre un index et proposer une recommandation à valider avec le devTu sauras expliquer pourquoi une requête est lente et proposer un index, sans bloquer les développeurs.15 min
- Créer des rôles et écrire une matrice de droits avec GRANT et REVOKETu sauras définir qui peut lire ou modifier quoi, cœur du métier de gestionnaire de base de données.20 min
- Sauvegarder et restaurer avec pg_dump et prouver la restaurationTu sauras écrire une procédure de sauvegarde testée, indispensable car l'offre gratuite d'un Postgres hébergé n'inclut pas de sauvegarde automatique.25 min
- Repérer l'injection SQL et rédiger l'exigence pour le développeurTu sauras distinguer une requête concaténée d'une requête paramétrée et poser l'exigence de sécurité côté BA.15 min
- Protéger les données personnelles : minimisation et registre minimalTu sauras auditer un schéma pour repérer les données sensibles et appliquer « données minimales + droits d'accès » dans un contexte africain francophone.15 min
- Concevoir le stockage des prédictions d'une IA et un rôle lecture_iaTu sauras structurer une table de prédictions traçable et donner à une IA un accès lecture seule sur une vue masquée.20 min
- Situer les vecteurs et pgvector dans une base PostgreSQLTu sauras dire quand une colonne vectorielle est pertinente et en parler avec les développeurs travaillant sur l'IA.15 min
- Créer un kit de formation d'une page pour former quelqu'un en 15 minutesTu sauras transmettre un concept de base de données avec une fiche, un exercice et 3 questions, pour former d'autres personnes.25 min
- Checkpoint-boss du module 3 : droits, sauvegarde, sécurité et IAQuiz de validation sur rôles, pg_dump, injection SQL, données personnelles et accès sécurisé de l'IA.20 min
- Projet final : le Dossier BDD de la Boutique Wave/WhatsAppTu assembles ton Dossier BDD complet : ERD, dictionnaire, requêtes, demandes de changement, droits, sauvegarde, politique d'accès IA et kit de formation, preuve de ton autonomie auprès des développeurs.1h 30min
Aperçu gratuit · Module 1 : Lire une base et parler le même langage que les développeurs
Le premier module est en accès libre. Commence le parcours pour débloquer la suite.
Distinguer SGBD, base et SQL sur la Boutique Wave/WhatsApp
Dans cette leçon de 15 minutes, tu apprends à nommer avec précision le SGBD, la base, les tables, les lignes et les colonnes de la Boutique…
Objectifs pratiques
Dans cette leçon de 15 minutes, tu apprends à nommer avec précision le SGBD, la base, les tables, les lignes et les colonnes de la Boutique Wave/WhatsApp. Tu apprends aussi à dire à quoi sert SQL. C'est la première brique pour parler aux développeurs sans termes flous et sans les ralentir. À la fin, tu auras une fiche de vocabulaire d'une page pour ton Dossier BDD.
Pourquoi c'est utile pour votre objectif
Un business analyste qui dit « la base est lente » ou « il manque une colonne dans la table des commandes » est compris tout de suite. Celui qui dit « le fichier » ou « le système » oblige le développeur à poser des questions. Ce vocabulaire est aussi la base du métier de gestionnaire de base de données. Il te servira pour les solutions où une IA lit des données ou y écrit ses prédictions. Il te servira enfin pour former d'autres personnes.
Les trois termes à ne plus confondre
- SGBD (système de gestion de base de données) : le logiciel qui stocke, protège et sert les données. Exemple : PostgreSQL.
- Base de données : l'ensemble organisé des données d'une application, géré par le SGBD. Exemple : la base
boutique. - SQL : le langage standard pour interroger et modifier les données d'une base relationnelle.
Analogie : le SGBD est le bâtiment avec son gardien, la base est l'archive d'une entreprise, et SQL est la façon de demander un dossier au gardien.
Table, ligne, colonne
- Table : un sujet métier (
clients,produits,commandes,paiements,predictions_ia). - Colonne : un attribut, avec un type (
nom,telephone,montant). - Ligne (ou enregistrement) : une occurrence, par exemple un client précis.
Méthode pas à pas
- Ouvre la capture d'écran de la boutique et repère le logiciel : c'est le SGBD (PostgreSQL dans notre fil rouge).
- Repère le nom de la base à laquelle on est connecté (
boutique). - Choisis une table et donne son sujet métier en une phrase.
- Entoure une colonne et note son nom et son type probable (texte, nombre, date).
- Entoure une ligne complète et traduis-la en phrase métier : « Le client X a commandé Y le jour Z ».
- Écris 3 requêtes possibles en français, par exemple : lister les commandes du jour, compter les clients, calculer le total des paiements Wave de la semaine.
- Rédige une définition en une phrase pour SGBD, base et SQL.
Exemple concret
Table commandes de la Boutique Wave/WhatsApp : colonnes id, client_id, date_commande, montant, statut. Une ligne : 1042 | 17 | 2025-03-02 | 15000 | payée. Le SGBD est PostgreSQL, la base est boutique, et la table est commandes. Requêtes possibles : lister les commandes impayées, additionner les montants du mois, compter les commandes par client. Le BA dit au développeur : « Dans la table commandes, j'ai besoin d'une colonne canal (WhatsApp ou boutique) ». Il est précis, et le développeur peut chiffrer la demande tout de suite.
Erreurs à éviter
- Dire « la base » pour désigner le logiciel (c'est le SGBD).
- Confondre SQL (le langage) et le SGBD (le logiciel).
- Dire « fichier » ou « onglet » comme dans Excel : une table n'est pas une feuille de calcul, car elle impose des types et des règles.
- Appeler « champ », « colonne » et « ligne » la même chose.
À faire maintenant
Rédige ta fiche de vocabulaire d'une page à partir de la capture de la boutique : 3 définitions en une phrase, 1 table, 1 ligne et 1 colonne identifiées, le SGBD et la base nommés, et 3 requêtes possibles. Pour aller plus loin, parcours le tutoriel PostgreSQL (lien ci-dessous).
Choisir clés primaires et clés étrangères pour clients, commandes et paiements
Dans cette leçon de 15 minutes, tu apprends à choisir une clé primaire (PK) et des clés étrangères (FK) pour les tables clients, commandes et…
Objectifs pratiques
Dans cette leçon de 15 minutes, tu apprends à choisir une clé primaire (PK) et des clés étrangères (FK) pour les tables clients, commandes et paiements de la Boutique Wave/WhatsApp. Tu apprends aussi à prédire ce qui se passe quand on supprime un client. C'est ce qui te permet d'arbitrer avec un développeur sans le freiner : tu arrives avec une proposition justifiée et non un besoin vague. Cela te rapproche de ton objectif de gérer la base d'une solution digitale, y compris celle où une IA lira ou écrira des données.
Pourquoi c'est utile pour votre objectif
Un gestionnaire de base de données doit garantir que les données restent cohérentes. Les PK et FK sont le mécanisme de base pour cela. Si une commande pointe vers un client qui n'existe plus, les rapports sont faux. Une table de prédictions IA qui référence un client ou une commande a le même risque. Savoir poser la bonne question (« que se passe-t-il à la suppression ? ») est un réflexe de BA et de futur DBA.
Méthode pas à pas
- Liste les tables et leur rôle :
clients,commandes,paiements. Une commande appartient à un client. Un paiement appartient à une commande. - Choisis la PK de chaque table. Une PK identifie une ligne de façon unique, jamais vide, et stable dans le temps. Pour
clients, propose un identifiant techniqueclient_id(entier auto-incrémenté ou UUID). - Teste le téléphone comme candidat. Il est unique en apparence, mais un client change de numéro, perd sa SIM, ou partage un numéro familial. Si le téléphone est la PK, il faudrait modifier toutes les commandes liées. On garde donc le téléphone comme colonne normale, avec une contrainte d'unicité si le métier le décide.
- Pose les FK.
commandes.client_idréférenceclients.client_id.paiements.commande_idréférencecommandes.commande_id. La FK interdit d'enregistrer une commande pour un client inexistant. - Décide du comportement à la suppression (ON DELETE) :
RESTRICT: la suppression du client est refusée tant qu'il a des commandes. C'est le choix sûr pour des données financières.CASCADE: supprimer le client supprime aussi ses commandes, et par effet en chaîne ses paiements. Pratique, mais dangereux : on perd l'historique comptable.
- Prédis le résultat avant d'exécuter quoi que ce soit, puis écris ta recommandation en 5 lignes pour le développeur.
Exemple concret
Table clients : (1, Awa, 770000001). Table commandes : (101, client_id 1, 15 000 FCFA) et (102, client_id 1, 8 000 FCFA). Table paiements : (900, commande_id 101, Wave).
On exécute la suppression du client 1.
- Avec
RESTRICT: la base refuse l'opération avec une erreur de violation de clé étrangère. Rien n'est perdu. - Avec
CASCADE: le client, les commandes 101 et 102 et le paiement 900 disparaissent. Le chiffre d'affaires historique baisse sans trace.
Proposition de BA : RESTRICT sur commandes et paiements, et une colonne statut (actif/archivé) ou date_suppression sur clients pour une désactivation logique.
Erreurs à éviter
- Utiliser le téléphone ou l'e-mail comme PK parce qu'ils « semblent uniques ».
- Oublier que
CASCADEse propage en chaîne sur plusieurs tables. - Confondre unicité (un téléphone ne doit pas être en double) et identité (la PK ne doit jamais changer).
- Décider seul de la règle de suppression : c'est un arbitrage métier, légal (données personnelles) et technique à valider avec le développeur.
À faire maintenant
Rédige 5 lignes d'arbitrage à envoyer au développeur : (1) la PK proposée pour clients et pourquoi ; (2) pourquoi le téléphone seul est risqué ; (3) les FK entre commandes, paiements et clients ; (4) ta règle ON DELETE avec justification ; (5) ta prédiction du résultat de la suppression d'un client ayant des commandes.
Classer les cardinalités 1-1, 1-n, n-n de la boutique
Pourquoi cet exercice t'aide\n\nQuand tu discutes d'un modèle de données avec les développeurs, la première question est toujours la même : « une commande, c'est combien de produits ? Un produit, dans combien de commandes ? » Savoir classer les cardinalités (1-1, 1-n, n-n) te permet de poser un besoin précis, de repérer seul quand une table de liaison est nécessaire et de ne pas bloquer l'équipe avec des allers-retours. C'est aussi la base du métier de gestionnaire de base de données et de la conception de tables que l'IA va lire ou dans lesquelles elle écrira ses prédictions.\n\nDurée estimée : 15 minutes.\n\n
Contexte : la Boutique Wave/WhatsApp\n\nUne boutique vend des produits à des clients qui commandent par WhatsApp et paient par Mobile Money. Les tables du fil rouge sont : client, produit, commande, paiement, prediction_ia (par exemple la probabilité qu'un client recommande dans les 30 jours), et profil_client (informations de fidélité, un seul profil par client).\n\n
Rappel de méthode\n\n1. Prends deux tables A et B.\n2. Demande : « Pour 1 ligne de A, combien de lignes de B au maximum ? » puis l'inverse.\n3. Si c'est 1 et 1 : relation 1-1. Si c'est 1 d'un côté et plusieurs de l'autre : 1-n, et la clé étrangère va du côté « n ». Si c'est plusieurs des deux côtés : n-n, qui impose une table de liaison contenant les deux clés étrangères.\n\nExemple résolu : un client passe plusieurs commandes, mais une commande appartient à un seul client. C'est une relation 1-n, et commande.client_id est la clé étrangère.\n\n
Étapes de l'exercice\n\n1. Classe ces 5 relations : client ↔ commande (exemple résolu, à recopier), commande ↔ produit, commande ↔ paiement (une commande est payée en un seul paiement Mobile Money), client ↔ profil_client, client ↔ prediction_ia (une prédiction par client et par date, plusieurs dans le temps).\n2. Pour chaque relation, écris la cardinalité, la clé étrangère et où elle se place, puis une phrase de justification.\n3. Pour la relation n-n, dessine la table de liaison ligne_commande avec : commande_id, produit_id, quantite, prix_unitaire. Explique pourquoi quantite ne peut pas être dans commande ni dans produit.\n4. Relis ton tableau comme si tu l'envoyais à un développeur : est-il compréhensible sans toi ?\n\n
Livrable attendu\n\nUn tableau (tableur ou document) avec les colonnes : Table A, Table B, Cardinalité, Clé étrangère et table porteuse, Justification en une phrase. Ajoute sous le tableau le schéma de la table de liaison.\n\n
Critères de réussite\n\n- Au moins 4 relations sur 5 correctement classées.\n- La relation n-n est identifiée et sa table de liaison est créée avec les deux clés étrangères.\n- Chaque classement est justifié en une phrase.\n\n
Erreurs à éviter\n\n- Placer la clé étrangère du côté « 1 » au lieu du côté « n ».\n- Mettre une liste de produits dans une seule cellule de commande au lieu d'une table de liaison.\n- Classer selon la situation d'aujourd'hui plutôt que selon la règle métier : valide la règle avec le métier en cas de doute (paiement fractionné possible ?).
Lire un ERD de 6 tables et l'expliquer en 2 minutes
À la fin de cette leçon (15 min), tu sauras lire un ERD de 6 tables, repérer les clés primaires (PK) et étrangères (FK), puis l'expliquer en 2…
Objectifs pratiques
À la fin de cette leçon (15 min), tu sauras lire un ERD de 6 tables, repérer les clés primaires (PK) et étrangères (FK), puis l'expliquer en 2 minutes à un développeur. C'est la première brique pour collaborer en autonomie sans ralentir l'équipe, et la base pour devenir gestionnaire de base de données.
Pourquoi c'est utile pour votre objectif
Un ERD (schéma entité-relation, appelé MCD côté conceptuel) est la référence commune entre métier et développeurs. Si tu sais le lire, tu poses des questions précises au lieu de besoins vagues. Tu peux aussi voir où l'IA lira ou écrira ses prédictions. Et tu pourras former d'autres personnes avec le même support.
Deux niveaux à distinguer :
- Modèle conceptuel : les entités métier et leurs liens, sans détails techniques.
- Modèle physique : les vraies tables, colonnes, types, PK et FK, telles que le développeur les crée.
Le fil rouge : la Boutique Wave/WhatsApp
Nous utilisons 6 tables (schéma pédagogique, à comparer avec l'ERD fourni dans ton module) :
- clients (PK : id_client) : nom, téléphone, ville.
- produits (PK : id_produit) : nom, prix, stock.
- commandes (PK : id_commande, FK : id_client) : date, statut.
- lignes_commande (PK : id_ligne, FK : id_commande, id_produit) : quantité, prix unitaire.
- paiements (PK : id_paiement, FK : id_commande) : montant, opérateur Mobile Money, date.
- predictions_ia (PK : id_prediction, FK : id_client) : valeur prédite, version du modèle, date.
Si ton ERD diffère, applique la même méthode à ses tables.
Méthode pas à pas
- Compte les rectangles : nomme les 6 tables à voix haute et dis ce que chacune représente dans le métier.
- Repère les PK : dans chaque table, entoure la colonne qui identifie une ligne de façon unique.
- Repère les FK : trouve les colonnes qui pointent vers la PK d'une autre table. Elles matérialisent les relations.
- Lis les relations : suis les traits. Un client a plusieurs commandes (1-n). Une commande a plusieurs lignes (1-n). Produits et commandes sont liés en n-n via lignes_commande.
- Raconte un parcours : suis le trajet d'une vente, du client au paiement, puis à la prédiction IA.
- Chronomètre 2 minutes : structure ton discours en 3 temps : vue d'ensemble (20 s), relations clés (60 s), points de vigilance ou questions (40 s).
Exemple concret
« La boutique a 6 tables. Au centre, commandes, reliée à clients par id_client. Chaque commande contient des lignes, qui pointent vers produits par id_produit. Les paiements sont rattachés à la commande. La table predictions_ia enregistre ce que le modèle prédit pour un client, avec la version du modèle. Ma question au dev : un paiement partiel est-il possible, c'est-à-dire plusieurs paiements pour une commande ? »
Erreurs à éviter
- Confondre PK et FK : la PK identifie sa propre ligne, la FK renvoie vers une autre table.
- Lire les tables sans les relations : un ERD sert d'abord à comprendre les liens.
- Employer du jargon que tu ne maîtrises pas : mieux vaut une phrase simple.
- Oublier la cardinalité (1-1, 1-n, n-n) : c'est elle qui déclenche les bonnes questions.
- Dépasser 2 minutes : prépare un plan court, pas un récit.
À faire maintenant
Imprime ou recopie l'ERD, annote-le (PK, FK, cardinalités) et prépare ton explication de 2 minutes. Chronomètre-toi, puis note les mots où tu as hésité. Livrable : une fiche « lecture d'ERD » annotée.
Rédiger le dictionnaire de données de 6 tables
Tu veux collaborer avec les développeurs sans les freiner, puis devenir gestionnaire de base de données. Le dictionnaire de données est le livrable…
Pourquoi cet exercice
Tu veux collaborer avec les développeurs sans les freiner, puis devenir gestionnaire de base de données. Le dictionnaire de données est le livrable BA de référence en fin de cadrage. Il remplace les besoins vagues par une référence précise que les développeurs peuvent implémenter directement. Il te sert aussi plus tard : une IA qui lit ou écrit dans la base a besoin de colonnes sans ambiguïté, et tu pourras former d'autres personnes avec ce document.
Durée estimée : 30 à 45 minutes, à répartir sur 2 ou 3 sessions de 15 minutes.
Contexte : la Boutique Wave/WhatsApp
Une petite boutique vend des produits via WhatsApp et encaisse par Mobile Money (Wave, par exemple). Elle veut suivre ses clients, ses commandes et ses paiements, et enregistrer les prédictions d'un modèle IA (par exemple le risque de rupture de stock). Voici les 6 tables à documenter :
- clients : id_client, nom, telephone, ville, date_creation
- produits : id_produit, libelle, prix_unitaire, stock, actif
- commandes : id_commande, id_client, date_commande, statut, canal
- lignes_commande : id_ligne, id_commande, id_produit, quantite, prix_applique
- paiements : id_paiement, id_commande, montant, operateur, reference_transaction, date_paiement
- predictions_ia : id_prediction, id_produit, valeur_predite, version_modele, date_prediction
Si une colonne te semble manquer, ajoute-la en justifiant ton choix.
Étapes à suivre
Étape 1 : préparer le tableau
Crée un tableur (ou un tableau Markdown) avec ces colonnes : table, colonne, type, obligatoire (oui/non), exemple, règle de gestion, sensible (oui/non). Ajoute aussi une colonne « clé » (PK, FK ou rien) pour repérer les relations.
Étape 2 : remplir chaque colonne
Pour chaque colonne, choisis un type simple (entier, texte, décimal, date, booléen). Donne un exemple réaliste (ex. telephone : +221 77 000 00 00). Écris une règle de gestion testable, par exemple « le montant est strictement supérieur à 0 » ou « le statut vaut parmi : en_attente, payée, livrée, annulée ».
Étape 3 : marquer les données sensibles
Marque comme sensibles les données personnelles : nom, téléphone, ville et, selon ton analyse, la référence de transaction. Ajoute une phrase de justification (identifie une personne, ou révèle un paiement).
Étape 4 : relire comme un développeur
Relis ton dictionnaire en te demandant : « Pourrais-je coder cette colonne sans poser de question ? ». Supprime toute ambiguïté (ex. « date » : de quoi ? format ?). Liste ensuite 3 questions ouvertes que tu poserais à l'équipe de développement.
Erreurs à éviter
- Écrire des règles vagues (« doit être correct »).
- Oublier les clés étrangères et leur règle (ex. chaque commande appartient à un client existant).
- Ne pas distinguer « obligatoire » et « unique ».
- Oublier de marquer les colonnes personnelles comme sensibles.
Livrables attendus
- Le dictionnaire de données complet des 6 tables (fichier tableur ou Markdown), à ranger dans ton Dossier BDD.
- La liste de 3 questions ouvertes pour les développeurs.
Critères de réussite
- Chaque colonne contient nom, type, obligatoire, exemple et règle.
- Les colonnes de données personnelles sont marquées sensibles.
- Aucune colonne n'est ambiguë ou sans règle.
- Les clés primaires et étrangères sont identifiées.
Écrire tes premières requêtes : SELECT, WHERE, ORDER BY, LIMIT
À la fin de cette leçon, tu sauras écrire 5 requêtes de lecture avec SELECT, WHERE, ORDER BY et LIMIT sur la base de la Boutique Wave/WhatsApp. Tu…
Objectifs pratiques
À la fin de cette leçon, tu sauras écrire 5 requêtes de lecture avec SELECT, WHERE, ORDER BY et LIMIT sur la base de la Boutique Wave/WhatsApp. Tu pourras répondre seul à des questions comme « quels paiements ont échoué ? » sans attendre un développeur. C'est la première brique pour collaborer en autonomie, sans freiner l'équipe, et pour devenir gestionnaire de base de données.
Pourquoi c'est utile pour votre objectif
Un business analyste qui sait lire les données vérifie lui-même ses hypothèses. Il arrive aux checkpoints avec des chiffres, pas des suppositions. Plus tard, tu utiliseras les mêmes requêtes pour contrôler ce que l'IA écrit dans une table de prédictions. Dans ce cas, tu seras en lecture seule : tu regardes, tu ne modifies rien. C'est la meilleure façon de débuter sans risque.
Méthode pas à pas
- Formule la question métier en français. Exemple : « Quels sont les 10 premiers clients par ordre alphabétique ? »
- Choisis la table. Ici :
clients. Relis ton dictionnaire de données pour repérer les colonnes (nom,telephone). - SELECT : choisis les colonnes. Évite
*quand tu n'as besoin que de deux colonnes. Le résultat est plus lisible et plus léger. - WHERE : filtre les lignes. Texte entre apostrophes (
'echec'), nombres sans apostrophes (5000). - Combine avec AND / OR. AND impose que toutes les conditions soient vraies. OR exige qu'une seule le soit. Utilise des parenthèses dès que tu mélanges les deux.
- ORDER BY : trie.
ASCpar défaut,DESCpour du plus grand au plus petit. - LIMIT : borne le résultat. Commence toujours par un petit LIMIT pour ne pas surcharger la base.
- Vérifie et commente. Relis le résultat, compare-le à ta question, puis note la question en commentaire SQL (
-- question).
Exemple concret
```sql -- Q1 : les 10 premiers clients par ordre alphabétique ? SELECT nom, telephone FROM clients ORDER BY nom LIMIT 10;
-- Q2 : quels paiements en échec dépassent 5000 ? SELECT * FROM paiements WHERE statut = 'echec' AND montant > 5000;
-- Q3 : les 5 plus gros paiements réussis ? SELECT id, montant FROM paiements WHERE statut = 'succes' ORDER BY montant DESC LIMIT 5; ```
Si la Q2 renvoie 12 lignes, tu peux dire au développeur : « 12 paiements de plus de 5000 ont échoué, voici leurs identifiants. » Ce message est précis et exploitable.
Erreurs à éviter
- Écrire
statut = echecsans apostrophes : la base cherche une colonne, pas un texte. - Utiliser
SELECT *sur une grosse table sans LIMIT. - Mélanger AND et OR sans parenthèses : le résultat peut être faux sans message d'erreur.
- Oublier le point-virgule final ou écrire une casse différente pour les valeurs (
'Echec'au lieu de'echec'). Vérifie les valeurs réelles dans le dictionnaire de données. - Ne pas relire le résultat : une requête qui s'exécute n'est pas forcément correcte.
À faire maintenant
Dans ton carnet, écris 5 requêtes commentées sur la Boutique : les deux requêtes de l'exemple (Q1 et Q2) plus trois à toi, par exemple les commandes les plus récentes, les produits les plus chers, les paiements d'un montant donné. Chaque requête porte en commentaire sa question métier. Vérifie que 4 requêtes sur 5 donnent un résultat correct, et que l'une utilise bien WHERE avec AND et ORDER BY.
Agréger et joindre : totaux Mobile Money et clients avec paiements en échec
Dans cette leçon, tu apprends à produire seul deux reportings sur la Boutique Wave/WhatsApp : le total des paiements par opérateur Mobile Money, puis…
Objectifs pratiques
Dans cette leçon, tu apprends à produire seul deux reportings sur la Boutique Wave/WhatsApp : le total des paiements par opérateur Mobile Money, puis la liste des clients avec leurs paiements en échec. Tu n'auras plus besoin de demander ces chiffres à un développeur. Tu pourras aussi lui envoyer des demandes précises, ce qui accélère le travail de l'équipe.
Pourquoi c'est utile pour votre objectif
Un business analyste autonome sait traduire une question métier en requête. Un futur gestionnaire de base de données doit en plus vérifier ce que la base contient avant de la modifier ou d'en donner l'accès. COUNT, SUM, GROUP BY et JOIN couvrent l'essentiel des demandes de reporting. Ce sont aussi les requêtes qu'un outil d'IA exécutera en lecture sur la base. Les maîtriser te permet de contrôler ses résultats.
Méthode pas à pas
- Formule la question métier en une phrase. Exemple : « Combien a-t-on encaissé par opérateur ? »
- Identifie les tables et les colonnes. Regarde ton ERD et ton dictionnaire de données. Hypothèse de travail :
paiements(id, client_id, operateur, montant, statut)etclients(id, nom, telephone). Adapte les noms à ton schéma. - Choisis l'agrégat. SUM additionne des montants. COUNT compte des lignes.
- Regroupe avec GROUP BY. Toute colonne du SELECT qui n'est pas agrégée doit figurer dans le GROUP BY.
- Filtre avant de regrouper avec WHERE. Utilise HAVING pour filtrer après l'agrégation.
- Joins avec la bonne clé. On relie
paiements.client_idàclients.id, c'est-à-dire clé étrangère et clé primaire. - Relis le résultat. Vérifie qu'il est plausible : le total doit être cohérent avec le nombre de lignes, et les lignes ne doivent pas être dupliquées.
- Commente la requête. Ajoute une phrase qui dit ce que la requête renvoie.
Exemple concret
```sql -- Requête 1 : total encaissé et nombre de paiements réussis par opérateur Mobile Money SELECT operateur, COUNT(*) AS nb_paiements, SUM(montant) AS total_fcfa FROM paiements WHERE statut = 'reussi' GROUP BY operateur ORDER BY total_fcfa DESC;
-- Requête 2 : clients ayant au moins un paiement en échec SELECT c.nom, c.telephone, p.operateur, p.montant FROM clients c JOIN paiements p ON p.client_id = c.id WHERE p.statut = 'echec'; ```
La requête 1 renvoie une ligne par opérateur, avec le nombre de paiements réussis et leur total. La requête 2 renvoie une ligne par paiement en échec, avec le client concerné. Un client qui a eu deux échecs apparaît deux fois. Pour n'avoir qu'une ligne par client, utilise SELECT DISTINCT ou GROUP BY c.id.
Erreurs à éviter
- Oublier une colonne non agrégée dans le GROUP BY, ce qui provoque une erreur.
- Mélanger WHERE et HAVING.
- Joindre sur la mauvaise colonne, par exemple
p.id = c.id. Le résultat est faux mais ressemble à un vrai résultat. - Additionner des paiements échoués sans le savoir, parce que le filtre sur le statut manque.
- Ne pas vérifier les valeurs réelles de
statut: il peut s'écrireechec,failedouECHECselon la base.
À faire maintenant
Dans ton carnet, écris les deux requêtes sur ton schéma. Ajoute au-dessus de chacune un commentaire d'une phrase qui explique ce qu'elle renvoie. Teste-les sur des données d'exemple de la boutique. Pour finir, rédige en trois lignes la demande que tu enverrais à un développeur si une colonne te manquait.
Carnet de 10 requêtes : « Le bilan du samedi »
Ton objectif est de collaborer avec les développeurs sans les freiner, puis de devenir gestionnaire de base de données. Un business analyste qui sait…
Pourquoi cet exercice t'aide
Ton objectif est de collaborer avec les développeurs sans les freiner, puis de devenir gestionnaire de base de données. Un business analyste qui sait extraire lui-même une donnée n'a plus besoin de demander un export à chaque question. Ce carnet de 10 requêtes est la preuve concrète de ton autonomie SQL, et tu pourras le montrer à un employeur. Il te servira aussi plus tard pour former d'autres personnes.
Contexte
Tu travailles sur la base de test de la Boutique Wave/WhatsApp. Elle contient les tables clients, produits, commandes, lignes de commande et paiements Mobile Money. Chaque samedi, la commerçante veut son « bilan du samedi » : ce qu'elle a vendu, à qui, et combien elle a encaissé.
Durée estimée
Prévois 6 sessions de 15 minutes, soit environ 1 h 30. Tu peux avancer à ton rythme, avec un checkpoint après la requête 5 et un autre après la requête 10.
Étapes
Étape 1 : préparer le carnet (10 min)
Crée un document avec un tableau de 10 lignes. Les colonnes sont : numéro, question métier, requête SQL, résultat obtenu, ce que j'ai compris, niveau d'aide utilisé (0, 1 ou 2).
Étape 2 : les requêtes 1 à 5, lecture simple (30 min)
Traduis ces questions en SQL en utilisant SELECT, WHERE, ORDER BY et LIMIT :
- Liste de tous les produits.
- Produits à plus de 5 000 FCFA, triés du plus cher au moins cher.
- Les 5 dernières commandes.
- Les clients de Dakar, ou de la ville de ton jeu de données.
- Les commandes du samedi dernier.
Fais le checkpoint : 4 résultats corrects sur 5 minimum.
Étape 3 : les requêtes 6 à 10, agrégats et jointures (45 min)
- Nombre total de commandes.
- Chiffre d'affaires du samedi (SUM).
- Montant encaissé par mode de paiement (GROUP BY).
- Nom de chaque client avec ses commandes (JOIN).
- Le bilan du samedi : par produit, quantité vendue et total, trié par total décroissant (JOIN + GROUP BY + ORDER BY).
Étape 4 : utiliser l'assistant IA comme coach
Demande à l'assistant des indices uniquement, jamais la réponse complète. Exemple de demande : « Donne-moi un indice sur la clause à utiliser, sans écrire la requête. » Note dans le carnet le niveau d'aide utilisé pour chaque requête.
Étape 5 : commenter et expliquer (15 min)
Ajoute au-dessus de chaque requête un commentaire SQL (-- ...) qui reprend la question métier. Choisis ensuite 2 requêtes et explique-les à voix haute en 1 minute chacune, comme si tu parlais à un développeur.
Erreurs à éviter
- Oublier le GROUP BY quand tu utilises SUM ou COUNT.
- Faire une jointure sans la condition ON, ce qui multiplie les lignes.
- Copier une réponse que tu ne sais pas expliquer.
- Travailler sur une base de production : reste sur la base de test.
Livrable
Un carnet de 10 requêtes commentées, avec leur résultat et une phrase d'explication pour chacune.
Critères de réussite
- Au moins 8 requêtes sur 10 donnent un résultat correct.
- Chaque requête est commentée avec sa question métier.
- Aucune requête n'est copiée sans compréhension. Tu dois pouvoir l'expliquer oralement.
3 modules de plus · 20 leçons guidées par l'IA, avec exercices et coach à chaque étape.
Questions fréquentes
Combien de temps dure la formation Bases de données pour business analyste ?
29 leçons, environ 9h 55min au total, à suivre à ton rythme. Chaque leçon dure quelques minutes : tu peux l'écouter ou la lire.
Est-ce que cette formation est gratuite ?
Oui. Tu la suis gratuitement, il suffit de créer ton compte Blemama.
Faut-il un niveau particulier pour commencer ?
Elle est prévue pour un niveau débutant. À chaque leçon, un coach IA répond à tes questions et réexplique ce qui n'est pas clair.
Comment se déroule la formation ?
Le parcours compte 3 modules. Chaque leçon est lue à voix haute pendant que le texte avance, avec des exercices pratiques et un quiz à la fin de chaque module.
Est-ce que j'obtiens une attestation à la fin ?
Oui. À la fin du parcours, un examen final valide ce que tu as appris et tu reçois une attestation Blemama.
Sources de la recherche
CoachGPT a construit cette formation à partir d'une recherche approfondie sur le sujet. Quelques sources consultées :
Formations similaires
Tu veux une formation sur un autre sujet ? Demande à CoachGPT de te créer la tienne
Avis des apprenants
Publiés après avoir terminé le parcoursAucun avis pour le moment. Les avis apparaissent ici quand un apprenant termine le parcours.
Discussion
Pose une question ou partage ton retour avec les autres apprenants.
Aucune discussion pour le moment.
Les visiteurs peuvent lire la discussion, les membres peuvent participer.