Exercices sur le modèle relationnel⚓︎
1. Exercices variés⚓︎
Exercice 1
(d'après Prépabac NSI, Terminale, G.CONNAN, V.PETROV, G.ROZSAVOLGYI, L.SIGNAC, éditions HATIER.)
Deux relations modélisent la flotte de voitures d'un réseau de location de voitures.
Agences
| id_agence | ville | département |
|---|---|---|
| 1 | Paris | 75 |
| 2 | Lyon | 69 |
| 3 | Marseille | 13 |
| 4 | Aubagne | 13 |
Voitures
| id_voiture | marque | modèle | kilométrage | couleur | id_agence |
|---|---|---|---|---|---|
| 1 | Renault | Clio | 12000 | Rouge | 2 |
| 2 | Peugeot | 205 | 22000 | Noir | 3 |
| 3 | Toyota | Yaris | 33000 | Noir | 3 |
- Combien la relation
Voiturescomporte-t-elle d'attributs ? - Que vaut son cardinal ?
- Quel est le domaine de l'attribut
id_agencedans la relationVoitures? - Quel est le schéma relationnel de la relation
Agences? - Quelle est la clé primaire de la relation
Agences? - Quelle est la clé primaire de la relation
Voitures? - Quelle est la clé étrangère de la relation
Voitures?
Correction
- 6
- 3
- Entier (
Int) - ((id_agence, Int), (ville, String), (département, Int))
id_agenceid_voitureid_agence
Exercice 2
Reprenons la base Tour de France 2020 vue en cours :
relation Équipes
| codeEquipe | nomEquipe |
|---|---|
| ALM | AG2R La Mondiale |
| AST | Astana Pro Team |
| TBM | Bahrain - McLaren |
| BOH | BORA - hansgrohe |
| CCC | CCC Team |
| COF | Cofidis, Solutions Crédits |
| DQT | Deceuninck - Quick Step |
| EF1 | EF Pro Cycling |
| GFC | Groupama - FDJ |
| LTS | Lotto Soudal |
| ... | ... |
relation Coureurs
| dossard | nomCoureur | prénomCoureur | codeEquipe |
|---|---|---|---|
| 141 | LÓPEZ | Miguel Ángel | AST |
| 142 | FRAILE | Omar | AST |
| 143 | HOULE | Hugo | AST |
| 11 | ROGLIČ | Primož | TJV |
| 12 | BENNETT | George | TJV |
| 41 | ALAPHILIPPE | Julian | DQT |
| 44 | CAVAGNA | Rémi | DQT |
| 45 | DECLERCQ | Tim | DQT |
| 121 | MARTIN | Guillaume | COF |
| 122 | CONSONNI | Simone | COF |
| 123 | EDET | Nicolas | COF |
| … | … | … | … |
relation Étapes
| numéroEtape | villeDépart | villeArrivée | km |
|---|---|---|---|
| 1 | Nice | Nice | 156 |
| 2 | Nice | Nice | 185 |
| 3 | Nice | Sisteron | 198 |
| 4 | Sisteron | Orcières-Merlette | 160 |
| 5 | Gap | Privas | 198 |
| ... | ... | ... | ... |
relation Temps
| dossard | numéroEtape | tempsRéalisé |
|---|---|---|
| 41 | 2 | 04:55:27 |
| 121 | 4 | 04:07:47 |
| 11 | 5 | 04:21:22 |
| 122 | 5 | 04:21:22 |
| ... | ... | ... |

- Quel temps a réalisé Guillaume MARTIN sur l'étape Sisteron / Orcières-Merlette ?
- À l'arrivée à Privas, qui est arrivé en premier entre Primož ROGLIČ et Simone CONSONNI ?
Correction
- Temps de Guillaume Martin (dossard 121): 04:07:47
- Aucun des deux, ils sont arrivés dans le même temps (04:21:22)
Exercice 3
D'après un exercice de Frédéric Junier
Le parc informatique
On considère la relation suivante qui liste les postes informatiques dans une entreprise.

Cette relation respecte bien le principe d’unicité car chaque nuplet est identifié de façon unique
par la valeur de l’attribut num_serie ou même par la valeur de l’attribut nom_poste.
En revanche la relation présente de nombreuses redondances. Ces répétitions sont liées au fait qu’un nuplet ne contient pas des données sur une seule mais sur trois entités distinctes du monde réel : * les attributs num_serie et nom_poste caractérisent une entité poste informatique ; * les attributs nom_modele, fabricant et annee caractérisent une entité modèle de poste ; * les attributs nom_systeme et version caractérisent une entité système d’exploitation.
On peut résumer ceci dans le graphique suivant :

1. Question 1.
Donner quelques exemples d’anomalies que peut entraîner la redondance d’informations pour une relation.
On considérera les situations suivantes : on insère un nouveau nuplet, on modifie une valeur d’attribut
redondant, on supprime un nuplet.
Solution
-
On insère un nouveau nuplet : si celui-ci contient des informations redondantes dans la table (par exemple le nom du système exploitation dans la base exemple), alors il faut les saisir à l’identique sinon la cohérence de la table est cassée: aucune sélection selon ces informations ne sera possible.
-
On modifie une valeur d’attribut redondant : il faut modifier ces valeurs pour toutes les redondances de cette valeur dans la table sinon la cohérence de la table est cassée.
-
On supprime un nuplet : on risque de supprimer des informations utiles de la base par exemple le nom d’un système d’exploitation disponible sur le serveur mais qui n’est plus déployé sur un poste actif.
2. Question 2.
Pour éliminer les redondances, ont peut séparer la base de données en trois relations, une par entité,
en éliminant les doublons dans les relations modele et systeme. Proposer un schéma relationnel.
Solution

3. Question 3.
On donne les extraits de tables suivants :
Relation modele
| id_modele | nom | fabricant | annee |
|---|---|---|---|
| 5 | hp probook 400 | hp | 2019 |
Relation systeme
| id_systeme | nom | version |
|---|---|---|
| 4 | fedora linux | 36 |
En utilisant le SGBD de la question 2, donner donner l'extrait de la relation poste contenant
uniquement le premier enregistrement correspondant au numéro de série S2069FST
Solution
Relation poste
| num_serie | nom | id_modele | id_systeme |
|---|---|---|---|
| S2069FST | Portable-01 | 5 | 4 |
2. Travaux dirigés⚓︎
TD
😀 La correction
TD modèle relationnel - correction
3. Questionaire à choix multiples⚓︎
QCM
Auteur : Frédéric Junier
Questions
Modèle relationnel - bases de données
-
Dans la formalisation mathématique du modèle relationnel, quel est l'équivalent d'une ligne d'une table ?
- Un nuplet
- Un attribut
- Un domaine
- Une relation
-
Une base de données contient une seule table. Laquelle des propositions décrit correctement le contenu du schéma relationnel de cette relation ?
- Le nom de la relation, la liste des attributs (tous distincts), le domaine de valeur de chaque attribut et l'ensemble d'attribut(s) constituant la clef primaire souligné(s)
- La liste ordonnée de toutes les lignes puis des colonnes de la table
- Le plan physique de stockage des fichiers sur disque
- Les utilisateurs autorisés et leurs droits d'accès
-
On considère la relation suivante qui décrit les exemplaires de livres d'une bibliothèque :
cote_exemplaire titre auteur annee isbn EX001 L'Étranger Albert Camus 1942 9782070360024 EX002 L'Étranger Albert Camus 1942 9782070360024 EX003 Germinal Émile Zola 1885 9782253004226 EX004 Les Misérables Victor Hugo 1862 9782070409181 Quel attribut peut être choisi comme clé primaire pour identifier de façon unique chaque exemplaire ?
- cote_exemplaire
- titre
- auteur
- isbn
-
On considère une base de données où une clé étrangère FK de la relation R2 référence une clef primaire PK de la relation R1. Quelle affirmation est correcte dans le modèle relationnel ?
- Chaque valeur de FK doit appartenir à l'ensemble des valeurs de la clé primaire PK prises dans R1
- FK peut prendre n'importe quelle valeur tant que son type est le même que celui de PK
- FK doit être unique dans R2 et ne peut pas être NULL
- FK et PK doivent avoir le même nom d'attribut
-
Laquelle des situations viole le principe d'atomicité des valeurs d'attribut ?
- Un attribut « adresse » qui stocke « 12 rue des Fleurs, 75000 Paris » dans une seule chaîne concaténant plusieurs données structurées
- Un attribut « annee » de type INT
- Un attribut « nom_poste » de type TEXT
- Un attribut « version » pouvant être vide (NULL)
-
Laquelle des propositions traduit la contrainte d'unicité associée à une clé primaire ?
- Une même valeur de clé primaire ne peut apparaître qu'une seule fois dans une relation
- Une valeur de clé primaire peut être modifiée librement si le type reste identique
- Une clé primaire peut être définie plusieurs fois dans une même relation
- Les valeurs de clé primaire doivent être des entiers strictement positifs
-
On considère une base de données où une clé étrangère FK de la relation R2 référence une clef primaire PK de la relation R1. À propos de l'intégrité référentielle, quelle opération est interdite par le SGBD ?
- Supprimer un nuplet de la table R1 s'il est référencé par au moins un nuplet de R2 via une clé étrangère
- Insérer un nuplet dans la table R1
- Supprimer un nuplet de la table R2
- Supprimer un nuplet de la table R1 qui n'est pas référencé par au moins un nuplet de R2 via une clé étrangère
-
Laquelle des propositions illustre le principe de non redondance lors de la conception d'un schéma ?
- Séparer une grande table avec des répétitions en plusieurs tables reliées par des clés étrangères
- Regrouper toutes les informations dans une seule table large pour éviter les jointures
- Dupliquer les colonnes communes dans chaque table pour accélérer la lecture
- Concaténer plusieurs champs dans une même colonne pour réduire le nombre d'attributs
-
On modélise une médiathèque : Eleves(idEleve, nom, prenom, classe) et Emprunts(idEmprunt, idEleve, isbn, dateEmprunt, dateRetour). Quelle clé étrangère peut-on choisir dans Emprunts pour assurer la cohérence avec Eleves ?
- idEleve dans Emprunts
- idEmprunt dans Emprunts
- isbn dans Emprunts
- classe dans Eleves
-
On considère la table suivante dont on donne le schéma relationnel la clef primaire est en gras :
Personnes(nom: TEXT, prenom: TEXT, code: CHAR(6))
nom prenom code Dupont Alice '013007' Martin Hugo '084750' Bernard Clara '042571' Peut-on insérer le nuplet suivant dans la relation Personnes ?
(Durand, Léa, '084750')- Oui, car le nom est différent
- Oui, car le prénom est différent
- Non, car sinon on viole la contrainte d'unicité pour une clé primaire
- Non, car la combinaison (nom, prenom) est déjà présente dans la table
D'après Frédéric Junier, David Roche, Pixees et Stéphan Van Zuijlen Lycée Jean Moulin adapté par François Halle, Valérie Mousseaux, Mireille COILHAC et Jean-Louis Thirot publié sous licence CC BY SA Exercices réalisés par Gilles Lassus et Frédéric Junier