Exercices Corrigés Traduction du modèle entité-association MEA vers le modèle relationnel Merise
Exercice1 : Gestion des emprunts dans une Bibliothèque
- La date d'emprunt doit être inférieure à la date de retour.
- La date d'emprunt doit être postérieure à la date d'achat.
- Un livre ne peut être loué qu'une fois à un moment précis : il ne peut y avoir de recouvrement dans les dates pour la location d'un même livre.
Exercice 2 : Plats
- La quantité doit être strictement supérieure à zéro.
Exercice 3 : Université
Exercice 4 : Analyse financière
- La quantité d'actions dans un indice doit être strictement supérieure à zéro.
- Cours minimum <= cours d'ouverture, cours de fermeture, <= cours maximum.
- Les actions d'un indice appartiennent au même marché que l'indice.
Exercice 5 : Organisation d'un colloque
- L'heure de présentation d'un article doit être comprise dans les heures de la session.
- L'orateur d'un article doit être un auteur de cet article.
- Un expert ne peut pas avoir le même employeur que celui d'un auteur d'un article qu'il évalue.
- Un président de session ni un orateur ne peuvent être au même moment à deux sessions.
- Deux articles ne peuvent pas être présentés à la même session à la même heure.
-----------------------------------------------------------------------------------------------------
Correction
-----------------------------------------------------------------------------------------------------Bases de données
Traduction du modèle entité-association vers le modèle relationnel
Corrections
Exercice 1 : Bibliothèque
Client(SSN, Nom, Prénom, AdRue, AdNuméro, AdCodePostal, AdVille)
Emprunt(Numéro, SSN, ISBN, DateEmprunt, DateRetour)
SSN reference Client.SSN
ISBN reference LIvre.ISBN
Livre(ISBN, Titre, DateAchat)
LivreAuteur(ISBN, Auteur)
ISBN référence Livre.ISBN
- Emprunt.DateEmprunt < Emprunt.DateRetour
- Pour l'emprunt d'un livre, Emprunt.DateEmprunt >= Livre.DateAchat
- Pour tous les emprunts d'un même livre, il ne peut y avoir de recouvrement dans les dates.
Exercice 2 : Plats
Plat(Nom, Origine)
Ingredient(Nom, Unité)
Contient(NomPlat, NomIngredient, Quantité)
NomPlat reference Plat.Nom
NomIngredient reference Ingredient.Nom
- Contient.Quantité >= 1
Exercice 3 : Université
Professeur(Matricule, Titre, Nom, Prenom, AdRue, AdNuméro, AdCodePostal, AdVille)
Cours(Mnémonique, Professeur, Intitulé, Résumé)
Professeur reference Professeur.Matricule
Filière(Code, Nom, Professeur)
Professeur reference Professeur.Matricule
Etudiant(Matricule, Nom, Prenom, AdRue, AdNuméro, AdCodePostal, AdVille, Filière)
Filière reference Filière.Code
EtudiantCours(Matricule, Mnémonique)
Matricule reference Etudiant.Matricule
Mnémonique reference Cours.Mnémonique
- Professeur est unique dans la relation Filière (un professeur peut diriger au maximum une filière)
- Pour tout Etudiant.Matricule, il existe au moins un EtudiantCours.Matricule (un étudiant suit au moins un cours)
- Pour tout Filière.Code, il existe au moins un Etudiant.Filière (une filière possède au moins un étudiant)
Exercice 4 : Analyse financière
Première solution
Actualité(Lien, Titre, Source, Date, Description)
ProduitFinancier(Code, Nom, MNom, MVille, MPays, Type)
ProduitFinancier.(MNom, MVille, MPays) référence Marche.(Nom, Ville, Pays)
ActualitéProduit(Lien,Code)
Lien reference Actualite.Lien
Code reference ProduitFinancier.Code
Marché(Nom, Ville, Pays, Devise)
Cours(Code, Date, Volume, CoursO, CoursF, CoursMin, CoursMax)
Code reference ProduitFinancier.Code (où ProduitFinancier.Type == "Action")
Compose(CodeIndice, CodeAction, Quantité)
CodeIndice reference ProduitFinancier.Code (où ProduitFinancier.Type == "Indice")
CodeAction reference ProduitFinancier.Code (où ProduitFinancier.Type == "Action")
- Pour tout Actualité.Lien, il existe au moins un ActualitéProduit.Lien (une actualité concerne au moins un produit)
- Pour tout Marché.(Nom, Ville, Pays), il existe au moins un ProduitFinancier.(MNom, MVille, MPays) (un marché contient au moins un produit)
- ProduitFinancier.Type est soit "Indice" soit "Action"
- Pour un cours, CoursMin <= (CoursO, CoursF) <= CoursMax
- Pour tout ProduitFinancier.Code où Type = "Action", il existe au moins un Cours.Code (une action a au moins un cours)
- Un CodeIndice apparaissant dans Compose y apparaît au moins deux fois.
- Compose.Quantité >= 1
- Pour tout tuple dans la relation Compose, CodeIndice et CodeAction référencent des produits d'un même marché.
Deuxième solution
Actualité(Lien, Titre, Source, Date, Description)
ActualitéProduit(Lien,Code)
Lien reference Actualite.Lien
Code reference ProduitFinancier.Code
Marché(Nom, Ville, Pays, Devise)
ProduitFinancier(Code, Nom, MNom, MVille, MPays)
ProduitFinancier.(MNom, MVille, MPays) référence Marche.(Nom, Ville, Pays)
Action(Code)
Code reference ProduitFinancier.Code
Indice(Code)
Code reference ProduitFinancier.Code
Cours(Code, Date, Volume, CoursO, CoursF, CoursMin, CoursMax)
Code reference Action.Code
Compose(CodeIndice, CodeAction, Quantité)
CodeIndice reference Indice.Code
CodeAction reference Action.Code
- Pour tout Actualité.Lien, il existe au moins un ActualitéProduit.Lien (une actualité concerne au moins un produit)
- Pour tout Marché.(Nom, Ville, Pays), il existe au moins un ProduitFinancier.(MNom, MVille, MPays) (un marché contient au moins un produit)
- Pour un cours, CoursMin <= (CoursO, CoursF) <= CoursMax
- Pour tout Action.Code, il existe au moins un Cours.Code (une action a au moins un cours)
- Action.Code est différent de tous les Indice.Code
- Un CodeIndice apparaissant dans Compose y apparaît au moins deux fois.
- Compose.Quantité >= 1
- Pour tout tuple dans la relation Compose, CodeIndice et CodeAction référencent des produits d'un même marché.
- Pour tout ProduitFinancier.Code, il existe soit un Action.Code soit un Indice.Code
Exercice 5 : Organisation d'un colloque
Personne(SSN, nom, adresse, employeur)
Expert(SSN, titre, email, tel, fax)
Expert.SSN référence Personne.SSN
Auteur(SSN, titre)
Auteur.SSN référence Personne.SSN
AuteurPrincipal(SSN, email, tel, fax)
AuteurPrincipal.SSN référence Auteur.SSN
Orateur(SSN, CV)
Orateur.SSN référence Auteur.SSN
Article(titre, nbPages, AuteurPrincipal)
AuteurPrincipal référence AuteurPrincipal.SSN
ArticleMot(titre, mot)
titre reference Article.titre
ArticleAccepté(titre, heure, orateur, thème, dateJour, dateMois, dateAnnée, dateHeureDebut, dateHeureFin)
titre reference Article.titre
orateur référence Orateur.SSN
thème, dateJour, dateMois, dateAnnée, dateHeureDebut, dateHeureFin référence Session.thème, dateJour, dateMois, dateAnnée, dateHeureDebut, dateHeureFin
Contribue(titre, auteur)
titre référence Article.titre
auteur référence Auteur.SSN
Evaluation(expert, titre, note)
expert référence Expert.SSN
titre référence Article.titre
Session(thème, dateJour, dateMois, dateAnnée, dateHeureDebut, dateHeureFin, président)
président référence Personne.SSN
- Pour tout AuteurPrincipal.SSN, il existe au moins un Article.AuteurPrincipal
- Pour tout Orateur.SSN, il existe au moins un ArticleAccepté.orateur
- Pour tout Session.thème, dateJour, dateMois, dateAnnée, dateHeureDebut, dateHeureFin, il existe au moins un ArticleAccepté.thème, dateJour, dateMois, dateAnnée, dateHeureDebut, dateHeureFin
- Pour tout Auteur.SSN, il existe au moins un Contribue.auteur
- Un titre apparaît au plus trois fois dans la relation Evaluation
- Pour tout Expert.SSN, il existe au moins un Evaluation.expert
- Pour la Session d'un ArticleAccepté, ArticleAccepté.heure est compris entre Session.DateHeureDébut et Session.DateHeureFin
- Pour un même Article.titre, ArticleAccepté.orateur doit être parmi Contribue.auteur
- Pour un Article.titre, Evaluation.expert ne peut avoir le même employeur (personne.employeur) que Contribue.auteur.
- Deux ArticleAccepté de la même sesion ne peuvent être présentés à la même heure
- Pour un Session.président, il ne peut y avoir deux sessions au même moment
- Pour un ArticleAccepté.orateur, il ne peut y avoir deux sessions au même moment
salu
RépondreSupprimer