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 :

Gestion d'un aeroclub [MCD]


Sujet :

Schéma

  1. #21
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 12
    Points
    12
    Par défaut
    J'ai l'impression que je progresse que je saisi de plus en plus de concept mais d'un autre côté cela devient plus trouble.Comment percevoir la necéssité de creer de nelles entités, comme typeAvion ou Facture ou Habilitation?L'une des regles à respecter est :tte attribue d'une entité qui peu être décomposé peut devenir une entité.Ok, donc pourquoi donc ne pas tout décomposer, quelles sont les attributs d'une relations qui sont "décomposable"?On devine ,certes,mais par exemple pourquoi ne pas décomposer l'Attribut caractéristiques de l'Entité Avion ou l'Attribut Divers de l'entité Aeroclub.
    De même vous m'avez conseiller de créer une entité Facture qui ferait le lien entre l'entité Pilote et Vol mais pourquoi ne pas se contenter de l' Entité Mvt-Compt-Hvol?

    J'ai encore plein de questions.


    En tout cas merci pour les reponses et la patience.
    Images attachées Images attachées  

  2. #22
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 12
    Points
    12
    Par défaut
    Ici je considere qu'un avion ne peut appartenir qu'a un seul aeroclub.

    - Je considère qu'un Un avion ne peut pas appartenir à plusieurs aéroclub en même temps .

    Je ne reprend pas les noms et prénoms du pilote, je fusionne ces attributs pour n'en donner qu'1 que je nomme ID_Pilote donc ces attributs n'existent plus.

    -Vous me conseillez d'éliminé l'attribut NBVol de l'entité Pilote puisqu'elle calculable, oui mais comment?


    Vous me conseillé de creer l'entité typeAvion car je suppose qu'elle est décomposable.Mais pourquoi ne pas se contenter de l'attribut Type de l'entité Avion en caracterisant le type de l'avion par un identifiant alphanumerique.En d'autres termes pourquoi j'ai besoin de creer l'entite TypeAvion?

    -Même remarque pour l'attribut caractéristiques que je dois transformer en entité.

    J'apporte comme vous me le proposez un nouvel attribut à l'Entite Avion(ID_Avion) qui sera l'identifiant unique puisque l'attribut immatriculation n'est pas explicite.

    Je suppose aussi que je facture celui qui pilote l'avion donc j'elimine les 2 attributs (Nom du pilote a Facturer et et nom du pilote aux commande du vol) pour reprendre l'attribut qui identifie le pilote de maniere certaine donc ID_Pilote qui est present aussi dans 2 autres entités(Pilote et Mvt_Compt_H_Vol). Au fait ce sont les mêmes ?Si oui il y a donc un lien entre ces Entités, donc commment materialiser ce lien concrètement?

  3. #23
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 12
    Points
    12
    Par défaut
    C'est étrange j'ai l'impression qu'a partir de ce simple exercice (enoncé plus haut) ou je pensais créer que 3 associations et me baser sur les Entité proposé par le prof je me retrouve a vouloir creer des entités et des associations partout , ou est la limites?

  4. #24
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 008
    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 008
    Points : 30 947
    Points
    30 947
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par bouba69
    J'apporte comme vous me le proposez un nouvel attribut à l'Entite Avion (ID_Avion) qui sera l'identifiant unique puisque l'attribut immatriculation n'est pas explicite.
    J’ai écrit que l’immatriculation permettait d’identifier un avion, mais aussi que l’utilisateur pouvait modifier cette donnée, suite par exemple à une saisie erronée. Dans le cas des bases de données en production, ceci peut être funeste. Je précise que l’attribut Immatriculation va donc rester identifiant, mais seulement alternatif, il va conserver sa propriété d’unicité et c’est lui qui sera le seul connu de l’utilisateur. En remplacement, on définit un identifiant AvionId (ou Id_Avion, peu importe) qui ne décrit rien et restera caché à l’utilisateur et dont la valeur sera fournie par le système, pour chaque avion. Cet identifiant servira par la suite pour les opérations de jointure au niveau des requêtes, disons SQL.


    Citation Envoyé par bouba69
    Vous me conseillé de creer l'entité typeAvion car je suppose qu'elle est décomposable.Mais pourquoi ne pas se contenter de l'attribut Type de l'entité Avion en caracterisant le type de l'avion par un identifiant alphanumerique.En d'autres termes pourquoi j'ai besoin de creer l'entite TypeAvion?
    Comme je vous l’ai dit, on ne sait pas ce que cache le type de l’avion. Pour s’en assurer, il faut interroger le maître d’ouvrage, en l’occurrence votre professeur, qui joue ce rôle. S’il vous dit que les abréviations ’"B" (pour Bombardier), "J" (pour Jet), etc. suffisent, ne créez pas d’entité-type. Mais il faudra bien disposer d’un système pour afficher l’information en clair pour l’utilisateur : ceci doit figurer dans la base de données et pas n’importe où. On commence à éprouver le besoin de mettre en place une entité-type ad-hoc. Surtout si en plus, comme dans un système professionnel, il faut pister les ajouts et modifications dans la base de données : quel utilisateur a créé tel type d’avion ? A quelle date ? A quelle date cette donnée prend-elle effet ? Etc.


    Citation Envoyé par bouba69
    C'est étrange j'ai l'impression qu'a partir de ce simple exercice (enoncé plus haut) ou je pensais créer que 3 associations et me baser sur les Entité proposé par le prof je me retrouve a vouloir creer des entités et des associations partout, ou est la limites?
    Vous savez, j’ai eu un jour à valider un MCD pondu par les ingénieurs d’un grand cabinet américain, pour le compte d’un grand groupe bancaire, et c’était affaire de pure forme, je devais normalement juste donner un coup de tampon après un entretien d'une matinée. Ces ingénieurs m’ont présenté un schéma tenant sur une page A4, comportant quelques entités-types et quelques associations-types. Au bout d’une heure, j’ai dû commencer à leur donner un cours. Quinze jours plus tard, ce schéma occupait quatre pages A3...
    Et là, ça n’était pas un simple exercice, il y allait de la crédibilité et de la survie d’un projet important. En ce qui vous concerne, nous n’aurons pas à aller aussi loin, mais sachez que vous êtes en train de stabiliser et déplier votre modèle. Ainsi, le type de l’avion a peu de chances d'être une simple propriété et vous êtes amené à en faire une entité-type (ne serait-ce que par précaution, c'est ce qu'enseigne l'expérience du terrain). Dans le même sens, je vous propose ci-dessous de remplacer une association-type par deux associations-types. L’énoncé d’un exercice de BTS n’est certes pas comparable à celui d’un grand projet, mais peu importe, il faut apprendre à construire du solide et du charpenté et non pas se contenter d’avoir l’éphémère et le léger comme but.


    De la représentation des entités-types et associations-types (suite)

    Considérez votre représentation graphique concernant les entités-types VOL et PILOTE, ainsi que l’association-type EFFFECTUE. La patte reliant PILOTE et EFFECTUE est porteuse d’une cardinalité 0,N, ce qui signifie qu’un pilote peut participer plusieurs fois à l’association-type, c'est-à-dire qu’un pilote peut effectuer plusieurs vols. Rien à dire.
    Côté VOL : la patte reliant VOL et EFFECTUE est porteuse elle aussi d’une cardinalité 0,N, ce qui signifie qu’un vol peut participer plusieurs fois à l’association-type, c'est-à-dire qu’un vol donné a pu être effectué par plusieurs pilotes. De tout cela, il ressort que plusieurs pilotes ont pu participer à un même vol. Ceci n’est pas incompatible avec l’énoncé initial, selon lequel un pilote est aux commandes et un autre sera facturé. Mais il n’y a pas trente-six pilotes pour le même vol, ni même trois, il n’y en a que deux.
    Cela peut s’exprimer par la représentation suivante (déplions...) :




    Considérez maintenant votre représentation graphique concernant les entités-types VOL et AVION, ainsi que l’association-type ASSOCIATION_5 (merci de changer ce nom). La patte reliant AVION et ASSOCIATION_5 est porteuse d’une cardinalité 0,N, ce qui signifie qu’un avion peut participer plusieurs fois à l’association-type, c'est-à-dire qu’un avion peut être utilisé pour plusieurs vols. Rien à dire.
    Côté VOL : la patte reliant VOL et ASSOCIATION_5 est porteuse elle aussi d’une cardinalité 0,N, ce qui signifie qu’un vol peut participer plusieurs fois à l’association-type, c'est-à-dire qu’un vol donné a pu être utilisé pour plusieurs avions, ce qui reconnaissez-le n’est pas conforme à votre énoncé initial.

    Vous devez arriver à une représentation du genre de celle-ci :



    Par ailleurs, votre entité-type VOL est porteuse de l’attribut IdPilote. Cet attribut n’est pas à sa place (voyez plus haut).
    (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.

  5. #25
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    J’ai écrit que l’immatriculation permettait d’identifier un avion, mais aussi que l’utilisateur pouvait modifier cette donnée, suite par exemple à une saisie erronée. Dans le cas des bases de données en production, ceci peut être funeste. Je précise que l’attribut Immatriculation va donc rester identifiant, mais seulement alternatif, il va conserver sa propriété d’unicité et c’est lui qui sera le seul connu de l’utilisateur. En remplacement, on définit un identifiant AvionId (ou Id_Avion, peu importe) qui ne décrit rien et restera caché à l’utilisateur et dont la valeur sera fournie par le système, pour chaque avion. Cet identifiant servira par la suite pour les opérations de jointure au niveau des requêtes, disons SQL.
    Identifiant caché?Je ne comprend pas.
    Citation Envoyé par fsmrel
    Comme je vous l’ai dit, on ne sait pas ce que cache le type de l’avion. Pour s’en assurer, il faut interroger le maître d’ouvrage, en l’occurrence votre professeur, qui joue ce rôle. S’il vous dit que les abréviations ’"B" (pour Bombardier), "J" (pour Jet), etc. suffisent, ne créez pas d’entité-type. Mais il faudra bien disposer d’un système pour afficher l’information en clair pour l’utilisateur : ceci doit figurer dans la base de données et pas n’importe où. On commence à éprouver le besoin de mettre en place une entité-type ad-hoc. Surtout si en plus, comme dans un système professionnel, il faut pister les ajouts et modifications dans la base de données : quel utilisateur a créé tel type d’avion ? A quelle date ? A quelle date cette donnée prend-elle effet ? Etc.

    Je vais essayer de poser des questions au prof , mais celui ci nous a bien dit que c'était à nous de definir le perimetre , sans plus de precisions.Donc si je creer une entité TypeAvion elle sera liee avec l'entite Avion?

  6. #26
    Membre expert
    Avatar de TheLeadingEdge
    Inscrit en
    Mai 2005
    Messages
    1 199
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1 199
    Points : 3 103
    Points
    3 103
    Par défaut
    Bonjour,
    C'est étrange j'ai l'impression qu'a partir de ce simple exercice (enoncé plus haut) ou je pensais créer que 3 associations et me baser sur les Entité proposé par le prof je me retrouve a vouloir creer des entités et des associations partout , ou est la limites?
    Un MCD se veut une abstraction proche du monde réel. Il permet de représenter des relations ''métier'' autant que structurelles. Si tu n'as pas une idée claire de ce que sont les objets de ton domaine et de la façon dont ils sont liés, je te conseille de ''descendre'' d'un étage et de commencer par l'étape DF. C ate permettra de découvrir les entités minimum et suffisantes.
    appartient-à (raison,immat)
    Peut-Piloter(nom,immat)
    Membre de (raison,nom)
    J'en remet une couche à propos de tes identifiants.
    D'habitude je suis plutôt partisan de l'utilisation d'identifiants naturels, mais ds ton exo. c'est une horreur. Si Immatriculation fera bien 1 clef candidate (relis qd même ce que FSMREL a écrit à ce propos), utiliser nom et raison c'est du grand n'importe quoi.

    Comme je vous l’ai dit, on ne sait pas ce que cache le type de l’avion.
    Je serai plus catégorique. L'absence d'une entité(-type ) résulte selon moi d'une lacune du dictionnaire des données. Un pilote n'est pas confirmé sur un avion (même s'il s'agit d'un proto) mais sur un type d'avion.
    Bon courage

  7. #27
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 12
    Points
    12
    Par défaut
    merci encore 100 fois pour votre aide.


    Voici donc une nouveau MCD avec les conseil que vous m'avez donner.Qu'en pensez vous?






    J'ai du mal avec 2 Entités que j'arrive par a associé.
    Images attachées Images attachées  

  8. #28
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    une facture est faite pour un vol


    Sinon, je ne vois toujours pas à quoi sert le Mouvement :s
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  9. #29
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par TheLeadingEdge Voir le message
    Bonjour,

    Un MCD se veut une abstraction proche du monde réel. Il permet de représenter des relations ''métier'' autant que structurelles.

    Pourais tu m'en dire plus.

    Je serai plus catégorique. L'absence d'une entité(-type ) résulte selon moi d'une lacune du dictionnaire des données. Un pilote n'est pas confirmé sur un avion (même s'il s'agit d'un proto) mais sur un type d'avion.

    Je ne comprend pas ce que tu veux dire.

  10. #30
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par hed62 Voir le message
    une facture est faite pour un vol


    Sinon, je ne vois toujours pas à quoi sert le Mouvement :s
    C'est une entité que le prof nous a donné dans l'exo.Tu me consil donc de la supprimer pour la remplacer par l'Entité-Type Facture.Ok Mais avec quels attributs? Exemple Facture(Id_Facture,DateFacture,MontantFacture....)

  11. #31
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par hed62 Voir le message
    une facture est faite pour un vol


    Sinon, je ne vois toujours pas à quoi sert le Mouvement :s
    Hed62 que penses tu de mon MCD par rapport a celui du debut?

  12. #32
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 008
    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 008
    Points : 30 947
    Points
    30 947
    Billets dans le blog
    16
    Par défaut
    Quelques précisions

    Dans le message Des relations entre entités-types, je vous ai précisé qu'il y avait une alternative à l'association-type VOL, à savoir l'entité-type VOL : on retient l'une ou l'autre, disons l'entité-type, en conséquence de quoi, l'association-type Piloter doit disparaître du MCD.
    En outre, prévoyez deux associations-types entre VOL et PILOTE puisqu’un pilote est aux commandes tandis que l’autre est chargé de donner à l’aéro-club les sous concernant le vol. (Cf. mon message concernant la représentation des entités-types et associations-types (suite) )

    Les cardinalités de l'association-type Correspond (entre TYPE_AVION et AVION) sont à remettre dans le bon sens. Selon votre MCD, un avion a plusieurs types et un type est pour un seul avion (voyez mon message Les entités-types "Type de..." )...

    Selon votre association-type Appartient_A, un avion appartient en même temps à plusieurs aéro-clubs, ce dont on peut douter. Un avion appartient actuellement, depuis une certaine date (devant faire l'objet d'une propriété) à un seul aéro-club. S'il faut connaître l'histoire de l'avion, savoir quels furent les aéro-clubs qui le possédèrent par le passé, il faut mettre en oeuvre une association-type à cet effet (avec notamment les dates de début et de fin d'appartenance).

    L'entité-type AEROCLUB est identifiée par la raison sociale : au niveau opérationnel (disons SQL), si celle-ci est changée (correction par exemple d’une faute d’orthographe), la modification devra être propagée dans les tables en relation avec la table AEROCLUB : je répète, mettez en œuvre un identifiant invariant, qui sera géré uniquement par le système et permettant d’effectuer les jointures entre tables. (Cf. mon message concernant l’identification des avions)


    Citation Envoyé par bouba69
    Identifiant caché? Je ne comprend pas.
    Ici, "caché" veut dire : non montré à l’utilisateur, lequel n’est concerné que par les propriétés naturelles, tandis que le développeur utilisera cet identifiant "caché" pour programmer les jointures entre tables. L’utilisateur accède aux données d’un avion à partir de l’immatriculation de celui-ci. Il accède aux données de l’aéro-club à partir de la raison sociale de celui-ci, etc. En revanche, une fois que l’utilisateur aura fourni la raison sociale de l’aéro-club, le système (qui suivra les requêtes rédigées par le développeur) utilisera l’identifiant pour se promener dans la base de données.


    Citation Envoyé par bouba69
    Je vais essayer de poser des questions au prof , mais celui ci nous a bien dit que c'était à nous de definir le perimetre , sans plus de precisions. Donc si je creer une entité TypeAvion elle sera liee avec l'entite Avion?
    Vous voilà maître d'ouvrage et d'oeuvre.
    Établir une relation entre TyeAvion et Avion, c’est ce que je vous ai conseillé jusque là. Comme je vous l’ai dit quelques lignes plus haut, pensez à remettre les cardinalités dans le bon sens.
    (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. #33
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 12
    Points
    12
    Par défaut
    si je me contente des entités de l'exo pour le MCD est ce que ça peut fonctionner.

  14. #34
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 008
    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 008
    Points : 30 947
    Points
    30 947
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par bouba69
    si je me contente des entités de l'exo pour le MCD est ce que ça peut fonctionner.
    Concernant la relation entre les aéro-clubs et les avions, vous pouvez ne pas gérer l'historique, mais alors modifiez votre MCD sur la base de la règle : "Un avion est la propriété d'un aéro-club" (sous-entendu "et d'un seul").

    Plus généralement, revoyez les cardinalités comme on vous l'a dit et montrez-nous une nouvelle version du MCD.
    (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. #35
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Concernant la relation entre les aéro-clubs et les avions, vous pouvez ne pas gérer l'historique, mais alors modifiez votre MCD sur la base de la règle : "Un avion est la propriété d'un aéro-club" (sous-entendu "et d'un seul").

    Plus généralement, revoyez les cardinalités comme on vous l'a dit et montrez-nous une nouvelle version du MCD.
    2 remarques:

    Si je modifie les cardinalités je ne peut pas creer la table appartient _à puisque'il me semble qu'il ya une regle qui dit en substance: une association devient table lorsque les cardinalités de 2 côtes sont 1,n....1,n.


    De même dans l'exo il est dit que l'aeroclub peut acheter et vendre des avions.Par consequent un avion peut ne pas appartenir qu' a un seul aeroclub.La notion de temps doit-elle prise en compte?
    Qu'en pensez_vous?

  16. #36
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 008
    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 008
    Points : 30 947
    Points
    30 947
    Billets dans le blog
    16
    Par défaut
    Citation Envoyé par bouba69
    Si je modifie les cardinalités je ne peut pas creer la table appartient _à puisque'il me semble qu'il ya une regle qui dit en substance: une association devient table lorsque les cardinalités de 2 côtes sont 1,n....1,n.
    C’est généralement ce qui se dit (cela vaut plus généralement pour les cardinalités x,N — x,N où x vaut 0 ou 1) mais au niveau tabulaire, vous êtes libre de faire comme vous l’entendez. Cela dit, les AGL suivent la règle générale. Supposons maintenant que, concernant l’association-type APPARTIENT_A, les cardinalités soient 1,N et 1,1 signifiant qu'un aéro-club possède plusieurs avions et qu'un avion appartient à un seul aéro-club. De la même façon, un avion est d’un seul type. Cela se traduira de la façon suivante au niveau tabulaire :
    AEROCLUB {AeroClubId, RaisonSociale, ...}

    TYPEAVION {TypeAvionIdId, Nom, ...}

    AVION {AvionId, AeroClubId, NoImmatriculation, TypeAvionId, DateAchat, ...}
    C'est-à-dire que l’association-type APPARTIENT_A aura donné lieu à l’injection de l’identifiant AeroClubId dans la table AVION, sous forme d’un attribut AeroClubId, dont les valeurs seront contraintes à être d’abord des valeurs de l’attribut AeroClubId de la table AEROCLUB (on parle alors d’intégrité référentielle). En effet, ça ferait désordre de trouver dans la table AVION des références à des aéro-clubs inexistants.
    Concernant les liens AVION - TYPEAVION, le principe est évidemment le même.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    AEROCLUB {AeroClubId, RaisonSociale, ...}
                 1        Hispano-Suiza 
                 2        Paris Vol Club
                 3        Air Développez
    
    TYPEAVION {TypeAvionIdId, Nom,...}
                   1          Piper J3       
                   2          Cessna-150     
    
    AVION {AvionId, AeroClubId, NoImmatriculation, TypeAvionId, DateAchat, ...}
             1          1        F-BUBS                2       2008-02-28  
             2          1        F-GRDR                2       2004-05-14  
             3          2        F-BFMZ                1       2004-07-12  
             4          1        F-BRBN                2       1997-01-24

    Citation Envoyé par bouba69
    un avion peut ne pas appartenir qu' a un seul aéroclub. La notion de temps doit-elle prise en compte?
    J’en ai déjà parlé. Si l’on part de la règle la plus plausible, à savoir que le même avion ne peut pas appartenir à deux aéro-clubs en même temps, on aura une table Historique venant compléter les tables précédentes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    AVIONHISTO {AvionId, AeroClubId, DateAchat,  DateVente...}
                  1          3       2001-12-17  2002-02-04            
                  1          2       2002-02-06  2008-02-27 
                 ...
    On apprend ainsi que le Cessna-150 immatriculé F-BUBS appartient depuis le 2008-02-28 à Hispano-Suiza, avant d’avoir été la propriété de Paris Vol Club (du 2002-02-06 au 2008-02-27) et de Air Développez (du 2001-12-17 au 2002-02-04).
    Je vous laisse le soin d’inférer la partie correspondante du MCD.
    (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. #37
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 12
    Points
    12
    Par défaut
    salut ,

    je viens de creer mes tables avec sql.qu'en pensez- vous?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE TABLE PILOTE(
    nom CHAR (30) ,
    prenom    CHAR (30),
    adresse   CHAR (30),
    NbHVol    INT ,
    Brevet    INT,
    position  FLOAT,
    Habil     CHAR (30),
    CONSTRAINTS pk_Pilote  PRIMARY KEY (nom)) ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE AVION (
    immat     INT  ,
    TYPE    CHAR (30) ,
    PRIX      FLOAT,
    COMPTH  INT,
    CARAC    CHAR (30),
    CONSTRAINTS pk_Avion  PRIMARY KEY (immat));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     CREATE TABLE AEROCLUB (
     raison  char(30) ,
     divers  char(30),
    CONSTRAINTS pk_AEROCLUB  PRIMARY KEY (raison));

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE  APPARTIENT_A (
    raison   CHAR (30) ,
     immat   INT   ,
    CONSTRAINT fk_APPARTIENT_A_immat_AVION FOREIGN KEY (immat)  REFERENCES  AVION (immat),
    CONSTRAINT fk_APPARTIENT_A_raison_AERO FOREIGN KEY (raison)   REFERENCES  AEROCLUB(raison));

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE  Peut_Piloter (
    nom   CHAR (30) ,
    immat   INT   ,
    CONSTRAINT fk_Peut_Piloter_immat_AVION FOREIGN KEY (immat)  REFERENCES  AVION (immat),
    CONSTRAINT fk_Peut_Piloter_nom_Pilote FOREIGN KEY (nom)   REFERENCES  PILOTE (nom));


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE  Membre_De(
    nom   CHAR (30) ,
    raison   CHAR   ,
    CONSTRAINT fk_Membre_De_raison_AERO  FOREIGN KEY (raison)  REFERENCES  AEROCLUB (raison),
    CONSTRAINT fk_Membre_De_nom_Pilote FOREIGN KEY (nom)   REFERENCES  PILOTE (nom));

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE TABLE MvtComptHvol(
    nom     CHAR (30)
    codmouv    CHAR(4),
    codnat      CHAR(4),
    datmouv         DATE,
    Montant  Float,
    CONSTRAINTS pk_MvtComptHvol PRIMARY KEY (nom));
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE TABLE VOL (
    immat   INT,
    nomVol CHAR (30),
    nomFact CHAR (30),
    datdeb   DATE,
    datfin    DATE,
    compthdep  INT,
    compthfin   INT);

    En fait je me suis basé sur l'exo sans ajouter d'entités.De même je me suis contenté des associations que l'exo me donne c'est à dire trois.Aussi, j'ai gardé les relations de l'exo. ou des attributs de l'entité n'appraissent plus( ce qui est me semble t-il logique).En fin d'apres les infos que j'ai il faut se contenter de du shema de l'exo sans ajouter quoique ce soit.


    De même c'est une remarque qui apparait en fin d'exo et que je n'ai pas afficher dit:" quand un nouveau vol a eu lieu, non seulement le compteur de l'avion de l'avion est mis à jour mais aussi le compte d'un pilote doit être debité du cout du vol.

    D'apres ce que je sais je peux traiter ce problème avec les triggers.Je rame je ne maitrise pas bien le concept.
    J'ai crée 2 triggers pour traiter les mises à jours du compte pilote(position comptable du pilote).Lequel des 2 est plus proches du BUT.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE TRIGGER MAJ_Compte  
    BEFORE INSERT ON VOL 
    FOR EACH  ROW
    begin
    UPDATE PILOTE SET Pilote.position = pilote.position -new.prix
    end;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE TRIGGER MAJ_Compte  
    BEFORE INSERT ON VOL 
    FOR EACH  ROW
    COMPTHFIN-COMPTHDEB:='C';
    P2:=P1-C;
    begin
    
     if old.postion='P1';
     then new.postion:='P2';
    end;

    J'ai l'impression que mon cerveau va exploser.

  18. #38
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 008
    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 008
    Points : 30 947
    Points
    30 947
    Billets dans le blog
    16
    Par défaut
    Avant d'effectuer le travail de finition avec des triggers, commencez par modéliser proprement, comme on vous l’a montré. Manifestement, la mayonnaise n’a pas pris. On a essayé de vous faire comprendre des points cruciaux tels que la façon d’identifier les entités-types, d’établir correctement les relations. Résultat, vous revenez à la case Départ, avec un :
    il faut se contenter de du shema de l'exo sans ajouter quoi que ce soit
    Donc n’ajoutons rien nous non plus. Espérons que les près de 40 messages échangés serviront aux autres. Et relisez tout cela plus tard, à tête reposée.

    Bon courage pour la suite.
    (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. #39
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 12
    Points
    12
    Par défaut
    salut,

    j'ai demandé au prof qui m'a dit de me contenter seulement des entités-Type de l'exo, voila.Je ne comprend pas pourquoi tu ne veux pas repondre alors que j'éspère seulement comprendre.Le MCD je l'ai fait, j'ai creer les tables avec les contraintes et maintenant je sollicite une aide sur les triggers.

    En tout cas merci pour les conseils qui m'ont fait progresser

  20. #40
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mars 2007
    Messages : 61
    Points : 12
    Points
    12
    Par défaut
    Citation Envoyé par fsmrel Voir le message
    Avant d'effectuer le travail de finition avec des triggers, commencez par modéliser proprement, comme on vous l’a montré. Manifestement, la mayonnaise n’a pas pris. On a essayé de vous faire comprendre des points cruciaux tels que la façon d’identifier les entités-types, d’établir correctement les relations. Résultat, vous revenez à la case Départ, avec un :

    Donc n’ajoutons rien nous non plus. Espérons que les près de 40 messages échangés serviront aux autres. Et relisez tout cela plus tard, à tête reposée.

    Bon courage pour la suite.
    Non il ne faut pas se vexer vous avez été tres gentil et patient dans vos reponses j'ai progressé et je peux vous dire que j'ai passé des heures à cogité sur les reponses que vous aviez faites.J'ai commencé a cherche dans tous les sens lorsque le prof nous dit qu'il faut se contenter des entités donné par l"exo.La preuve que j'ai pris vos remarques aux serieux c'est que j'ai refait à plusieurs reprises mon MCD.Donc SVP contunuez à m'aider .

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 3 PremièrePremière 123 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 31/08/2002, 21h37
  2. Gestion de matrice
    Par bzd dans le forum C
    Réponses: 4
    Dernier message: 12/08/2002, 18h19
  3. Réponses: 4
    Dernier message: 04/07/2002, 12h31
  4. c: gestion des exceptions
    Par vince_lille dans le forum C
    Réponses: 7
    Dernier message: 05/06/2002, 14h11
  5. gestion d'un joystick ...
    Par Anonymous dans le forum DirectX
    Réponses: 1
    Dernier message: 23/05/2002, 12h53

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