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 2 · MLD et normalisation

Contraintes : PK, FK, UNIQUE, NOT NULL et MPD

Le TP2 liste les contraintes minimales attendues : unicité (email client, email vendeur, SKU produit, code promo), anti-doublons (offre vendeur-produit, inscriptions équivalentes), historique (prix payé, paiements, expéditions, retours/remboursements, adresse de commande) et cohérence temporelle (validité des codes promo, dates de suivi).

ContrainteRôleExemple TP2
PKIdentifie chaque ligne, jamais NULLid_commande
FKImpose qu'une référence existeligne_commande.id_commande
UNIQUEInterdit un doublon métierclient.email, produit.sku, code_promo.code
NOT NULLValeur obligatoirecommande.id_client
CHECK (hors cours)Règle sur une valeurdate_fin >= date_debut ; quantité > 0

Vérifie que tu as compris

Quelle contrainte empêche deux clients avec le même email ?

PK composée ou id technique ?

Le TP2 cite ce choix à justifier. PK composée (ex. offre = (id_vendeur, id_produit)) : l'anti-doublon est automatique, mais les clés étrangères qui la référencent deviennent composées. Id technique : simple à référencer, mais il faut ajouter UNIQUE (id_vendeur, id_produit) sinon le doublon revient. Dans les deux cas, l'unicité métier doit exister.

Suppression logique

« Un vendeur peut être désactivé sans suppression de l'historique » : une colonne d'état (actif) plutôt qu'un DELETE, qui serait refusé ou casserait les FK des commandes et colis.

MPD (hors cours)

Le physique choisit les types du SGBD et les index. Pour l'argent, un type décimal exact, pas un flottant. Exemple :

CREATE TABLE offre (
  id_vendeur INTEGER NOT NULL REFERENCES vendeur(id_vendeur),
  id_produit INTEGER NOT NULL REFERENCES produit(id_produit),
  prix       DECIMAL(10,2) NOT NULL CHECK (prix >= 0),
  stock      INTEGER NOT NULL DEFAULT 0,
  PRIMARY KEY (id_vendeur, id_produit)
);

Vérifie que tu as compris

Pourquoi préférer un type décimal à un flottant pour un prix ?