Partie 1 · Le cas
Le cas unitee et le modèle de données
Seconde moitié du cours : une étude de cas (« Veille automatisée des marchés publics, secteur bâtiment modulaire, bâtiment en kit et assemblage rapide », SQL avancé : procédures, fonctions, triggers, transactions, sauvegarde, automatisation). L'entreprise unitee conçoit, assemble et déploie des bâtiments modulaires, des structures préfabriquées, des bases vie de chantier, des classes temporaires et des extensions rapides pour des clients publics et parapublics.
Aujourd'hui la veille est manuelle : plusieurs collaborateurs consultent différents portails, ce qui provoque des pertes de temps, des doublons, des oublis et une qualification irrégulière. La direction veut une base relationnelle qui centralise les annonces, calcule un niveau de pertinence, suit les événements techniques, déclenche des notifications et produit un tableau de bord. Elle ne veut pas « un simple ensemble de tables » mais un système SQL robuste, industrialisable et supervisable.
Ce que le système doit faire : récupérer des annonces depuis plusieurs sources ; détecter et empêcher les doublons ; évaluer les marchés selon des critères métier ; générer une alerte e-mail pour les opportunités critiques ; laisser une trace de toute opération importante ; prévoir une sauvegarde complète ; fournir un dashboard.
Remarque : le cours ne fixe pas de SGBD (il évoque ENUM, LONGTEXT, DATETIME, DECIMAL). Les exercices de ce site tournent sur SQLite : la syntaxe est parfois adaptée (exemple ajouté).
Les cinq volets
| Volet | Objectif | Détails attendus |
|---|---|---|
| Collecte | recevoir ou intégrer de nouvelles annonces | API, scraping, flux RSS ; planification via CRON ; formats JSON, XML, HTML ; déduplication initiale |
| Qualification | évaluer et prioriser selon la pertinence | score (mots-clés, montant, localisation) ; niveau faible, moyen, élevé ; stockage du score |
| Traçabilité | suivi complet des actions techniques et métier | logs techniques (erreurs, appels API) ; logs métier (qualification, modification) ; historisation ; auditabilité |
| Sauvegarde | sécurité et restauration des données | sauvegardes automatiques quotidiennes/hebdomadaires ; export SQL ou dump ; versionning ; stockage externe possible |
| Pilotage | analyser et suivre via des indicateurs | dashboard (graphiques, KPI) ; statistiques ; filtres ; historique et tendances |
Vérifie que tu as compris
Données et modélisation
Chaque annonce peut contenir : identifiant externe (VARCHAR(100), pas forcément unique globalement : à utiliser avec la source, clé composite), source (table référentiel recommandée), titre (VARCHAR(255), index pour recherche rapide), résumé (TEXT, peut être NULL), description détaillée (LONGTEXT), acheteur public (normalisation possible : table acheteur), localisation (VARCHAR(150), peut être découpée en ville, département, région), date de publication (DATETIME, index important), date limite de réponse (DATETIME, permet des alertes), budget estimatif (DECIMAL(15,2), peut être NULL), lien source (TEXT, doit être unique si possible), mots-clés détectés (idéalement table mot_cle + relation N:N), statut de traitement (ENUM ou VARCHAR(50), ex : NEW, QUALIFIED, IGNORED, RESPONDED).
La partie modélisation demande : identifier les entités, proposer tables principales et tables de support, définir clés primaires et étrangères, préciser les contraintes d'unicité pertinentes, proposer une stratégie d'indexation minimale, et justifier les tables techniques de logs, notifications et sauvegardes. Le schéma doit servir à la fois l'exploitation métier et la supervision technique.
À toi de coder
À toi de coder