jeudi 5 janvier 2012

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

0 commentaires:

Enregistrer un commentaire

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites

 

IP