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 :

Réalisation d'un MCD à partir d'une liste de tables [MCD]


Sujet :

Schéma

  1. #1
    Membre du Club Avatar de Gobelins
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 171
    Points : 60
    Points
    60
    Par défaut Réalisation d'un MCD à partir d'une liste de tables
    Bonjour,

    Je dois créer un logiciel pour la télémaintenance et les appels. C'est une entreprise qui effectue la télémaintenance aux sociétés de la distribution automatqiue grace un logiciel.

    -Liste des tables :clients, fournisseurs, etc.
    -Table avec la liste des taches,
    -Table de configuration du client: type de PocketPC, est-il en réseau, ou en monoposte?
    -Création d'une table au nom de la société contenant les noms des employés,
    -Première table des appels: saisir les infos de la panne, une fois que la panne a été validée.
    -Deuxième table:historique des interventions effectuées.
    -Un module statistique permettant de savoir les pannes les plus fréquentes, temps pour réparer la panne, type de pannes les plus fréquentes, ainsi que type de clients les fréquents.
    -Prévoir d'importer directement les saisies que j'ai effectuées dans Excel.

    Comment réaliser le shéma du modèle conceptuel de données à partir de cette liste?

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Dans l'ordre tu dis :
    Je dois créer un logiciel
    ...
    Liste des tables
    ...
    Comment réaliser le shéma du modèle conceptuel de données à partir de cette liste?
    Normalement, on fait d'abord le MCD, qui est composé d'entités et d'associations, puis on implémente la base de données en y créant les tables, éventuellement les vues et autres triggers, procédures, fonctions et enfin on développe le logiciel qui va interroger la BDD.

    Si ta liste de tables correspond à ce qui existe déjà dans une base de données relationnelles, alors ça s'appelle de la rétro-conception. Il te faut analyser la structure des tables pour y trouver les colonnes qui permettent de les associer. Avec un logiciel de modélisation, tu peux le connecter à la BDD pour qu'il importe le schéma lui même et tu n'auras plus qu'à le mettre en forme.

    Si tu pars de zéro, alors il faut d'abord faire le MCD. Et pour apprendre comment le faire, il y a un cours chez SQLPro.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  3. #3
    Membre du Club Avatar de Gobelins
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 171
    Points : 60
    Points
    60
    Par défaut
    Bonsoir,

    J'ai effectué mon MCD non pas à partir ce que j'ai écris dans le premier message, mais à partir ce que j'ai imaginé lorsque'on veut faire une télémaintenance pour les clients de la distribution automatique. (Précision:je suis en stage).

    J'ai posté en pièce jointe mon MCD, je vous demande votre avis, vos remarques et vos critiques car c'est mon premier MCD, s'il ya des améliorations ou des modifciations à faire, je suis preneur.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Remarques générales :
    1) Nomme tes entités au singulier.
    Quand on lit le MCD, on dit plutôt "Un contact client appartient à une seule société et une société peut avoir plusieurs contacts clients".

    2) Pour les associations, fais un choix entre infinitif et conjugué.
    Perso, je préfère l'infinitif qui permet de conjuguer dans la forme active et la forme passive quand on lit le MCD. "Un contact client envoie de 1 à plusieurs appels et un appel peut être envoyé par plusieurs contacts client."

    3) Aucun morceau de MCD n'est en principe isolé du reste.
    Ici, l'ensemble Fournisseur - Livrer - Pocket devrait être relié au reste. Peut-être manque t-il quelque chose pour faire cette liaison.

    4) Factorise les données répétitives en les externalisant dans des entités de référence.
    Ici, tu as la ville dans Société et dans Fournisseur.
    Societe -1,1----Situer-------0,n- Ville
    Fournisseur -1,1----Situer----0,n-|

    Constructeur_pocket est aussi à externaliser.
    Pocket -1,1----Construire----0,n- Constructeur

    Entrons maintenant dans le détail de ton MCD...

    5) Societes et Fournisseurs ont les mêmes attributs (ou presque, le founisseur a le téléphone en plus). Pourquoi ? Parce que ce sont dans les deux cas des sociétés et qu'en réalité ton entité Société est plutôt, si je comprends bien, une entité Client.
    Tu peux donc mettre en oeuvre un héritage de tables :
    Client -(1,1)----Etre-------0,1- Societe
    Fournisseur -(1,1)----Etre----0,1-|

    L'entité "Societe" sera pourvue des attributs suivants : (ID_societe, Nom_societe, Adresse_societe, CP_societe)
    L'entité "Fournisseur" ne sera pourvue que de l'attribut (Tel_fournisseur).
    L'entité "Client" n'aura pas d'attribut ! Bizarre non ? Et pourtant c'est comme ça que ça fonctionne !
    Les cardinalités (1,1) entre parenthèses dans le morceau de MCD ci-dessus indiquent une identification relative qui entraînera le fait que l'identifiant (clé primaire) de la table Client et de la table Fournisseur sera une clé étrangère faisant référence à celui de la table Societe.

    Au passage, par ce mécanisme, et par celui de l'externalisation de la ville évoquée plus haut, on vient de raccorder le fournisseur au reste du MCD !

    6) Entite Contact_client
    Tu as mis ID_Societe dans la clé primaire. Tu as donc fait une identification relative du contact par rapport à la société à laquelle il appartient. Pourquoi pas mais est-ce bien nécessaire ?
    Ton contact peut changer de société cliente et par principe une clé primaire est réputée invariable.
    Perso, je supprimerais ID_Societe de l'entité Contact_client

    Ne devrais-tu pas par contre y ajouter le prénom ?
    Et même éventuellement une civilité, laquelle peut être externalisée.

    7) Entité Appel
    Là encore, tu as pratiqué une identification relative alors qu'elle n'est pas représentée par la mise entre parenthèses des cardinalités. Et là encore, je ne la trouve pas nécessaire.

    Pourquoi y a t-il ID_technicen ?
    Dans un MCD, on ne représente pas les clés étrangères qui n'apparaissent qu'au niveau du MLD.
    Cette présence suppose une association entre Appel et Technicien qui ne figure pas sur ton schéma. Cette entité Appel ne serait-elle pas plutôt l'association appeler qui serait porteuse de données ?
    La description du problème n'est elle pas redondante avec la description de la panne dans l'entité Panne ?

    8) Association Envoie
    N'as-tu pas remarqué quelque chose de bizarre dans ma lecture de cette association plus haut ? "un appel peut-être envoyé par plusieurs contacts clients" !
    Je crois que tes cardinalités sont fausses. Pour autant que l'entité Appel reste nécessaire, ce serait plutôt comme ça :
    Contact_client -0,n----Envoyer----1,1- Appel

    9) Entité Pocket
    Tu y fais figurer ID_societe. Clé étrangère à ne pas faire figurer dans le MCD et qui suppose une association avec l'entité Societe, c'est à maintenant l'entité Client.

    Difficile d'en dire plus sans cahier des charges. Tout n'est pas clair dans ton MCD. J'ai du mal à interpréter quel processus il y a derrière. Notamment pour la partie fournisseur livrer pocket par rapport au reste. Est-ce la fourniture d'un nouveau pocket suite à une panne ? Est-ce d'abord la fourniture d'un pocket puis éventuellement il tombre en panne et le client appelle ? Est-ce la fourniture d'un pocket de remplacement durant la réparation de la panne ?
    Ces interrogations montrent encore pourquoi il faut que ce morceau de MCD soit raccordé au reste.

    Bon courage pour la suite. C'est quand même pas mal pour un premier MCD !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre du Club Avatar de Gobelins
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 171
    Points : 60
    Points
    60
    Par défaut
    Je précise que je suis en stage dans un entreprise (éditeur de logiciels) de gestion. Ce logiciel est vendu aux entreprises de la distribution automatique. Il peut servir par exemple à la gestion des pannes, des consommations, des commandes, des contrats, des redevances, des tournées, du parc, etc.

    Il arrive que ce logiciel plante suite à son manipulation par les différents utilsateurs (employés) de l'entreprise. Ces utilisateurs (employés appartenant à ces sociétés) nous téléphonent pour nous communiquer que le logiciel est tombé en panne. Je leur demande d'envoyer la télémaintenance. Je répare les tables et ce logiciel. Les pannes ne concernent pas les pockets. Elles concernent le logiciel qui tombe en panne souvent.

    Les fournisseurs vendent les pockets à la société dans laquelle j'effectue mon stage. On ne m'a pas donné un cahier des charges.

    Je vais modifier mon MCD d'après vos indications et je vous le montrerai pour me donner vos remarques et vos propositions

  6. #6
    Membre du Club Avatar de Gobelins
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 171
    Points : 60
    Points
    60
    Par défaut
    Vous n'avez pas vu ou lu, je crois mon message que j'ai posté hier. Lisez-le SVP parce que vous allez comprendre le context danslequel j'effecrtue le MCD.

    J'ai modifié le MCD, d'après vos remarques.

    1) J'ai supprimé l'entité societe car en fait c'est une entité client. J'ai supprimé l'attribut Ville_societe d'après ce que j'ai compris. Je n'ai pas mis en oeuvre un héritage de tables d'près:
    Tu peux donc mettre en oeuvre un héritage de tables :
    Client -(1,1)----Etre-------0,1- Societe
    Fournisseur -(1,1)----Etre----0,1-|
    2) J'ai supprimé ID-societe d'après votre explication et j'ai ajouté prenom_contact_client.

    3) J'ai crée une entité Ville contenant trois attributs:
    -ID_ville, Ville_client et Ville_fournisseur d'après ce que j'ai compris.
    D'après:
    Factorise les données répétitives en les externalisant dans des entités de référence.
    Ici, tu as la ville dans Société et dans Fournisseur.
    Societe -1,1----Situer-------0,n- Ville
    Fournisseur -1,1----Situer----0,n-|
    4)J'ai supprimé que l'attribut Ville_fournisseur et j'ai gardé les autres. Mais vous m'avez suggérer de garder que l'attribut Tel_fournisseur. Pourquoi?, je n'ai pas suivi votre proposition. Expliquez-moi pourquoi je dois garder que Tel_fournisseur.

    5) J'ai crée une entité Constructeur_pocket et je l'ai associé avec l'entité Pocket d'après:
    Constructeur_pocket est aussi à externaliser.
    Pocket -1,1----Construire----0,n- Constructeur
    6)J'ai supprimé l'association appeler qui relie l'entité Contact_client avec l'entité Technicien. J'ai relié l'entité Appel avec l'entité Technicien grace à l'association appeler.
    Cette présence suppose une association entre Appel et Technicien qui ne figure pas sur ton schéma. Cette entité Appel ne serait-elle pas plutôt l'association appeler qui serait porteuse de données ?
    7)J'ai supprimé l'attribut Description du probleme de l'entité Appel et je l'ai mis dans l'entité Panne.
    La description du problème n'est elle pas redondante avec la description de la panne dans l'entité Panne ?
    8) J'ai supprimé ID_societe de l'entité Pocket.
    Tu y fais figurer ID_societe. Clé étrangère à ne pas faire figurer dans le MCD et qui suppose une association avec l'entité Societe, c'est à maintenant l'entité Client.
    9)J'ai raccordé le fournisseur au reste du MCD par le mécanisme de l'externalisation de la Ville (entité) et du Constructeur_Pocket(entité).

    10)J'ai modifié les cardinalités de l'association envoie.

    Je mets en pièce jointe le nouveau MCD. Je voudrais bien que vous écriviez toutes les corrections, par exemple de cette façon car c'est facile de comprendre et puis si vous ajoutez ou retirez un attribut, ça serait bien d'écrire tous les attributs de l'entité comme vous l'avez fait pour l'entité societe:


    Entité cardinalités------association-------cardinalités Entité.

    Exemple: Contact_client -0,n----Envoyer----1,1- Appel

    L'entité "Societe" sera pourvue des attributs suivants : (ID_societe, Nom_societe, Adresse_societe, CP_societe)

  7. #7
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Gobelins Voir le message
    vous allez comprendre le context danslequel j'effecrtue le MCD.
    Vaguement !

    J'ai modifié le MCD, d'après vos remarques.
    Pas toutes, si j'en crois ce qui suit et ce que je vois dans le nouveau MCD !

    1) J'ai supprimé l'entité societe car en fait c'est une entité client. J'ai supprimé l'attribut Ville_societe d'après ce que j'ai compris. Je n'ai pas mis en oeuvre un héritage de tables
    Voilà déjà une première recommandation non suivie, ce qui fait que tu as toujours deux entités avec quasiment les mêmes attributs. De plus, une société ne peut-elle être à la fois cliente et fournisseur ? Enfin dans ton contexte peut-être pas...

    2) J'ai supprimé ID-societe d'après votre explication et j'ai ajouté prenom_contact_client.


    3) J'ai crée une entité Ville contenant trois attributs:
    -ID_ville, Ville_client et Ville_fournisseur d'après ce que j'ai compris.
    Non !
    ID_Ville et Nom_Ville seulement !
    C'est une entité qui recense les villes, elles existent indépendamment des fournisseurs et des clients !
    Et il faut souligner ID_Ville qui est l'identifiant de l'entité.

    4)J'ai supprimé que l'attribut Ville_fournisseur et j'ai gardé les autres. Mais vous m'avez suggérer de garder que l'attribut Tel_fournisseur. Pourquoi?, je n'ai pas suivi votre proposition. Expliquez-moi pourquoi je dois garder que Tel_fournisseur.
    C'était dans le cadre de l'héritage de Société vers client et vers fournisseur.

    On va descendre jusqu'aux tables en reprenant mon explication du précédent message :
    Tu peux donc mettre en oeuvre un héritage de tables :
    Client -(1,1)----Etre-------0,1- Societe
    Fournisseur -(1,1)----Etre----0,1-|

    L'entité "Societe" sera pourvue des attributs suivants : (ID_societe, Nom_societe, Adresse_societe, CP_societe)
    L'entité "Fournisseur" ne sera pourvue que de l'attribut (Tel_fournisseur).
    Je vais même compléter un peu le MCD ci-dessus pour y faire figurer la ville :
    Client -(1,1)----Etre-------0,1- Societe -1,1----Situer----0,n- Ville
    Fournisseur -(1,1)----Etre----0,1-|

    Remarque : il n'y a plus qu'une association avec la ville.

    Ce MCD génère les tables suivantes :
    Ville (ID_Ville, Nom_Ville)
    Societe (ID_societe, ID_Ville, Nom_societe, Adresse_societe, CP_societe...)
    Fournisseur (ID_Societe, Tel_fournisseur)
    Client (ID_Societe)

    5) J'ai crée une entité Constructeur_pocket et je l'ai associé avec l'entité Pocket
    Il faut souligner ID_constructeur_pocket qui est l'identifiant de l'entité.

    6)J'ai supprimé l'association appeler qui relie l'entité Contact_client avec l'entité Technicien. J'ai relié l'entité Appel avec l'entité Technicien grace à l'association appeler.
    Je lis le MCD :
    " Un appel appelle de un à plusieurs techniciens et un technicien appelle de un à plusieurs appels. "
    Ça fait bizarre non ?
    En quoi l'heure de début et de fin de l'appel sont-ils importants ? Ne vaudrait-il mieux pas enregistrer la date et l'heure de l'appel et le début et la fin du dépannage ?
    Que signifie l'attribut Termine ? Si l'appel à une heure de fin, c'est qu'il est terminé non ?
    Pourquoi y a t-il 4 attributs en clé primaires dans l'entité Appel, dont 3 clés étrangères qui ne devraient pas être là ?

    Je crois que le MCD devrait être celui-ci :
    Contact_client -0,n----Envoyer----1,1- Appel -1,1----Recevoir----0,n- Technicien

    7)J'ai supprimé l'attribut Description du probleme de l'entité Appel et je l'ai mis dans l'entité Panne.

    Et je complèterais le MCD précédent en reliant la panne à l'appel au lieu de l'associer au contact_client.
    Contact_client -0,n----Envoyer----1,1- Appel -1,1----Recevoir----0,n- Technicien
    Panne -1,n----Concerner----1,1--------------|
    J'imagine ici qu'il peut y avoir plusieurs appels pour une panne.

    8) J'ai supprimé ID_societe de l'entité Pocket.


    9)J'ai raccordé le fournisseur au reste du MCD par le mécanisme de l'externalisation de la Ville (entité) et du Constructeur_Pocket(entité).
    Dans ton précédent message, tu as écrit ceci :
    Les fournisseurs vendent les pockets à la société dans laquelle j'effectue mon stage.
    En fait, quel est le rapport entre les appels pour panne et les fournisseurs de pockets ?
    Les fournisseurs doivent-il vraiment figurer dans ce MCD ?


    10)J'ai modifié les cardinalités de l'association envoie.
    OK Voir plus haut mon dernier avis sur cette ensemble autour d'Appel.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  8. #8
    Membre du Club Avatar de Gobelins
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 171
    Points : 60
    Points
    60
    Par défaut
    Mon maitre de stage m'a déclaré aujourd'hui que je devrai supprimer l'entité Fournisseur, l'entité Constructeur_pocket. Au début, il m'a demandé que ces deux entités figurent dans le MCD, et quand je lui expliquait que je ne pouvais pas raccorder ces deux entités au reste du MCD. Il m'a demandé de les enlever pour l'instant et après on verra si on peut les raccorder.

    Par ailleurs, mon maitre de stage m'a demandé de remplacer l'entité société par l'entité client. Il a déjà vu mon premier MCD, cependant celui d'aujourd'hui (nouveau, modifié) il ne l'a pas encore vu.

    Je vais construire mon troisième MCD avec cinq entités (Client, Conatct_client_, Appel, Panne et Technicien). Je vais retirer les entités suivantes: Ville, Founisseur, Pocket et Constructeur_Pocket).

    Est-ce que vous etes d'accord avec moi d'après ce que je viens d'écrire. J'attends vos propositions.

  9. #9
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Pourquoi retirer Ville ?

    Si ton "Maître" de stage te demande son utilité, tu lui demanderas comment les gens vont écrire Saint-Étienne.
    Comme je l'ai écrit ?
    Saint-Etienne ?
    Saint Etienne ?
    St-Etienne ?
    St Etienne ?

    Voire même avec des fautes ?

    L'avantage d'une entité/table Ville est qu'on peut la pré-remplir avec la bonne orthographe et ensuite proposer le contenu à l'utilisateur pour qu'il choisisse la ville au lieu de la saisir potentiellement avec des fautes.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  10. #10
    Membre du Club Avatar de Gobelins
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 171
    Points : 60
    Points
    60
    Par défaut
    vous allez comprendre le context danslequel j'effecrtue le MCD.
    Je veux dire par là que je n'ai pas de cahier des charges. C'est tout, par conséquent, je travaille sans cahier des charges.

    Je n'ai rien compris à ton dernier message qui était autour de la ville. Que voulez-vous dire? Pourquoi vous avez utilisé des termes bizarres comme saisir la bonne orthographe, et je ne voyais aucun rapport avec le MCD. Au lieu de me déclarer son tutilité et son intéret dans le MCD, tu me disais, bonne orthographe.

    Mon maitre de stage ne m'a pas proposé l'entité Ville. C'est vous qui m'avez proposé l'entité Ville.

    Je vasi refaire le MCD et je vous le montrerai.

  11. #11
    Membre du Club Avatar de Gobelins
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 171
    Points : 60
    Points
    60
    Par défaut
    En quoi l'heure de début et de fin de l'appel sont-ils importants ? Ne vaudrait-il mieux pas enregistrer la date et l'heure de l'appel et le début et la fin du dépannage ?
    Heure_debut: l'heure de l'appel et en meme temps l'heure de début de dépannage

    Heure_fin: l'heure de fin de dépannage.

    J'ai mis dans l'entité Appel:
    Heure_debut_depannage
    Heure_fin_depannage

    Que signifie l'attribut Termine ?
    Termine: si termine=0 ça veut dire en cours, si termine=1 ça veut dire historique

    J'ai modifié encore une fois le MCD qui est en pièce jointe.

  12. #12
    Membre habitué Avatar de chewing-gum
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2009
    Messages : 105
    Points : 137
    Points
    137
    Par défaut
    Bonjour,

    Par ailleurs, mon maitre de stage m'a demandé de remplacer l'entité société par l'entité client. Il a déjà vu mon premier MCD, cependant celui d'aujourd'hui (nouveau, modifié) il ne l'a pas encore vu.
    S'il ta demandé de remplacer l'entité "société" par "client", il faut se poser cette question : Une société est-elle toujours considérée comme cliente ?

    Si c'est le cas, alors l'association "CLIENT 1,1 ------ 0,1 SOCIETE" ne devrait pas exister. Je crois que c'est CinePhil qui t'a proposé cette association mais cela me parait quand même bizarre.


    L'association APPEL 1,1 ------- 1,1 PANNE est, à mon avis, à modifier. J'aurais plutôt dit "qu'un appel concerne 1 ou plusieurs pannes, et que la panne est concernée par un appel".
    Ce qui donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    APPEL 1,N -------- 1,1 PANNE
    Toutefois, si tu considères que pour un appel, la société cliente n'indique qu'une seule panne, ça te donne plutôt ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    APPEL 1,1 -------- 0,N PANNE

  13. #13
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Gobelins Voir le message
    Je veux dire par là que je n'ai pas de cahier des charges. C'est tout, par conséquent, je travaille sans cahier des charges.
    Ce qui est une mauvaise pratique mais tu n'y peux sans doute rien.

    Je n'ai rien compris à ton dernier message qui était autour de la ville. Que voulez-vous dire? Pourquoi vous avez utilisé des termes bizarres comme saisir la bonne orthographe, et je ne voyais aucun rapport avec le MCD. Au lieu de me déclarer son tutilité et son intéret dans le MCD, tu me disais, bonne orthographe.
    Du calme !
    C'est justement pour expliquer l'intérêt de l'entité Ville que je t'ai parlé d'orthographe !
    Si plus tard tu cherches tous les clients de Saint-Étienne mais que cette ville est écrite de 5 manières différentes dans la table des clients, tu n'auras pas tous les clients. Alors que dans une table des villes, Saint-Étienne n'y figurera qu'une seule fois avec la bonne orthographe. La table des clients contiendra autant de fois que nécessaire l'identifiant de la ville et on sera sûr de retrouver tous les clients de la ville désirée parce qu'ils auront tous la même valeur de clé étrangère.

    Mon maitre de stage ne m'a pas proposé l'entité Ville. C'est vous qui m'avez proposé l'entité Ville.
    Oui et je ne comprenais pas pourquoi tu l'avais supprimée. C'était la raison de mon message.

    Citation Envoyé par Gobelins Voir le message
    Heure_debut: l'heure de l'appel et en meme temps l'heure de début de dépannage

    Heure_fin: l'heure de fin de dépannage.

    J'ai mis dans l'entité Appel:
    Heure_debut_depannage
    Heure_fin_depannage
    Ceci laisse supposer que un appel correspond au lancement d'un dépannage et qu'un dépannage ne peut faire l'objet que d'un seul appel :
    Appel -1,1----Concerner----1,1- Dépannage

    Dans ce cas, il est d'usage de fusionner les deux entités Appel et Dépannage.

    S'il peut y avoir plusieurs appels pour un dépannage, alors le MCD devient celui-ci :
    Appel -1,1----Concerner----1,n- Dépannage

    Dans les deux cas, il serait plus opportun de placer les attributs du dépannage dans l'entité dépannage et non pas dans l'entité Appel. Si ce sont l'heure de début et de fin de dépannage, c'est à mettre dans l'entité dépannage.


    Termine: si termine=0 ça veut dire en cours,
    Je m'en serais douté !
    si termine=1 ça veut dire historique
    Et que veut dire "historique" ?

    Il y a toujours, dans ton nouveau MCD, cette armée d'attribut en clé primaire dans l'entité Appel !

    Il n'y a maintenant plus d'association entre le technicien et la panne. Cela veut-il dire que celui qui reçoit l'appel est forcément celui qui dépanne ?

    Ce dernier MCD serait simplifiable de cette façon :
    Client -1,n----Posséder----1,1- Contact_client -0,n----Déclarer----1,1- Panne -1,1----Dépanner----0,n- Technicien

    Dans l'entité Panne : ID_Panne, Description_panne, Solution_panne, Heure_appel, Heure_fin_depannage
    (toujours pas compris l'utilité de l'attribut Termine)

    La table Panne (ID_Panne, ID_contact_client, ID_technicien, Description_panne, Solution_panne, Heure_appel, Heure_fin_depannage)

    Citation Envoyé par chewing-gum Voir le message
    S'il ta demandé de remplacer l'entité "société" par "client", il faut se poser cette question : Une société est-elle toujours considérée comme cliente ?

    Si c'est le cas, alors l'association "CLIENT 1,1 ------ 0,1 SOCIETE" ne devrait pas exister. Je crois que c'est CinePhil qui t'a proposé cette association mais cela me parait quand même bizarre.
    Apparemment, toi non plus tu n'as pas compris l'héritage des tables !
    Mais il est vrai que maintenant que le fournisseur a disparu du domaine, l'héritage n'a plus lieu d'être et l'entité Client se suffit à elle-même.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  14. #14
    Membre habitué Avatar de chewing-gum
    Homme Profil pro
    Développeur Java
    Inscrit en
    Novembre 2009
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Novembre 2009
    Messages : 105
    Points : 137
    Points
    137
    Par défaut
    Citation Envoyé par CinePhil Voir le message
    Apparemment, toi non plus tu n'as pas compris l'héritage des tables !
    Mais il est vrai que maintenant que le fournisseur a disparu du domaine, l'héritage n'a plus lieu d'être et l'entité Client se suffit à elle-même.
    Désolé, je n'avais pas vu que c'était "au départ" un héritage.

    Mais je remettais plutôt en question cette association : A quoi sert l'entité CLIENT si toutes les sociétés sont des clientes ?
    Si toutes les societés sont obligatoirement des clientes, alors l'entité CLIENT ne sert à rien sur ce schéma. C'est en tout cas une remarque qui me parait pertinente.
    Par contre, si une société n'est pas obligatoirement cliente, je comprends tout à fait l'association et elle serait correcte.

  15. #15
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par chewing-gum Voir le message
    Mais je remettais plutôt en question cette association : A quoi sert l'entité CLIENT si toutes les sociétés sont des clientes ?
    C'est en substance ce que je dis dans ma réponse, le fournisseur ayant disparu du schéma, il n'y a plus que le client. Après, qu'on appelle l'entité "Societe" ou "Client"... ce n'est qu'une question de choix.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  16. #16
    Membre du Club Avatar de Gobelins
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 171
    Points : 60
    Points
    60
    Par défaut
    Je suis perdu avec le changement du MCD. Ajouter, retirer des entités, associations. A chaque fois, je modifie, je suis à mon quatrième MCD et je n'avance pas;

    J'ai modifié mon MCD et si vous voulez me proposer des modifications. Je voudrais que vous me détaillez le MCD de A à Z (différentes entités et associations avec leurs différents cardinalités et attributs). Honnetement je m'en sors pas avec ces modifications et je n'avance pas. J'espère que vous allez comprendre ce que je 'essaye de vous dire. Surtout mon maitre de stage me reproche de ne pas avoir fini mon MCD et j'ai mis beaucoup de temps. Je veux que ce soit la dernière modification.

    J'ai mis dans l'entité Appel 4 identifiants que vous me reprochez toujours l'écriture de ces identifiants. Qu'est-ce que je dois mettre? Proposez-moi des attributs à mettre?

  17. #17
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    RAPPEL :
    Les clés étrangères ne doivent pas être représentées dans un MCD ! Elles n'apparaissent qu'à la génération du MLD.
    => Retire ID_Ville de l'entité Client
    En dehors de cette correction, ne touche plus à la partie suivante :
    Ville -0,n----Situer----1,1- Client -1,n----Posseder----1,1- Contact_client

    --------------------------------------

    Tu ne nous as toujours pas dit quelle est la bonne règle de gestion :
    1) Un appel engendre une seule panne et une panne est engendrée par un seul appel.
    2) Un appel concerne une seule panne et une panne peut faire l'objet de plusieurs appels.

    Dans le cas 1), il faut fusionner les deux entités Panne et Appel en une seule, choisir de l'appeler "Panne" ou "Appel" et faire le MCD suivant (exemple avec entité Panne) :
    Contact_client -0,n----Déclarer----1,1- Panne

    Et dans ce cas il n'y a plus d'entité "Appel" !

    Dans le cas 2), les deux entités restent et il faut associer la panne, non pas au contact client mais à l'appel.
    Contact_client -0,n----Envoyer----1,1- Appel -1,1----Concerner----1,n- Panne

    => Retire ID_Societe, ID_Contact_client et ID_Technicien de l'entité "Appel"
    Du coup, l'entité Appel n'a plus que son identifiant. Reste t-elle utile ? Oui si on y ajoute par exemple l'heure de l'appel (qu'il faut rapatrier de l'entité Panne) et si on veut plus tard faire des statistiques sur le nombre d'appels par panne.

    ---------------------------------------------

    Ne touche plus à la partie suivante :
    Panne -1,1----Depanner----Technicien

    Pour autant qu'une panne ne soit toujours dépannée que par un technicien.

    ---------------------------------------------

    Tu vois qu'il reste des questions à résoudre pour finaliser ton MCD. Nous ne pouvons pas y répondre à ta place. C'est à toi de voir ça avec ton "maître" de stage qui semble pour le moment tout juste bon à t'engueuler parce que tu es trop long mais qui ne te donne pas toutes les infos !
    Alors tire lui les vers du nez ! C'est aussi ça le boulot de concepteur ! Tu es en stage donc tu es là pour apprendre. Bon courage !
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  18. #18
    Membre du Club Avatar de Gobelins
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 171
    Points : 60
    Points
    60
    Par défaut
    Pardonnez-moi de poser quelques questions, dans le but de comprendre.

    C'est quoi une clé primaire et une clé étrangère?
    Quelle est la différence entre une clé primaire et une clé étrangère?

    Quelles sont les règles pour lire un MCD?

    Est-ce qu'on lit le MCD de gauche vers la droite ou le contraire ou peut-on lire dans les deux sens?

    Est-ce qu'on lit le MCD de haut en bas ou dans le sens contraire?

    Exemple: on lit plutot : un technicien reçoit un appel et non pas le contraire.
    Egalement, un technicien dépanne la panne.

    Pour la gestion, j'ai choisi cette règle:

    Un appel concerne une seule panne et une panne peut faire l'objet de plusieurs appels.

    J'ai modifié encore une fois le MCD? Que pensez-vous? Est-ce que je le garde?

  19. #19
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Citation Envoyé par Gobelins Voir le message
    C'est quoi une clé primaire et une clé étrangère?
    Quelle est la différence entre une clé primaire et une clé étrangère?
    Wow ! Tu es sûr que tu a étudié les bases de données toi ?

    La clé primaire est la colonne ou l'ensemble de colonnes qui permet de définir de manière unique chaque ligne de la table, même en cas de jumeaux parfaits sur le reste des colonnes de celle-ci.
    Il est très recommandé que la clé primaire :
    - soit de type entier et auto-incrémentée pour les tables issues des entités du MCD :
    - soit constituée de l'ensemble des clés primaires des tables entrant en jeu dans l'association du MCD pour les tables associatives issues de ces associations.

    Une clé étrangère est une colonne faisant référence à la clé primaire d'une autre table.

    Exemple :
    Dans ton MCD, tu as cette association :
    Client -1,1----Situer----0,n- Ville

    Cela donnera les tables suivantes, avec la clé primaire soulignée et la clé étrangère en italique :
    Ville (ID_ville, Nom_ville)
    Client (ID_client, ID_ville, Nom_client, Adresse_client, CP_client)

    Les identifiants des deux entités (ID_ville et ID_client) sont les clés primaires des tables.
    Du fait de l'association à cardinalités (1,1 - 0,n), La table Client accueille une nouvelle colonne par rapport à l'entité dont elle est issue : ID_ville, qui est une clé étrangère faisant référence à la clé primaire de la table Ville.

    La structure ci-dessus est bien celle des tables ; n'ajoute pas la clé étrangère ID_ville dans l'entité Client de ton MCD !


    Quelles sont les règles pour lire un MCD?

    Est-ce qu'on lit le MCD de gauche vers la droite ou le contraire ou peut-on lire dans les deux sens?

    Est-ce qu'on lit le MCD de haut en bas ou dans le sens contraire?

    Exemple: on lit plutot : un technicien reçoit un appel et non pas le contraire.
    Egalement, un technicien dépanne la panne.
    Tu le lis dans tous les sens que tu veux !
    Mais une association se lit forcément dans les deux sens pour qu'elle prenne toute sa signification.
    L'association entre Client et Ville se lit de cette façon :
    " Un client est situé dans une seule ville et une ville peut héberger plusieurs clients. "

    La phrase ci-dessus s'appelle une règle de gestion et c'est avec des phrases de ce type qu'on peut construire sans ambiguïté un MCD.

    J'y ai souligné :
    - d'une part l'ensemble (est, une seule) qui donne les cardinalités 1,1 ;
    - d'autre part l'ensemble (peut, plusieurs) qui donne les cardinalités 0,n.

    Je constate au passage que as changé les cardinalités entre Client et Contact_client :
    Client -1,n----Posséder----1,n- Contact_client

    Ce morceau de MCD correspond à la règle de gestion suivante :
    " Un client possède de un à plusieurs contacts et un contact client appartient à un à plusieurs clients. "

    Est-ce la réalité ?

    Pour la gestion, j'ai choisi cette règle:
    Tu as choisi ?
    Cela correspond à la réalité ou tu as tiré à pile ou face ?

    Un appel concerne une seule panne et une panne peut faire l'objet de plusieurs appels.
    "Peut faire l'objet de plusieurs" => cardinalités 0,n !
    Pour les cardinalités 1,n que tu as mises dans ton MCD et qui me semble plus réalistes, à moins que les pannes puissent être signalées par un autre moyen qu'un appel, il faut que la phrase soit : "fait l'objet de un à plusieurs".

    J'ai modifié encore une fois le MCD? Que pensez-vous? Est-ce que je le garde?
    Je crois qu'on approche du but.

    Appel -1,1----Recevoir----1,n- Technicien

    Tout technicien est obligé de recevoir au moins un appel ?
    => Passe les cardinalités à 0,n côté technicien.

    Il te reste aussi à souligner tous les identifiants dans tes entités.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  20. #20
    Membre du Club Avatar de Gobelins
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Décembre 2007
    Messages
    171
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur

    Informations forums :
    Inscription : Décembre 2007
    Messages : 171
    Points : 60
    Points
    60
    Par défaut
    => Passe les cardinalités à 0,n côté technicien.
    Vous voulez dire qu'un technicien peut recevoir soit plusieurs panne soit aucune.

    Client -1,n----Posséder----1,n- Contact_client
    En fait, je n'avais pas l'intention de changer les cardinalités, je me suis trompé, au lieu d'écrire:

    Client -1,n----Posséder----1,1- Contact_client
    Pourriez-vous vori les commentaires sur le MCD ainsi qu ele schéma ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Nouveau "recordset" a partir d'une liste !!!
    Par AngelsGuardian dans le forum Access
    Réponses: 1
    Dernier message: 01/11/2005, 20h46
  2. Réponses: 32
    Dernier message: 22/09/2005, 10h40
  3. Réponses: 3
    Dernier message: 19/05/2005, 17h52
  4. Réponses: 3
    Dernier message: 25/04/2005, 15h26
  5. Trouver equation à partir d'une liste de points
    Par scarabee dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 27/05/2004, 17h05

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