Discussion: Boucle fermée

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    janvier 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : janvier 2018
    Messages : 1
    Points : 1
    Points
    1

    Par défaut Boucle fermée

    Bonjour,
    Excellente nouvelle année à tout le monde...
    Je suis étudiant en comptabilité et j'aimerais bien me former en bases de données. Pour un premier projet, je bloque un peu car j'ai l'impression d'avoir une boucle fermée.
    Au fait, j'essaie de modéliser une base de données où il y a une table 'personne' et une autre 'entreprise'. Une personne peut être 'usager', 'client', 'employé', 'patron', 'associé', 'externe', 'fournisseur',... d'une entreprise. Et une personne peut avoir plusieurs numéros de téléphones et plusieurs enfants/parents (relation récursive sur personne), une entreprise peut avoir plusieurs numéros de téléphones également, plusieurs associés, plusieurs patrons, plusieurs emails, plusieurs adresses postales,...
    Donc, j'avais mis une table pour téléphone, adresse, ....
    Mais quand j'ai fait la modélisation sur un papier, j'ai l'impression que je me trouve avec une ou plusieurs boucles fermées.
    D'une, j'aimerais avoir une définition concrète de ce qu'est une boucle fermée.
    Et secundo, y-a-t-il quelqu'un qui pourrait m'aider à modéliser cette première bdd...

    Merci beaucoup d'avance...
    Dav

  2. #2
    Expert éminent

    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    3 113
    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 : 3 113
    Points : 6 838
    Points
    6 838
    Billets dans le blog
    1

    Par défaut

    Citation Envoyé par davidg_f Voir le message
    Mais quand j'ai fait la modélisation sur un papier, j'ai l'impression que je me trouve avec une ou plusieurs boucles fermées.
    D'une, j'aimerais avoir une définition concrète de ce qu'est une boucle fermée.
    Il ne faut pas confondre une boucle fermée qui en soit ne pose pas de problème, et un cycle qui est une erreur de conception de type "impasse" qui empêche de générer le MLD
    Je vous conseille la lecture du sujet suivant sur la notion de "cycle" dans un MCD : https://www.developpez.net/forums/d1...ma/cycles-mcd/


    Citation Envoyé par davidg_f Voir le message
    Et secundo, y-a-t-il quelqu'un qui pourrait m'aider à modéliser cette première bdd...
    Pour la partie gestion des personnes et des téléphones ou adresses, vous pouvez jeter un coup d’œil à cet autre sujet :
    (je n'y ai proposé que les téléphones, mais faites la même chose pour les adresses )
    https://www.developpez.net/forums/d1...s/#post9886146

  3. #3
    Candidat au Club
    Femme Profil pro
    Développeur Web
    Inscrit en
    janvier 2018
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : janvier 2018
    Messages : 2
    Points : 3
    Points
    3

    Par défaut Modélisation et boucle fermée

    J'ai le même problème avec les tables Personne , établissement ( entreprise) et numéro de téléphone ( ou autre type de contact). Alors j'ai essayé de trouver une solution plus optimal pour éviter ce problème.

    J'ai créé une table (Contact_Personne) liée au table Personne et qui contient comme clé étrangère l'identifiant du personne et aussi les champs ( email, adresse, fax numéro de tel...) . Même chose faite pour la table établissement .

    Merci de me donner vos remarques ( Si c'est juste ou non )

  4. #4
    Expert éminent

    Homme Profil pro
    bourreau
    Inscrit en
    mars 2010
    Messages
    3 113
    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 : 3 113
    Points : 6 838
    Points
    6 838
    Billets dans le blog
    1

    Par défaut Tout dépend du contexte et du métier...

    Bonjour GR120292,

    A priori vous n'avez pas lu ma réponse qui précède ou vous ne l'avez pas comprise, aussi je la complète ici.

    Tout d'abord, plutôt que de raisonner en terme de tables, il faut raisonner en termes de règles de gestion !
    Faute de connaitre les vôtres, voici un exemple de règles assez fréquent

    • R001 une personne peut avoir plusieurs média (téléphone fixe, portable, adresses courriel...) y compris d'un même type
    • R002 un média appartient à une et une seule personne
    • R003 tout média possède un type et un seul
    • R004 les types média possibles sont téléphone fixe perso, tél fixe pro, tél portable perso, tél portable pro, tél portable d'astreinte, fax perso, fax pro, courriel perso, courriel pro
    • R005 un type média peut être utilisé par plusieurs média


    A partir de ces règles de gestion il faut modéliser le modèle conceptuel de données (MCD), ce qui donne ici (j'ai simplifié ici avec seulement des personnes physiques) :
    [PERSONNE (PE_id, PE_nom, PE_prénom, ...)] 0,n --- (posséder) --- (1,1) [MEDIA (ME_id, ME_numéro, ME_favori, ...)] 1,1 --- (typer) --- 0,n [TYPE_MEDIA (TM_id, TM_code, TM_lib, ...)]

    De ce MCD, tous les logiciels de modélisation, y compris les gratuits, permettent de générer le MLD et donc les tables qui suivent :
    PERSONNE (PE_id PK, PE_nom, PE_prénom, ...)
    MEDIA (PE_id PK-FK1 ME_id PK, ME_numéro, ME_favori, ...) <= comme j'ai choisi d'identifier le média relativement à la personne (parenthèses), la PK est composée de PE_id+ME_id
    TYPE_MEDIA (TM_id PK, TM_code, TM_lib, ...)

    Maintenant si je change ma règle de gestion R002 pour la libeller comme suit (les autres règles étant inchangées) :
    R002 un média appartient à au moins une personne

    Le MCD qui en découle devient
    [PERSONNE (PE_id, PE_nom, PE_prénom, ...)] 0,n --- (posséder (favori)) --- 1,n [MEDIA (ME_id, ME_numéro, ...)] 1,1 --- (typer) --- 0,n [TYPE_MEDIA (TM_id, TM_code, TM_lib, ...)]

    Du coup, le MLD qui en découle donne les tables :
    PERSONNE (PE_id PK, PE_nom, PE_prénom, ...)
    POSSEDER(PE_id PK FK1, ME_id PK FK2, favori) <== une nouvelle table apparait à cause des cardinalité maxi n de part et d'autre de la relation
    MEDIA (ME_id PK, ME_numéro, ME_favori, ...)
    TYPE_MEDIA (TM_id PK, TM_code, TM_lib, ...)

    Les tables sont la résultante directe de vos règles de gestion, quelles sont les vôtres, les avez vous rédigées et faites valider par les référents métier (votre MOA) ?
    Si ce n'est pas le cas, faites le avant d'aller plus loin

Discussions similaires

  1. Héritage et boucle fermé
    Par Tunesischen dans le forum UML
    Réponses: 1
    Dernier message: 17/09/2012, 13h26
  2. MCD et boucle fermée
    Par gwadaboug dans le forum Schéma
    Réponses: 9
    Dernier message: 09/01/2012, 04h08
  3. [MCD] Boucle fermée dans le MCD.
    Par skatah dans le forum Schéma
    Réponses: 10
    Dernier message: 25/08/2010, 10h20
  4. Boucle fermée sous Matlab
    Par d0n32 dans le forum MATLAB
    Réponses: 1
    Dernier message: 08/07/2010, 15h47
  5. Boucle fermée - 1er ordre - PID
    Par canary dans le forum Simulink
    Réponses: 0
    Dernier message: 02/05/2010, 17h34

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