IUTREIMS - Bases de Donnees - SQL - 1ere Annee - 2004 - INFO

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 4

LV.T.

"Leonard de Vinci de Reims" Myriam Brun-Mokhtari


Departement Informatique Annee 2003/2004

TPS N°2 de Bases de Donnees

Premiere annee

Duree: 2h

Documents autorises :

Polycopie de CM

"Quelques rappels utiles sur Ie SQL et Ie SQL*Plus"


"Quelques rappels utiles sur l'administration"
Documents de cours et de TD sur Ie TD8 (ocicpp + HTML + C++)

Soit la base de donnees relative aux ventes d'une chaine de magasins. Les magasins partagent un stock en
commun, et beneficient d'une gestion centralisee des commandes et des livraisons.

Ce modele de gestion simplifie n'est pas prevu pour gerer les commandes aupres des foumisseurs, ni la
facturation, ni Ie suivi du paiement des clients. Mais Ie schema des donnees a construire doit Stre suffisamment
representatif des problemes classiques de gestion.

Vne commande concerne un client, un magasin et est constitue de plusieurs lignes de commandes. Chacune de
celles-ci concerne un article.
Vne commande peut Stre livree en plusieurs fois. Chaque livraison est constituee de plusieurs lignes de livraison.
Chacune de celles-ci concerne un article et correspond toujours a une seule ligne de commande : on ne livre que ce
qu'on a commande.
Notre chaine est composee d'un ensemble de magasins avec pour chacun : un numero, la localite ou Ie magasin
est situe, et Ie nom du gerant.
Vn client est repertorie par un numero, son nom, son prenom, sa nationalite (F, B, GB, ... ), sa localite, son
chiffi'e d'affaires global et son type code (1 = 'Particulier', 2 = 'Administration', 3 = 'Grand compte', 4 = 'PME') qui
sert notamment a fixer les remises.
Chaque commande est caracterisee par un numero de commande, la date de la commande, Ie numero du client et
Ie numero du magasin ou la commande a ete passee.
Les renseignements pour un article de ill commande sont : Ie numero d'article, la quantite commandee, la quantite
a livrer, Ie prix unitaire de vente, la date de livraison prevue.
Vne livraison, repertoriee par un numero, se fait a une certaine date, pour un client donne et correspond au
magasin ou la commande a ete passee.
Les renseignements concernant un article de la livraison sont : Ie numero de la livraison, Ie numero d'article, la
quantite livree, et Ie numero de la commande correspondante.
Chaque article stocke est caracterise par: son numero, son nom, son poids avec 1 decimale, sa couleur, sa
quantite en stock, son prix d'achat, son prix de vente, et Ie numero du fournisseur.
Pour chaque fournisseur, seuls Ie numero et Ie nom sont pris en compte.

Departement Informatique Myriam Brun-Mokhtan


foumisse..rs

frs num f:JJ

frsJom Vf>25

l
\ art artides
num
artJom artya
art.JXids
art_CXJU
art_sted<

VA2
Vf>25
VA16dt...J:eys
dUxm
Vf>25
VA2D
VA2Df:JJ
dU:a
dt...JTO!ll dt num
IN10,1
IVf>25 °'1
\
1,
f:JJI
f:JJ

1artIN
dients

coostituee"'de

!iv num f:JJ

!iv_date DT

:: <?estrreg
GestiOl des ventes
MjriamMxJeIe duneI VersiOl
BrurrM:Jkhtari
Calceptuel chaine de rmgasins
1de118/01/99
D:Jr1nEBs
Prqet Auteur
MxJeIe

Liste des regles de gestion

RegIe 1 : La quantite a livrer do it etre plus petite au egale a la quantite cornrnandee.


RegIe 2 : Le prix de vente d'un article do it etre au mains egal a 10/9 de son prix d'achat.

Departement Jnfonnatique 2 Myriam Brun-Mokhtari


commandes
cmd num
mag_num
clt_num
cmd date
foumisseurs
frs num CHAR(8) not null
frs_nom VARCHAR(25) null

lig_cmd
cmd num CHAR(8) not null
art num CHAR(8) not null
Icd_liv INTEGER null
Icd_pu INTEGER not null
Icd_qte INTEGER not null
Icd datliv DATE null

[O,n]
\
art_num = art_num f"_oom)"_oom
[O,n]

-
INTEGERnullnull
not
null
VARCHAR(25)
CHAR(8)
null
not
not
VARCHAR(20)
VARCHAR(16)
NUMBER(10,1)
VARCHAR(2)
VARCHAR(25)
CHAR(8)
VARCHAR(25)null
null art
a num
rt_coul
frs_num articles clients
elUoc
clt_pays
art_stock
art_poids
elt art_nom
nom CHAR(8 )
clt num

-
art num = art num
/
[O,n]
-
lig_liv
art num CHAR(8) not null
liv num CHAR(8) not null
cmd num CHAR(8) not null
IIv qte INTEGER not null

)o,n]
num = liv_num

liv num CHAR(8) not null


mag_num CHAR(8) not null
clt_num CHAR(8 ) not null
liv date DATE null

Modele Physique de Donnees


Projet : Gestion des ventes d'une chaine de magasins
Modele: Gestmag
Auteur : Mynam Mokhtan-Brun

Liste des informations

Nom Qui
Non A8
Obligato
Non, I
VA20
VA25
Type ire
par defaut
NIO,l Clt>=0
Art
Code
0, sinonArt nom
num
nom
ca
lac
num
caul
pv
stock
pa
poids

Departement Informatique 3 Myriam Brun-Mokhtari


Non
Qui
Non,
Nationalite A25
et >=0
VA25
IA8
VA2
VA20
DT
Al
rnais
par
Qui,client
par
E unique
dHaut
fa,dHaut
Lcd '1'sinon
0,
date
0qte]sinonLiv
Cmd
Lcd
Frs
Clt
>=0
Mag
duLlv
jour
>=0
Lcd num
Cmdnum
date
num
nomdate
liv
datliv
ger
pnom
type
pu
loc
pays
num
qte
qte

I. Donner les requetes SQL d'Oracle permettant de:


I) Rechercher les commandes d'articles dont Ie Prix unitaire de vente et la Quantite commandee sont, respectivement,
plus grands que Ie Prix unitaire moyen et la Quantite commandee moyenne de tous les articles. Les mois de
commande doivent apparaitre en fran<;ais et tries par ordre chronologique Uanvier, fevrier, ...).

N° article N° commande Mois Commande

2) Donner par article en stock, la date de la derniere commande et Ie nombre de clients distincts l'ayant commande.
Les articles concemes sont ceux fournis par Ie fournisseur 'GIGABQX', commandes dans les magasins Parisiens et
dont la Date de derniere commande est posterieure au 7 juin 1997.

N° article Nom article Date dernii~re commande Nombre de clients

3) Mettre a jour les articles dont Ie nom commence par 'A' : Ie champs Prix de vente article (art-pv) est m-a-j par la
moyenne des prix unitaires de vente (lcd-pu) de cet article; la Quantite en stock (art_stock) est doublee.

4) Creer la table lig_cmd en tenant compte des contraintes citees precedemment.


?>-
II. Script CGI

Soit Ie fichier examen.htrnl affichant Ie formulaire suivant :

r2t .•.
Stop __
~ A
http://wwwl~mokhlocicppltestsltps_2003Iexamen.html·c-O.
~ ••• _" . ~._'. A_. "., __ • _AO'
v~",-""_",_,>,.",_,,," __ ~~_,.~"_ •. ~_~
,,,,",.......,,
__
,,,,.,..•••_,, •..•.,_,,., __ ~ ••..••..•.
,_. Search I Print
i'~ ' ••'1;_"-'-'. ~~;'---·;;'f;Jh,-· -'~,;; ""::t..'> .. ,<,---~,;.A.:'" "';;i">'>".~
C::TI
JAVA @2J0RACLE. (2j RECRUTEJl1ENTIPER" ,(2j PHP @:JAUTRES ...G.:JCOURS B CANADA

Choisir les criteres pour l'affichage du nombre de clients

Groupement par : Clients actifs : N ombres de clients:


elUoe ';;:.:. Qui . <10
clUype Non it > 10

EI~.,,~
eJ.y.~ ...•. Tous .'.•. Tous .•.

L'action du formulaire est l'appel d'un script examen.cgi avec par exemple comme parametres d'entrees:
groupe=clt_loc&actif=oui&nb=Tous. Le but de ce script est d'afficher Ie nombre de clients Qill: localite (ou par type ou
par pays) pour les clients actifs (c-a-d ayant deja commande) ou non actifs ou tous. Tous les nombres de clients seront
affiches (ou seuls ceux > 10 ou ceux <10).
Donnez Ie code source examen.cpp.
Departement Informatique 4 Myriam Brun-Mokhtari

Vous aimerez peut-être aussi