Octobre 2007 (énoncé et éléments de correction)
Transcription
Octobre 2007 (énoncé et éléments de correction)
Devoir surveillé de Base de données Eléments de correction Pierre Crescenzo, Philippe Lahire Exercice : Courses de chevaux Un parieur sur les courses de chevaux souhaite mémoriser celles-ci dans une base de données relationnelle, avec les paris qu'il a faits et les résultats. Plus précisément, il veut enregistrer les informations suivantes : • le nom et la date des courses ; • le numéro, l’année de naissance, le nom et la cote des chevaux partants ; • ses paris avec, pour chacun : le type de pari (couplé, tiercé, quarté, quinté, etc.), la somme jouée et les numéros joués dans l'ordre ; • les résultats des courses : ordre d'arrivée de chaque cheval et rapports (exemple : le tiercé de la course X rapporte 5000€ dans l’ordre) pour chaque type de pari ; • ses gains pour chaque course (ce qu’il a gagné avec tous ses paris sur cette course). Indications complémentaires : • le nom de course est unique. • le nom du cheval est unique mais pas son numéro qui est propre à chaque course comme sa cote. • le parieur peut faire plusieurs paris sur la même course avec un type identique ou différent. • Pour simplifier, on ne s’occupe pas des rapports dans le désordre. Remarques préalables 1. Répondez le plus précisément possible aux questions. Réfléchissez ! 2. Si vous pensez avoir détecté une ambiguïté voire une erreur, expliquez le problème. Puis levez l'ambiguïté ou corrigez l'erreur - dans l'esprit de la question, pas pour la contourner - puis répondez. Questions 1. Listez tous les attributs (dictionnaire de données) Nom-course, nom-cheval, numéro-pari, ordre-cheval-pari, ordre-cheval-course, type-pari, date-course, numéro-cheval, cote-cheval, somme-jouée, rapport, gain, année-naissance 2. Donnez la couverture minimale des dépendances fonctionnelles et les dépendances multivaluées. nom-course → date-course, gain nom-cheval → année-naissance nom-cheval, nom-course → numéro-cheval, cote-cheval, ordre-cheval-course numéro-pari → type-pari, somme-jouée, nom-course numéro-pari, numéro-cheval → ordre-cheval-pari nom-course, type-pari → rapport cote-cheval (7) Numéro-cheval (6) ordre-cheval-course (8) . Nom-course (2) Nom-cheval (1) Date-course (3) Année-naissance (5) . Gain (4) Numéro-pari (9) Ordre-cheval-pari (12) Type-pari (10) Somme-jouée (11) . Rapport (13) 3. Donnez toutes les clés candidates. Nom-course, nom-cheval, numéro-pari 4. Concevez le schéma entité-association. 1, n 1, n COURSE 1, n Nom-course Date-course gain Numéro-cheval Cote-cheval ordre-cheval-course Est-pari-de 1, n rapporte rapport CHEVAL court 1,1 1, n Pari-cheval CIF ordre-cheval-pari 1, n PARI numéro-pari Somme-jouée 1, n TYPE-PARI 1, n nom-cheval année-naissance 1,1 Est-type-de CIF 5. Concevez toutes les relations respectant toutes les formes normales, au moins jusqu'à la quatrième forme normale comprise, en expliquant votre démarche de construction à toutes les étapes. COURSE (nom-course, date-course, gain) CHEVAL (nom-cheval, année-naissance) PARI (numéro-pari, somme-jouée, type-pari) TYPE-PARI : NON COURT (nom-course, nom-cheval, numéro-cheval, cote-cheval, ordre-cheval-course) PARI-CHEVAL (nom-cheval, numéro-pari, ordre-cheval-pari) RAPPORTE (nom-course, numero-pari, rapport)