Exercice 2 - Base de données relationnelle · Bac Numérique et Sciences Informatiques Polynésie 2021 (jour 2)
Thème : Bases de données relationnelles, SGBD et langage SQL · Tiré du sujet Jour 2 (2021)
Énoncé
Exercice 2: Base de données d'une plateforme de vente en ligne
Cet exercice traite principalement du thème « traitement de données en tables et bases de données ». Nous nous interrogeons dans cet exercice sur la modélisation et l'utilisation des données nécessaires aux fonctionnements de sites de vente en ligne.
Partie A: Modèle relationnel
EXERCICE 2: Base de données d'une plateforme de vente en ligne (4 points)
Cet exercice traite principalement du thème « traitement de données en tables et bases de données ». Nous nous interrogerons dans cet exercice sur la modélisation et l'utilisation des données nécessaires aux fonctionnements de sites de vente en ligne.
Partie A: Modèle relationnel
Voici le modèle relationnel qui sera utilisé dans cet exercice:
1.
Donner les clés primaires des relations Clients et Articles.
2.
Les commandes ci-dessous ont été utilisées pour créer ces deux relations. Donner le domaine (c'est-à-dire le type) des attributs Email et Quantite.
CREATE TABLE Clients (
IdClient INT PRIMARY KEY,
Nom VARCHAR(50),
Prenom VARCHAR(50),
Email VARCHAR(50)
);
CREATE TABLE ArticlesCommande (
IdCmd INT,
IdArticle INT,
Quantite INT,
PRIMARY KEY (IdCmd, IdArticle),
FOREIGN KEY (IdArticle) REFERENCES Articles(IdArticle)
);
3.
En vous inspirant des commandes ci-dessus, recopier et compléter la commande suivante qui permet de créer la relation Commandes en précisant sa clé étrangère.
CREATE TABLE Commandes (
IdCmd INT PRIMARY KEY,
IdClient INT,
Date DATE,
AdresseLivraison VARCHAR(90),
PaiementValide BOOLEAN,
LivraisonFaite BOOLEAN,
FOREIGN KEY (.......................) REFERENCES.............................
(............................)
);
FOREIGN KEY (
) REFERENCES
(
)
Partie C: Requêtes SQL
1.
Écrire une requête SQL permettant de récupérer l'identifiant et le libellé de tous les articles coûtant moins de 15 euros.
2.
Expliquer ce que fait la requête SQL suivante:
SELECT u.IdClient, u.Email, v.IdCmd, v.AdresseLivraison
FROM Clients as u JOIN Commandes as v
ON u.IdClient = v.IdClient
WHERE v.PaiementValide = False;
3.
Écrire une requête SQL permettant de récupérer le libellé des articles de la commande 1345.
4.
On suppose que l'attribut IdArticle de la table Articles est auto-incrémenté et ne doit donc pas être précisé lors de l'ajout d'un nouvel article. Écrire une requête SQL permettant d'ajouter dans la base ce nouvel article.
« Cet imperméable se replie en forme de pochette. »
Prix: 9,99 euros
Partie D: Adaptation du modèle relationnel
Le propriétaire du site souhaite une adaptation du modèle relationnel afin de:
comptabiliser le stock pour chaque article
pouvoir mémoriser, pour chaque client, une adresse de livraison par défaut de ses commandes.
1.
Préciser, pour chaque relation que vous jugez nécessaire de modifier, les attributs ajoutés ainsi que leurs domaines.
2.
À l'arrivée d'une nouvelle commande d'un client, l'algorithme de mise à jour de la base de données ci-dessous est exécuté. Indiquer l'erreur présente dans cet algorithme.
Algorithme nouvelle_commande (commande)
Début
Pour chaque article de la commande Faire
Si Quantité <= Stock Alors
Stock <- Stock - 1
Sinon
annuler l'achat de cet article
FinSi
FinPour
Fin

Corrigé
Corrigé proposé par AprenAI (non officiel)
1. Donner la clé primaire de la relation Clients
Réponse : IdClient
1. Donner la clé primaire de la relation Articles
Réponse : IdArticle
2. Donner le domaine (c'est-à-dire le type) de l'attribut Email
Réponse : VARCHAR(50)
2. Donner le domaine (c'est-à-dire le type) de l'attribut Quantite
Réponse : INT
3. Attribut clé étrangère dans Commandes
Réponse : IdClient
3. Table référencée par la clé étrangère
Réponse : Clients
3. Attribut référencé dans la table Clients
Réponse : IdClient
Les réponses des 6 questions restantes et l’explication pas à pas sont réservées aux membres Premium. Premium
Résous-le ici : correction automatique, indices et corrigé détaillé.
‹ Exercice 3 · Polynésie 2022 (jour 1) · Exercice 5 - Base de données VOD · Polynésie 2021 (jour 2) ›