Exercices de modélisation en relationnel Corrigé indicatif
Transcription
Exercices de modélisation en relationnel Corrigé indicatif
Exercices de modélisation en relationnel Corrigé indicatif 1.1 Traduction de schémas entité association Courses de chevaux (version 1) Course (nom, date) ChevauxInscrits (nomCourse, date, nom, num, cote, [place-arrivée]1) (nomCourse + date) REFERENCE Course Pari (N°pari, nomCourse, date, type, somme) (nomCourse + date) REFERENCE Course Commentaire: le type d'entité Pari n'a pas d'identifiant. En effet, il peut exister plusieurs paris de même montant et qui portent sur les mêmes chevaux. En relationnel, il faut donc introduire un identifiant. La solution retenue ici est d'ajouter un attribut, N°Pari, qui, pour chaque course, numérote les paris de cette course; les N°pari sont donc numérotés 1, 2, 3… pour chaque course. PariChevaux (nomCourse, date, N°pari, nom, place) (nomCourse + date + N°pari) REFERENCE Pari Rapports (nomCourse, date, type, montant-ordre, montant-désordre) (nomCourse + date) REFERENCE Course Courses de chevaux (version 2) Course (nom, date) Cheval (nom) Participe (nomCourse, date, nomCheval, num, cote, [place-arrivée]) (nomCourse + date) REFERENCE Course nomCheval REFERENCE Cheval Pari (N°pari, nomCourse, date, type, somme) (nomCourse + date) REFERENCE Course Commentaire: ici on a introduit un attribut, N°Pari, qui numérote tous les paris quelle que soit la course. Contient (N°pari, nomCheval, place) N°pari REFERENCE Pari nomCheval REFERENCE Cheval CourseRapport (nomCourse, date, type, montant-ordre, montant-désordre) (nomCourse + date) REFERENCE Course 1 Les crochets, [ et ], signalent les attributs facultatifs qui peuvent prendre la valeur nulle; les autres attributs sont obligatoires. Généalogie (version 1) Individu (N°, nom, sexe, DateNais, LieuNais, [DateDécès, LieuDécès], [Mère, Père]) Mère REFERENCE Individu Père REFERENCE Individu Contraintes d'intégrité: Les deux attributs, Mère et Père, ont soit tous les deux une valeur, soit aucun des deux n'a de valeur. Les deux attributs, DateDécès et LieuDécès, ont soit tous les deux une valeur, soit aucun des deux n'a de valeur. IndividuPrénom (N°individu, N°prénom, prénom) N°individu REFERENCE Individu Contrainte d'intégrité: Pour chaque valeur de N°individu, les valeurs de N°prénom constituent une suite d'entiers sans trou: <1, 2, 3, …>. Mariage (homme, femme, lieu, date, [date-divorce]) homme REFERENCE Individu femme REFERENCE Individu Généalogie (version 2) Individu (N°, nom, DateNais, LieuNais, [DateDécès, LieuDécès], [Mère, Père]) Mère REFERENCE Femme Père REFERENCE Homme Contraintes d'intégrité: Les deux attributs, Mère et Père, ont soit tous les deux une valeur, soit aucun des deux n'a de valeur. Les deux attributs, DateDécès et LieuDécès, ont soit tous les deux une valeur, soit aucun des deux n'a de valeur. IndividuPrénom (N°individu, N°prénom, prénom) N°individu REFERENCE Individu Contrainte d'intégrité: Pour chaque valeur de N°individu, les valeurs de N°prénom constituent une suite d'entiers sans trou: <1, 2, 3, …>. Homme (N°) N° REFERENCE Individu Femme (N°) N° REFERENCE Individu Mariage (homme, femme, lieu, date, [date-divorce]) homme REFERENCE Homme femme REFERENCE Femme Contrainte d'intégrité supplémentaire par rapport à celles définies pour le schéma entité association: Pour tout tuple de Individu, il existe un tuple de même numéro soit dans Homme, soit dans Femme. 1.2 Algorithme de traduction entité association –-> relationnel : voir le polycopié, fin du chapitre sur la normalisation 2. Dictionnaire des données Schéma nom créateur dateCréation PossèdeR Relation PossèdeA Attribut nom nom Identifiant dateCréation Composé Composé Référence IdtExterne domaine facultatif? Schéma (nomSchéma, créateur, dateCréation) Relation (nomSchéma, nomRelation) (nomSchéma) REFERENCE Schéma Attribut (nomSchéma, nomRelation, nomAttribut, facultatif?, domaine) (nomSchéma + nomRelation) REFERENCE Relation Identifiant (nomBD, nomRelation, n°Ident, nomAttribut) (nomSchéma + nomRelation + nomAttribut) REFERENCE Attribut IdentifiantExterne (nomBD, nomRelation, n°IdExt, nomRelationRéférencée) (nomSchéma + nomRelation) REFERENCE Relation IdExtComposition (nomBD, nomRelation, n°IdExt, nomAttribut) (nomSchéma + nomRelation + n°IdExt) REFERENCE IdentifiantExterne (nomSchéma + nomRelation + nomAttribut) REFERENCE Attribut NB En SQL, le dictionnaire des données de votre base de données contient, entre autres, les tables suivantes : Tables Columns Reference_Constraints Key_Column_Usage Check_Constraints … Vous pouvez y accéder par les instructions SELECT …