EXAMEN NORMAL — IGL234 : GÉNIE LOGICIEL & BASES DE DONNÉES
Session 3
Module : IGL234 — Génie Logiciel & Bases de Données
Niveau : Licence en Informatique
Durée : 3 heures | Note totale : 20 points
Année académique : 2025–2026
Consignes générales : Les quatre (4) parties sont indépendantes. Toutes les questions sont obligatoires. Soignez la présentation, justifiez vos réponses et rédigez les algorithmes dans le formalisme pseudo-code vu en cours.
PARTIE I — Techniques de Tris et de Recherche
Barème : 5 points | Durée conseillée : 45 min
Contexte professionnel
Vous êtes ingénieur(e) logiciel au Ministère des Postes et Télécommunications du Cameroun. Votre direction vous confie la gestion d’un tableau des fréquences radio (représentées par des entiers naturels en MHz) attribuées aux opérateurs du pays. Vous devez écrire deux modules algorithmiques : l’un pour trier ces fréquences et l’autre pour les rechercher efficacement lors des audits techniques.
Exercice 1 — Technique de Tri par Sélection (2,5 points)
Le tableau Frequences[1..60] contient les 60 fréquences radio actuellement attribuées. Ces fréquences sont stockées dans un ordre quelconque.
Travail demandé :
-
(0,5 pt) Décrivez le déroulement du tri par sélection en 4 étapes clés. Comment la partie triée du tableau évolue-t-elle à chaque itération ?
-
(1,5 pt) Écrivez la procédure algorithmique
TrierFrequencesqui :- Prend en entrée le tableau
Frequences[1..60]et la taillen = 60. - Applique le tri par sélection pour classer les fréquences en ordre croissant.
- Utilise une variable
m(indice du minimum) conformément à l’algorithme du cours. - Affiche toutes les fréquences triées.
Respectez le formalisme :
Var,Début,FinPour,Si… FinSi, instructions terminées par;. - Prend en entrée le tableau
-
(0,5 pt) Lors du premier passage du tri par sélection sur le tableau
Fq = [450, 120, 890, 230, 670](n=5), quelle est la valeur sélectionnée comme minimum ? Avec quel élément est-elle échangée ? Donnez l’état du tableau après ce premier passage.
Exercice 2 — Technique de Recherche Dichotomique (2,5 points)
Après le tri, le service des audits souhaite vérifier rapidement si une fréquence F_Audit est déjà attribuée, et si oui, à quelle position du tableau trié elle se trouve.
Travail demandé :
-
(0,5 pt) Déroulez manuellement la recherche dichotomique de la valeur
230dans le tableau triéFq = [120, 230, 450, 670, 890]. Indiquez pour chaque étape les valeurs demin,maxetmil. -
(1,5 pt) Écrivez la fonction
AuditFrequencequi :- Prend en paramètres : le tableau
Frequences[1..60](supposé trié), la taillen, la fréquenceF_Audit(entier), et une variablepos(entier, par référence). - Applique la recherche dichotomique (variables
min,max,mil,trouvébooléen). - Retourne
Vraiet affecte la position àpossi la fréquence est trouvée,Fauxsinon.
- Prend en paramètres : le tableau
-
(0,5 pt) Pour
n = 60fréquences triées, quel est le nombre maximal de comparaisons que la recherche dichotomique effectuera dans le pire des cas ? Donnez le calcul (formule : ⌈log₂(n)⌉) et comparez avec la recherche séquentielle.
PARTIE II — Concepts de Normalisation (1NF, 2NF, 3NF)
Barème : 5 points | Durée conseillée : 50 min
Contexte professionnel
Vous intégrez la cellule informatique d’un Lycée Technique à Ngaoundéré. Le proviseur vous remet un fichier Excel utilisé depuis 5 ans pour gérer les notes trimestrielles des élèves. Vous avez pour mission de concevoir une base de données relationnelle propre à partir de cette donnée brute.
Exercice 1 — Vérification 1NF et passage à la 2NF (2,5 points)
Table NOTES_TRIMESTRIELLES (non normalisée) :
| Matricule_El | NomElève | Classe | CodeMatière | IntituléMatière | Coeff | NoteT1 ; NoteT2 ; NoteT3 | Nom_Prof |
|---|---|---|---|---|---|---|---|
| EL2501 | MANGA Hervé | Tle D | MAT | Mathématiques | 4 | 12 ; 14 ; 10 | M. DJOMO |
| EL2501 | MANGA Hervé | Tle D | PHY | Physique-Chimie | 3 | 08 ; 11 ; 13 | Mme. YEMELI |
| EL2502 | ATEBA Sophie | Tle D | MAT | Mathématiques | 4 | 15 ; 13 ; 16 | M. DJOMO |
La clé supposée est (Matricule_El, CodeMatière).
Travail demandé :
-
(0,5 pt) Identifiez la violation de la 1NF dans cette table (colonnes multivaluées ou attributs non atomiques). Proposez la correction pour mettre la table en 1NF en éclatant les données problématiques : donnez le schéma de la table corrigée avec un exemple de données.
-
(1,0 pt) Sur la table corrigée en 1NF (dont la clé reste
(Matricule_El, CodeMatière)), identifiez les dépendances fonctionnelles partielles. Présentez-les sous la forme :Attribut → [Matricule_El | CodeMatière] : raison -
(1,0 pt) Décomposez en 2NF : donnez le schéma complet de chaque table obtenue (nom, attributs avec clé primaire soulignée, clés étrangères éventuelles).
Exercice 2 — Passage à la 3NF (2,5 points)
À l’issue de l’exercice 1, on suppose que vous avez obtenu la table suivante en 2NF :
Table ELEVE :
| Matricule_El | NomElève | Code_Classe | Lib_Classe | Nb_Elèves_Classe | Nom_Titulaire |
|---|---|---|---|---|---|
| EL2501 | MANGA Hervé | TleD | Terminale D | 52 | Mme. BELINGA |
| EL2502 | ATEBA Sophie | TleD | Terminale D | 52 | Mme. BELINGA |
| EL2503 | FOUDA Christelle | TleC | Terminale C | 45 | M. MVOGO |
La clé primaire est Matricule_El.
Travail demandé :
-
(0,5 pt) Vérifiez si
ELEVEest en 2NF : tous les attributs non-clés dépendent-ils directement et totalement deMatricule_El? Argumentez. -
(1,0 pt) Identifiez toutes les dépendances transitives dans cette table.
- Représentez-les sous la forme
Clé → Intermédiaire → Attributs dépendants. - Décrivez l’anomalie d’insertion concrète : que se passe-t-il si on veut enregistrer une nouvelle classe
Tle Ealors qu’aucun élève n’y est encore inscrit ?
- Représentez-les sous la forme
-
(1,0 pt) Décomposez la table
ELEVEen 3NF. Donnez le schéma complet de chaque table obtenue (nom, attributs, clé primaire soulignée, clés étrangères).
PARTIE III — Tri à Bulles
Barème : 5 points | Durée conseillée : 40 min
Contexte professionnel
Vous travaillez pour CamRail, la société nationale des chemins de fer du Cameroun. Votre équipe informatique gère un tableau des temps de trajet en minutes pour 8 trains reliant différentes villes. Le chef de gare vous demande de coder deux algorithmes de tri pour organiser les affichages dans les salles d’attente.
Exercice 1 — Application du Tri à Bulles et calcul de complexité (2,5 points)
Le tableau des temps de trajet (en minutes) est le suivant :
Trajets = [95, 40, 180, 25, 135, 60, 210, 15]
Travail demandé :
-
(1,0 pt) Effectuez manuellement les deux premiers passages du tri à bulles sur ce tableau (
i = 8eti = 7). Montrez l’état du tableau après chaque échange et précisez le nombre d’échanges réalisés pour chaque passage. -
(1,0 pt) Écrivez la procédure algorithmique
TrierTempsDeTrajetsqui :- Prend en entrée le tableau
Trajets[1..n]d’entiers naturels et la taillen. - Applique le tri à bulle pour trier les temps en ordre croissant (du plus court au plus long).
- Affiche les temps triés.
- Prend en entrée le tableau
-
(0,5 pt) En vous basant sur le cours, établissez le nombre total de comparaisons effectuées par le tri à bulles dans le pire des cas pour
n = 8. Donnez la formule et le résultat numérique.
Exercice 2 — Tri à Bulles optimisé et analyse de cas (2,5 points)
CamRail souhaite une fonctionnalité supplémentaire : afficher les trajets du plus long au plus court pour la liste des trains « grandes distances ». De plus, pour des raisons de performance, l’algorithme doit s’arrêter si le tableau est déjà trié.
Travail demandé :
-
(0,5 pt) En tri à bulles, lorsqu’aucun échange n’est effectué lors d’un passage complet, qu’est-ce que cela signifie pour l’état du tableau ? Expliquez le principe de l’indicateur booléen
échangé(oupermutation) utilisé pour l’optimisation. -
(1,5 pt) Écrivez la procédure algorithmique
TrierTrajetsDescendantqui :- Prend en entrée le tableau
Trajets[1..n]et la taillen. - Implémente le tri à bulles optimisé avec le booléen
échangé. - Trie les trajets en ordre décroissant (du plus long au plus court).
- Affiche le tableau final trié.
- Prend en entrée le tableau
-
(0,5 pt) Comparez les complexités temporelles des trois cas du tri à bulles optimisé :
Cas Tableau initial Complexité Nb comparaisons (n=8) Meilleur cas Déjà trié ? ? Moyen cas Partiellement trié ? ? Pire cas Trié à l’envers ? ? Complétez ce tableau.
PARTIE IV — Administration de Bases de Données et SQL
Barème : 5 points | Durée conseillée : 45 min
Contexte professionnel
Vous êtes Administrateur(trice) de Bases de Données pour EduPlus Cameroun, une start-up EdTech qui propose une plateforme d’apprentissage en ligne pour les lycéens. Votre mission est de créer et gérer la base de données EduPlus_DB, d’en assurer la sécurité et de fournir des requêtes SQL au service analytique pour le rapport mensuel d’activité.
Exercice 1 — Création, Droits d’accès et Sécurité (2,5 points)
Travail demandé :
-
(1,0 pt) Rédigez les instructions SQL (DDL) pour :
- Créer la base
EduPlus_DB. - Créer la table
Apprenants:ID_Apprenant(entier, clé primaire, auto-incrémenté),Nom(chaîne 80 caractères, non null),Ville(chaîne 80 caractères),Email(chaîne 120 caractères, unique),Date_Inscription(date). - Créer la table
Abonnements:ID_Abo(entier, clé primaire, auto-incrémenté),ID_Apprenant(entier, clé étrangère versApprenants),Type_Abo(chaîne 30 caractères — valeurs possibles :'Mensuel','Trimestriel','Annuel'),Montant_FCFA(décimal 10,2, valeur > 0),Date_Debut(date),Date_Fin(date).
- Créer la base
-
(0,5 pt) Rédigez les deux instructions SQL (l’une pour l’analyste, l’autre pour la comptabilité) :
- Accorder à l’utilisateur
analyste_eduuniquement le droitSELECTsur les tablesApprenantsetAbonnements. - Accorder à l’utilisateur
compta_edules droitsSELECTetUPDATEsurAbonnementsuniquement.
- Accorder à l’utilisateur
-
(1,0 pt) Le directeur technique pose la question suivante : « Comment protéger notre base de données si un disque dur tombe en panne ? »
- Expliquez le rôle du mécanisme WAL (Write Ahead Log) vu en cours dans la résistance aux pannes.
- Proposez deux stratégies complémentaires de haute disponibilité (parmi : réplication maître-esclave, clustering, RAID 10) et expliquez brièvement le fonctionnement de chacune.
Exercice 2 — Requêtes SQL d’Interrogation et de Manipulation (2,5 points)
Table Apprenants :
| ID_Apprenant | Nom | Ville | Date_Inscription | |
|---|---|---|---|---|
| 1 | NKENG Aurore | Yaoundé | aurore@edu.cm | 2026-01-05 |
| 2 | BIYONG Marc | Douala | marc@edu.cm | 2026-01-12 |
| 3 | SAMBA Fatou | Bafoussam | fatou@edu.cm | 2026-02-01 |
| 4 | EWANE Patrick | Kribi | patrick@edu.cm | 2026-02-14 |
| 5 | NJOYA Hawa | Ngaoundéré | hawa@edu.cm | 2026-03-01 |
Table Abonnements :
| ID_Abo | ID_Apprenant | Type_Abo | Montant_FCFA | Date_Debut | Date_Fin |
|---|---|---|---|---|---|
| 1 | 1 | Mensuel | 5000.00 | 2026-01-05 | 2026-02-05 |
| 2 | 2 | Trimestriel | 12000.00 | 2026-01-12 | 2026-04-12 |
| 3 | 3 | Annuel | 40000.00 | 2026-02-01 | 2027-02-01 |
| 4 | 1 | Mensuel | 5000.00 | 2026-02-06 | 2026-03-06 |
| 5 | 4 | Mensuel | 5000.00 | 2026-02-14 | 2026-03-14 |
| 6 | 5 | Trimestriel | 12000.00 | 2026-03-01 | 2026-06-01 |
Travail demandé :
-
(0,5 pt) Rédigez la requête SQL qui affiche pour chaque type d’abonnement (
Mensuel,Trimestriel,Annuel) le nombre d’abonnements souscrits et le revenu total généré, triés par revenu total décroissant. -
(0,5 pt) Rédigez la requête SQL qui liste le nom de chaque apprenant ainsi que le nombre total d’abonnements qu’il/elle a souscrits. Afficher uniquement les apprenants ayant souscrit au moins 2 abonnements.
Utilisez
JOIN,GROUP BYetHAVING. -
(0,5 pt) Rédigez la requête SQL qui affiche le nom et la ville des apprenants inscrits en février 2026 (entre le
2026-02-01et le2026-02-28inclus), triés par nom alphabétique. -
(1,0 pt) L’apprenant
NKENG Aurore(ID = 1) souhaite passer son abonnement Mensuel en cours (ID_Abo = 4) en Trimestriel avec un nouveau montant de12000.00 FCFAet une nouvelle date de fin au2026-06-06. Rédigez :- L’instruction
UPDATEcorrespondante. - Puis, insèrez un nouvel abonnement
Mensuel(5000 FCFA) pour l’apprenantNJOYA Hawa(ID = 5) débutant le2026-06-02et se terminant le2026-07-02. - Encapsulez ces deux opérations dans une transaction (
START TRANSACTION,COMMIT).
- L’instruction
— Fin de l’examen Session 3 — Bon courage à toutes et à tous —
Barème récapitulatif :
Partie Thème Exercice 1 Exercice 2 Total I Tri par Sélection & Recherche Dichotomique 2,5 pts 2,5 pts 5 pts II Normalisation 1NF → 2NF → 3NF 2,5 pts 2,5 pts 5 pts III Tri à Bulles (Application & Tableau de complexité) 2,5 pts 2,5 pts 5 pts IV Administration BD & SQL 2,5 pts 2,5 pts 5 pts Total 10 pts 10 pts 20 pts
Prêt à passer à la suite ?
Vous avez terminé cette leçon sur EXAMEN NORMAL — IGL234 : GÉNIE LOGICIEL & BASES DE DONNÉES. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.