0% ont trouvé ce document utile (0 vote)
20 vues8 pages

Rép Test 1 SQL

Transféré par

halima margal
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)
20 vues8 pages

Rép Test 1 SQL

Transféré par

halima margal
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
Vous êtes sur la page 1/ 8

15/12/2024 00:36 S'initier à la modélisation relationnelle - OpenClassrooms

HM

Accueil > Cours > Requêtez une base de données avec SQL > Quiz : S'initier à la modélisation relationnelle

Requêtez une base de données avec SQL

12 heures  Moyenne

Mis à jour le 15/05/2023

 

S'initier à la modélisation relationnelle

Bravo ! Vous avez réussi cet exercice !

Compétences évaluées

S'initier à la modélisation relationnelle

Description

Vous êtes salarié d’une entreprise de e-commerce réalisant des ventes en ligne.

L’entreprise change de logiciel de gestion des données, et il faut transférer les données de l’ancien
logiciel vers le nouveau, en recréant la base de données.

Voici un extrait des premières lignes de 3 fichiers Excel destinés à être enregistrés dans 3 tables d'une
base de données relationnelle.

Extrait du fichier excel

https://openclassrooms.com/fr/courses/7818671-requetez-une-base-de-donnees-avec-sql/exercises/4617 1/8
15/12/2024 00:36 S'initier à la modélisation relationnelle - OpenClassrooms

Elles contiennent des infos sur les clients du site en ligne, sur les produits vendus, et sur les achats :
chaque achat d’un produit est appelé “transaction”.

Notes sur le jeu de données :

la table customer contient une ligne par client. Chaque client a un (et un seul)
identifiant unique ;
la table product contient 1 ligne par référence de produit ;
la colonne id_prod est la référence du produit. Plusieurs articles identiques peuvent
avoir la même référence produit (ex. : si vous achetez 3 exemplaires du même tube de
dentifrice, ces 3 articles ont la même référence). Dans le cas d’un achat groupé de 3 tubes
de dentifrice par le même client, 3 lignes seront ajoutées à la table transaction : ces
3 lignes auront exactement les mêmes date et heure de transaction.
La colonne session_id donne l’identifiant de session durant laquelle la transaction a
été enregistrée. Une session est liée à un unique client. Elle correspond à une connexion
sur le site, et dure en général de quelques minutes à quelques heures. Quand le client part
du site web (ou reste plus de 30 min sans activité sur celui-ci), la session expire. Lors d’une
reconnexion au site, un nouvel identifiant de session est alors créé, pour le même client.

Vous êtes employé au service Informatique, et on vous a chargé de créer la structure de la base de
données. Avant de faire cela, vous devez vous poser certaines questions concernant les fichiers à votre
disposition. Voici ces questions :

Question 1

Par quoi commencera la requête SQL que vous utiliserez pour créer la structure de la
table product ?

SELECT

INSERT INTO

 CREATE TABLE

CREATE TABLE sert à créer la structure de la table, alors que INSERT INTO sert à la remplir avec
des valeurs. SELECT sert à interroger les données déjà présentes dans une table.

Question 2

https://openclassrooms.com/fr/courses/7818671-requetez-une-base-de-donnees-avec-sql/exercises/4617 2/8
15/12/2024 00:36 S'initier à la modélisation relationnelle - OpenClassrooms

Pour créer la structure de la table product , il faudra donner en SQL la liste des
colonnes de la table. À quoi ressemblera la partie de la requête qui donne cette liste ?

 sql

1 id_prod TEXT NOT NULL,


2 category TEXT,
3 price FLOAT

sql

1 id_prod, price, category

sql

1 id_prod PRIMARY KEY, price, category

Il faut donner à la fois le nom de la colonne et son type. Seule la réponse 1 satisfait à cette contrainte.
Les 2 autres syntaxes sont de pures inventions.

Remarque : dans une BDD relationnelle, l’ordre des colonnes n’a pas d’importance et pas de
signification.

Question 3

En ce qui concerne la table customer , quelles phrases sont vraies ?

Attention, plusieurs réponses sont possibles.

Aucune clé primaire n’est formable à partir des colonnes du fichier

 La clé primaire peut être (id, birth)

 La clé primaire peut être (id)

 La colonne id est une clé artificielle

La colonne id est une clé artificielle car c’est un identifiant.

Le groupe de colonnes (id, birth) assure bien que 2 lignes (donc 2 clients) n’auront jamais à la
fois le même identifiant et la même année de naissance, mais ce groupe de colonnes n’est pas minimal ;
ce n’est donc pas une clé primaire possible. En effet, si on ne garde que la colonne id , on est aussi
assuré que 2 lignes n’auront pas le même identifiant. id est donc bien une possible clé primaire.

https://openclassrooms.com/fr/courses/7818671-requetez-une-base-de-donnees-avec-sql/exercises/4617 3/8
15/12/2024 00:36 S'initier à la modélisation relationnelle - OpenClassrooms

Question 4

“Dans le cas d’un achat groupé de 3 tubes de dentifrice par le même client, 3 lignes
seront ajoutées à la table transaction ”.

Qu’implique cette phrase ?

Attention, plusieurs réponses sont possibles.

 Les 3 lignes seront 100 % identiques

 Il faut créer une clé primaire artificielle

 Le groupe (id_prod, customer_id) peut être une clé primaire

Même en prenant les 4 colonnes de la table, il n’est pas possible de former une clé primaire qui
garantisse l’unicité.

Il est dit dans l’énoncé : “Dans le cas d’un achat groupé de 3 tubes de dentifrice par le même client,
3 lignes seront ajoutées à la table transaction : ces 3 lignes auront exactement les mêmes date et
heure de transaction”.

Il est donc possible d’avoir au moins 2 lignes de transaction entièrement identiques. Pour
enregistrer cette table dans une BDD relationnelle, il faudra donc créer une clé artificielle qui donnera
un identifiant unique pour chaque transaction.

Question 5

Que pouvez-vous dire de la colonne customer_id de la table transaction ?

Attention, plusieurs réponses sont possibles.

Cette colonne ne peut pas contenir 2 fois la même valeur, car c’est une clé primaire.

 Cette colonne peut contenir plusieurs fois la même valeur, car plusieurs transactions peuvent
être réalisées par un même client.

 C’est une clé étrangère qui référence la clé primaire de customer

C’est une clé étrangère qui référence la clé primaire de transaction

Comme nous l’avons vu à la question précédente, customer_id n’est pas (à elle seule) la clé
primaire de transaction . C’est une clé étrangère qui référence la clé primaire de customer , et
comme l’association entre une transaction et un client est de type “un-à-plusieurs”, plusieurs
transactions peuvent être réalisées par un même client, et donc cette colonne peut contenir plusieurs
fois la même valeur.
https://openclassrooms.com/fr/courses/7818671-requetez-une-base-de-donnees-avec-sql/exercises/4617 4/8
15/12/2024 00:36 S'initier à la modélisation relationnelle - OpenClassrooms

Question 6

Pourquoi la colonne id de la table customer ne peut-elle pas contenir 2 fois la


même valeur ?

 Parce que c’est la clé primaire de customer

Parce que plusieurs transactions peuvent être réalisées par un même client

Parce que c’est une clé étrangère

id est la clé primaire de customer . Elle ne peut donc pas contenir 2 fois la même valeur. Ce
n’est pas une clé étrangère vers une autre table.

Question 7

Quel est le type d’association liant les transactions et les références produit ?

un-à-un

 un-à-plusieurs

plusieurs-à-plusieurs

Plusieurs transactions peuvent concerner une même référence produit, et une transaction n’est relative
qu’à une seule référence produit. C’est donc une association un-à-plusieurs.

Question 8

Sachant que l’association entre un client et une référence produit est de type
plusieurs-à-plusieurs, comment faut-il modéliser cette association ?

En mettant une clé étrangère dans product qui référencera la table customer .

En mettant une clé étrangère dans customer qui référencera la table product .

 En utilisant la table transaction , qui peut faire office de table d’association.

Une association plusieurs-à-plusieurs se modélise avec une table d’association. L’association entre un
client et un produit correspond en fait à un achat ; cet achat est enregistré dans la table
transaction , donc cette dernière peut faire office de table d’association. D’ailleurs, elle contient
bien une clé étrangère vers product et une clé étrangère vers customer , ce qui confirme ce
que j’ai dit.

https://openclassrooms.com/fr/courses/7818671-requetez-une-base-de-donnees-avec-sql/exercises/4617 5/8
15/12/2024 00:36 S'initier à la modélisation relationnelle - OpenClassrooms

L’association entre un client et un produit est bien de type plusieurs-à-plusieurs, car un client peut
acheter N produits différents (via N transactions), et une référence produit peut être achetée par M
client différents (via M transactions). M et N représentent ici des nombres entiers qui peuvent être
supérieurs à 1.

Et si vous obteniez un diplôme OpenClassrooms ?

Formations jusqu’à 100 % financées

Date de début flexible

Projets professionnalisants

Mentorat individuel

Trouvez la formation et le financement faits pour vous

Être orienté Comparez nos types de formation

Identifiez les types d'associations entre Affichez les données pertinentes avec
 
vos tables SELECT

Le professeur
Nicolas Rangeon
Nicolas Rangeon, Data scientist, instructor & Computer engineer (Université de Technologie
de Compiègne)

POUR LES ÉTUDIANTS

POUR LES EMPLOYEURS

OPENCLASSROOMS

AIDE

LANGUE

https://openclassrooms.com/fr/courses/7818671-requetez-une-base-de-donnees-avec-sql/exercises/4617 6/8
15/12/2024 00:36 S'initier à la modélisation relationnelle - OpenClassrooms

Français

NOUS SUIVRE

Mentions légales Conditions générales d'utilisation Politique de protection des données personnelles

Cookies Accessibilité

https://openclassrooms.com/fr/courses/7818671-requetez-une-base-de-donnees-avec-sql/exercises/4617 7/8
15/12/2024 00:36 S'initier à la modélisation relationnelle - OpenClassrooms

https://openclassrooms.com/fr/courses/7818671-requetez-une-base-de-donnees-avec-sql/exercises/4617 8/8

Vous aimerez peut-être aussi