Filière : ISI
Niveau: troisième année (L3)
Matière : PL/SQL
Durée : 1H30 Présentiel
Professeur : Belmajdoub Hanae
Année Universitaire : 2024/2025
Mode d’enseignement : Présentiel
Exercice 1 : Questions à Choix Multiples (QCM)
1. Une base de données est définie comme : C. Un identifiant primaire unique.
D. L’absence d’associations.
A. Une structure de fichiers non reliés.
B. Un ensemble structuré et organisé de données 6. Quelle est la contrainte imposée par l’intégrité
interreliées. de clé ?
C. Un logiciel de traitement de texte.
D. Une méthode pour supprimer les redondances A. Les clés primaires doivent être uniques et non
dans les fichiers. nulles.
B. Les valeurs doivent appartenir au même
2. Le rôle principal d’un SGBD est de : domaine.
C. La relation doit être normalisée.
A. Créer des fichiers indépendants. D. Les clés secondaires doivent être non nulles.
B. Gérer les bases de données et minimiser la
redondance. 7. Le processus de normalisation a pour objectif :
C. Écrire des scripts pour manipuler les données.
D. Compiler les fichiers en un programme A. Maximiser les redondances.
unique. B. Faciliter la dénormalisation des données.
C. Éviter les anomalies et réduire les
3. L’architecture ANSI/SPARC comporte redondances.
combien de niveaux ? D. Créer des index pour accélérer les requêtes.
A. 2 8. Une relation est en 1ère forme normale (1FN)
B. 3 si :
C. 4
D. 5 A. Elle contient des attributs non atomiques.
B. Tous ses attributs sont atomiques.
4. Le niveau externe dans l’architecture C. Elle possède une clé étrangère.
ANSI/SPARC correspond à : D. Elle est décomposée en plusieurs tables.
A. La représentation des données au niveau 9. Une relation en 2ème forme normale (2FN) :
physique.
B. Les vues des utilisateurs. A. Est en 1FN et tous ses attributs dépendent de
C. La gestion des index. la clé entière.
D. Le dictionnaire de données. B. Est en 3FN et a éliminé les dépendances
fonctionnelles transitives.
5. Une entité faible est caractérisée par : C. N’inclut pas d’attributs calculés.
D. A une clé primaire composée.
A. L’absence d’attributs.
B. L’impossibilité d’être identifiée sans une
entité forte.
10. Une relation est en 3ème forme normale (ACID).
(3FN) si : C. Dépendante des autres transactions.
D. Non durable pour éviter les anomalies.
A. Elle est en 2FN et élimine les dépendances
transitives. 16. La 3ème forme normale de Boyce-Codd
B. Elle ne contient aucune clé étrangère. (BCNF) :
C. Elle est divisée en plusieurs relations sans
perte d’information. A. Élimine les dépendances fonctionnelles non
D. Elle contient des attributs non atomiques. triviales.
B. Réduit les dépendances transitives.
11. Une clé étrangère dans une relation : C. Est équivalente à la 2FN.
D. Simplifie les relations complexes.
A. Fait référence à une clé primaire dans une
autre relation. 17. L’intégrité référentielle assure que :
B. Est toujours unique.
C. Permet de normaliser automatiquement les A. Toutes les relations sont en 3FN.
données. B. Les clés étrangères pointent vers des valeurs
D. Ne peut pas contenir de valeur NULL. existantes.
C. Les n-uplets sont uniques.
12. Le modèle relationnel a été proposé par : D. Les clés primaires sont non nulles.
A. Chen 18. Une union dans l’algèbre relationnelle
B. Codd nécessite :
C. E. F. Codd
D. Boyce et Codd A. Des relations avec des schémas différents.
B. Des relations avec des schémas identiques.
13. Une projection dans l’algèbre relationnelle : C. Une condition explicite pour l’union.
D. Une dépendance entre les relations.
A. Filtre les lignes basées sur une condition.
B. Supprime les attributs non mentionnés dans le 19. La décomposition des relations dans le
résultat. processus de normalisation vise à :
C. Joint deux relations basées sur une condition.
D. Divise une relation en plusieurs sous- A. Augmenter la redondance.
ensembles. B. Réduire la complexité des schémas
conceptuels.
14. La jointure naturelle est : C. Minimiser les anomalies d’insertion et de
suppression.
A. Une jointure qui nécessite une condition D. Assurer l’intégrité physique.
explicite.
B. Une jointure basée sur l’égalité des attributs 20. L’algèbre relationnelle est :
communs.
C. Une opération qui fusionne deux relations sans A. Un langage de programmation pour SGBD.
condition. B. Une collection d’opérations pour manipuler
D. Une opération réservée aux relations les relations.
hiérarchiques. C. Une méthode de normalisation.
D. Une technique pour indexer les données.
15. Une transaction dans un SGBD doit être :
A. Rapide et non séquentielle.
B. Atomique, cohérente, isolée, et durable
Exercice 2: Gestion des commandes d'un magasin
1. Produit (Product)
o id_produit (INT, PRIMARY KEY)
o nom (VARCHAR(100))
o prix (DECIMAL(10, 2))
o categorie (VARCHAR(50))
o stock (INT)
2. Client (Customer)
o id_client (INT, PRIMARY KEY)
o nom (VARCHAR(100))
o prenom (VARCHAR(100))
o email (VARCHAR(100))
o telephone (VARCHAR(20))
o ville (VARCHAR(50))
3. Commande (Order)
o id_commande (INT, PRIMARY KEY)
o id_client (INT, FOREIGN KEY REFERENCES Client(id_client))
o date_commande (DATE)
o statut (VARCHAR(20)) -- Exemple : 'En cours', 'Expédiée', 'Annulée'
4. Détail_Commande (Order_Detail)
o id_detail (INT, PRIMARY KEY)
o id_commande (INT, FOREIGN KEY REFERENCES Commande(id_commande))
o id_produit (INT, FOREIGN KEY REFERENCES Produit(id_produit))
o quantite (INT)
Questions SQL :
1. Écrivez les requêtes SQL pour créer les tables avec les contraintes appropriées.
2. Ajoutez des données d’exemple pour chaque table :
• Au moins 5 produits (avec des catégories distinctes).
• 5 clients.
• 5 commandes, chacune avec 2 ou 3 produits associés.
3. Affichez toutes les commandes avec le nom et prénom du client, la date de commande, et le statut.
4. Affichez l’ID de chaque commande et le montant total de la commande (quantité × prix).
5. Affichez tous les produits d'une commande donnée avec leur quantité, leur prix unitaire et le total
pour chaque produit.
6. Affichez le nombre total de commandes effectuées par chaque client.
7. Affichez les commandes ayant le statut "En cours", avec les informations du client et la date.
8. Trouvez tous les produits dont le stock est égal à zéro.
9. Calculez le stock total disponible pour chaque catégorie de produit.
10. Calculez le revenu total généré par chaque catégorie de produit.
11. Trouvez les clients qui n'ont jamais passé de commande.
12. Affichez les commandes qui ont été annulées, avec les informations des clients.