Exercice
Une société expose ses produits dans plusieurs points de vente (magasins). Ce qui correspond au
diagramme entité/association (MCD) suivant :
Ce diagramme correspond au schéma de BDD suivant :
Famille(Id, nom)
Employe(Id, id_responsable, nom)
Magasin(Id, id_responsable, nom)
Produit(Id, id_famille, designation, prix, etat)
Magasin_produit(id_magasin, id_produit, quantite)
Questions :
➢ Compléter le diagramme avec les cardinalités manquantes.
➢ Donner le diagramme logique de données (MLD) avec les règles utilisées dans le passage du
MCD au MLD.
Donner le code DDL pour :
➢ Créer les tables : magasin, produit et magasin_produit sachant que la suppression d’un
produit entraine la suppression automatique de la relation avec les magasins. Le produit a
deux états ‘Activé’ et ‘Désactivé’ (il faut respecter les cardinalités).
➢ Ajouter la colonne dh_creation à la table produit pour suivre la date et l’heure de création de
chaque produit (gérée par le SGBD).
Donner des requêtes pour :
➢ Activer tous les produits avec un prix qui dépasse 10.000 DA.
➢ Afficher un tableau récapitulatif contenant les colonnes nom_magasin, designation, famille
et quantité.
➢ Afficher la quantité globale de chaque produit (sachant que la relation entre produit et
magasin n’est pas toujours disponible).
➢ Afficher le nombre de produits par famille.
➢ Créer une copie (produit_copie) de la table produit ne contenant que les articles existants
(avec une quantité > 0 dans un magasin au moins).
➢ Afficher les produits avec une quantité inférieure à la moyenne (utiliser les CTE).
➢ Afficher les trois produits les plus disponibles (selon la quantité) en utilisant une fonction
fenêtre.
➢ Afficher la hiérarchie des responsables d’un magasin donné par son id.