0% ont trouvé ce document utile (0 vote)
12 vues4 pages

Rendu 1

Transféré par

jonathan.wild.2005
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
12 vues4 pages

Rendu 1

Transféré par

jonathan.wild.2005
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 DOCX, PDF, TXT ou lisez en ligne sur Scribd

CLIENTS(CodeClient : entier>0, NomClient : ChaineVar, PrenomClient : ChaineVar,

CPClient :ChaineFixe, VilleClient : ChaineVar)

COMMANDES(NumCmd : entier>0, RefClient : entier>0, DateC : date, ModePaiement : (‘Espèces’,


‘Chèque’,’CB’,’Tickets Resto’) )

DETAILCOMMANDES(RefCmd : entier>0 , RefProduit : entier>0, RefTaille : ChaineFixe, Quantite :


255>entier>0)

PRODUITS(CodeProduit : entier>0, NomProduit : ChaineVar, TypeProduit : (‘Glace en pot’,’Glace en


Cornet’,’Boisson Glacée’))

TAILLES(CodeTaille : ChaineFixe, LibelleTaille : (‘Petite’,’Moyenne’,’Grande’,’Extra Large’),


indicationQuantite : ChaineVar)

TARIFS(Annee : year , RefProduit : entier >0, RefTaille : ChaineFixe, Prix : décimal)

Légende :
- Clé primaire : Trait plein
- Clé étrangère : Trait pointillé ou texte en bleu ( si aussi Clé primaire)

* ChaineFixe = Une chaine de caractère qui doit prendre un nombre fixe de caractères.
** ChaineVar = Une chaine de caractère qui peut prendre un nombre variable de caractères.

Expression formelle des contraintes :

Contrainte pour les clés primaires :


Card(CLIENTS) = Card(CLIENTS[CodeClient])
Card(DETAILCOMMANDES) = Card(DETAILCOMMANDES[RefCmd,RefProduit,RefTaille]
Card(COMMANDES) = Card(COMMANDES[NumCmd])

COMMANDES[RefClient]] ⊆ CLIENTS[CodeClient]
Contrainte pour les clés étrangères :

DETAILCOMMANDES[RefCmd] ⊆ COMMANDES[NumCmd]
DETAILCOMMANDES[RefProduit] ⊆ PRODUIT[CodeProduit]
DETAILCOMMANDES[RefTaille] ⊆ TAILLES[CodeTaille]
TARIFS[RefProduit] ⊆ PRODUIT[CodeProduit]
TARIFS[RefTaille] ⊆ TAILLES[CodeTaille]
Description des Tables :

Table CLIENTS Cette table contient les informations de base sur chaque client, comme leur identifiant
unique ainsi que tout ce qu’il faut pour les identifier et les localiser.

Table COMMANDES Dans cette table, on enregistre les infomations générales de chaque commande
passée par les clients ( il n’y a rien concernant le contenu de ces commandes). Chaque commande est
reliée au client qui l’a passée.

Table DETAILCOMMANDES Cette table permet de savoir exactement ce que contient chaque
commande en détaillant le contenu de ces dernières avec les produits commander ainsi que leurs
tailles mais aussi un l’identifiant de chaque commande.

Table PRODUITS Ici, on trouve tous les produits que ce super glacier vends, identifiés par un code
unique leur nom et leurs type. Table TAILLES Cette table décrit les différentes tailles disponibles pour
les produits..

Table TARIFS Cette table contient les prix des produits, pour chaque taille et pour chaque année.

Reqûete SQL des questions posées :

Y-a-t-il des clients dans la base qui n’ont jamais commandé ?

SELECT [Link]
FROM CLIENTS, COMMANDES
WHERE [Link]
NOT IN (SELECT [Link]
FROM CLIENTS, COMMANDES
WHERE [Link] = [Link] ;

--réponse : le fichier renvoie une table vide --> aucun client enregistré n'a jamais commandé

Y-a-t-il des clients dans la base qui n’ont pas commandé sur la période temporelle d’intérêt pour la
commanditaire ?

SELECT [Link], [Link]


FROM CLIENTS
WHERE [Link]
NOT IN (SELECT [Link]
FROM CLIENTS, COMMANDES
WHERE [Link] = [Link]
AND ([Link] LIKE "2022%" OR [Link] LIKE "2023%" OR
[Link] LIKE "2024%")) ;

--réponse : Il y a environ 3 clients qui n'ont pas commander sur la période temporel. il est important
de les exclure de la priode temporel car ils peuvent fausser les résultats
Y-a-t-il des produits glacés dans la base qui n’ont jamais été commandés ?

SELECT [Link]
FROM PRODUITS
WHERE [Link]
NOT IN (SELECT [Link]
FROM DETAILCOMMANDES
WHERE [Link] = [Link]) ;

-- réponse : Le granité menthe n'a jamais été commandé néammoins ce dernier n'apparaissant pas
dans la catégorie tarifs il n'a probablement jamais été proposé a la vente

Les produits glacés sont-ils tous proposés dans différentes tailles ?

SELECT [Link], [Link]


FROM PRODUITS,TAILLES
EXCEPT (SELECT [Link],[Link]
FROM PRODUITS,TAILLES,TARIFS
WHERE [Link] = [Link] AND [Link] =
[Link]) ;

-- réponse : Non, le Granité Menthe est le seul produit qui n’est pas proposé dans différentes tailles.
Il est même proposé dasn aucune des 4 tailles.

Y-a-t-il des commandes hors de la période temporelle d’intérêt ?

SELECT COUNT([Link]) AS Nombre_de_commande_hors_période


FROM COMMANDES
WHERE [Link] < '2022-01-01';

-- réponse : Oui, il y a 573 commandes hors de la période temporelle d’intérêt .

Y-a-t-il des commandes pour lesquelles on a perdu les informations sur le détail des produits
achetés ?

SELECT *
FROM COMMANDES
WHERE [Link]
NOT IN (SELECT [Link]
FROM DETAILCOMMANDES);

-- réponse : Il y a deux commandes pour lesquelles on a perdu les détails de la commande, la numéro
1081 et la 1180.
Si oui, que proposez-vous de faire de ces éventuelles commandes en vue du reporting ?

-- réponse : On peut garder ces deux tuples car cela n’aura pas d’incidence sur l’extraction des
données que l’on va utiliser.

Les réponses à ces questions sont importantes pour les analyses que l’on va mener car il faut pouvoir
récupérer seulement les tuples qui nous intéressent et donc faire un tri. Avec ces requêtes on peut
déjà comprendre et voir les tuples que l’on ne désire pas dasn l’extraction.

PRODUIT
Tables: CLIENTS COMMANDES DETAILCOMMANDES S TAILLES TARIFS
Données du script original 127 1 339 1 918 15 4 249
Données pertinentes 124 766 1 031 14 4 129
TABLEAU :

Vous aimerez peut-être aussi