Vous êtes sur la page 1sur 4

ECOLE DES HAUTES ETUDES COMMERCIALES DE L'UNIVERSITE DE LAUSANNE

Professeure : Matière :
A. Boukottaya Bases de Données Avancées

Documentation autorisée

1. Station de ski
Une station de ski veut créer une base de données décrivant son domaine skiable: pistes, remontées
mécaniques, buvettes et restaurants.
Chaque piste a un nom, une couleur qui indique sa difficulté, une longueur et une dénivelée.
Chaque remontée mécanique a un nom, un type (télésiège, téléski, télécabine …), un débit horaire
maximum et un horaire d'ouverture qui est le même tous les jours. La station voudrait mémoriser
pour chaque remontée, l'historique du nombre de skieurs qui ont pris cette remontée, jour par jour.
Elle voudrait aussi mémoriser l'historique des pannes (date, durée, description) et l'historique des
contrôles (date, description).
La base de données devra aussi décrire le réseau des pistes et des remontées avec leurs
interconnections (sans oublier les croisements de pistes). Pour cela, les lieux particuliers que sont
les points de départ et d'arrivée des pistes et des remontées, ainsi que les croisements de pistes sont
nommés; leur altitude est notée. La description du réseau doit permettre de stocker par exemple les
informations suivantes:
Du haut du téléski Les Mélèzes –point appelé Le Col et situé à 2200m– partent un télésiège, appelé
L'Ouragan, qui monte, et deux pistes, L'Ours qui est rouge et Le Chamois qui est bleue. Les deux
pistes redescendent au départ du téléski Les Mélèzes. La piste de L'Ours après 500m de descente
croise au point appelé Les Rochers une autre piste, Le Mouflon, qui est noire. A ce croisement se
situe le café restaurant appelé Le Chalet…
On veut enfin stocker une description succincte des cafés, restaurants et auberges de montagne
situés dans le domaine skiable: nom, type, liste des spécialités, niveau de prix. Il faut aussi noter
leur emplacement par rapport au réseau des pistes: ils peuvent être situés sur (ou à proximité et dans
ce cas on veut savoir à quelle distance) un des points particuliers du réseau, ou sur (ou à proximité
et dans ce cas on veut savoir à quelle distance) une piste.

Question 1: Définir le diagramme entité association de cette base de données. Préciser les
cardinalités. Chaque fois qu'elle n'est pas évidente, donner la définition en français des types
d'entité, des types de relation et des attributs. Préciser aussi en français les contraintes d'intégrité s'il
en existe.

2. Requêtes sur base de données relationnelle


Soit la base de données relationnelle suivante :
Usine (NU, NomU, Ville, Pays)
Produit (NP, NomP, Type, Poids)
Fournisseur (NF, NomF, Ville, Pays)
Livraison (NP, NU, NF, Quantité, Mois, Année, PrixU)

1
qui décrit les faits suivants :
- Usine: une usine est décrite par son numéro (NU), son nom (NomU), la ville (Ville) et le pays
(Pays) dans laquelle elle est située.
- Produit: un produit est décrit par son numéro (NP), son nom (NomP), son type (Type), et son
poids (Poids). Ce sont des produits semi-finis qui sont utilisés par les usines.
- Fournisseur: un fournisseur est décrit par son numéro (NF), son nom (NomF), la ville (Ville) et
le pays (Pays) où il est domicilié. Ces fournisseurs vendent des produits semi-finis aux usines.
- Livraison: pendant le mois (Mois) de l'année (Année), le produit de numéro (NP) a été livré à
l'usine de numéro (NU) par le fournisseur de numéro (NF) dans telle quantité totale (Quantité)
avec tel prix unitaire (PrixU).

Question: Ecrire les requêtes suivantes en SQL, en algèbre et en calcul des tuples:
2.1 Nom, ville et pays des fournisseurs qui ont livré au moins un produit de type X41 au moins une
fois en 2000.
2.2 Nom, ville et pays des fournisseurs qui n'ont jamais livré d'usine du pays où ils habitent.

3. Formes Normales
3.1 Pour chaque relation ci-dessous:
- identifier les redondances éventuelles dans sa population,
- établir le graphe minimum de ses dépendances,
définir son (ses) identifiant(s),
- définir sa forme normale,
- proposer une décomposition, si nécessaire.

a. Pièce: description des pièces employées dans un atelier de montage.


Pièce (noPièce, prixUnit, TVA, libellé, catégorie)
avec les dépendances fonctionnelles suivantes:
noPièce → prixUnit, TVA, libellé, catégorie
catégorie → TVA

b. Prime: liste des primes attribuées au personnel technique en fonction du type de machine sur
lequel il travaille
Prime (noTypeMachine, nomMachine, noTechn, montantPrime, nomTechn)
avec les dépendances fonctionnelles suivantes:
noTypeMachine → nomMachine
notechn → nomTechn
(noTypeMachine, noTechn) → montantPrime

3.2 Soit R1(A, B, C, D, E, F) une relation avec l'ensemble de dépendances suivant:


{AB → C, AB → D, AB → E, AB → F, B → C, D → E, D → F}
a. Donner le graphe (ensemble) minimum de dépendances. Quelles est la clé de R1 ?
b. Quelle est la forme normale de R1 ?
c. On décomposera la relation R1 en R11 et R12: R11(A, B, D, E, F) et R12(B, C). Quelles sont les
formes
normales des relations R11 et R12 ?
d. Proposer une décomposition sans perte d'information de R11.

2
4. XML
4.1 Pour gérer le stock de T-Shirts qu’elle a distribué lors du 150ème anniversaire, l’EPFL a
opté pour une « approche XML ». Compléter le schéma XML suivant « taille.xsd » de telle
manière que les tailles puissent être exprimées soit par des entiers (32, 34, 36, 38 et 40) soit
par des caractères (S, M, L).

Taille.xsd

<xs:element name="taille">
<xs:simpleType>
<xs:………………………………………………………….. …………/>
</xs:simpleType>
</xs:element>
<xs:simpleType …………………….>
<xs:… ………………………………………………………>
…………………………………………………………………
……………………………………………………………………….
……………………………………………………………………….
……………………………………………………………………….
……………………………………………………………………….
</xs:…………………………………………>
</xs:simpleType>
<xs:simpleType ………………………………………>
<xs:…………………………………………………………………………>
……………………………………………………………………
……………………………………………………………………
……………………………………………………………………
</xs:……………………………………..>
</xs:simpleType>

4.2 Compléter le schéma XML suivant en sachant que le type forme_geometrique a deux
attributs : longueur et largeur:

<?xml version="1.0" encoding="ISO-8859-1"?>


<xs:schema
xmlns:xs="http://www.w3.org/2000/10/XMLSchema">
<xs:element name="rectangle"
type="forme_geometrique"/>

<xs:complexType ………………………………………………………………….. >


………………………………………………………………………..
</xs:complexType>

<xs:………………………………………………………………………………………. >
<xs:…………………………………………………………………… />
<xs:…………………………………………………………………………….. />
</xs: ………………………………………………… >
</xs:schema>

4.3 Soit les documents XML « doc1.xml » et «doc2.xml » suivants :


3
« doc1.xml » :

<Memo>
Please make sure you are at the
<Location>ninth floor</Location>by
<MeetingTime>10:30 AM</MeetingTime>
to<Purpose>discuss the budget</Purpose>
</Memo>

« doc2.xml » :

<Memo>
<MeetingTime>10:30AM</MeetingTime>
<Purpose>Discuss Budget</Purpose>
<Location>ninth floor</Location>
</Memo>

a. Indiquez, en argumentant votre choix, pour chaque document XML s’il est centré-données ou centré-
document.
b. Pour le stockage de ces deux documents XML, on a opté pour une base de données relationnelle classique.
Indiquez, pour chacun de ces documents, si ce choix convient ou pas. Dans le cas négatif, indiquez au moins
trois inconvénients à cette solution et proposer une solution alternative.
4.4 Considérons le document XML « students.xml » suivant :
<Students>
<Student>
<ID>1456</ID>
<Name> Aida Boukottaya</Name>
<Status>UGrad</Status>
<Course Code=“c101” />
<Course Code=“c291” />
<Course Code=“c391” />
</Student>

<Student>
<ID>6723</ID>
<Name>Yassine Rekik</Name>
<Status>Grad</Status>
<Course Code=“c605” />
<Course Code=“c691” />
</Student>

</Students>

a. Ecrivez une requête Xquery qui liste les noms des étudiants prenant le cours c391.
b. Ecrivez une requête Xquery qui retourne le nombre total des étudiants dont le « status » est
égal à « Grad » (juste le nombre)