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 » ;