0% ont trouvé ce document utile (0 vote)
23 vues5 pages

TPs ORACLE PLSQL ESA GL3 2025

Le document décrit un projet de développement d'un mini système de gestion des commandes clients et d'une bibliothèque universitaire en PL/SQL. Les étudiants doivent créer des tables, écrire des blocs PL/SQL, des procédures, des fonctions, des triggers, et des packages, tout en respectant des objectifs pédagogiques spécifiques. Les livrables incluent des scripts SQL, des rapports PDF détaillant le modèle de données et les résultats des tests.

Transféré par

franckbaoula
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
23 vues5 pages

TPs ORACLE PLSQL ESA GL3 2025

Le document décrit un projet de développement d'un mini système de gestion des commandes clients et d'une bibliothèque universitaire en PL/SQL. Les étudiants doivent créer des tables, écrire des blocs PL/SQL, des procédures, des fonctions, des triggers, et des packages, tout en respectant des objectifs pédagogiques spécifiques. Les livrables incluent des scripts SQL, des rapports PDF détaillant le modèle de données et les résultats des tests.

Transféré par

franckbaoula
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

TP : ORACLE PL/SQL

ESA GENIE LOGICIEL 2025


PREMIERE PARTIE 10 POINTS
A livrer par mail sur mantorah@[Link] avant le 08 /06/2025 qui est le jour
de présentation en ligne du projet

Développement d’un mini système de gestion des commandes clients en PL/SQL

Objectifs pédagogiques :
 Maîtriser les bases de la programmation PL/SQL (blocs, variables, structures de
contrôle).
 Manipuler des procédures, fonctions, triggers, curseurs et packages.
 Appliquer des concepts de gestion d’erreurs et de modularité.
 Simuler un mini-SI d’entreprise orienté commandes.

Modèle relationnel simplifié :


sql
CopierModifier
CREATE TABLE CLIENT (
id_client NUMBER PRIMARY KEY,
nom_client VARCHAR2(100),
ville VARCHAR2(50)
);

CREATE TABLE PRODUIT (


id_produit NUMBER PRIMARY KEY,
libelle VARCHAR2(100),
prix NUMBER(8,2)
);

CREATE TABLE COMMANDE (


id_commande NUMBER PRIMARY KEY,
id_client NUMBER,
date_commande DATE,
statut VARCHAR2(20),
FOREIGN KEY (id_client) REFERENCES CLIENT(id_client)
);

CREATE TABLE LIGNE_COMMANDE (


id_commande NUMBER,
id_produit NUMBER,
quantite NUMBER,
PRIMARY KEY (id_commande, id_produit),
FOREIGN KEY (id_commande) REFERENCES COMMANDE(id_commande),

Page 1 sur 5
Prof TCHEDRE K. Cel 90 94 59 66
FOREIGN KEY (id_produit) REFERENCES PRODUIT(id_produit)
);

Travail demandé (à rendre sous forme de scripts et


rapport) :
✅ Partie 1 – Blocs PL/SQL de base

 Écrire un bloc PL/SQL qui :


o Affiche les clients ayant commandé un produit donné.
o Affiche le montant total d’une commande passée en paramètre (id_commande).

✅ Partie 2 – Procédures

 Créer une procédure AJOUTER_COMMANDE(id_client, id_produit, quantite) qui


:
o Crée une commande si nécessaire.
o Insère la ligne de commande.
o Met à jour automatiquement le statut à "EN COURS".
o Gère les erreurs (client ou produit inexistant).

✅ Partie 3 – Fonctions

 Créer une fonction TOTAL_CLIENT(id_client) qui retourne le total des achats de ce


client.
 Créer une fonction PRODUIT_PLUS_COMMANDE() qui retourne l’ID du produit le plus
commandé.

✅ Partie 4 – Curseurs

 Écrire un curseur qui :


o Parcourt toutes les commandes.
o Affiche pour chacune : client, date, total.
o Utilise un curseur paramétré pour afficher les lignes de chaque commande.

✅ Partie 5 – Triggers

 Créer un trigger qui empêche d’insérer une commande sans lignes associées (via
logique métier).
 Créer un trigger qui loggue toute suppression de commande dans une table
HISTO_COMMANDES.

✅ Partie 6 – Package

 Créer un package PKG_COMMANDE contenant :


Page 2 sur 5
Prof TCHEDRE K. Cel 90 94 59 66
o Une fonction NB_COMMANDES_CLIENT(id_client) qui retourne le nombre de
commandes du client.
o Une procédure SUPPRIMER_COMMANDE(id_commande) qui supprime
proprement une commande et ses lignes.

Partie 7 – générer un script de sauvegarde ou d’export (dump)de la base de


donnees
générer un script de restauration ou d’import (dump)de la base de données

📂 Livrables attendus :
1. Fichiers SQL :
o Script de création des tables + insertions de données (jeu d’essai).
o Scripts PL/SQL (procédures, fonctions, triggers, packages).
o Script IMPORT ET EXPORT de la base de donnee
2. Rapport PDF (3–5 pages) :
o Présentation du modèle de données.
o Détails des fonctions/procédures/triggers réalisés.
o Captures ou descriptions des résultats.
o Problèmes rencontrés et solutions.
o Proposition d’amélioration.

DEUXIEME PARTIE 10 POINTS

📌 TPM Oracle PL/SQL : Gestion d'une Bibliothèque


Universitaire
🎯 Objectifs pédagogiques :

 Manipuler des blocs PL/SQL (déclaration, exécution, exceptions).


 Créer des procédures, fonctions, triggers, curseurs et packages.
 Mettre en œuvre un système simple de gestion des prêts de livres.
 Renforcer la rigueur dans la gestion des règles métiers via PL/SQL.

📚 Contexte fonctionnel :
L’université souhaite gérer les livres, les étudiants emprunteurs, et les emprunts à l’aide
d’un système développé en PL/SQL.

Page 3 sur 5
Prof TCHEDRE K. Cel 90 94 59 66
Modèle relationnel simplifié :
sql
CopierModifier
CREATE TABLE ETUDIANT (
id_etud NUMBER PRIMARY KEY,
nom_etud VARCHAR2(100),
niveau VARCHAR2(10)
);

CREATE TABLE LIVRE (


id_livre NUMBER PRIMARY KEY,
titre VARCHAR2(150),
auteur VARCHAR2(100),
disponible CHAR(1) -- 'O' ou 'N'
);

CREATE TABLE EMPRUNT (


id_emprunt NUMBER PRIMARY KEY,
id_etud NUMBER,
id_livre NUMBER,
date_emprunt DATE,
date_retour DATE,
FOREIGN KEY (id_etud) REFERENCES ETUDIANT(id_etud),
FOREIGN KEY (id_livre) REFERENCES LIVRE(id_livre)
);

Travail demandé :
🔹 1. Blocs PL/SQL

 Écrire un bloc PL/SQL qui affiche tous les livres disponibles.


 Écrire un bloc qui compte et affiche le nombre d'emprunts en cours pour un étudiant
donné.

🔹 2. Procédures

 Créer une procédure EMPRUNTER_LIVRE(p_id_etud, p_id_livre) qui :


o Vérifie si le livre est disponible.
o Insère un emprunt avec la date du jour et null pour la date de retour.
o Marque le livre comme indisponible.

🔹 3. Fonctions

 Créer une fonction NB_EMPRUNTS_ETUDIANT(p_id_etud) qui retourne le nombre


d’emprunts de l’étudiant.
 Créer une fonction ETUDIANT_PLUS_EMPRUNTE() qui retourne le nom de l’étudiant
ayant fait le plus d’emprunts.

🔹 4. Triggers

Page 4 sur 5
Prof TCHEDRE K. Cel 90 94 59 66
 Créer un trigger limite_emprunts qui empêche un étudiant de faire plus de 3
emprunts simultanés.
 Créer un trigger qui met à jour le statut du livre à 'O' lors de la mise à jour de
date_retour.

🔹 5. Curseurs

 Écrire un curseur pour afficher tous les emprunts d’un étudiant donné avec les détails
(titre, auteur, date_emprunt).
 Ajouter un curseur paramétré pour afficher les livres empruntés entre deux dates.

🔹 6. Package

 Créer un package PKG_BIBLIO avec :


o Une procédure RETOUR_LIVRE(p_id_emprunt) qui met à jour la date de
retour.
o Une fonction LIVRES_NON_RETOURNES() qui retourne le nombre de livres
encore en cours d’emprunt.
 Partie 7 –SAUVEGARDE ET RESTAURATION
générer un script de sauvegarde ou d’export (dump)de la base de donnees
générer un script de restauration ou d’import (dump)de la base de données

📂 Livrables attendus :
1. Script SQL complet :
o Création des tables
o Insertion des données d’exemple (4-5 étudiants, 5-6 livres)
o Code PL/SQL complet (blocs, procédures, fonctions, triggers, curseurs,
package)
o Script IMPORT ET EXPORT de la base de donnee

2. Un rapport PDF contenant :


o Résumé des objectifs
o Description de la base (modèle, jeu de données)
o Explication des traitements PL/SQL
o Résultats de tests (avec captures ou exemples)
o Problèmes rencontrés et résolutions

Page 5 sur 5
Prof TCHEDRE K. Cel 90 94 59 66

Vous aimerez peut-être aussi