La base de données

publicité
La base de données
La base de données

Le schéma de la base de données

Le langage de requête SQL
La base de données
Le schéma de la base de données
Exemple développé
Gestion des réclamations clients dans une
entreprise d’électroménager :
CLIENT (Numcli, Nomcli, Prenomcli, Adrcli,
Villecli, Cpcli)
PRODUIT (Refprod, Desiprod, Marqueprod,
Prixprod)
RECLAMATION (Coderec, Daterec, Raisonrec,
#Numcli, #Refprod)
La base de données :
vocabulaire



Les TABLES correspondent aux relations
Les CHAMPS correspondent aux
attributs (= colonne)
Les ENREGISTREMENTS correspondent
aux données saisies (= ligne)
La base de données : les
tables
numcli
nomcli
prenomcli
adrcli
cpcli
villecli
10003
ANDRE
Thomas
10 rue courtalon
75014
PARIS
102778
BULI
Patrice
20 cours Vuitton
69006
LYON
124682
VERIN
Didier
10 rue Schuman
75002
PARIS
125941
GADRON
Dominique
10 allée des Tilleuls
69300
CALUIRE
140621
BALOIR
Claude
10 place des cordeliers
75008
PARIS
143025
BLANC
Cécile
12 rue Cortier
89000
AUXERRE
147963
DOLMEN
Christian
145 cous Lafayette
75015
PARIS
148254
JORET
Geneviève
10 rue des provinces
69005
LYON
150763
MALOT
Berthe
39 rue denfert rochereau
75014
PARIS
157269
OLIVE
Virginie
20 rue Berliet
21000
DIJON
164025
PALO
Nicole
10 rue de la Préfecture
75001
PARIS
172436
MARIE
Olivier
43 rue de l'église
06000
NICE
172596
BELO
Vincent
15 rue des chèvrefeuilles
75002
PARIS
175298
GIDOT
Sylvie
20 rue de Melun
75013
PARIS
175496
FAVRE
Caroline
61 rue du calvaire
10000
TROYES
240573
VIAR
Stéphane
68 rue Anatole France
75016
PARIS
279246
MAIRE
René
28 rue de l'Orme
69003
LYON
Table CLIENT
La base de données : les
champs
Champs de la table CLIENT
numcli
nomcli
prenomcli
adrcli
cpcli
villecli
10003
ANDRE
Thomas
10 rue courtalon
75014
PARIS
102778
BULI
Patrice
20 cours Vuitton
69006
LYON
124682
VERIN
Didier
10 rue Schuman
75002
PARIS
125941
GADRON
Dominique
10 allée des Tilleuls
69300
CALUIRE
La base de données : les
enregistrements
numcli
nomcli
prenomcli
adrcli
cpcli
villecli
10003
ANDRE
Thomas
10 rue courtalon
75014
PARIS
102778
BULI
Patrice
20 cours Vuitton
69006
LYON
124682
VERIN
Didier
10 rue Schuman
75002
PARIS
125941
GADRON
Dominique
10 allée des Tilleuls
69300
CALUIRE
140621
BALOIR
Claude
10 place des cordeliers
75008
PARIS
143025
BLANC
Cécile
12 rue Cortier
89000
AUXERRE
147963
DOLMEN
Christian
145 cous Lafayette
75015
PARIS
148254
JORET
Geneviève
10 rue des provinces
69005
LYON
150763
MALOT
Berthe
39 rue denfert rochereau
75014
PARIS
157269
OLIVE
Virginie
20 rue Berliet
21000
DIJON
164025
PALO
Nicole
10 rue de la Préfecture
75001
PARIS
172436
MARIE
Olivier
43 rue de l'église
06000
NICE
172596
BELO
Vincent
15 rue des chèvrefeuilles
75002
PARIS
175298
GIDOT
Sylvie
20 rue de Melun
75013
PARIS
175496
FAVRE
Caroline
61 rue du calvaire
10000
TROYES
240573
VIAR
Stéphane
68 rue Anatole France
75016
PARIS
279246
MAIRE
René
28 rue de l'Orme
69003
LYON
Un enregistrement
de la table CLIENT
La base de données : les
contraintes d’intégrité

Contrainte de DOMAINE

Contrainte de RELATION

Contrainte de REFERENCE
La base de données :
contrainte de domaine
La base de données :
contrainte de relation
La base de données :
contrainte de référence
???
refprod
desiprod
marqueprod
prixprod
CG2054
CONGELATEUR
MOULINEX
245,00 €
CG4210
CONGELATEUR
BRANDT
229,00 €
CG4921
CONGELATEUR
MOULINEX
200,00 €
CG5327
CONGELATEUR
MIELE
215,00 €
CS1572
CUISINIERE
MOULINEX
790,00 €
CS547
CUISINIERE
ARTHUR MARTIN
950,00 €
CS7814
CUISINIERE
ROSIERES
900,00 €
LL1043
LAVE LINGE
BRANDT
610,00 €
LL1050
LAVE LINGE
MOULINEX
520,00 €
LL450
LAVE LINGE
ARTHUR MARTIN
250,00 €
LV2050
LAVE VAISSELLE
BRANDT
1 035,00 €
LV5790
LAVE VAISSELLE
MIELE
1 050,00 €
RF147
REFRIGERATEUR
MIELE
750,00 €
RF2047
REFRIGERATEUR
BRANDT
RF243
REFRIGERATEUR
WHIRLPOOL
1 020,00 €
990,00 €
La base de données : prise en
compte des contraintes d’intégrité



Saisir en premier les données des tables
qui ne contiennent pas de clé étrangère
Bien définir les types de données lors
de la création de la structure
Cocher l’application de l’intégrité
référentielle lors de la mise en place des
liaisons
La base de données
Le langage de requête SQL
Le langage de requête SQL
Trois types d’opérations :



Projection : projette les champs sélectionnés
Restriction : projette les enregistrements
demandés
Tri : ordonne les enregistrements demandés
selon un critère
Le langage de requête SQL :
la projection
refprod
desiprod
245,00 €
CG2054
CONGELATEUR
BRANDT
229,00 €
CG4210
CONGELATEUR
CONGELATEUR
MOULINEX
200,00 €
CG4921
CONGELATEUR
CG5327
CONGELATEUR
MIELE
215,00 €
CG5327
CONGELATEUR
CS1572
CUISINIERE
MOULINEX
790,00 €
CS1572
CUISINIERE
CS547
CUISINIERE
ARTHUR MARTIN
950,00 €
CS547
CUISINIERE
CS7814
CUISINIERE
ROSIERES
900,00 €
CS7814
CUISINIERE
LL1043
LAVE LINGE
BRANDT
610,00 €
LL1043
LAVE LINGE
LL1050
LAVE LINGE
MOULINEX
520,00 €
LL1050
LAVE LINGE
LL450
LAVE LINGE
ARTHUR MARTIN
250,00 €
LL450
LAVE LINGE
LV2050
LAVE VAISSELLE
BRANDT
1 035,00 €
LV2050
LAVE VAISSELLE
LV5790
LAVE VAISSELLE
MIELE
1 050,00 €
LV5790
LAVE VAISSELLE
RF147
REFRIGERATEUR
MIELE
750,00 €
RF147
REFRIGERATEUR
RF2047
REFRIGERATEUR
BRANDT
RF2047
REFRIGERATEUR
RF243
REFRIGERATEUR
WHIRLPOOL
RF243
REFRIGERATEUR
refprod
desiprod
marqueprod
CG2054
CONGELATEUR
MOULINEX
CG4210
CONGELATEUR
CG4921
prixprod
1 020,00 €
990,00 €
Projection :
- refprod
- desiprod
Le langage de requête SQL :
la restriction
refprod
desiprod
marqueprod
prixprod
CG2054
CONGELATEUR
MOULINEX
245,00 €
CG4210
CONGELATEUR
BRANDT
229,00 €
CG4921
CONGELATEUR
MOULINEX
200,00 €
CG5327
CONGELATEUR
MIELE
215,00 €
CS1572
CUISINIERE
MOULINEX
790,00 €
CS547
CUISINIERE
ARTHUR MARTIN
950,00 €
CS7814
CUISINIERE
ROSIERES
900,00 €
LL1043
LAVE LINGE
BRANDT
610,00 €
LL1050
LAVE LINGE
MOULINEX
520,00 €
LL450
LAVE LINGE
ARTHUR MARTIN
250,00 €
LV2050
LAVE VAISSELLE
BRANDT
1 035,00 €
LV5790
LAVE VAISSELLE
MIELE
1 050,00 €
RF147
REFRIGERATEUR
MIELE
750,00 €
RF2047
REFRIGERATEUR
BRANDT
RF243
REFRIGERATEUR
WHIRLPOOL
1 020,00 €
990,00 €
Restriction :
seulement les
congélateurs
refprod
desiprod
marqueprod
prixprod
CG2054
CONGELATEUR
MOULINEX
245,00 €
CG4210
CONGELATEUR
BRANDT
229,00 €
CG4921
CONGELATEUR
MOULINEX
200,00 €
CG5327
CONGELATEUR
MIELE
215,00 €
Le langage de requête SQL :
le tri
refprod
desiprod
marqueprod
CG4921
CONGELATEUR
MOULINEX
200,00 €
CG5327
CONGELATEUR
MIELE
215,00 €
CG4210
CONGELATEUR
BRANDT
229,00 €
ordre
CG2054
CONGELATEUR
MOULINEX
245,00 €
LL450
LAVE LINGE
ARTHUR MARTIN
250,00 €
de prix
LL1050
LAVE LINGE
MOULINEX
520,00 €
LL1043
LAVE LINGE
BRANDT
610,00 €
610,00 €
RF147
REFRIGERATEUR
MIELE
750,00 €
MOULINEX
520,00 €
CS1572
CUISINIERE
MOULINEX
790,00 €
LAVE LINGE
ARTHUR MARTIN
250,00 €
CS7814
CUISINIERE
ROSIERES
900,00 €
LV2050
LAVE VAISSELLE
BRANDT
1 035,00 €
CS547
CUISINIERE
ARTHUR MARTIN
950,00 €
LV5790
LAVE VAISSELLE
MIELE
1 050,00 €
RF243
REFRIGERATEUR
WHIRLPOOL
990,00 €
RF147
REFRIGERATEUR
MIELE
750,00 €
RF2047
REFRIGERATEUR
BRANDT
1 020,00 €
RF2047
REFRIGERATEUR
BRANDT
1 020,00 €
LV2050
LAVE VAISSELLE
BRANDT
1 035,00 €
RF243
REFRIGERATEUR
WHIRLPOOL
990,00 €
LV5790
LAVE VAISSELLE
MIELE
1 050,00 €
refprod
desiprod
marqueprod
prixprod
CG2054
CONGELATEUR
MOULINEX
245,00 €
CG4210
CONGELATEUR
BRANDT
229,00 €
CG4921
CONGELATEUR
MOULINEX
200,00 €
CG5327
CONGELATEUR
MIELE
215,00 €
CS1572
CUISINIERE
MOULINEX
790,00 €
CS547
CUISINIERE
ARTHUR MARTIN
950,00 €
CS7814
CUISINIERE
ROSIERES
900,00 €
LL1043
LAVE LINGE
BRANDT
LL1050
LAVE LINGE
LL450
Tri par
prixprod
Le langage de requête SQL :
la jointure
Liste des clients ayant fait une
réclamation pour une cuisinière :


Projection du nom des clients
Restriction sur la désignation du produit
mcli
nomcli
prenomcli
adrcli
cpcli
villecli
003
ANDRE
Thomas
10 rue courtalon
75014
PARIS
2778
BULI
Patrice
20 cours Vuitton
69006
LYON
4682
VERIN
Didier
10 rue Schuman
75002
PARIS
5941
GADRON
Dominique
10 allée des Tilleuls
69300
CALUIRE
0621
BALOIR
Claude
10 place des cordeliers
75008
PARIS
3025
BLANC
Cécile
12 rue Cortier
89000
AUXERRE
7963
DOLMEN
Christian
145 cous Lafayette
75015
PARIS
8254
JORET
Geneviève
10 rue des provinces
69005
LYON
0763
MALOT
Berthe
39 rue denfert rochereau
75014
PARIS
7269
OLIVE
Virginie
20 rue Berliet
21000
DIJON
4025
PALO
Nicole
10 rue de la Préfecture
75001
PARIS
2436
MARIE
Olivier
43 rue de l'église
06000
NICE
2596
BELO
Vincent
15 rue des chèvrefeuilles
75002
PARIS
5298
GIDOT
Sylvie
20 rue de Melun
75013
PARIS
5496
FAVRE
Caroline
61 rue du calvaire
10000
TROYES
0573
VIAR
Stéphane
68 rue Anatole France
75016
PARIS
9246
MAIRE
René
28 rue de l'Orme
69003
LYON
9346
TAR
Delphine
8 rue de Marseille
75013
PARIS
7951
FOURNE
Pascal
2 rue des Marroniers
18000
BOURGES
7952
TIRU
Anne
10 cours Lafayette
75016
PARIS
7142
ARTI
Mireille
10 rue Bossuet
21000
DIJON
2218
VOLO
Sophie
20 impasse Potet
75019
PARIS
1072
FUTIR
Gérard
25 rue Gallieni
10300
STE SAVINE
7852
ELIA
Bernard
105 avenue Charlemagne
75020
PARIS
7365
MOUR
Arnaud
14 place Jules Ferry
89000
AUXERRE
7369
YZER
Jean
20 Cours Vuitton
75007
PARIS
refprod
desiprod
marqueprod
prixprod
CG2054
CONGELATEUR
MOULINEX
245,00 €
CG4210
CONGELATEUR
BRANDT
229,00 €
CG4921
CONGELATEUR
MOULINEX
200,00 €
CG5327
CONGELATEUR
MIELE
215,00 €
CS1572
CUISINIERE
MOULINEX
790,00 €
CS547
CUISINIERE
ARTHUR MARTIN
950,00 €
CS7814
CUISINIERE
ROSIERES
900,00 €
LL1043
LAVE LINGE
BRANDT
610,00 €
LL1050
LAVE LINGE
MOULINEX
520,00 €
LL450
LAVE LINGE
ARTHUR MARTIN
250,00 €
LV2050
LAVE VAISSELLE
BRANDT
1 035,00 €
LV5790
LAVE VAISSELLE
MIELE
1 050,00 €
RF147
REFRIGERATEUR
MIELE
750,00 €
RF2047
REFRIGERATEUR
BRANDT
RF243
REFRIGERATEUR
WHIRLPOOL
1 020,00 €
990,00 €
 Aucun lien entre les tables
nomcli
desiprod
ANDRE
CONGELATEUR
ANDRE
CONGELATEUR
ANDRE
CONGELATEUR
ANDRE
CONGELATEUR
BULI
CONGELATEUR
BULI
CONGELATEUR
BULI
CONGELATEUR
BULI
CONGELATEUR
VERIN
CONGELATEUR
VERIN
CONGELATEUR
VERIN
CONGELATEUR
VERIN
CONGELATEUR
GADRON
CONGELATEUR
GADRON
CONGELATEUR
GADRON
CONGELATEUR
GADRON
CONGELATEUR
BALOIR
CONGELATEUR
BALOIR
CONGELATEUR
BALOIR
CONGELATEUR
 Le lien se fait grâce à la relation RECLAMATION
 Jointure : lien entre les tables
nomcli
desiprod
VOLO
CONGELATEUR
MOUR
CONGELATEUR
ARTI
CONGELATEUR
BALOIR
CONGELATEUR
BULI
CONGELATEUR
VIAR
CONGELATEUR
PALO
CONGELATEUR
Le langage de requête SQL :
les opérateurs




Projection : SELECT
Restriction : WHERE / AND
Tri : ORDER BY … ASC / DESC
Jointure : WHERE
Le langage de requête SQL /
structure des requêtes
SELECT champ1, champ2
FROM table1
WHERE champ1 = « … »
ORDER BY champ2 ASC ;
Le langage de requête SQL /
structure des requêtes
Exemple : liste des clients habitant Paris
par ordre alphabétique
SELECT nomcli
FROM client
WHERE villecli = « Paris »
ORDER BY nomcli ASC ;
Le langage de requête SQL /
structure des requêtes
SELECT champ1, champ2
FROM table1, table2
WHEREtable1.cléprimaire=table2.cléétrangère
AND champ1 = « … » ;
Le langage de requête SQL /
structure des requêtes
Exemple : nom des clients ayant fait une
réclamation pour un lave linge
SELECT nomcli
FROM client, produit, réclamation
WHERE client.numcli = réclamation.numcli
AND produit.refprod = réclamation.refprod
AND desiprod = « lave linge » ;
Téléchargement