dimanche 7 décembre 2014

Exercice corrigé UML: Agence de voyage

Exercice  :

Une agence de voyage organise des voyages où l'hébergement se fait en hôtel. Le client doit disposer d'un taxi quand il arrive à la gare pour se rendre à l'hôtel. Certains clients demandent à l'agent de voyage d'établir une facture détaillée. Le voyage se fait soit par avion, soit par train.

Donner un diagramme de cas d'utilisation de ce système.

Corrigé :

Diagramme de cas d'utilisation


Corrigé de l'exercice UML: Football

Exercice 1 :


1. Diagramme de classe











2. Diagramme d’objets












Exercice 2 :

  1. agrégation
  2. généralisation
  3. agrégation
  4. association
  5. généralisation

Exercice UML : Football

Exercice 1 :

Soit le texte suivant :
Une équipe de football est composée de joueurs. Une équipe représente un pays. Une équipe possède une couleur. Un joueur porte un maillot. Un joueur peut être un joueur de champ ou un gardien. Les maillots des joueurs de champ sont de la couleur de son équipe. Le maillot du gardien est toujours d’une couleur noire.
Les joueurs ont le droit d’utiliser leurs pieds. Le gardien a le droit d’utiliser ses mains.
1-      On suppose qu’une couleur n’est pas une classe mais un entier. Dessiner un diagramme de classes. On utilisera l’agrégation si cela est possible. On placera les ordres de multiplicité.
2-      Dessiner un diagramme d’objets correspondant au texte suivant : Xavi et Iniesta sont des joueurs de champ. Casillas est un gardien. Ils font partie de l'équipe nationale espagnole . La couleur de l’équipe de l’Espagne est le rouge. Tous les joueurs portent un maillot.

Exercice 2 :

Pour chaque exemple ci-dessous, indiquez si la relation présentée est une généralisation, une agrégation ou une association :
  1. Un pays a une capitale.
  2. Une transaction boursière est un achat ou une vente.
  3. Les fichiers contiennent des enregistrements.
  4. Une personne utilise un langage de programmation dans un projet.
  5. Les modems et les claviers sont des périphériques d’entrées/sorties.

samedi 6 décembre 2014

Base de données: Corrigés

EXERCICE 1 :


1)  





2) 


EXERCICE 2 :
            AssSport est en BCNF, parce qu’il n y a pas de dépendances fonctionnelles, mais elle n est pas satisfaisante pour autant.
            En effet la liste des horaires d’un étudiant doit être répétée pour chacun des sports auquel il veut participer.
            En fait non seulement il n’yy a pas dépendance fonctionnelle, mais il y a une totale indépendance entre l’horaire et le sport.

Il s’agit ici d’une dépendance multivaluée noEtudiant à horaire, noEtudiant à sport.
La décomposition en deux relations:
libre(noEtudiant, horaire)
sport(noEtudiant, sport)
évite les redondances; les deux relations sont toujours en BCNF et même en 4NF (pour information).


Base de données: Exercices

EXERCICE 1 :

            Soit le schéma de la relation R (A, B, C, D, E, G) et un ensemble donné de dépendances fonctionnelles pour cette relation:
A                    à        B, C
A, C               à        E
A, D, E          à        B, G
C, G               à        D
B, G               à        C
C                    à        B
1.      Donner le graphe minimal des dépendances fonctionnelles de R ;
  1. Donner une décomposition de R en relations 3NF sans perte d’informations et sans perte de dépendances.
Précisez l’identifiant de chaque relation obtenue.
EXERCICE 2 :

            L'association sportive d’une université désire connaître les sports qu'aimeraient pratiquer les étudiants. De manière à choisir les horaires pour ces sports, on a demandé aux étudiants de donner la liste des horaires (jour et heure) auxquels ils sont libres et celle des sports qu'ils veulent pratiquer. La relation suivante a ainsi été créée :
AssSport (noEtudiant, horaire, sport)
décrivant le fait que cet horaire est l'une des plages où l'étudiant est libre et que ce sport est l'un de ceux qu'il désire pratiquer.
  1. Existe-t-il des redondances et anomalies dans cette relation ? Lesquelles ;
  2. Quel est le graphe des dépendances de cette relation ;
  3. Quels sont ses identifiants et quelle est sa forme normale? Peut-on la décomposer ? Comment ?

vendredi 5 décembre 2014

Correction des exercices sur les bases de données

Exercice 1 :

Passage MCD à MLD



















Exercice 2 :
1- La relation CommandeLivre est bien en première forme normale.
2-
à 2FN : CommandeLivre(Num-Commande, Num-Client, Titre, Auteur, Quantité, Prix).
à 3FN :         – CommandeLivre(Num-Commande, Num-Client, Titre, Quantité)
– Livre(Titre, Auteur, Prix)
Exercice 3 :
1.      Noms et prénoms des réalisateurs :
R = Π <NOM, PRENOM> (σ <RÔLE=REALISATEUR>(JOUER) * (INDIVIDU))
2.      Quels sont les noms et prénoms des acteurs qui sont également réalisateurs :
R1 = σ <RÔLE=REALISATEUR>(JOUER) * (INDIVIDU)
R2 = σ <RÔLE=ACTEUR>(JOUER) * (INDIVIDU)
R = Π <NOM, PRENOM> (R1 Ç R2)
3.      Quels sont les titres des films où Nicole Kidman a joué un rôle et qui ont été projetés au cinéma Le Fontenelle ?
R1 = Π <NUM_FILM>(σ <PRENOM=NICOLE AND NOM=KIDMAN>(JOUER) * (INDIVIDU))
R2 = Π <NUM_FILM>(σ <NOM=’LE FONTENELLE’>(PROJECTION))
R3 = R1 * R2
R = Π <TITRE>(R3 * (FILM))
4.      Quels sont les acteurs qui n’ont pas joué dans des films dramatiques ?
R1 = Π <NUM_IND> (σ <GENRE = DRAME > (FILM) * (JOUER))
R2 = Π <NUM_IND> (INDIVIDU) / R1
R = R2 * (INDIVIDU)
5.      Quels sont les acteurs que l’on a pu voir dans tous les cinémas ?
R1= Π <NUM_IND, NUM_CINE> (PROJECTION) * (JOUER)
R1= Π <NUM_CINE> (CINEMA)
R3 = R1 % R2
R = R3 * (INDIVIDU)

Exercices sur les bases de données

Exercice 1 :

Donner le  modèle logique correspondant au modèle conceptuel suivant :



Exercice 2 :
Soit la relation CommandeLivre qui indique qu’un client (identifié par Num-Client) peut passer une commande (identifiée par Num-Commande) de livre.
CommandeLivre(Num-Commande, Num-Client, Titre, Auteur, Quantité, Prix)
Avec les dépendances fonctionnelles suivantes :

Num-Commande à Titre
Titre à Auteur
                     Num-Commande à Quantité
                     Titre à Prix

1. Donner la forme normale de cette relation.
2. Proposer une décomposition jusqu’en troisième forme normale, si nécessaire.
Exercice 3 :
Soit le schéma relationnel suivant :

Individu(Num_Ind, Nom, Prénom)
Jouer(Num_Ind, Num_Film, Rôle)
Cinéma(Num_Ciné, Nom, Adresse)
         Film(Num_Film, Titre, Genre, Année)
         Projection(Num_Ciné, Num_Film, Date)

Exprimer en algèbre relationnelle les requêtes suivantes :

  1. Quels sont les noms et prénoms des réalisateurs ?
  2. Quels sont les noms et prénoms des acteurs qui sont également réalisateurs ?
  3. Quels sont les titres des films où Nicole Kidman a joué un rôle et qui ont été projetés au cinéma Le Fontenelle ?
  4. Quels sont les acteurs qui n’ont pas joué dans des films dramatiques ?
  5. Quels sont les acteurs que l’on a pu voir dans tous les cinémas ?

Exercice corrigé sur les base de données

Exercice:

Soit la relation R :
R(numeroEtudiant, nomEtudiant, prenomEtudiant, numeroMatiere, libelleMatiere, numeroEnseignant, nomEnseignant, prenomEnseignant, note)
Avec les Règles métiers suivantes :
  • Pour une même matière, les étudiants passeront un seul devoir sanctionné par une note ;
  • C'est toujours le même enseignant qui fait la même matière ;
  • Un enseignant peut assurer plusieurs matières.
1.      Etablir le graphe des dépendances fonctionnelles.
2.      Donner la forme normale et la clé de cette relation.
3.      Proposer une décomposition jusqu’en 3FN ? Si nécessaire.
Supposons maintenant que les contraintes suivantes s’appliquent :
  • Les étudiants peuvent avoir plusieurs devoirs dans la même matière ;
  • Une matière peut très bien être dispensée par plusieurs enseignants.
4.      En tenant compte de ces nouvelles contraintes, proposer une décomposition jusqu’en troisième forme normale du schéma relationnel obtenu à la question précédente.

5.      Que faire pour savoir l’identité du professeur qui enseigne une matière dans laquelle des étudiants ont subi des devoirs.

Corrigé:

1. Graphe des DF :



2. La relation est en 1FN car tous les attributs sont élémentaires et non répétitifs. La clé primaire de R est (numeroEtudiant, numeroMatiere)
3. Passage en 2FN :
L'attribut note est le seul attribut qui dépend de tous les attributs de la clé.
à
Note(numeroEtudiant#, numeroMatiere#, note)
Etudiant(numeroEtudiant, nomEtudiant, prenomEtudiant)
Enseignement(numeroMatiere, libelleMatiere, numeroEnseignant, nomEnseignant, prenomEnseignant)
Passage en 3FN :
Les attributs nomEnseignant et prenomEnseignant ne dépendent pas de numeroMatiere mais de numeroEnseignant.
à
Note(numeroEtudiant#, numeroMatiere#, note)
Etudiant(numeroEtudiant, nomEtudiant, prenomEtudiant)
Matiere(numeroMatiere, libelleMatiere, numeroEnseignant#)
Enseignant(numeroEnseignant, nomEnseignant, prenomEnseignant)
4. La nouvelle clé primaire de Note est (numeroEtudiant, numeroMatiere, numeroDevoir).
à
NoteDevoir(numeroEtudiant#, numeroDevoir, numeroMatiere#, note)
Etudiant(numeroEtudiant, nomEtudiant, prenomEtudiant)
Matiere(numeroMatiere, libelleMatiere)
Enseigner(numeroMatiere#, numeroEnseignant#)
Enseignant(numeroEnseignant, nomEnseignant, prenomEnseignant)
5. La nouvelle clé primaire de Note est (numeroEtudiant, numeroMatiere, numeroEnseignant, numeroDevoir)
à
Note(numeroEtudiant#, numeroMatiere#, numeroEnseignant#, numeroDevoir, note)
Le reste sans changement

jeudi 4 décembre 2014

Correction des exercices sur l'algèbre relationnelle

A.    Expressions d’Algèbre Relationnelle
a.      π <NOM> (σ <AGE > 20> (CLIENT))
b.      π <NOM> (σ <NPROD=13> (CMD) *(CMD.NCLT = CLIENT.NCLT) (CLIENT))
c.      π <NOM> (σ <COULEUR=ROUGE> (PROD) *(PROD.NPROD = CMD.NPROD) (CMD) *(CMD.NCLT = CLIENT.NCLT)  (CLIENT))
d.      π <COULEUR> (σ <NOM=DUPONT> (CLIENT) *(CLIENT.NCLT = CMD.NCLT) (CMD) *(CMD.NPROD = PROD.NPROD) (PROD))
e.      π <NOM> (CMD) *(CMD.NCLT = CLIENT.NCLT) (CLIENT)
f.       π <NOM> (σ <COULEUR = ROUGE OU COULEUR = VERT> (PROD) *(PROD.NPROD = CMD.NPROD) (CMD) *(CMD.NCLT = CLIENT.NCLT) (CLIENT))


g.  R1 = π <COULEUR> (σ <COULEUR=ROUGE OU COULEUR=VERT> (PROD))
R2 = π <NOM,COULEUR> ((CLIENT) *(CLIENT.NCLT = CMD.NCLT) (CMD) *(CMD.NPROD = PROD.NPROD) (PROD))
R3 = R2 / R1
R4 = π<NOM> (σ<COULEUR=ROUGE OU COULEUR=VERT> (PROD) *(PROD.NPROD = CMD.NPROD) (CMD) *(CMD.NCLT = CLIENT.NCLT) (CLIENT))

à R = R4 - R3

B.    Arbres algébriques
a. 


b.



c.


d.


Exercices sur l'algèbre relationnelle


Soit les trois tables suivantes :
CLIENT(nclt, nom, age, adresse)
PROD(nprod, design, couleur, volume)
CMD(nclt, nprod, qte, date).


A.    Ecrire les expressions d’Algèbre Relationnelle permettant de résoudre les requêtes suivantes :
a.       La liste des noms de clients qui ont un age > 20.
b.      La liste des noms de clients ayant commandés le produit numéro 13.
c.       La liste des noms de clients ayant commandés un produit de couleur rouge.
d.      La couleur des produits commandés par monsieur Dupont.
e.       La liste des noms de clients ayant commandés au moins un produit.
f.       La liste des noms de clients ayant commandés un produit vert ou rouge.
  1. La liste des noms de clients ayant commandés un produit vert ou bien rouge.
B.     Donner les arbres algébriques permettant de résoudre les requêtes suivantes :
a.       La liste des noms de clients ayant commandés au moins deux produits.
b.      La liste des clients qui ont un age > 50 et qui n’ont pas commandé un produit vert.
c.       La liste des noms de clients qui ont commandé tous nos produits.
  1. La liste des noms de clients qui ont commandé tous nos types de pince.

Corrigés des exercices sur les bases de données


Corrigé N°1

Modèle relationnel


Corrigé N°2

Modèle relationnel


Corrigé N°3

Modèle relationnel


Exercices sur les base de données

Procédez au passage des modèles conceptuels suivants aux modèles relationnels
Exercice 1

Exercice 2
Exercice 3


Base de données: Gestion des prêts de cassettes vidéo aux clients

Soit la relation suivante qui permet de gérer les prêts de cassettes vidéo aux clients :
          PrêtK7 (NumCli, NomCli, AdrCli, NumK7, TitK7, DatePrêt)
munie de la liste des dépendances fonctionnelles suivante :
NumCli                                  à        NomCli, AdrCli
NumK7                                  à        TitK7
NumCli, NumK7                   à        DatePrêt
NB : On suppose que  AdrCli est atomique.
Travail demandé :
1. Donner le graphe des dépendances fonctionnelles de PrêtK7.
2. Donner une décomposition de PrêtK7  en relations 1FN, 2FN et 3FN sans perte d’informations et sans perte de dépendances.

Correction :
1. Donner le graphe des dépendances fonctionnelles de PrêtK7.

1. Donner une décomposition de Factures en relations 1FN, 2FN et 3FN sans perte d’informations et sans perte de dépendances.
§ En 1°Forme Normale :
PrêtK7(NumCli, NumK7, NomCli, AdrCli, TitK7, DatePrêt)
§ En 2°Forme Normale :
La relation PrêtK7 n’est donc pas en 2FN.
En effet, dès qu’un client loue plusieurs cassettes, son nom et son adresse sont inutilement reproduits dans la base.  De même, le titre d’une cassette est répété pour chacun de ses emprunts.
Une application de la 2°Forme Normale conduirait à l’éclatement de la relation PrêtK7 en trois relations en 2FN :
Client (NumCli, NumCli, AdrCli)
K7 (NumK7, TitK7),
Prêt (NumCli, NumK7, DatePrêt).
§ En 3°Forme Normale : Sans changement.