Genie logiciel igl234
Thème :
Junior
1 vues ·16/19 leçons

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é :

  1. (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 ?

  2. (1,5 pt) Écrivez la procédure algorithmique TrierFrequences qui :

    • Prend en entrée le tableau Frequences[1..60] et la taille n = 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 ;.

  3. (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é :

  1. (0,5 pt) Déroulez manuellement la recherche dichotomique de la valeur 230 dans le tableau trié Fq = [120, 230, 450, 670, 890]. Indiquez pour chaque étape les valeurs de min, max et mil.

  2. (1,5 pt) Écrivez la fonction AuditFrequence qui :

    • Prend en paramètres : le tableau Frequences[1..60] (supposé trié), la taille n, la fréquence F_Audit (entier), et une variable pos (entier, par référence).
    • Applique la recherche dichotomique (variables min, max, mil, trouvé booléen).
    • Retourne Vrai et affecte la position à pos si la fréquence est trouvée, Faux sinon.
  3. (0,5 pt) Pour n = 60 fré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é :

  1. (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.

  2. (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
    
  3. (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é :

  1. (0,5 pt) Vérifiez si ELEVE est en 2NF : tous les attributs non-clés dépendent-ils directement et totalement de Matricule_El ? Argumentez.

  2. (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 E alors qu’aucun élève n’y est encore inscrit ?
  3. (1,0 pt) Décomposez la table ELEVE en 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. (1,0 pt) Effectuez manuellement les deux premiers passages du tri à bulles sur ce tableau (i = 8 et i = 7). Montrez l’état du tableau après chaque échange et précisez le nombre d’échanges réalisés pour chaque passage.

  2. (1,0 pt) Écrivez la procédure algorithmique TrierTempsDeTrajets qui :

    • Prend en entrée le tableau Trajets[1..n] d’entiers naturels et la taille n.
    • Applique le tri à bulle pour trier les temps en ordre croissant (du plus court au plus long).
    • Affiche les temps triés.
  3. (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é :

  1. (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é (ou permutation) utilisé pour l’optimisation.

  2. (1,5 pt) Écrivez la procédure algorithmique TrierTrajetsDescendant qui :

    • Prend en entrée le tableau Trajets[1..n] et la taille n.
    • 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é.
  3. (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. (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 vers Apprenants), 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).
  2. (0,5 pt) Rédigez les deux instructions SQL (l’une pour l’analyste, l’autre pour la comptabilité) :

    • Accorder à l’utilisateur analyste_edu uniquement le droit SELECT sur les tables Apprenants et Abonnements.
    • Accorder à l’utilisateur compta_edu les droits SELECT et UPDATE sur Abonnements uniquement.
  3. (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 Email 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é :

  1. (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.

  2. (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 BY et HAVING.

  3. (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-01 et le 2026-02-28 inclus), triés par nom alphabétique.

  4. (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 de 12000.00 FCFA et une nouvelle date de fin au 2026-06-06. Rédigez :

    • L’instruction UPDATE correspondante.
    • Puis, insèrez un nouvel abonnement Mensuel (5000 FCFA) pour l’apprenant NJOYA Hawa (ID = 5) débutant le 2026-06-02 et se terminant le 2026-07-02.
    • Encapsulez ces deux opérations dans une transaction (START TRANSACTION, COMMIT).

— 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.