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 1 · Modéliser

Du MCD au schéma relationnel (MPD)

Le schéma relationnel, appelé volontiers MPD (modèle physique des données), est une représentation plus concrète : tables, clés primaires, clés étrangères et autres champs, écrits comme une liste.

MaTable(MaClefPrimaire, #UneClefEtrangere, UnChamp, …)
  • la ou les clés primaires sont soulignées (plusieurs champs possibles) ;
  • les clés étrangères sont préfixées par # (aucune, une ou plusieurs ; elles peuvent faire partie de la clé primaire) ;
  • une clé étrangère composée s'écrit #(Champ1, Champ2).

Exemple du cours, la CIM « Ligne » devient bien une table :

Ecriture(EcritureNum, EcritureLib, PieceRef, …)
Ligne(#EcritureNum, #CompteId, Debit, Credit, Lettrage, …)
Compte(CompteId, CompteNum, CompteAuxNum, CompteLib, …)

Remarque : la clé primaire de Ligne est composée de deux clés étrangères, comme annoncé (« clé primaire d'une association = clés des entités reliées »).

Vérifie que tu as compris

Dans Ligne(#EcritureNum, #CompteId, Debit, Credit), que signifie le « # » ?

Trois cas particuliers du cours

1. Entité dépendante. Une entité dont l'existence (ou l'identifiant) dépend d'une autre : un appartement n'existe que si l'immeuble existe ; un numéro de facture se définit par rapport à un compte auxiliaire. Sa clé primaire contient la clé de l'entité dont elle dépend :

Facture(#IdCompte, NumFacture, DateEmission, …)
Compte(IdCompte, NumCompte, NumCompteAux, …)

2. Pseudo-entité. Une association de type CIM qui se comporte comme une entité : on veut lui ajouter d'autres clés étrangères (CIF). Exemple du cours : réserver une nuit d'hôtel n'a de sens que par rapport à l'hôtel et à la date.

Hôtel(NumHotel, NomHotel, …)
Client(NumClient, MailClient, …)
Réservation(#N°Hôtel, #Date, #N°Client, NbNuits)

Dans l'énoncé du cours, la table Date n'est pas créée en pratique : la date n'est pas une vraie clé étrangère.

3. Réflexivité. Une entité reliée à elle-même pour modéliser une hiérarchie ou un arbre (arbre généalogique). On doit préciser le rôle de chaque patte (parent / enfant). Avec des cardinalités 2..2 côté enfant, « Filiation » est une CIF : pas de table, mais deux clés étrangères dans la même table :

Personne(NumPersonne, #Pere, #Mere, Prenom, Nom, …)

Père et mère sont chacun une clé étrangère qui pointe vers une autre ligne de Personne.

Vérifie que tu as compris

Pour un arbre généalogique, quelle solution le cours retient-elle ?

Vérifie que tu as compris

Un appartement n'existe que si l'immeuble existe. Quel type d'entité ?