Bonjour,
Il y a pas mal d'erreurs dans cette modélisation. Passons en revue les différentes entités énoncées.
VENUE
(que l'on peut traduire par Rencontre)
Envoyé par
xiii75
Venue (name_venue,date_venue,location_venue)
- C'est correct dans l'esprit.
- Le choix de la clé aurait pu être meilleur, par exemple : venue_no (= venue number).
- Pour rester conforme à la langue de Shakespeare, on pourrait reformuler cette relation comme suit :
VENUE (venue_no, venue_date, venue_location)
EVENT
Envoyé par
xiii75
Event (#name_event,event_class,event_distance,event_position)
- Même erreur de choix de clé.
- Le signe # indique généralement une clé étrangère, or name_event n'en est pas une.
- Oubli de l'attribut type d'arme :
Envoyé par
xiii75
EVENT – each event is specified in terms of the type of gun [...]
Ce qui donne, au premier abord :
EVENT (event_no, gun_type, range_distance, competitor_position)
- Mais il y a un autre oubli :
Envoyé par
xiii75
VENUE – The date and location of each event. Several events will be held at each venue
Ce qui signifie qu'une rencontre donne la date et le lieu de chaque événement, et que plusieurs événements se tiennent lors de chaque rencontre.
Par conséquent, la relation devient :
EVENT (event_no, gun_type, range_distance, competitor_position, #venue_no)
- On reviendra plus loin sur event_class.
COMPETITOR
(que l'on peut traduire par Concurrent)
Envoyé par
xiii75
Competitor (name_competitor,nu_competitor,#competitor_point,#name_event)
- La clé est bien choisie.
- #competitor_point n'est pas une clé étrangère.
- La présence de la clé étrangère #name_event signifie qu'un concurrent ne peut participer qu'à un seul événement. Certes, ce n'est pas précisé dans l'énoncé mais on peut raisonnablement penser qu'un concurrent participe à plusieurs événements.
La relation devient :
COMPETITOR (competitor_no, competitor_name, competitor_points)
COMPETITION
Envoyé par
xiii75
Competition (#name_event,#competitor_point,#event_class)
- La clé est la même que celle de la relation Event, pourtant une compétition n'est pas un événement. En effet :
Envoyé par
xiii75
COMPETITION – a selected set of events, [...] No single event will be a part of more than one competition
Traduction : Une compétition est un ensemble choisi d'événements. Aucun événement ne peut faire partie de plus d'une compétition. C'est clair :
COMPETITION (competition_no)
EVENT (event_no, gun_type, range_distance, competitor_position, #venue_no, #competition_no)
Envoyé par
xiii75
Each competition will be specified for a particular class of event (e.g. 303 rifle, 200m, prone).
Tiens, revoilà la classe d'événements. Il n'y a pas à tergiverser :
CLASS (class_no, gun_type, range_distance, competitor_position)
EVENT (event_no, #venue_no, #competition_no, #class_no)
COMPETITION (competition_no, #class_no)
Envoyé par
xiii75
in which competitors collect points towards an overall competition winner.
Les concurrents collectent des points au travers des compétitions auxquelles ils participent ; et il est évident qu'une compétition rassemble plusieurs concurrents. Il n'y a qu'une manière de modéliser cette règle :
POINTS (#competition_no, #competitor_no, competitor_points)
L'attribut competitor_points doit alors disparaître de la relation COMPETITOR qui devient :
COMPETITOR (competitor_no, competitor_name)
CLUB
Envoyé par
xiii75
Club (nu_competitor,name_club,club_trophies,#event_class)
- La clé est mal choisie.
- Le club n'a qu'un concurrent.
- Un club ne participe qu'à une seule classe d'événements.
- Quelles valeurs va bien pouvoir recevoir l'attribut club_trophies ?
Tout ceci est évidemment faux et à retravailler (un petit effort).
Envoyé par
xiii75
BANGERS is to be used [...] to monitor and manage the results of each event
Aïe ! Il faut comptabiliser les résultats de chaque événement. Par conséquent, la relation POINTS est à modifier comme suit :
POINTS (#event_no, #competitor_no, competitor_points)
Il reste maintenant à normaliser le modèle. De ce point de vue, il faut particulièrement regarder les DF entre competition_no, event_no et class_no.
Partager