IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Schéma Discussion :

Passage du MCD au MLD


Sujet :

Schéma

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2022
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2022
    Messages : 50
    Points : 26
    Points
    26
    Par défaut Passage du MCD au MLD
    Bonjour,

    J'espère que vous allez bien,

    Dans cette discussion je cherche à comprendre SVP le passage du MCD au MLD, voici une partie d'un MCD que j'ai créé:

    Nom : 51.PNG
Affichages : 241
Taille : 7,8 Ko

    En modèle logique je sais que id_countryexecution serait une clé étrangère dans l'entité "project", mais je veux comprendre s'il vous plaît, les cardinalités 1,1 et 0,N se traduisent où exactement, autrement dit, si on donne le MLD avec les deux tables et où id_countryexecution est une clé étrangère dans "project", comment peut-on déduire les deux cardinalités ?

    Question plus générale: Comment traduire les cardinalités du MCD en MLD?

    Merci de votre retour,

    Bien cordialement

  2. #2
    Modérateur
    Avatar de escartefigue
    Homme Profil pro
    bourreau
    Inscrit en
    Mars 2010
    Messages
    10 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : bourreau
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2010
    Messages : 10 130
    Points : 38 543
    Points
    38 543
    Billets dans le blog
    9
    Par défaut
    Bonjour,

    Si je comprends bien la question, on cherche à déduire les cardinalités du MCD à partir des clefs étrangères du modèle tabulaire.
    Dans le modèle tabulaire les clefs étrangères sont faciles à repérer : elle font l'objet d'une contrainte de type référence codées sous la forme suivante dans le DDL de création de la table :

    CONSTRAINT ma_colonne REFERENCES autre_table(autre_colonne) avec facultativement des actions ON DELETE ou ON UPDATE.

    À partir de là, il faut d'abord vérifier si la table contenant ce type de colonnes est issue d'une entité ou d'une association du MCD.
    En effet, quand on a une association dont une "patte" possède une cardinalité 0,1, il est possible de générer une table pour cette association afin d'éviter que la colonne soit "nullable".

    • Si toutes les colonnes PK de la table concernée font l'objet dune contrainte de type référence, alors c'est une table issue d'une association (on parle alors de "table associative").


    En ce cas les PK sont bien évidemment "not null" - c'est obligatoire pour une PK - mais c'est bien une table associative issue d'une cardinalité 0,1

    • Si au contraire les colonnes PK de la table ne font pas l'objet de contrainte de type référence, alors c'est une table issue d'une entité du MCD.

    En ce cas, si la colonne faisant l'objet d'une contrainte de type référence est "nullable", alors c'est qu'on avait une cardinalité 0,1 dans le MCD et si la contrainte de type réference porte sur une colonne "not null", alors c'est qu'on avait une cardinalité 1,1 dans le MCD


    Voici un exemple de MCD avec des cardinalités 0,1 et 1,1

    Nom : Sans titre.png
Affichages : 198
Taille : 40,1 Ko

    Si je décide de ne pas générer de table associative pour la cardinalité 0,1, alors le script DDL est généré ainsi (ici décliné pour SQL server) :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    CREATE TABLE E1(
       E1_ident INT IDENTITY,
       E1_truc VARCHAR(50) NOT NULL,
       PRIMARY KEY(E1_ident)
    );
     
    CREATE TABLE E2(
       E2_ident INT IDENTITY,
       E2_bidule CHAR(10) NOT NULL,
       E1_ident INT NOT NULL,
       PRIMARY KEY(E2_ident),
       FOREIGN KEY(E1_ident) REFERENCES E1(E1_ident)
    );
     
    CREATE TABLE E3(
       E3_ident INT IDENTITY,
       E3_machin VARCHAR(50) NOT NULL,
       E1_ident INT,
       PRIMARY KEY(E3_ident),
       FOREIGN KEY(E1_ident) REFERENCES E1(E1_ident)
    );


    Si au contraire je décide de générer une table associative pour éviter les colonnes "nullables", alors le script DDL devient :

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    CREATE TABLE E1(
       E1_ident INT IDENTITY,
       E1_truc VARCHAR(50) NOT NULL,
       PRIMARY KEY(E1_ident)
    );
     
    CREATE TABLE E2(
       E2_ident INT IDENTITY,
       E2_bidule CHAR(10) NOT NULL,
       E1_ident INT NOT NULL,
       PRIMARY KEY(E2_ident),
       FOREIGN KEY(E1_ident) REFERENCES E1(E1_ident)
    );
     
    CREATE TABLE E3(
       E3_ident INT IDENTITY,
       E3_machin VARCHAR(50) NOT NULL,
       PRIMARY KEY(E3_ident)
    );
     
    CREATE TABLE E1_E3(
       E3_ident INT,
       E1_ident INT NOT NULL,
       PRIMARY KEY(E3_ident),
       FOREIGN KEY(E3_ident) REFERENCES E3(E3_ident),
       FOREIGN KEY(E1_ident) REFERENCES E1(E1_ident)
    );
    ]

Discussions similaires

  1. Réponses: 29
    Dernier message: 20/09/2010, 18h02
  2. Réponses: 1
    Dernier message: 07/12/2008, 14h38
  3. passage du MCD AU MLD
    Par stef51 dans le forum Schéma
    Réponses: 2
    Dernier message: 12/06/2007, 08h31
  4. [merise] passage de MCD a MLD
    Par dj_cue dans le forum Schéma
    Réponses: 9
    Dernier message: 31/03/2006, 23h06
  5. Passage du MCD en MLD en MPD
    Par shinshon dans le forum Schéma
    Réponses: 3
    Dernier message: 02/11/2005, 15h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo