Vous êtes sur la page 1sur 5

S1.

04 Création Base de données


1ere partie
1.1
Les données présentent sont en règle générale plutôt bien agencées, cependant il y a quelques
choses à redire concernant le choix des tables et les choix des types utilisées pour les données.

- Table Tarif vente :


o La table tarif as pour clef primaire « Numarticle et Code liste », ces 2 informations
sont utilisées renseigner « prix vente » or le prix de vente d’un article est déjà
renseigné dans la table Article. Je pense donc que nous pouvons supprimer la table
Tarif Vente.
- ReferenceInterne :
o Dans la table Article, la ligne « ReferenceInterne » est présente mais jamais utilisée,
je pense donc que nous pouvons la supprimer.
- Type des Numéros de téléphone des Clients :
o Dans la table client, les numéros de téléphone sont renseignés en tant que « Varchar
(12) » or l’entreprise peut avoir des clients à l’international, agrandissant donc les
formats de numéros de téléphones Le plus grand étant le Format E, allant jusqu’à 15
caractères

Le diagramme de classe modifié se trouve dans le fichier : « Partie 1 Diagramme de classe.mlo ».

Le schéma de données modifié se trouve dans le fichier : « Schema donnée partie 1.mlr ».

Le script SQL des modifications ce trouve dans le fichier : « Partie 1 bdd BaseMatski modif.sql »

2eme partie
1
2
Le schéma de donnée se trouve dans le fichier : « Schema donnée partie 2.mlr »

Le script SQL du nouveau projet se trouve dans le fichier : « Script Partie bdd.SQL »

Le dictionnaire de donnée si dessous :

Nom attribut type Type PostgreSQL


numfournisseur Auto incrémenté SERIAL
nomfournisseur Caractères variable de 32 Varchar(32)

adresseruefournisseur Caractères variable de 32 Varchar(32)


adressecpfournisseur Caractères variable de 10 Varchar(10)
Adressevillefournisseur Caractères variable de 32 Varchar(32)
Adressepaysfournisseur Caractères variable de 32 Varchar(32)
telephonefournisseur Caractères variable de 15 Varchar(15)
Mailfournisseur Caractères variable de 32 Varchar(32)
Nomcontactfournisseur1 Caractères variable de 32 Varchar(32)
Telephonecontactfournisseur Caractères variable de 15 Varchar(15)
1
Fonctioncontactfournisseur1 Caractères variable de 32 Varchar(32)
Nomcontactfournisseur2 Caractères variable de 32 Varchar(32)
Telephonecontactfournisseur Caractères variable de 15 Varchar(15)
2
Fonctioncontactfournisseur2 Caractères variable de 32 Varchar(32)
Numcategorie Auto incrémenté SERIAL
Libellecategorie Caractères variable de 32 Varchar(32)
Numcommande Auto incrémenté SERIAL
Numclient Auto incrémenté SERIAL
Datecommande date Date
Montantfrais Numérique de 10 avec 2 Numeric(10,2)
décimales
Montantht Numérique de 10 avec 2 Numeric(10,2)
décimales
Montantttc Numérique de 10 avec 2 Numeric(10,2)
décimales
Codeliste Caractère de 1 Char(1)
Libelleliste Caractères variable de 20 Varchar(20)
Codetype Caractère de 1 Char(1)
Libelletype Caractères variable de 32 Varchar(32)
Codeetiquette Caractère de 3 Char(3)
Libelleetiquette Caractères variable de 70 Varchar(70)
Codetypetva Entier Integer
Numarticle Auto incrémenté SERIAL
NumFournisseur Caractères variable de 32 Varchar(32)
nomarticle Caractères variable de 50 Varchar(50)
Codebarre Caractère de 13 Char(13)
Prixvente Numérique de 10 + 2 Numeric(10,2)
décimales
ArticleTaille Numérique de 4 Numeric(4)
Stockactuel Numérique de 6 Numeric(6)
Stockmax Numérique de 10 Numeric(10)
StockMinimum Numérique de 6 Numeric(6)
PrixAchat Numérique de 10 avec 2 Numeric(10,2)
décimales
NumClient Auto incrémenté SERIAL
Typeclient Caractère de 1 Char(1)
Nomclient Caractères variable de 50 Varchar(50)
Adresserueclient Caractères variable de 50 Varchar(50)
Adressecodepostalclient Caractères variable de 10 Varchar(10)
Adressevilleclient Caractères variable de 40 Varchar(40)
Adressepaysclient Caractères variable de 30 Varchar(30)
Telephoneclient Caractères variable de 15 Varchar(15)
Mailclient Caractères variable de 60 Varchar(60)
Nomcontact1 Caractères variable de 50 Varchar(50)
Telephonecontact1 Caractères variable de 15 Varchar(15)
Fonctioncontact1 Caractères variable de 20 Varchar(20)
Nomcontact2 Caractères variable de 50 Varchar(50)
Telephonecontact2 Caractères variable de 15 Varchar(15)
Fonctioncontact2 Caractères variable de 20 Varchar(20)
numcommande Entier Integer
Quantitecommandee Entier Integer
Quantitelivree Entier Integer

Et enfin un jeu de données sur la partie achats

INSERT INTO `FOURNISSEUR`


(`NOMFOURNISSEUR`,`ADRESSERUEFOURNISSEUR`,`ADRESSECPFOURNISSEUR`,`ADRESSEVILLEFOUR
NISSEUR`,`ADRESSEPAYSFOURNISSEUR`,`TELEPHONEFOURNISSEUR`,`MAILFOURNISSEUR`,`NOMCON
TACTFOURNISSEUR1`,`TELEPHONECONTACTFOURNISSEUR1`,`FONCTIONCONTACFOURNISSEURT1`,`N
OMCONTACTFOURNISSEUR2`,`TELEPHONECONTACTFOURNISSEUR2`,`FONCTIONCONTACTFOURNISS
EUR2`)

VALUES

("Raja Waters","398-5253 Aliquam Av.","32218","Thái Nguyên","China","624-


2312","ullamcorper.nisl.arcu@outlook.edu","Channing Rosario","971-3981","RVG60XFM2LD","Ligula
Donec Luctus LLC","464-0392","Non Leo Industries"),

("Dara Travis","Ap #630-638 Dictum St.","510867","Hubei","Peru","1-404-203-


4887","nunc@google.net","Odette Larson","404-3548","FIB66EIU7GI","Mauris Eu Turpis
Corporation","753-7865","Lacus Etiam Corp."),

("Hilel Holloway","3002 Et, Avenue","41047","Colli a Volturno","Belgium","1-237-370-


5596","mauris@hotmail.couk","Zia Craig","943-6863","GMK77CVC2TY","Pellentesque Industries","1-
332-148-1212","Bibendum Sed Foundation"),

("Naida Dudley","Ap #836-4744 Sed Av.","42-95","Bridgnorth","Netherlands","1-746-206-


7731","malesuada.fames.ac@outlook.ca","Nissim Hicks","656-5912","PSH16GIK3RU","Euismod
Corporation","518-3691","Ac Mattis Industries"),

("Xander Hudson","779-9320 Placerat, Avenue","595881","Zeist","Netherlands","644-


3501","penatibus.et@aol.edu","Madeson Cardenas","1-895-898-4501","FEA93OKF5JF","Et Ultrices
Inc.","1-943-631-0738","Suspendisse Eleifend PC");

3 Requetes SQL
a) 1) SELECT Numarticle

FROM Article

EXCEPT

SELECT numarticle

FROM detailcommande

2) SELECT numcategorie

FROM article

EXCEPT

SELECT numcategorie

FROM article

WHERE Numarticle IN (SELECT Numarticle

FROM Detailcommande)

b) SELECT SUM(Montantttc) AS MontantTotal, EXTRACT(MONTH FROM Datecommande) AS Mois

FROM commande join client on commande.numclient = client.numclient

WHERE adressepaysclient ='Suisse'

GROUP BY mois

ORDER BY mois

c) SELECT numclient

FROM client

except

SELECT numclient

FROM commande

d) SELECT commande.numcommande, commande.datecommande,


detailcommande.quantitecommandee, detailcommande.quantitelivree,
detailcommande.quantitecommandee - detailcommande.quantitelivree as difference
FROM commande join detailcommande on commande.numcommande =
detailcommande.numcommande

WHERE d.quantitecommandee - d.quantitelivree > '0'

e) SELECT e.codetypetva, SUM(d.quantitecommandee * a.prixvente) as total_vente_commandee_ht,


SUM(d.quantitelivree * a.prixvente) as total_vente_livree_ht

FROM detailcommande d join commande c on d.numcommande = c.numcommande

join article a on d.numarticle = a.numarticle

join client f on c.numclient = f.numclient

join etiquette e on f.codeetiquette = e.codeetiquette

WHERE c.datecommande >= '2022-09-01'

GROUP BY e.codetypetva

Vous aimerez peut-être aussi