On considère un ensemble de villes reliées
entre elles par un réseau routier. Certaines liaisons entre deux villes
sont à sens unique et d'autres à double sens. Chaque ville est
caractérisée par son nom, sa population et son appartenance à un
département et une région. On considérera par la suite, et pour
simplifier la présentation, que le "réseau" routier se compose des
villes représentées sur le schéma suivant :
Les chiffres représentent les distances
entre villes.
Dictionnaire
des données
Mnémonique
Libellé
Ville
Nom de la ville
Population
Nombre d'habitants de la ville
NumDept
Numéro du département dans lequel
la ville se trouve
NomDept
Nom du département dans lequel la
ville se trouve
NumRegion
Numéro de la région dans laquelle
la ville se trouve
NomRegion
Nom de la région dans laquelle la
ville se trouve
Distance
Distance, en kilomètres, entre 2
villes
Pour modéliser la distance entre 2 villes, l'attribut "Ville"
sera amené à jouer deux rôles :
1- Celui de la ville de départ : attribut "VilleDepart"
2- Celui de la ville d'arrivée : attribut "VilleArrivee"
Dans le cas d'une liaison à double sens entre les 2 villes, la même
ville sera successivement considérée comme ville de départ puis ville
d'arrivée. Dans notre cas, par exemple B-C et C-B ou B-D et D-B.
Si la liaison entre les deux villes est à sens unique, dans notre
exemple E-B ou E-F, une des 2 villes ne jouera qu'un seul des 2 rôles :
Ville de départ ou Ville d'arrivée, mais pourra jouer les deux rôles si
elle est l'objet d'une liaison à double sens avec une autre ville : par
exemple B.
Schéma
des données
Pour un complément d'informations sur la
démarche de construction du schéma des données se reporter, dans ces
pages, à la rubrique Conception BD.
Les attributs VilleDepart, VilleArrivee,
Distance n'ont pas été classés dans l'étape précédente, ils
interviennent dans une DF composée qui est la suivante :
La structure de données "optimale" est la
suivante (les clés sont en caractères gras) :
Dans ce schéma, les relations entre la
table "Distances" et la table "Villes" ne sont pas représentées car
elles dépendent des traitements, et donc des différents rôles que
l'attribut Ville va jouer en fonction des questions posées.
Contenu
de la table "Distances"
VilleDepart
VilleArrivee
Distance
A
E
50
A
F
60
B
C
50
B
D
60
C
B
50
D
B
60
D
E
30
E
A
50
E
B
60
E
D
30
E
F
100
F
A
60
Interrogations
Pour visualiser le contenu de chaque table
de la base de données, taper la commande :
SELECT * FROM Nom_de_ table;
dans un cadre comportant le bouton "Exécuter".
Question 1 Afficher, par région et département, le nombre de
villes de plus de 100000 habitants. (Réponse)
Question 2 Afficher la liste de toutes les liaisons à sens unique
entre deux villes pour lesquelles la population de l'une des 2 villes
est inférieure à 80000 habitants. (Réponse)
Question 3 Afficher la liste des villes, distantes de 2 tronçons
routiers, et la distance qui les séparent. (Réponse)
Question 4 Afficher la liste des villes, qui peuvent être
distantes de 4 tronçons routiers (il peut en effet y avoir des liaisons
plus courtes en 2 ou 3 tronçons), et la distance qui les séparent. (Réponse)
Afficher le nombre d'habitants par région et
département. On supposera que la population d'une région se résume à
celle des villes qui font partie du réseau routier. (Réponse)
Donner le nom de la région qui possède le plus long réseau routier et
le nombre de kilomètres de ce réseau.
Cette question doit être traitée de manière "statique" car elle
implique la création de tables de travail. (Réponse)