Bases de données relationnelles
Questions de cours¶
Deux relations modélisent la flotte de voitures d'un réseau de location de voitures.
-
Agence
ida ville département 1 Paris 75 2 Lyon 69 3 Marseille 13 4 Aubagne 13 -
Voiture
idv marque modèle km couleur ida 1 Renault Clio 12000 Rouge 2 2 Peugeot 205 22000 Noir 3 3 Toyota Yaris 33000 Noir 3 4 Toyota Yaris 65000 Verte 1 -
Combien la relation Voiture comporte-t-elle d'attributs ?
- Que vaut son cardinal ?
- Quel est le domaine de l'attribut ida dans la relation Voiture ?
- Quelle est la clé primaire de la relation Agence ?
- Quelle est la clé primaire de la relation Voiture ?
- Quelle est la clé étrangère de la relation Voiture ?
- Quel est le schéma relationnel de la relation Agence ?
- Quel est le schéma relationnel de la relation Voiture ?
Modélisation redondante¶
Dans la table "Médailles" ci-dessous, on suppose que des sports différents ne peuvent pas avoir le même nom.
Année | Sport | Épreuve | Sexe | Sportif | Médaille |
---|---|---|---|---|---|
2020 | Natation | 50m libre | H | C. Dressel | Or |
2020 | Natation | 50m libre | H | F. Manaudou | Argent |
2020 | Natation | 100m dos | F | K. Mckeown | Or |
2020 | Natation | 100m dos | F | K. Masse | Argent |
2016 | Natation | 100m dos | F | K. Masse | Bronze |
2016 | Natation | 100m dos | F | F. Yanhui | Bronze |
… | … | … | … | … | … |
- Quels attributs peut-on choisir comme clé primaire ? Justifier votre réponse.
- Ce n'est pas possible.
- Année
- (Année, Sportif, Épreuve)
- (Année, Épreuve, Médaille)
- Quel est le résultat de l'ordre
UPDATE Médailles SET Sportif = 'F. Manaudou' WHERE Année = 2020 AND Médaille = 'Or'
? -
- Quelles sont les informations qui apparaissent plusieurs fois dans cette table ?
- On souhaite éviter les informations redondantes. On décompose pour cela la relation
Médaille
en trois relations :Sport
,Sportif
etMédaille
.- Donner les attributs de ces relations (on ajoutera un attribut
id
si nécessaire) . - Pour chacune des relations, expliquer quel attribut joue le rôle de clé primaire, quels attributs jouent le rôle de clé étrangère (s'il y en a).
- En déduire le schéma relationnel complet de cette base de données.
- Donner les attributs de ces relations (on ajoutera un attribut
Tour de france¶
On donne ci-dessous les relations constituant la base de données Tour de France 2020.
En utilisant les données de l'énoncé, répondre aux questions suivantes :
-
Donner le schéma relationnel des relations Équipe et Étape.
-
- Quels sont les attributs de la relation Coureur ?
- Quel attribut peut jouer le rôle de clé primaire pour cette relation ?
- Quelle contrainte utilisateur est-il raisonnable d'imposer à l'attribut "dossard" ?
- En déduire le schéma relationnel de la relation Coureur.
-
- Expliquer pourquoi l'attribut dossard ne peut pas être choisi comme clé primaire de la relation Temps.
- Y a-t-il des clés étrangères dans la relation Temps ? Si oui, préciser lesquelles.
- En déduire le schéma relationnel de la relation Temps. On choisira comme clé primaire le coupe (dossard, numéroEtape).
- En déduire une représentation sous forme de diagramme synthétisant la composition des différentes tables ainsi que les relations entre elles.
-
- Quel est le nom de l'équipe à laquelle appartient Nicolas EDET ?
- Quel temps a réalisé Guillaume MARTIN sur l'étape Sisteron / Orcières-Merlette ?
- Quelle est la vitesse moyenne de Julian ALAPHILIPPE lors de l'étape Gap-Privas ?
- À l'arrivée à Privas, qui est arrivé en premier entre Primož ROGLIČ et Simone CONSONNI ?
- Quels sont les numéros de dossard des coureurs de l'équipe "Cofidis, Solutions Crédit" ?
-
-
Écrire un ordre SQL permettant d'ajouter la coureuse Anaïs Baya à l'équipe Astana Pro Team.
-
Expliquer pourquoi l'ordre SQL ci-dessous soulève une erreur.
1 2
DELETE FROM Coureur WHERE dossard = 41 ;
-
Expliquer comment faire pour supprimer ALAPHILIPPE Julian de la relation Coureur.
-
Type bac¶
Un site permet à ses membres de proposer à la location du matériel et de louer du matériel. Ceci permet de mutualiser du matériel entre membres et au propriétaire de rentabiliser cet achat. Le temps d'utilisation du matériel s'en trouve ainsi augmenté et le nombre d'appareils diminué.
Le modèle relationnel est donné par le schéma ci-dessous.
La table Membre
contient les informations de chaque utilisateur du site (nom, prénom et
code postal). La table Objet
décrit le type d'objet à la location ainsi que son tarif de
location journalier.
La table Reservation
répertorie toutes les réservations effectuées par les membres du
site avec notamment leur date de début et de fin de location. La table Possede
permet
de lier les tables Membre
et Objet
.
Conventions utilisées pour le schéma :
- Les clés primaires et étrangères sont mises en gras ;
- un symbole de clé identifie une clé primaire ;
- une ligne entre deux attributs indique qu’ils doivent partager les mêmes valeurs et qu’ils sont reliés de la manière suivante : le côté avec un trait indique la clé primaire et le côté avec une pate d'oie indique la clé étrangère.
On donne ci-dessous le contenu de ces tables à un instant donné.
-
- Donner les noms et prénoms du (des) personne(s) dont le code postal est 69003.
- Donner les noms et prénoms du (des) personne(s) qui proposent à la location un appareil à raclette.
- Donner le prénom et le nom du membre qui ne propose pas d’objet à la location.
-
- Écrire une requête SQL permettant d'ajouter sans erreur Wendie Renard habitant à
Villeurbanne (code postal 69100) dans la table
Membre
. - Écrire une requête permettant de modifier le tarif de location d’un nettoyeur à haute pression pour le passer à 15 € par jour au lieu de 20 € par jour.
- Écrire la ou les requêtes permettant à Wendie Renard de proposer à la location son enceinte au tarif de 5 euros la journée.
- Écrire une requête SQL permettant d'ajouter sans erreur Wendie Renard habitant à
Villeurbanne (code postal 69100) dans la table
-
-
Expliquer la limitation importante d’utilisation du service offert par le site si l'on utilisait le couple de clés étrangères (idobjet, idmembre) en tant que clé primaire de la relation
Reservation
. -
Expliquer quelle erreur survient lorsque l'on exécute l'ordre
1
INSERT INTO Membre VALUES (1, "Luther King", "Martin");
-
L'ordre suivant produit-il un erreur ? Justifier.
1
INSERT INTO Membre VALUES (10, "Ali", "Mohamed");
-
Mohamed Ali décide de ne plus être membre du site. Il faut donc le supprimer de la table
Membre
à l'aide de la requête :1 2
DELETE FROM Membre WHERE nom = "Ali" AND prenom ="Mohamed";
Expliquer pourquoi cette requête produit une erreur. 5. Proposer une suite de requêtes utilisant le mot clé
DELETE
, précédant la requête ci-dessus pour supprimer correctement Mohamed Ali de la base de données.
-