28
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

Embed Size (px)

Citation preview

Page 1: 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

Page 2: 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

Le langage de requête SQL

Page 3: 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

Page 4: La base de données. Le schéma de la base de données Le langage de requête SQL

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)

Page 5: 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 : vocabulaire Les TABLES correspondent aux

relations

Les CHAMPS correspondent aux attributs (= colonne)

Les ENREGISTREMENTS correspondent aux données saisies (= ligne)

Page 6: 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 : 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

Page 7: 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 : les champs

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

Champs de la table CLIENT

Page 8: 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 : 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

Page 9: 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 : les contraintes d’intégrité Contrainte de DOMAINE

Contrainte de RELATION

Contrainte de REFERENCE

Page 10: 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 : contrainte de domaine

Page 11: 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 : contrainte de relation

Page 12: 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 : contrainte de référencerefprod 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 1 020,00 €

RF243 REFRIGERATEUR WHIRLPOOL 990,00 €

???

Page 13: 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 : 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

Page 14: 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 langage de requête SQL

Page 15: La base de données. Le schéma de 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

Page 16: La base de données. Le schéma de la base de données Le langage de requête SQL

Le langage de requête SQL : la projection

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 1 020,00 €

RF243 REFRIGERATEUR WHIRLPOOL 990,00 €

Projection :

- refprod

- desiprod

refprod

CG2054

CG4210

CG4921

CG5327

CS1572

CS547

CS7814

LL1043

LL1050

LL450

LV2050

LV5790

RF147

RF2047

RF243

desiprod

CONGELATEUR

CONGELATEUR

CONGELATEUR

CONGELATEUR

CUISINIERE

CUISINIERE

CUISINIERE

LAVE LINGE

LAVE LINGE

LAVE LINGE

LAVE VAISSELLE

LAVE VAISSELLE

REFRIGERATEUR

REFRIGERATEUR

REFRIGERATEUR

Page 17: La base de données. Le schéma de la base de données Le langage de requête SQL

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 1 020,00 €

RF243 REFRIGERATEUR WHIRLPOOL 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 €

Page 18: La base de données. Le schéma de la base de données Le langage de requête SQL

Le langage de requête SQL : le tri

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 1 020,00 €

RF243 REFRIGERATEUR WHIRLPOOL 990,00 €

Tri par

ordre

de prix

refprod desiprod marqueprod prixprod

CG4921 CONGELATEUR MOULINEX 200,00 €

CG5327 CONGELATEUR MIELE 215,00 €

CG4210 CONGELATEUR BRANDT 229,00 €

CG2054 CONGELATEUR MOULINEX 245,00 €

LL450 LAVE LINGE ARTHUR MARTIN 250,00 €

LL1050 LAVE LINGE MOULINEX 520,00 €

LL1043 LAVE LINGE BRANDT 610,00 €

RF147 REFRIGERATEUR MIELE 750,00 €

CS1572 CUISINIERE MOULINEX 790,00 €

CS7814 CUISINIERE ROSIERES 900,00 €

CS547 CUISINIERE ARTHUR MARTIN 950,00 €

RF243 REFRIGERATEUR WHIRLPOOL 990,00 €

RF2047 REFRIGERATEUR BRANDT 1 020,00 €

LV2050 LAVE VAISSELLE BRANDT 1 035,00 €

LV5790 LAVE VAISSELLE MIELE 1 050,00 €

Page 19: La base de données. Le schéma de la base de données Le langage de requête SQL

Le langage de requête SQL : la jointure

Liste des clients ayant fait uneréclamation pour une cuisinière :

Projection du nom des clients Restriction sur la désignation du

produit

Page 20: La base de données. Le schéma de la base de données Le langage de requête SQL

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

279346 TAR Delphine 8 rue de Marseille 75013 PARIS

307951 FOURNE Pascal 2 rue des Marroniers 18000 BOURGES

307952 TIRU Anne 10 cours Lafayette 75016 PARIS

357142 ARTI Mireille 10 rue Bossuet 21000 DIJON

402218 VOLO Sophie 20 impasse Potet 75019 PARIS

421072 FUTIR Gérard 25 rue Gallieni 10300 STE SAVINE

427852 ELIA Bernard 105 avenue Charlemagne 75020 PARIS

517365 MOUR Arnaud 14 place Jules Ferry 89000 AUXERRE

527369 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 1 020,00 €

RF243 REFRIGERATEUR WHIRLPOOL 990,00 €

Page 21: La base de données. Le schéma de la base de données Le langage de requête SQL

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

BALOIR CONGELATEUR

Page 22: La base de données. Le schéma de la base de données Le langage de requête SQL

Le lien se fait grâce à la relation RECLAMATION

Page 23: La base de données. Le schéma de la base de données Le langage de requête SQL

Jointure : lien entre les tables

nomcli desiprod

VOLO CONGELATEUR

MOUR CONGELATEUR

ARTI CONGELATEUR

BALOIR CONGELATEUR

BULI CONGELATEUR

VIAR CONGELATEUR

PALO CONGELATEUR

Page 24: La base de données. Le schéma de la base de données Le langage de requête SQL

Le langage de requête SQL : les opérateurs Projection : SELECT Restriction : WHERE / AND Tri : ORDER BY … ASC / DESC Jointure : WHERE

Page 25: La base de données. Le schéma de la base de données Le langage de requête SQL

Le langage de requête SQL / structure des requêtes

SELECT champ1, champ2FROM table1WHERE champ1 = « … » ORDER BY champ2 ASC ;

Page 26: La base de données. Le schéma de la base de données Le langage de requête SQL

Le langage de requête SQL / structure des requêtes

Exemple : liste des clients habitant Paris par ordre alphabétique

SELECT nomcliFROM clientWHERE villecli = « Paris » ORDER BY nomcli ASC ;

Page 27: La base de données. Le schéma de la base de données Le langage de requête SQL

Le langage de requête SQL / structure des requêtes

SELECT champ1, champ2FROM table1, table2WHEREtable1.cléprimaire=table2.cléétra

ngèreAND champ1 = « … » ;

Page 28: La base de données. Le schéma de la base de données Le langage de requête SQL

Le langage de requête SQL / structure des requêtes

Exemple : nom des clients ayant fait une réclamation pour un lave linge

SELECT nomcliFROM client, produit, réclamationWHERE client.numcli = réclamation.numcliAND produit.refprod = réclamation.refprodAND desiprod = « lave linge » ;