Aller au contenu
Apprendre.
  • M1 · toutes les matières15 matières : Préparation de données, API & sécurité, CI/CD, Docker, Merise, Dataviz, KNIME, ML appliqué : projet LoL, SQL & UML, SQL avancé, Machine Learning, Git, IA frugale & responsable, Qualité des données, MathématiquesAnnée
  • M2 · toutes les matières4 matières : Deep Learning, AI Act, Comex & Fundraising, Gouvernance & DataMeshAnnée
  • Deep LearningM2 · 4 modules · Réseaux de neurones, CNN, texte, modèles génératifs.Matière
  • Préparation de donnéesM1 · 3 modules · Nettoyer, transformer et fusionner des données avec Python.Matière
  • API & sécuritéM1 · 2 modules · Consommer, concevoir et sécuriser des API.Matière
  • CI/CDM1 · 1 module · Intégration et livraison continues.Matière
  • DockerM1 · 3 modules · Conteneurs, images, volumes, réseaux, Compose.Matière
  • MeriseM1 · 2 modules · Modéliser une base : MCD, MLD, MPD.Matière
  • DatavizM1 · 2 modules · Visualiser pour comprendre et décider.Matière
  • KNIMEM1 · 1 module · Explorer et nettoyer des données en workflow.Matière
  • ML appliqué : projet LoLM1 · 2 modules · Du besoin métier au POC de vision par ordinateur.Matière
  • SQL & UMLM1 · 3 modules · Modèles UML et requêtes SQL.Matière
  • SQL avancéM1 · 3 modules · Jointures, fenêtres, CTE, optimisation.Matière
  • Machine LearningM1 · 3 modules · Régression, classification, segmentation, projet.Matière

↑↓ naviguer↵ ouvre le résultat en surbrillanceesc fermer

Partie 3 · Automatismes

Triggers

Le cas demande d'identifier les événements de base qui justifient un traitement automatique au niveau SQL. Quatre questions guident la réflexion :

  • Quels contrôles doivent avoir lieu avant une écriture ?
  • Quelles traces doivent être écrites après certaines opérations ?
  • Dans quels cas un trigger peut-il préparer une notification (par exemple pour une opportunité critique) ?
  • Quels risques ou limites garder à l'esprit avec ce mécanisme ?

Les critères d'évaluation regardent la pertinence et la maîtrise : utilité réelle (logs, automatisation), absence d'effets de bord, bonne granularité BEFORE/AFTER.

MomentUsage typique dans le cas
BEFORE écriturecontrôler/refuser (budget négatif, champ obligatoire)
AFTER écriturejournaliser (log métier), historiser, préparer une notification

À toi de coder

Un trigger AFTER INSERT qui journalise

Traçabilité : les opérations importantes doivent laisser une trace. Un trigger AFTER INSERT écrit dans log_metier après chaque nouvelle annonce, sans que l'application ait à y penser. Dans le corps du trigger, la nouvelle ligne s'appelle NEW.

Complète le trigger pour qu'il enregistre l'action 'INSERT' et l'identifiant de l'annonce insérée.

Ctrl/⌘+Entrée

À toi de coder

Un trigger BEFORE INSERT qui refuse une donnée invalide

Quels contrôles doivent avoir lieu avant une écriture ? Ici : un budget estimatif négatif n'a pas de sens. Un trigger BEFORE INSERT peut interrompre l'opération avec RAISE(ABORT, 'message') (syntaxe SQLite : exemple adapté).

Complète le trigger. L'insertion invalide doit lever une erreur (capturée dans erreur) et la ligne valide doit être conservée.

Ctrl/⌘+Entrée

Risques et limites (hors cours, notions générales)

Un trigger s'exécute sans être appelé : il peut surprendre. Un trigger qui en déclenche un autre crée des enchaînements difficiles à lire ; un traitement lourd dans un trigger ralentit chaque écriture ; une erreur dans un trigger fait échouer l'écriture qui l'a déclenché. D'où le critère « absence d'effets de bord » : un trigger doit rester petit, prévisible et documenté. Préparer une notification (écrire une ligne dans une table de notifications) est plus sûr que d'envoyer un e-mail directement depuis le trigger.

Vérifie que tu as compris

Pour refuser une annonce avec un budget négatif, il faut un trigger…