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 :

Restaurant


Sujet :

Schéma

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 58
    Points : 13
    Points
    13
    Par défaut Restaurant
    Bonjour,

    J'ai besoin d'explication concernant le mcd ci dessous :



    - Reserver c'est bien une table?
    - Pk numResto et NumClient sont des clés primaires et etrangères?
    - reserver est il une association? une entité?

    Expliquer moi avec des mots simples :/

  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
    Bonjour,
    Dans un MCD, il n'y a pas de tables mais des entités types et des associations types.

    - Reserver c'est bien une table?
    - reserver est il une association? une entité?
    Dans le MCD, "réserver" est une association type.
    Ton document donne le modèle relationnel issu du MCD et dans ce modèle relationnel figure bien une table "Reserver".

    - Pk numResto et NumClient sont des clés primaires et etrangères?
    Oui. Comme les cardinalités maxi de l'association type "réserver" sont à "n", l'association type engendre la création d'une table associative dont la clé primaire est composée des clés étrangères faisant référence aux clés primaires des tables associées.
    Voir mon article pour toutes les cas nécessitant une table associative.
    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 à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 58
    Points : 13
    Points
    13
    Par défaut
    donc si je comprends bien, la cardinalité 0,n vers l'entité client et restaurant amène a creer une table reserver?
    Comment appelle t-on une table contenant une clé primaire et etrangère en même temps?
    Mais si je veux supprimer la table reserver avec mysql (easyphp) faudra t-il d'abord supprimer les clés primaires de l'entité client et restaurant?

    cordialement.

  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
    Citation Envoyé par MrMode Voir le message
    donc si je comprends bien, la cardinalité 0,n vers l'entité client et restaurant amène a creer une table reserver?
    Oui. Voir mon blog.

    Comment appelle t-on une table contenant une clé primaire et etrangère en même temps?
    Ce n'est pas tant le fait qu'elle comporte une clé primaire qui est composée de clés étrangères qui lui donne son nom mais le fait qu'elle soit issue d'une association du MCD. J'appelle ça une table associative mais c'est une appellation personnelle.

    D'autres tables peuvent avoir une clé primaire/étrangère : les tables filles dans le cas d'un héritage de données.

    Exemple...

    Règle de gestion :
    Une voiture est un véhicuel et un véhicule peut être une voiture.
    Un camion est un véhicule et un véhicule peut être un camion.

    MCD :
    voiture -(1,1)----être----0,1- vehicule
    camion -(1,1)----être----0,1--------|

    => Les cardinalités entre parenthèses signifient une identification relative de voiture et camion par rapport à vehicule. ces entités types n'ont pas d'identifiant propre.

    Tables :
    vehicule (veh_id, veh_immatriculation...)
    voiture (vtr_id_vehicule, vtr_nb_places, vtr_nb_portes...)
    camion (cmn_id_vehicule, cmn_tonnage...)

    => vtr_id_vehicule et cmn_id_vehicule sont à la fois clé primaire de leur table et clé étrangère référençant la clé primaire de la table vehicule.

    Mais si je veux supprimer la table reserver avec mysql (easyphp) faudra t-il d'abord supprimer les clés primaires de l'entité client et restaurant?
    Non.
    Si tu supprimes la table associative, tu supprimes en quelque sorte l'association du MCD.

    Si tu supprimes une réservation, ça ne supprime ni le client ni le restaurant. Heureusement !

    Par contre, si tu mets en place une contrainte d'intégrité associée à la clé étrangère (ON DELETE CASCADE), le fait de supprimer un client supprimera aussi toutes ses réservations et le fait de supprimer un restaurant supprimera aussi toutes les réservations faites à ce restaurant.
    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 à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 58
    Points : 13
    Points
    13
    Par défaut
    donc si on me pose une question du genre, pourquoi avoir creer une entité reserver comportant une clé primaire et clé etrangère?

    Je reponds simplement car les cardinalité sont de 0,n et que pour reserver il faut connaitre le num client et le num resto pour pouvoir acceder a la table reserver? juste?


  6. #6
    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 MrMode Voir le message
    donc si on me pose une question du genre, pourquoi avoir creer une entité reserver comportant une clé primaire et clé etrangère?

    Je reponds simplement car les cardinalité sont de 0,n et que pour reserver il faut connaitre le num client et le num resto pour pouvoir acceder a la table reserver? juste?

    Tu pourrais avoir (0,n - 1,1) et il n'y aurait pas de table associative.
    Ce qui fait qu'on crée une table associative, dans ce cas précis, est que les cardinalités maxis de chaque côté de l'association sont à "n".

    Encore une fois, voir mon blog pour tous les cas qui nécessitent une table associative.
    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 !

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 58
    Points : 13
    Points
    13
    Par défaut
    donc ce que je dis n'est pas correct? tu aurai dis quoi ?

  8. #8
    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 MrMode Voir le message
    donc ce que je dis n'est pas correct? tu aurai dis quoi ?
    À la question : "pourquoi avoir creer une entité reserver comportant une clé primaire et clé etrangère?"
    Je répondrais :
    1) Ce n'est pas une entité mais une table dans le modèle relationnel. Les entités (types) sont dans le MCD et n'ont pas de clé étrangère.
    2) J'ai créé une table "Reserver", qui est une table associative, car les cardinalités maxis des deux côtés de l'association du MCD sont à N. Comme chaque entité peut être associée plusieurs fois à l'autre, aucune ne peut se contenter d'une clé étrangère donc il faut une table associative pour matérialiser l'association du MCD dans la BDD.
    3) La clé primaire d'une table associative est composée de clés étrangères faisant référence aux clés primaires des tables associées.
    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 !

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2011
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 58
    Points : 13
    Points
    13
    Par défaut
    C'est compliqué comme même ^^ y a pas plus simple ?

  10. #10
    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
    Contente toi de dire, dans ce cas là, que c'est parce que les cardinalités maxi de l'association sont à N.
    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 !

Discussions similaires

  1. Problème de restauration de la bdd master
    Par biquetv dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 22/06/2004, 16h25
  2. Problème : restaurer les menus sous enlightenment
    Par dark_clem dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 04/06/2004, 18h48
  3. script de restauration
    Par nic_moq dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 27/05/2004, 15h42
  4. Impossible de restaurer une base
    Par bencot dans le forum InterBase
    Réponses: 5
    Dernier message: 27/11/2003, 11h12
  5. Sauvegarde / Restauration
    Par Sitting Bull dans le forum Administration
    Réponses: 2
    Dernier message: 13/06/2003, 13h46

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