Exercices et solutions Faculté d'informatique

exercices corrigés mysql pdf

Part of the document

Ce document constitue l"annexe A de l"ouvrage "Bases de données", J-L Hainaut, Dunod, 2012
Date de dernière modification : 8/6/2012
Annexe AA1
Exercices et solutions
Cette annexe propose une collection d"exercices, certains assortis
d"une suggestion de solution, et classés selon les chapitres de
l"ouvrage. Elle reprend intégralement les exercices qui apparaissent en
fin de chapitres.
Les solutions sont données à titre indicatif et de bonne foi. L"auteur ne
peut en aucune manière garantir qu"elles sont ni correctes ni, quand
bien même elles le seraient, qu"elles sont les meilleures ou qu"elles
sont appropriées aux besoins spécifiques du lecteur.
A.1 CHAPITRE 1 - MOTIVATION ET INTRODUCTION
Néant
A.2 CHAPITRE 2 - CONCEPTS DES BASES DE DONNÉES
2.1 On considère le bon de commande papier de la figure 1, qu"on se propose
d"encoder sous la forme de données à introduire dans la base de données de la
figure 2.8. Qu"en pensez-vous ?
Solution
Les données de ce bon de commande présentent plusieurs anomalies qui en
empêcheront l"introduction dans la base de données.
Numéro de commande déjà présent dans la BD. Violation d"une contrainte
d"unicité.
2 Annexe A •Exercices et solutions
Date de commande invalide. Violation du domaine de valeurs.
Numéro de client inexistant. Violation d"une contrainte référentielle.
Adresse du client manquante. Violation du caractère obligatoire d"une
colonne.
Figure A.1 - Un bon de commande curieux
Deux détails référencent le même produit. Violation d"une contrainte
d"unicité (identifiant de
DETAIL).
Les quantités sont exprimées en caractères. Violation du domaine de valeurs.
Le produit PA45 possède deux prix. Violation d"une dépendance
fonctionnelle.
Le montant total est incorrect. Sans importance, il s"agit d"une donnée
calculée non enregistrée.
2.2 Vérifier si le schéma ci-dessous est normalisé. Si nécessaire, le décomposer
en tables normalisées.
CLIENT ¾® ADRESSE, DELEGUE
DELEGUE
¾® REGION
Solution
La colonne
REGION dépend d"une colonne qui n"est pas un identifiant. La
table n"est pas normalisée. On la décompose en deux tables
VENTE(NPRO,
CLIENT, DATE, QUANTITE, ADRESSE, DELEGUE) et REP(DELEGUE,
REGION)
. Ensuite, dans la nouvelle table VENTE, les colonnes ADRESSE et
DELEGUE dépendent d"une colonne qui n"est pas un identifiant. Par
décomposition, on obtient le schéma ci-dessous :
VENTE(NPRO, CLIENT, DATE, QUANTITE)

Solution
La colonne
NOM dépend d"une colonne qui n"est pas un identifiant. La table
n"est pas normalisée. On la décompose en deux tables
COMMANDE(NCOM,
NCLI, DATE, NPRO, LIBELLE) et CLIENT(NCLI, NOM). Ensuite, dans la
nouvelle table
COMMANDE, la colonnes LIBELLE dépend d"une colonne qui
n"est pas un identifiant. Par décomposition, on obtient le schéma ci-dessous :
COMMANDE(NCOM, NCLI, DATE, NPRO)
CLIENT(NCLI
, NOM)
PRODUIT(NPRO, LIBELLE)
Deux clés étrangères : NCLI de COMMANDE et NPRO de COMMANDE.
2.4 Décomposer si nécessaire la table ci-dessous.
DATE_INTRO, IMPORTATEUR ¾® AGREATION
Solution
La colonne
AGREATION dépend de colonnes qui ne forment pas un identifiant.
La table n"est pas normalisée. On la décompose en deux tables
PRODUIT(NPRO, DATE_INTRO, IMPORTATEUR) et AGRE(DATE_INTRO,
IMPORTATEUR, AGREATION). Une clé étrangère : (DATE_INTRO,
IMPORTATEUR
) de PRODUIT.

4 Annexe A •Exercices et solutions
A.3 CHAPITRE 3 - MODÈLE RELATIONNEL ET NORMALISATION
3.1 Décomposer si nécessaire la relation ACHAT.
ACHAT(NCOM, NPRO, PRIX)
NCOM
Solution
L"identifiant de
ACHAT est {NCOM}. La DF NPRO¾®PRIX est donc
anormale. Par décomposition selon cette DF, on obtient le schéma relationnel
normalisé :
ACHAT(NCOM, NPRO); PRODUIT(NPRO, PRIX);
ACHAT
[NPRO] Í PRODUIT[NPRO]
3.2 Décomposer si nécessaire la relation COMMANDE.
COMMANDE(NCOM, NCLI, NOM, DATE, NPRO, LIBELLE)
NCOM

Solution
L"identifiant de
COMMANDE est {NCOM}. Les DF NCLI¾®NOM et NPRO
¾®LIBELLE sont donc anormales. Par décomposition selon chacune de ces
DF, on obtient le schéma relationnel normalisé :
COMMANDE(NCOM, NCLI, DATE, NPRO);
CLIENT(NCLI
, NOM); PRODUIT(NPRO, LIBELLE);
COMMANDE
[NCLI] Í CLIENT[NCLI]
COMMANDE[NPRO] Í PRODUIT[NPRO]
3.3 Décomposer si nécessaire la relation ACHAT2.
ACHAT2(CLI, PRO, MAG, PRIX)
PRO, MAG
¾® PRIX
Solution
L"identifiant de
ACHAT2 est {CLI, PRO, MAG}. La DF PRO, MAG¾®PRIX
est donc anormale. On obtient par décomposition :
ACHAT2(CLI, PRO, MAG); TARIF(PRO, MAG, PRIX));
ACHAT2
[PRO, MAG] Í TARIF[PRO, MAG]
3.4 Décomposer si nécessaire la relation ACHAT3.
ACHAT3(CLI, PRO, MAG, PRIX)
CLI, PRO, MAG
¾® PRIX
A.3Chapitre 3 - Modèle relationnel et normalisation5
© J-L Hainaut - 2009
Solution
L"identifiant de la relation
ACHAT3 est {CLI, PRO, MAG}. Celle-ci est donc
normalisée.
3.5 Décomposer si nécessaire la relation
ECRIT (POSITION indique la position de
l"auteur dans la liste des auteurs).
ECRIT(AUTEUR, OUVRAGE, POSITION)
AUTEUR, OUVRAGE
¾® POSITION
OUVRAGE, POSITION
¾® AUTEUR
Solution
Le graphe ADF comporte un circuit. Les identifiants de la relation
ECRIT
sont {AUTEUR, OUVRAGE} et {OUVRAGE, RANG}. Celle-ci est normalisée.
3.6 Calculer les identifiants de la relation
CINE. Décomposer cette relation si
nécessaire.
CINE(FILM, VILLE, SALLE, DISTRIBUTEUR, DELEGUE)
SALLE
¾® VILLE
FILM, VILLE
¾® SALLE, DISTRIBUTEUR
DISTRIBUTEUR
¾® DELEGUE
Solution
Le graphe ADF comporte un circuit. Les identifiants sont
{FILM, VILLE} et
{SALLE, FILM}. Les deux DF suivantes sont donc anormales : SALLE ¾®
VILLE et DISTRIBUTEUR ¾® DELEGUE. Cette dernière étant externe, elle
permet une première décomposition :
CINE(FILM, VILLE, SALLE, DISTRIBUTEUR);
DIS(DISTRIBUTEUR
, DELEGUE);
CINE
[DISTRIBUTEUR] Í DIS[DISTRIBUTEUR]
SALLE ¾® VILLE
FILM, VILLE
¾® DISTRIBUTEUR
La DF FILM, VILLE ¾® DISTRIBUTEUR, non anormale, est externe et ne
fait pas partie du noyau irréductible. Elle peut donc faire l"objet d"une
décomposition :
CINE(FILM, VILLE, SALLE);
DISTR(FILM, VILLE
, DISTRIBUTEUR);
DIS_DEL(DISTRIBUTEUR
, DELEGUE);
CINE
[FILM, VILLE] Í DISTR[FILM, VILLE]
DISTR[DISTRIBUTEUR] Í DIS_DEL[DISTRIBUTEUR]
SALLE ¾® VILLE
Le noyau résiduel {FILM, VILLE, SALLE} est irréductible et non normalisé.
Selon le canevas 3.8.5, la dernière relation
CINE peut être remplacée par un
des trois schémas ci-dessous :
1. CINE(FILM, VILLE, SALLE); SALLE ¾® VILLE
2.CINE(FILM, SALLE); LOC(SALLE, VILLE);
6 Annexe A •Exercices et solutions
CINE[SALLE] = LOC[SALLE]
CINE*LOC: FILM, VILLE ¾® SALLE
3.CINE(FILM, VILLE, SALLE); LOC(SALLE, VILLE);
CINE
[SALLE, VILLE] = LOC[SALLE, VILLE]
3.7 Cet exercice est une extension de l"énoncé 3.7 de l"ouvrage (3.7 Démontrer
que la règle de pseudo-transitivité est dérivable des autres).
La version populaire des règles d"Armstrong en comporte six. En réalité, trois
d"entre elles (réflexivité, augmentation, transitivité) sont suffisantes car elle
permettent de dériver les trois autres (additivité, décomposabilité, pseudo-
transitivité). Démontrer cette dérivation.