Tutoriel de Bases de Données Relationnelles

Tutoriel de Bases de Données Relationnelles

Accueil  > Supports pédagogiques > Annales > Ingénieurs > EI 00 sujet

Sujet du contrôle pour les EI 00/01

INSTITUT NATIONAL DES TELECOMMUNICATIONS

CONTROLE DES CONNAISSANCES

 

Bloc : Bases de données Code : BD21

Durée : 1h30 Date : 20/12/2000

Documents autorisés : Coordonnateurs :

ceux distribués en cours Mme Carpentier, Mr Defude

____________________________________________________

Avertissements

1/ Lisez attentivement le sujet.

2/ Les questions sont indépendantes les unes des autres

3/ Essayez d’être clair et précis dans vos réponses.

4/ Soignez la présentation, dans la mesure du possible.

5/ Barème indicatif

Question 1 : 5 points (Q1 = 5 pts)

Question 2 : 4 points (Q2.1 = 2 pts, Q2.2 = 2 pts)

Question 3 : 6 points (Q3.1 = 2 pts, Q3.2 = 2 pts, Q3.3 = 2 pts)

Question 4 : 3 points (Q4.1 = 1,5 pts, Q4.2 = 1,5 pts)

Question 5 : 2 points (Q5 = 2pts)

 

 

Le conseil général souhaiterait disposer d’une vue globale de ses transports urbains. Pour cela, il vous demande de gérer une base dont le schéma est le suivant :

 

COMPAGNIEBUS(raisonSociale, adresse)

LIGNE(noLigne, compagnie, nbArrets, départ, arrivée)

AFFECTATION(plaqueImmat, noLigne, compagnie, dateAffectation)

MECANICIEN(noMécanicien, nom)

BUS(plaqueImmat, marque, nbPlacesAssis, nbPlacesDebout, mecaResponsable)

 

Les clés sont soulignées et les clés étrangères sont en gras.

La sémantique des diverses relations est la suivante :

COMPAGNIEBUS(raisonSociale, adresse) : une compagnie de bus est identifiée de manière unique par sa raison sociale et est décrite par son adresse (la ville où elle est située) ;

LIGNE(noLigne, compagnie, nbArrets, départ, arrivée) : une ligne de bus est identifiée de manière unique par son numéro ainsi que par la raison sociale de la compagnie de bus à laquelle elle est rattachée ; " compagnie " est une clé étrangère sur COMPAGNIEBUS. Une ligne de bus est décrite par son nombre d’arrêts, ses stations de départ et d’arrivée ;

MECANICIEN(noMécanicien, nom) : un mécanicien est identifié de manière unique par son numéro et possède un nom ;

 

BUS(plaqueImmat, marque, nbPlacesAssis, nbPlacesDebout, mecaResponsable) : un bus est identifié de manière unique par sa plaque d’immatriculation. Un bus appartient à une marque (‘Renault’), et est décrit par le nombre de places assises et debout disponibles. Enfin, pour chacun des bus un mécanicien est désigné comme étant responsable de son suivi ; " mecaResponsable " est une clé étrangère sur MECANICIEN.

AFFECTATION(plaqueImmat, noLigne, compagnie, dateAffectation) : un tuple dans cette relation indique qu’un bus (identifié par sa plaque d’immatriculation) est affecté à une ligne de bus (identifiée par son numéro et la raison sociale de la compagnie de bus), à compter d’une date donnée.

Question 1

En vous aidant des règles de passage d’une modélisation Entité/association à une modélisation relationnelle "à l’envers", proposer un schéma Entité/Association équivalent à ce schéma relationnel. Ce schéma devra comporter la description des entités (avec leurs propriétés), des entités faibles (s’il y a lieu), des associations (avec leurs propriétés) ainsi que les cardinalités minimum et maximum des associations binaires.

 

Question 2

Exprimer chacune des 2 questions suivantes, d’une part en algèbre relationnelle sous la forme d’un arbre algébrique, et d’autre part en SQL.

(Q2.1) Donner les lignes de bus (numéro, départ et arrivée) des compagnies de bus basées à ‘Evry’.

(Q2.2) Donner la plaque d’immatriculation et la capacité d’accueil (places assises et debout) des bus de la ligne 404 de la compagnie de raison sociale ‘TICE’.

Question 3

Exprimer les 3 questions suivantes en SQL :

(Q3.1) Donner le nombre de lignes qui partent de ou arrivent à la station ‘Evry-Courcouronnes’.

(Q3.2) Donner pour chaque compagnie de bus, le nombre de ligne qu’elle possède et le nombre moyen d’arrêts par ligne en ne considérant que les lignes qui possèdent au moins 10 arrêts.

(Q3.3) Donner la raison sociale et l’adresse de la compagnie possédant le plus grand nombre de lignes.

Question 4

Exprimer les 2 questions suivantes en algèbre relationnelle ou en SQL :

(Q4.1) Donner le nom des mécaniciens qui ne sont responsables d’aucun bus.

(Q4.2) Donner le nom des mécaniciens responsables d’au moins un bus de chaque marque.

Question 5

Soient les formulaires suivants :

<html>

<body>

<h1>SUPPRESSION DANS LA BASE DES BUS</h1>

<hr>

<form name="supbus" action="http://mica.int-evry.fr/cgi-bin/mowi_sql.cgi" target="result" method="POST">

<input type="hidden" name="uid" value="applibus/applibus@MICA">

<input type="hidden" name="mode" value="SUP">

<input type="hidden" name="temp" value="select * from bus where plaqueImmat=">

<input type="hidden" name="sqlstatement" value="">

Plaque d’immatriculation du bus &agrave; supprimer : <input name="numero" value=""><p>

<input type="button" value="supprimer" onClick="supbus.sqlstatement.value=supbus.temp.value+supbus.numero.value;supbus.submit();">

</form>

</body>

</html>

<html>

<body>

<h1>INTERROGATION DANS LA BASE DES BUS</h1>

<hr>

<form name="intligne" action="http://mica.int-evry.fr/cgi-bin/mowi_sql.cgi" target="result" method="POST">

<input type="hidden" name="uid" value="applibus/applibus@MICA">

<input type="hidden" name="mode" value="NOR">

<input type="hidden" name="temp" value="select * from ligne where depart=">

<input type="hidden" name="sqlstatement" value="">

Station de d&eacute;part de ligne : <input name="depart" value=""><p>

<input type="button" value="interroger" onClick="intligne.sqlstatement.value=intligne.temp.value+intligne.depart.value;intligne.submit();">

</form>

</body>

</html>

<html>

<body>

<h1>INSERTION DANS LA BASE DES BUS</h1>

<hr>

<form name="insbus" action="http://mica.int-evry.fr/cgi-bin/mowi_sql.cgi" target="result" method="POST">

<input type="hidden" name="uid" value="applibus/applibus@MICA">

<input type="hidden" name="mode" value="INS">

<input type="hidden" name="table" value="BUS">

<input type="hidden" name="sqlstatement" value="">

<input type="button" value="insertion d'un bus" onClick="insbus.submit();">

</form>

</body>

</html>

Quel est le code XML à écrire pour générer une application web assurant les mêmes fonctionnalités ?

[fil RSS du site]
Dernière mise à jour : 04/09/2009