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 :

Société de services


Sujet :

Schéma

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut Société de services
    Bonjour,

    Je vu selon vos commentaires que vous vous y connaissez.
    Je suis étudiant et je m'y connait pas trop en base de donnée, je dois réaliser un modèle conceptuel de donnée avec les cardinalités et leur significations et le modèle relationnel à partir de cette énoncé:

    Vous êtes dans une société de service, on vous demande de concevoir une base de données
    permettant le suivi et la facturation des interventions réalisées chez les clients. La société est
    susceptible de réaliser n'importe quelle intervention. Il faut impérativement que le modèle que
    vous allez concevoir puisse répondre aux questions suivantes, sans en oublier une partie :
    1. quel employé est dans quel service, et qui le dirige ?
    2. quel employé travaille pour quel client et à quelles dates ?
    3. quel client a demandé quelle intervention ?
    4. quels matériels sont à facturer, pour quelles interventions, et en quelles quantités ?
    5. quels matériels composent quels autres matériels ?
    Voici quelques informations supplémentaires que vous devez connaître :
    · un employé ne peut appartenir qu'à un seul service même si chaque service peut contenir
    une multitude d'employés.
    · à aucun moment un client ne peut prendre contact directement avec un employé.et
    inversement.
    · une intervention peut nécessiter plusieurs jours, et la présence de plusieurs employés. Il
    est aussi possible qu'une intervention ne nécessite la présence que d'un seul employé pour
    une seule journée. La présence des employés pour une intervention peut-être discontinue
    (vacances, week-end,...).

    J'ai commencé par trouvé les entités ,j'ai trouvé ceci :


    - employés
    - services
    - clients
    - matériels
    - factures


    Aider moi SVP je suis novice.

  2. #2
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Bonsoir.

    Première étape :

    Vous avez déjà commencé à repérer les différentes entités.

    3. quel client a demandé quelle intervention ?
    4. quels matériels sont à facturer, pour quelles interventions, et en quelles quantités ?
    Ces règles de gestion montrent également la présence d'une entité Intervention. Petite remarque sans importance sur les entité, je trouve plus cohérent de les nommer au singulier ...

    Deuxième étape :

    Maintenant que vous avez trouvé vos entités, il faut trouver leur propriétés.

    Les propriétés qui apparaissent avec évidence sont les suivantes :
    - la durée totale d'une intervention
    - la durée de travail pour chaque employé, pour chaque intervention
    - la quantité pour chaque matériel impacté, pour chaque intervention

    Il est évident que votre énoncé n'est pas très complet à ce sujet mais c'est aussi pour vous faire réfléchir à la pertinence des données que vous aller conserver.

    Par exemple, il apparait logique que l'on retienne le nom, prénom et les coordonnées d'un employé. Son identifiant peut être un matricule etc ...

    Le client quant à lui peut très bien être une personne physique ou morale, dans ce cas, il peut être nommé par une désignation (soit la concaténation du nom prénom, soit le numéro de SIRET, etc).

    N'oubliez pas non plus les identifiants.

    Troisième étape :

    Essayez également de rechercher les associations de vos entités à partir des règles de gestion. Par exemple :

    1. quel employé est dans quel service, et qui le dirige ?
    On voit ici une association diriger entre Employé et Service, de même qu'une association appartenir ou être dans.

    un employé ne peut appartenir qu'à un seul service même si chaque service peut contenir
    une multitude d'employés.
    Ici les cardinalités apparaissent clairement pour l'association appartenir.

    Je vous joins un début de solution mais je vous conseil d'abord d'essayer de faire ces différentes étapes par vous même. De plus, ce début de solution est à corriger/adapter/améliorer.

    Par exemple, on retrouve plusieurs propriétés commune entre les entités Client et Employe. Il serait donc pertinent de formaliser un héritage par partition de ces deux entités avec une entité mère Personne.

    L'entité Materiel y est également incomplète (je m'en suis aperçut après ) ... Et puis vérifiez la cohérence des cardinalités.

    Cordialement,
    Idriss
    Images attachées Images attachées  

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 629
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 629
    Points : 56 889
    Points
    56 889
    Billets dans le blog
    40
    Par défaut
    bonsoir,

    Citation Envoyé par gwadajm Voir le message
    · une intervention peut nécessiter plusieurs jours, et la présence de plusieurs employés. Il
    est aussi possible qu'une intervention ne nécessite la présence que d'un seul employé pour
    une seule journée. La présence des employés pour une intervention peut-être discontinue
    (vacances, week-end,...).
    Tel que c'est rédigé, je reformulerais ainsi:

    - Une intervention à une date peut faire intervenir plusieurs employés
    -Pour une même intervention, un employé peut intervenir à plusieurs dates.
    - Un employé à une date peut intervenir sur plusieurs interventions (don d'ubiquité n'est-ce pas ?)

    avec ça, pourquoi pas une association ternaire n-n faisant participer les entités employé, intervention et Date.

    Au niveau logique:
    intervenir(#idIntervention, #idEmploye, DateIntervention, HeureDebut, Heurefin,...)

    quelques trucs pour bien modéliser:
    Règle de gestion bien écrite => Modélisation des données facile

  4. #4
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Bonjour.

    Voici une correction de mon MCD précédant :

    - prise en compte de la remarque tout à fait exact de f-leb
    - ajout d'une généralisation (héritage) par partition (pas très joli sur le dessin ). Ce n'est pas une obligation.
    - l'entité Materiel est cette fois un peu plus remplies

    Remarques :
    - Ne tenez pas trop de mon choix des types de données (qui ne devrait normalement pas apparaitre sur votre schéma). En plus une bonne partie de ces types sont propres au SGBDR.
    - La date d'intervention pour chaque employé est représentée comme une entité de l'association Intervenir. Ceci dit, comme vous l'a montré f-leb, son identifiant fera partie de la clef de la relation correspondant à l'association mais ne deviendra pas une relation (c'est inutile) :

    Intervenir (id_p#, num_i#, date_i, heure_debut_i, heure_fin_i)

    Une fois le MCD terminé, n'oubliez pas qu'il vous est également demandé d'élaborer le modèle relationnel.

    Cordialement,
    Idriss
    Images attachées Images attachées  

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    bonjour ,

    grâce à votre aide j'ai pu commencé , j'ai réaliser ce schéma pour mon MCD quand pensez vous ?
    Images attachées Images attachées  

  6. #6
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Bonsoir.

    En effet, je n'ai pas traité la partie facturation. Les règles de gestion sont assez vague, cependant :

    4. quels matériels sont à facturer, pour quelles interventions, et en quelles quantités ?
    Il faut donc qu'on les retrouve à partir d'une facture. L'entité facture, si on la crée ne doit donc pas relier employé et client (vu qu'en plus plusieurs employé peuvent participer à une intervention) => c'est l'intervention qui doit être facturée au client.

    Alors à la place de l'association demander, on peut très bien mettre une association facturer (ou ne même pas prendre la peine de la renommer, ça marche aussi ) et ajouter une propriété montant_facturation et une propriété date_facturation dans l'entité intervention.

    Sinon créer une entité facture mais qui est reliée par l'entité intervention avec des cardinalités 1,1 de chaque côté ... ceci dit je préfère la première solution (créer une seconde entité signifie manipuler une table de plus dans l'avenir avec des requêtes plus lourdes en jointures, quand on peut l'éviter ...). Et si vous souhaitez enregistrer la date de règlement vous pouvez aussi ajouter une propriété date_reglement dans intervention ou dans facture selon votre choix.

    Vos et associations cardinalités en l'état (sur la partie qui n'est pas issue de mon MCD) ne sont pas cohérentes, ce que l'on en tire :

    Un employé n'établit qu'une et une seule facture qui peut concerner 0 ou plusieurs clients .
    Pas de cardinalités pour l'association payer (qui ne sert à rien d'ailleurs) ?

    Enfin n'oubliez pas de souligner les identifiants des entités.

    Cordialement,
    Idriss

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut ...
    comme ceci?
    Images attachées Images attachées  

  8. #8
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Oui exactement. Vous pouvez maintenant passer au modèle relationnel

    Idriss

  9. #9
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut ..
    bonjour,

    je suis tres novice et je comprend pas très bien la différence entre modèle conceptuel et relationnel. Pouvez vous m'expliquez comment on transforme le conceptuel en relationnel?

    Cdlt

  10. #10
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 003
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 003
    Points : 30 910
    Points
    30 910
    Billets dans le blog
    16
    Par défaut
    Bonsoir,


    Citation Envoyé par gwadajm Voir le message
    Je ne comprend pas très bien la différence entre modèle conceptuel et relationnel.
    Le modèle conceptuel de données (MCD) est essentiellement un diagramme représentant les données selon un certain formalisme (Merise dans votre cas) et qui à terme seront reprises dans des structures de tables au niveau dit logique, selon un modèle logique de données au sens de Merise (MLD).

    Exemple de MCD réalisé avec l’AGL Power AMC :


    Si on demande à Power AMC de traduire ce diagramme en diagramme logique (tabulaire), voici que l’on obtient :


    Ce qui se lit :
    Un client peut avoir passé des commandes (le mickey « » signifie 0,n) ;

    Une commande fait référence à exactement un client (le mickey « | » signifie 1,1) ;

    Une commande est composée d’au moins un article (le mickey « » signifie 1,n) ;

    Etc.
    On peut aussi préférer une représentation plus austère mais moins parlante :


    Les entités-types CLIENT, COMMANDE, ARTICLE sont devenues des schémas de tables au niveau logique (tabulaire). Les identifiants de ces tables (attributs soulignés) sont devenus des clés dites primaires (symbolisées par le mickey <pk>, abréviation de primary key).

    La patte merisienne connectant l’entité-type COMMANDE et l’association-type PasserCommande est porteuse d’une cardinalité 1,1 : elle a donné lieu à une contrainte référentielle symbolisée par le lien connectant des tables COMMANDE et CLIENT. Simultanément, l’attribut ClientId de la table CLIENT a été recopié dans la table COMMANDE. Le mickey <fk> qui l’accompagne signifie que l’attribut ClientId fait l’objet d’une clé étrangère (foreign key) : la contrainte ainsi exprimée signifie que les valeurs prises par l’attribut ClientId de la table COMMANDE ne peuvent être que des valeurs prises par l’attribut ClientId de la table CLIENT.

    Contrairement à l’association-type PasserCommande, l’association-type Composer ne fait pas l’objet d’une clé étrangère mais d’une table, parce qu’une commande fait référence à plus d’un article et réciproquement. Par définition, la clé de la table Composer est constituée de l’ensemble des attributs qui composent les clés des tables connectées, en l’occurrence COMMANDE et ARTICLE. L’association-type Composer étant porteuse de la propriété (ou attribut) Quantite, à son tour la table Composer est aussi porteuse de cet attribut.


    Cas de la généralisation/spécialisation (héritage)

    Votre MCD comporte une généralisation des clients (entité-type CLIENT) et des employés (entité-type EMPLOYE) donnant lieu à une entité-type PERSONNE dont les attributs valent simultanément pour les clients et les employés CLIENT et EMPLOYE.




    Au niveau du MLD, les trois entités-types donnent chacune lieu à une table. La clé de la table PERSONNE est recopiée dans les tables CLIENT et EMPLOYE :



    Cas de la pseudo entité-type DATE :

    Votre MCD comporte cette entité-type. Il faut bien savoir que sa présence est une conséquence de la règle merisienne selon laquelle l’identifiant d’une association-type est composé des identifiants des entités-types connectées : le seul moyen de faire participer la date à l’identifiant de l’association-type consiste en conséquence en une astuce vaseuse, à savoir mettre en œuvre cette prétendue entité-type DATE et la brancher sur l’association-type. La règle merisienne aurait pu être autre, mais en débattre nous entraînerait loin, du côté de l’aménagement du métamodèle...
    En tout cas, une chose est sûre, au niveau logique il n’y a pas de table DATE (le type DATE suffit amplement !) Parmi ses attributs, votre table INTERVENIR comportera l’attribut DateIntervention, qui participe à la clé de la table, en compagnie des attributs Num_i (provenant de l’entité-type INTERVENTION) et Id_Personne (provenant transitivement de l’entité-type PERSONNE).

    Certains n’utilisent pas de représentation graphique et usent de conventions pour traduire les objets sous forme de tables. Par exemple :
    PERSONNE {PersonneId, PersonneTel, PersonneAdresse}

    CLIENT {PersonneId, RaisonSociale, NoSiren}

    Etc.
    Ici, façon CinePhil, les clés primaires sont soulignées, les clés étrangères en italiques (la combinaison des deux est évidemment possible, comme dans le cas de la table CLIENT). Cette façon de procéder est courante. Il existe aussi pas mal de variantes. Par exemple :
    VAR BASE RELATION PERSONNE {PersonneId, PersonneTel, PersonneAdresse}
    KEY {PersonneId} ;

    VAR BASE RELATION CLIENT {PersonneId, RaisonSociale, NoSiren}
    KEY {PersonneId}
    KEY {NoSiren}
    FOREIGN KEY {PersonneId} REFERENCES PERSONNE ;

    Etc.
    Pour mémoire : l’expression « Modèle relationnel » dont vous faites mention est impropre, car le modèle relationnel est une théorie, la théorie relationnelle, que Ted Codd a inventée en 1969 et renforcée en 1970. Le papier célèbre correspondant a pour titre : A Relational Model of Data for Large Shared Data Banks.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  11. #11
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir,



    Le modèle conceptuel de données (MCD) est essentiellement un diagramme représentant les données selon un certain formalisme (Merise dans votre cas) et qui à terme seront reprises dans des structures de tables au niveau dit logique, selon un modèle logique de données au sens de Merise (MLD).

    [/url][/i].


    Bonsoir ,

    tous d'abord je tien à vous remerciez pour toute les infos qui vous m'avez transmis pour réaliser mon schéma.

    Avec vos infos j'ai réaliser ce-ci dite moi si j'ai bien comprend.

    "Ps: j'ai réaliser le schéma de deux façons différente.

    Cdlt,
    Images attachées Images attachées   

  12. #12
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 003
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 003
    Points : 30 910
    Points
    30 910
    Billets dans le blog
    16
    Par défaut
    Bonsoir gwadajm,


    Un seul diagramme logique suffit. Ne conservez que le 1er des deux que vous avez fournis. Il vous manque des billes pour représenter correctement le 2e, on pourra le reprendre quand le 1er sera valide...


    Une personne est un client ou un employé (et non pas un employer, mot qui est un verbe).
    =>
    Remplacer le nom de la table : Employé au lieu de Employer.


    A propos des clés primaires :

    Je rappelle que le rôle de ce type de clé est de garantir le principe d’unicité : si dans la table PERSONNE le singleton {id_personne} est clé primaire, alors l’attribut id_personne ne peut prendre qu’une seule fois la valeur 1, une seule fois la valeur 2, ..., une seule fois la valeur n. Ce principe d’unicité vaut pour chaque clé de chaque table.

    En réalité, du point de vue de la théorie relationnelle, le respect du principe d’unicité interdit la présence de lignes en double dans la table.

    Je rappelle aussi que le principe d’unicité est accompagné de celui d’irréductibilité : toujours dans le cas de la table PERSONNE, la paire {id_personne, Tel_personne} garantit l’absence de lignes en double, mais ne garantit pas l’absence de valeurs en double pour l’attribut id_personne : on doit donc réduire la paire au singleton {id_personne} parce que non seulement l’unicité des valeurs prises par l’attribut id_personne est garanti, mais a fortiori celui de l’unicité des lignes.

    Les principes d’unicité et d’irréductibilité peuvent jouer plusieurs fois pour une même table. Ainsi {id_personne} est clé primaire de la table CLIENT, mais si vous y faisiez figurer le numéro Siren des entreprises (attribut NoSiren}, alors les principes d’unicité et d’irréductibilité seraient également applicables, auquel cas on définirait une clé dite alternative {NoSiren}.


    Table SERVICE :

    Vous avez souligné les attributs Num_service et id_personne, ce qui signifie que la clé primaire de la table est représentée par la paire {Num_service, id_personne}. Ceci permet en fait de faire en sorte que chaque employé de l’entreprise puisse appartenir à chaque service :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Num_Service    id_personne    Nom_service
              1              1    Industrie
              1              2    Industrie
              1              3    Industrie
            ...            ...    ...
              2              1    Formation
              2              2    Formation
              2              3    Formation
            ...            ...    ...
    Traduit dans la langue du Relationland, cela donne (compte non tenu des clés étrangères) :
    SERVICE {Num_Service, id_personne, Nom_service}
    KEY {Num_Service, id_personne} ;
    Alors que la paire {Num_Service, id_personne} est réductible :
    SERVICE {Num_Service, id_personne, Nom_service}
    KEY {Num_Service} ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Num_Service    id_personne    Nom_service
              1              1    Industrie
              1              2    Industrie
              1              3    Industrie
            ...            ...    ...
              2              4    Formation
              2              5    Formation
              2              6    Formation
            ...            ...    ...
    Mais cette fois-ci, il ne peut y avoir qu’une seule personne par service, on supposera qu’il s’agit de celle qui dirige le service (cela dit, dans votre MCD, une personne peut diriger plusieurs services). Mais où sont passées les autres personnes ? Bien entendu dans la table EMPLOYE, laquelle doit comporter une référence (clé étrangère) à la table SERVICE.

    Dans la langue du Relationland (avec prise en compte des clés étrangères) :

    SERVICE {Num_Service, id_personne, Nom_service}
    KEY {Num_Service}
    FOREIGN KEY {id_personne} REFERENCES EMPLOYE {id_personne} ;

    EMPLOYE {id_personne, Nom_emp, Prenom_emp, tel_portable, Num_service}
    KEY {id_personne}
    FOREIGN KEY {id_personne} REFERENCES PERSONNE {id_personne}
    FOREIGN KEY {Num_service} REFERENCES SERVICE {Num_service} ;
    Exemple :

    Table SERVICE (Francis Dac et Pierre Blanche dirigent respectivement les services Industrie et Formation) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Num_Service    id_personne    Nom_service
              1              4    Industrie
              2              5    Formation
            ...            ...    ...
    Table EMPLOYE :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    id_personne    Nom_emp    Prenom_emp    tel_portable    Num_service
              2    Haddock    Archibald     0634567890                1
              3    Dupont     Carole        0623456789                1
              4    Dac        Francis       0645678901                1
            ...    ...        ...           ...                     ...
              1    Martin     Alain         0612345678                2
              5    Blanche    Pierre        0656789012                2
              6    Martin     Louis         0667890123                2
            ...    ...        ...           ...                     ...
    A vous de corriger la structure de vos tables SERVICE et EMPLOYE ainsi que les liens qui les unissent.

    N.B. Par convention, quand on souligne des attributs dans un diagramme, implicitement on signifie que ces attributs composent la clé primaire. Dans le cas de la table SERVICE, vous avez souligné les attributs Num_service et id_personne, en conséquence, le mickey « <pk> » devrait figurer deux fois. Inversement, si vous considérez que c’est {id_personne} qui est clé primaire, alors il ne faut pas souligner Num_service. A cette occasion, je note que selon votre MCD, une personne peut diriger plusieurs services. Si vous préférez qu’une personne ne dirige au plus qu’un service, on reverra la modélisation.

    Pour que vous compreniez mieux tout cela, il serait bon que vous définissiez la structure de la table SERVICE dans la langue du Relationland (sans oublier les clauses KEY et FOREIGN KEY).

    Tables INTERVENTION et INTERVENIR :

    Que vient faire l’attribut Date_intervention dans la table INTERVENTION ? Une fois de plus, il serait bon que vous définissiez la structure de ces tables dans la langue du Relationland (y-compris les clauses KEY et FOREIGN KEY).

    Table COMPOSER :

    Vous avez oublié cette table (dérivée de l’association-type Composer du MCD), il faut la faire figurer. Vous pouvez vous inspirer de cet exemple de nomenclature.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  13. #13
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir gwadajm,


    Un seul diagramme logique suffit. Ne conservez que le 1er des deux que vous avez fournis. Il vous manque des billes pour représenter correctement le 2e, on pourra le reprendre quand le 1er sera valide...

    [/url].
    bonsoir j'ai réalisé quelque modification à mon schéma , je crois pas avoir tous comprend ...
    Images attachées Images attachées  

  14. #14
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 003
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 003
    Points : 30 910
    Points
    30 910
    Billets dans le blog
    16
    Par défaut
    Bonsoir gwadajm,


    L’orientation des liens de la nomenclature est à l’envers. En plus, il faudrait que vous y précisiez le rôle de chaque patte de relation.

    Il manque toujours une relation entre SERVICE et EMPLOYE. Selon la relation existante, un service est une propriété multivaluée d’un employé (comme une ligne facture est une propriété multivaluée de la facture).

    L’attribut Date_intervention n’est pas à sa place.


    Avant de poursuivre, il faudrait que vous commenciez par lire par exemple l’article "Conception d'une base de données" par Cyril GRUAU : http://cyril-gruau.developpez.com/merise, notamment le paragraphe III-C.
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  15. #15
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir gwadajm,


    L’orientation des liens de la nomenclature est à l’envers. En plus, il faudrait que vous y précisiez le rôle de chaque patte de relation.

    Avant de poursuivre, il faudrait que vous commenciez par lire par exemple l’article "Conception d'une base de données" par Cyril GRUAU : http://cyril-gruau.developpez.com/merise, notamment le paragraphe III-C.
    Merci pour tout vos commentaire cela m'a été très utile. J'ai un dernier petit problème j'aimerais réaliser un requête SQL permettrait de connaitre le nombre de pièces élémentaires utilisées pour une intervention du client X.

  16. #16
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 003
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 003
    Points : 30 910
    Points
    30 910
    Billets dans le blog
    16
    Par défaut
    Bonsoir gwadajm,


    Où en est votre MLD ? Le dernier que vous aviez présenté n’était pas satisfaisant. Je rappelle les commentaires que j’avais faits :

    Citation Envoyé par fsmrel Voir le message

    L’orientation des liens de la nomenclature est à l’envers. En plus, il faudrait que vous y précisiez le rôle de chaque patte de relation.

    Il manque toujours une relation entre SERVICE et EMPLOYE. Selon la relation existante, un service est une propriété multivaluée d’un employé (comme une ligne facture est une propriété multivaluée de la facture).

    L’attribut Date_intervention n’est pas à sa place.
    Je rappelle aussi que votre table COMPOSER est incomplète : elle doit comporter deux attributs, l’un représentant le composant, l’autre le composé, comme dans l’exemple de nomenclature que je vous avais suggéré d’étudier.

    En conséquence on attend votre dernier MLD. Concernant votre requête SQL, il faudrait que vous présentiez ce que vous avez commencé à faire, même s’il s’agit seulement de la façon dont vous comptez vous y prendre : vous comprendrez qu'on ne vous rendrait pas service en faisant le travail à votre place...

    En tout cas, je vous souhaite bon Noël (on a jusqu’au 31 pour le faire ).
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  17. #17
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Bonsoir gwadajm,


    Où en est votre MLD ?

    En tout cas, je vous souhaite bon Noël (on a jusqu’au 31 pour le faire ).
    Je pensais vous avoir montré ma dernière version de mon schéma ,la voici donc.

    En ce qui concerne ma requête je suis pas vraiment doué mais j'ai fais ceci.


    SELECT "Num_materiel"
    FROM "Materiel"
    WHERE "Num_intervention" IN ('Client X')

    Je pense pas avoir tous compris au requête. Aidez moi SVP
    Images attachées Images attachées  

  18. #18
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 003
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 003
    Points : 30 910
    Points
    30 910
    Billets dans le blog
    16
    Par défaut
    Bonsoir gwadajm,


    Table INTERVENIR :

    L’entité-type DATE du MCD n’a pas donné lieu à une table, ce qui est légitime, puisque DATE n’est en fait qu’un type. L’attribut Date_Intervention doit donc être débarrassé de la scorie <fk>.


    Table COMPOSER :

    Le composant (Id_Composant) fait référence à un matériel, même chose pour le composé (Id_Composé) : les arcs Composant et Composé sont à orienter dans le même sens (cible : le référencé). En plus, du fait des règles de dérivation des associations-types la clé primaire de la table COMPOSER est composée de la paire {Id_Composant, Id_Composé} : exit l’attribut Num_m.


    Table MATERIEL :

    Un matériel à un code barre, mais pas de nom. Est-ce voulu ?


    Table EMPLOYÉ :

    Suite à la dérivation de l’association-type APPARTIENT, l’attribut Num_service de la table EMPLOYÉ fait référence à l’attribut Num_service de la table SERVICE et donne donc lieu à clé étrangère (<fk>).


    Table SERVICE :

    D’après l’association-type DIRIGER du MCD, un service a un seul directeur. La clé primaire de la table SERVICE n’est composée que du seul attribut Num_service. L’attribut Id_personne ne donne lieu qu’à clé étrangère (elle référence l’employé qui dirige le service).


    La requête SQL :

    Vous cherchez le nombre de pièces élémentaires : on peut supposer qu’il s’agit d’exploiter l’attribut quantite_mat de la table CONCERNE. Vous intéressez-vous à une pièce en particulier ou (juste un peu plus compliqué) à l'ensemble des pièces concernées (comme semble l’indiquer votre souhait) ?

    Quoi qu’il en soit, enlevez les guillemets dans votre requête.

    Vous faites référence à la seule table MATERIEL dans la clause FROM : les seuls attributs (ou plutôt colonnes en SQL) qui peuvent figurer dans les clauses WHERE et SELECT sont ceux qui appartiennent à l’en-tête de cette table, à savoir Num_m et Code_barre : la présence de Num_intervention et Num_Materiel est donc illégale. Si par exemple vous voulez que l’attribut Num_intervention figure dans la claque WHERE, la table qui l’héberge doit figurer dans l’énumération des tables dans la clause FROM, unies par l’opérateur JOIN.

    Un peu de rigueur : dans votre MLD, la table MATERIEL comporte l’attribut Num_m et vous l’appelez Num_Materiel dans la requête : n’utilisez qu’un seul nom.

    Pour écrire et donc tester des requêtes, utilisez un SGBD, par exemple SQL Server qui est gratuit.

    A suivre...
    (a) Faites simple, mais pas plus simple ! (A. Einstein)
    (b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
    => La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

    __________________________________
    Bases de données relationnelles et normalisation : de la première à la sixième forme normale
    Modéliser les données avec MySQL Workbench
    Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.

  19. #19
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    19
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2011
    Messages : 19
    Points : 4
    Points
    4
    Par défaut ...
    Citation Envoyé par fsmrel Voir le message
    Bonsoir gwadajm,

    Pour écrire et donc tester des requêtes, utilisez un SGBD, par exemple SQL Server qui est gratuit.

    A suivre...
    J'ai amélioré mon schéma selon vos dernier commentaire.

    Pour ma requête je ne suis pas vraiment doué , j'ai essayé de traduire ce que j'ai comprend , je pense pas que ce soit vraiment déjà sa...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     SELECT  Quantité
    FROM   Num_m  
    WHERE  Code_barre  IN ('Client X')
    JOIN  Num_intervention
    Images attachées Images attachées  

  20. #20
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : IS Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Points : 19 452
    Points
    19 452
    Par défaut
    Bonjour.

    Citation Envoyé par fsmrel Voir le message
    Pour écrire et donc tester des requêtes, utilisez un SGBD, par exemple SQL Server qui est gratuit.
    Ceci est un avis qui n'engage que moi : même si SQL server Express est une version gratuite de SQL server, on peux aussi recommander PostgreSQL aux débutants : c'est un SGBDR léger, multiplateforme et surtout libre et gratuit. Il est aussi rigoureux en terme de contraintes, de SQL standard et est très proche d'Oracle. Je le trouve assez performant (en tout cas je le préfère à MySQL).

    Bon ceci dit SQL server est très bien (je trouve juste que ça fait un peu trop pour faire des tests chez soi).

    @ gwadajm : il faut revoir la syntaxe des jointures :

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT ...
    FROM table1 t1 INNER JOIN table2 t2
        ON t1.colonne = t2.colonne
    WHERE ...

    Pour une jointure interne (le INNER est optionnel, faites un tour sur les tutoriels SQL et sur les documentations qui existent sur le web).

    Cordialement,
    Idriss

Discussions similaires

  1. Logiciel support client pour société de service
    Par Marquis78 dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 09/05/2012, 16h10
  2. Réponses: 0
    Dernier message: 09/03/2010, 13h11
  3. Société de service / Société de conseil
    Par hemalx dans le forum Emploi
    Réponses: 1
    Dernier message: 30/06/2008, 12h16
  4. Réponses: 4
    Dernier message: 22/06/2008, 01h45
  5. Société spécialité service informatique à valeur ajouté
    Par mamiberkof dans le forum Société
    Réponses: 5
    Dernier message: 03/01/2007, 12h56

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