dimanche 7 décembre 2014

Exercice corrigé UML: gestion des formations d'un institut privé

Exercice:
Il s'agit d'établir le schéma conceptuel d'une base de données pour la gestion des formations d'un institut privé :
·         Un cours est caractérisé par un numéro de cours (NOCOURS), un libellé (LIBELLE), une durée en heures (DUREE) et un type (TYPE).
·         Un cours peut faire l'objet dans l'année de plusieurs sessions identiques.
·         Une session est caractérisée par un numéro (NOSES), une date de début (DATE) et un prix (PRIX).
·         Une session est le plus souvent assurée par plusieurs animateurs et est placée sous la responsabilité d'un animateur principal.
·         Un animateur peut intervenir dans plusieurs sessions au cours de l'année.
·         On désire mémoriser le nombre d'heures (NBH) effectué par un animateur pour chaque session.
·         Un animateur est caractérisé par un numéro (NOANI), un nom (NOMA) et une adresse (ADRA).
·         Chaque session est suivie par un certain nombre de participants.
·         Un participant est une personne indépendante ou un employé d'une entreprise cliente.
·         Un participant est caractérisé par un numéro (NOPAR), un nom (NOMP) et une adresse (ADRP).
·         Dans le cas d’un employé, on enregistre le nom (NOMEN) et l’adresse de l’entreprise (ADREN).
·         On désire pouvoir gérer d’une manière séparée (pour la facturation notamment) les personnes indépendantes d’une part, et les employés d’autre part. Si nécessaire, on fera les hypothèses sémantiques complémentaires qui pourraient s'imposer.
                                                                                                                    
Établir un schéma conceptuel (diagramme de classes UML) pour cette base de données.
Corrigé:


Corrigé Exercice UML: Compagnie aérienne

1)-  



































2)-




Exercice UML: Compagnie aérienne

Exercice:

Une compagnie aérienne veut mettre en oeuvre une base de données pour gérer ses différents vols :
·         Un VOL est un parcours aérien caractérisé par un NUMERO, une VILLE-DEPART, une VILLEARRIVEE, une HEURE-DEPART, une HEURE-ARRIVEE, une DISTANCE, une FREQUENCE.
·         Lorsqu'un VOL est programmé pour une DATE déterminée il constitue un DEPART.
·         Un VOL n’est programmé qu'une seule fois dans une journée à l'heure prévue.
·         Un certain nombre de PASSAGERS peut être enregistré pour un DEPART.
·         Un PASSAGER est caractérisé par son NOM, son ADRESSE, son NO-TELEPHONE.
·         Un AVION est affecté à chaque DEPART.
·         Un AVION est caractérisé par un NUMERO, un TYPE, une CAPACITE.
·         Un AVION utilise une certaine QUANTITE DE CARBURANT pour accomplir le trajet. Cette dernière dépend des conditions atmosphériques, donc de la DATE.
·         Un certain nombre de PERSONNELS est affecté à chaque DEPART. On distingue les personnels navigants des personnels non navigants. Parmi ces derniers, on distingue le(s) pilote(s). Un membre du personnel est caractérisé par son NOM, son ADRESSE, son NO-TELEPHONE.
1)- On désire utiliser cette base pour produire (entre autres) les listes suivantes :
-            passagers enregistrés pour un départ,
-            personnels affectés à un départ pour chacune des trois catégories,
-            départs programmés pour un vol donné,
-            départs assignés à un avion donné pour la semaine à venir,
-            caractéristiques du vol correspondant à un départ.
Proposer un diagramme de classes UML pour cette base (tous les éléments figurant en majuscules dans l'énoncé doivent être pris en compte).
2)- Un VOL peut en fait être constitué de plusieurs tronçons. Par ailleurs on souhaite pouvoir établir pour chaque VILLE les vols au départ et les vols à l'arrivée.

Suggérer une amélioration du modèle précédent pour prendre en compte ces deux aspects.

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.