DL N°1 –BD/SQL – CPGE M Y ELHASSAN
Étude de Cas : Gestion du Parc Automobile
2-ECT #2025/26
Contexte :
« Tawssil » est une entreprise marocaine de livraison rapide qui possède une
flotte de véhicules (voitures, fourgonnettes, camions) utilisés par ses employés
pour les tournées de livraison. La gestion actuelle est confuse : on ne sait pas
toujours quel véhicule est disponible, qui l’utilise, quand faire l’entretien ou quel
est le coût associé à chaque véhicule.
Mission :
Votre mission est de concevoir un système d’information pour optimiser la ges-
tion du parc automobile. Les objectifs sont de :
— Suivre l’état et la localisation de chaque véhicule.
— Planifier et suivre l’entretien des véhicules.
— Gérer les réservations des véhicules par les chauffeurs.
— Suivre les coûts (carburant, entretien, assurance) pour chaque véhicule.
Expression des Besoins (Règles de Gestion) :
1. Un véhicule est identifié par son numéro d’immatriculation.
2. Un véhicule appartient à une et une seule catégorie (ex : Utilitaire, Four-
gonnette, Camion) qui définit son type.
3. Un véhicule a un état courant (Disponible, En mission, En panne, En entre-
tien).
4. Un chauffeur (employé) peut conduire plusieurs véhicules, et un véhicule
peut être conduit par plusieurs chauffeurs, mais pas en même temps.
5. Une réservation est effectuée par un chauffeur pour un véhicule spécifique,
sur une plage de dates/heures.
6. Un véhicule ne peut pas être réservé s’il n’est pas "Disponible".
7. Un véhicule ne peut pas avoir deux réservations qui se chevauchent.
8. Chaque entretien (révision, réparation, vidange) est lié à un seul véhicule
et est effectué par un garagiste partenaire.
9. On souhaite enregistrer le coût et la nature de chaque intervention d’entre-
tien.
10. Un chauffeur doit avoir un permis de conduire valide (avec une catégo-
rie de permis) qui doit être compatible avec la catégorie du véhicule (ex :
permis poids lourd pour un camion).
Travail demandé :
I. Proposer un modèle conceptuel de données pour cette base de donnée
1. Identifier les entités
2. Identifier les associations entre entités.
3. Identifier les attributs de chaque entité et souligner l’identifiant.
1
Prof A. EL OUAHAMI
DL N°1 –BD/SQL – CPGE M Y ELHASSAN
4. Identifier les attributs de chaque association.
5. Évaluer les cardinalités des associations.
2-ECT #2025/26
II. Traduire le modèle conceptuel en modèle logique relationnel.
1. Chaque entité devient une relation(table). Les attributs de l’entité de-
viennent attributs de la relation. L’identifiant de l’entité devient clé pri-
maire de la relation.
2. Chaque association 1-N est prise en compte en incluant la clé primaire de
la relation dont la cardinalité maximale est N comme clé étrangère dans
l’autre relation.
3. Chaque association M-N est prise en compte en créant une nouvelle rela-
tion dont la clé primaire est la concaténation des clés primaires des relations
participantes. Les attributs de l’association sont insérés dans cette nouvelle
relation .
Gestion d’une base de données
Soit la table suivante :
1. Créer la table Relevé.
2. nsérer les données.
3. Donner les requêtes SQL suivantes :
I- Requêtes de base :
Requête 1 : Sélectionner tous les relevés.
Requête 2 : Classer les élèves selon les classes.
II- Requêtes d’analyse :
Requête 3 : Calculer la moyenne des ECT et celle des ECS.
2
Prof A. EL OUAHAMI
DL N°1 –BD/SQL – CPGE M Y ELHASSAN
Requête 4 : Calculer la moyenne de chaque classe.
Requête 5 : Calculer la moyenne de la ECS 2 et celle de la ECT 2.
2-ECT #2025/26
Requête 6 : Donner la meilleure note par filière.
Requête 7 :Donner le nombre des élèves par filière.
Requête 8 :Donner la liste des élèves avec leur moyenne personnelle.
III- Requêtes de filtrage :
Requête 9 :Donner la liste des élèves ayant une note supérieure à 15.
Requête 10 : Sélectionner les classes dont la moyenne est supérieure ou égale à
12.
Requête 11 : Donner tous les relevés de la filière ECS.
Requête 12 : Donner la liste des élèves avec leurs filière ayant obtenu une note
comprise entre 10 et 12.
IV- Requêtes statistiques avancées :
Requête 13 : Donner des statistiques complètes par chaque filière.
Requête 14 :Donner la liste des top 5 des meilleurs élèves.
Requête 15 :Donner la liste des élèves en difficulté (moyenne < 10).
Requête 16 :Donner une distribution des notes par mention(faible, passable, As-
sez bien, bien très bien) par filière .
V- Requêtes de recherche :
Requête 17 :Rechercher le relevé de l’élève Ali.
Requête 18 :Chercher les relevés avec les meilleures notes par filière.
4. Donner les fonctions Python suivantes :
I- Fonction de recherche :
def chercher_eleve(code) : Cette fonction permet de chercher l’existence d’un
élève dans la table et qui retourne True si l’élevé est présent dans la table sinon
elle retourne False.
II- Fonction d’insertion :
def inserer_eleve(code, nom ,filiere, classe, note) : Cette fonction test au pre-
mier son existence dans la table avant de l’insérer.
III- Fonction d’affichage :
def afficher_eleve(code) : Cette fonction permet d’afficher les détails d’un élève
à partir de son code_eleve.
IV- Fonction de suppression :
def supprimer_eleve(code) : Cette fonction permet de supprimer un élève qui a
quitté l’établissement.
3
Prof A. EL OUAHAMI