Devoir de Niveau 1 - MP - Bases de Données - Octobre 2023
Devoir de Niveau 1 - MP - Bases de Données - Octobre 2023
Avertissement
- Cette épreuve comporte quatre pages numérotées 1/4, 2/4, 3/4 et 4/4
- La plupart des questions sont indépendantes.
- Le barème total est de 20 points.
- Le barème de chaque question est (approximativement) proportionnel à son niveau de difficulté.
Partie 1 : Complète les définitions/affirmations ci-dessous avec l’une des expressions suivantes : Microsoft Access –
langage – dépendance fonctionnelle – type – clefs – normalisation – données – application – base de données relationnelle
– propriétés – clé candidate d'une relation – relations – MySQL – SQL – Oracle Database – table – SGBD – serveurs –
ligne – colonne – domaine – cardinalité – clé primaire d'une relation – clients
Partie 2 : Fais correspondre chaque objectif (14, 15, 16, 17) des SGBD aux différents énoncés afférents (a, b, c, d)
Pour gérer une base de données, il faut utiliser une suite de programmes appelé système de gestion de bases de données.
Des systèmes de gestion de bases de données (SGBD) de très grande taille (de l’ordre du pétaoctet) sont au centre de
nombreux dispositifs de collecte, de stockage et de production d’informations. Les SGBD permettent :
Objectifs Énoncés
(14) de gérer la lecture, a) Plusieurs personnes peuvent avoir besoin d’accéder en même temps aux
l’écriture ou la modification informations contenues dans une base données, ce qui peut parfois poser problème,
des informations de la base notamment lorsqu’il s’agit de modifier la même donnée au même moment.
(15) de gérer les autorisations b) Un utilisateur peut enregistrer les informations le concernant dans une base de
d’accès à la base données afin de les mettre à jour au besoin et au moment opportun.
(16) de gérer les accès c) Les fichiers d’une base de données sont stockés sur des disques durs dans des
concurrents à la base ordinateurs. Pour pallier aux éventuelles pannes matérielles, une même base de
données est dupliquée sur plusieurs ordinateurs. Toutes les copies de la base doivent
être parfaitement synchronisées, et ce le plus rapidement possible.
(17) d’assurer la maintenance d) Un utilisateur peut être autorisé à lire et écrire dans la base de données alors qu’un
de la base autre utilisateur peut n’avoir la possibilité que de de lire les informations.
1/4
Partie 3 : Fais correspondre chaque type de cardinalités (18, 19, 20) à un exemple approprié (e, f, g)
La cardinalité d’une relation est le nombre d’enregistrements qu’elle contient (le nombre de participation d’une entité à une
relation). Le modèle relationnel prévoit trois types de relations entre tables : 1:1, 1:n et n:n. Les relations entre les tables
sont définies dans la colonne partagée.
Types de cardinalité Exemples
(18) Relation n:n e) Par exemple, dans une école secondaire, une classe a plusieurs professeurs et un
professeur est responsable de plusieurs classes : les tables Classes et Professeurs sont
en relation N:N.
(19) Relation 1:1 f) Par exemple, un ministre est à la tête d’un ministère et un ministère ne comporte
qu’un seul ministre : la table Ministères est en relation 1:1 avec la table Ministres.
(20) Relation 1:n g) Par exemple, un internat accueille plusieurs élèves : un seul membre de la table
Internats peut se rapporter à plusieurs membres de la table Élèves.
On considère le schéma relationnel suivant qui représente un extrait de la base de données d’une bibliothèque
scolaire.
- etudiants (matricule, nom, prenoms, e-mail)
- consulter (id, #matricule, #numero, date)
- livres (numero, titre, auteur, prix)
Un étudiant peut consulter plusieurs livres et un livre peut être consulté plusieurs fois par les étudiants.
On donne ci-dessous, différentes requêtes SQL relatives à cette base de données. Indiquez pour chacune d’elles,
l’opérateur ou les opérateurs relationnels mis en œuvre.
N° Requêtes SQL
2/4
Donnez sous forme de tableau avec un entête, le résultat de chacune des requêtes SQL ci-dessous :
1- SELECT DISTINCT nom AS 'nom étudiant' FROM etudiant;
2- SELECT numero, nom FROM etudiant WHERE numero = 2022007;
3- SELECT nom AS 'nom étudiant', prenom AS 'prénom étudiant' FROM
etudiant WHERE ville LIKE '%i%';
4- SELECT * FROM etudiant WHERE ville = 'Lyon' OR prenom = 'jean' ORDER
BY prenom;
5- SELECT datenaiss AS 'date de naissance' FROM etudiant ORDER BY
datenaiss;
6- SELECT * FROM etudiant LIMIT 3 OFFSET 2 ;
7- SELECT * FROM etudiant WHERE datenaiss <= ALL (SELECT datenaiss FROM
etudiant);
8- SELECT COUNT(ville) AS nombre FROM etudiant WHERE ville IN ("");
9- SELECT * FROM etudiant WHERE datenaiss <= ALL (SELECT datenaiss FROM
etudiant) UNION SELECT * FROM etudiant WHERE datenaiss >= ALL (SELECT
datenaiss FROM etudiant);
Elèves Professeurs
id Prenom Nom Classe Age Ville id Titre Prenom Nom Classe Salle
1 Steph ANE MPSI 17 Yamoussoukro 1 Mr Denis DEFAUCHY MPSI D21
2 Marc IMBUT PCSI 18 Abidjan 2 Mr Paul YMERE PCSI A05
3 Jo NID MPSI 19 Bouaké 3 Mme Sylvie DEFOU MP B18
4 Rayan AIR MP 19 Yamoussoukro 4 Mr Georges AITTE PC C15
5 Tom DESAVOIE PCSI 18 Daloa 5 Mme Marie AGE PSI E8
6 Jerry CANE PSI 19 Yamoussoukro
7 Paul AINE MP 19 Abidjan
8 Jean NAIMAR PCSI 18 San pédro
9 Jack OUILLE MPSI 18 Bouaké
10 Sam OURAIL PC 20 Yamoussoukro
3/4
8) Restreindre cette liste (question précédente) aux élèves de MPSI
9) Afficher la liste des profs ayant des élèves mineurs
10) Afficher la liste des classes et de leurs effectifs
11) Trouver les classes ayant au moins 3 élèves
12) Trouver 3 élèves (nom, prénom) parmi les plus jeunes
13) Etablir le liste des noms, prénoms des élèves, organisée par ordre alphabétique sur les noms d’abord, sur
les prénoms ensuite
14) Trouver le second élève (nom, prénom) de la liste triée par ordre alphabétique obtenue précédemment
4/4
CORRECTION DU DEVOIR DE NIVEAU
EXERCICE 1 :
Partie 1
(1) base de données relationnelle / (2) relations / (3) clefs / (4) table / (5) ligne / (6) type / (7) colonne
(8) propriétés / (9) domaine / (10) langage / (11) SQL / (12) SGBD / (13) données
Partie 2
(14) – b) / (15) – d) / (16) – a) / (17) – c)
Partie 3
(18) – e) / (19) – f) / (20) – g)
Partie 4
Req1 : projection.
Req2 : restriction (selection)
Req3 : projection et restriction (selection)
Req4 : produit cartésien
Req5 : jointure ou combinaison de produit cartésien et restriction
Req6 : projection et jointure
Req7 : différence
EXERCICE 2
4- SELECT * FROM etudiant WHERE ville = 'Lyon' OR prenom = 'jean' ORDER BY prenom;
date de naissance
2000-05-19
2001-09-01
2001-09-01
2003-03-31
2004-01-15
2004-02-24
4) Afficher la liste des élèves (nom, prénom) qui ont atteint l’âge adulte (18ans)
SELECT Nom,Prenom FROM Eleves WHERE Age >= 18;
7) Afficher la liste des élèves sous la forme de n-uplets (Nom, Prénom, Salle) afin que chaque élève trouve
la salle dans laquelle il doit aller pour voir le professeur associé.
SELECT Eleves.Prenom, Eleves.Nom, Professeurs.Salle FROM Eleves JOIN
Professeurs ON Eleves.Classe = Professeurs.Classe;
13) Etablir le liste des noms, prénoms des élèves, organisée par ordre alphabétique sur les noms d’abord, sur
les prénoms ensuite
SELECT nom,prenom FROM Eleves ORDER BY Nom,Prenom;
14) Trouver le second élève (nom, prénom) de la liste triée par ordre alphabétique obtenue précédemment
SELECT nom,prenom FROM Eleves ORDER BY Nom,Prenom LIMIT 1 OFFSET 1;
Ou SELECT nom,prenom FROM Eleves WHERE id NOT IN (SELECT id FROM Eleves
ORDER BY Nom,Prenom LIMIT 1) ORDER BY nom,prenom LIMIT 1