280 likes | 531 Views
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 :
E N D
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)
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 La base de données : les tables 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 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 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 La base de données : les enregistrements 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
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 € La base de données : contrainte de référence ???
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
refprod refprod desiprod desiprod marqueprod prixprod CG2054 CG2054 CONGELATEUR CONGELATEUR MOULINEX 245,00 € CONGELATEUR CG4210 CG4210 CONGELATEUR BRANDT 229,00 € CG4921 CONGELATEUR CG4921 CONGELATEUR MOULINEX 200,00 € CG5327 CONGELATEUR CG5327 CONGELATEUR MIELE 215,00 € CS1572 CUISINIERE CS1572 CUISINIERE MOULINEX 790,00 € CS547 CUISINIERE CS547 CUISINIERE ARTHUR MARTIN 950,00 € CS7814 CS7814 CUISINIERE CUISINIERE ROSIERES 900,00 € LL1043 LL1043 LAVE LINGE LAVE LINGE BRANDT 610,00 € LL1050 LAVE LINGE LL1050 LAVE LINGE MOULINEX 520,00 € LL450 LL450 LAVE LINGE LAVE LINGE ARTHUR MARTIN 250,00 € LV2050 LV2050 LAVE VAISSELLE LAVE VAISSELLE BRANDT 1 035,00 € LV5790 LV5790 LAVE VAISSELLE LAVE VAISSELLE MIELE 1 050,00 € RF147 RF147 REFRIGERATEUR REFRIGERATEUR MIELE 750,00 € REFRIGERATEUR RF2047 RF2047 REFRIGERATEUR BRANDT 1 020,00 € REFRIGERATEUR RF243 RF243 REFRIGERATEUR WHIRLPOOL 990,00 € Le langage de requête SQL : la projection Projection : - refprod - desiprod
refprod refprod desiprod desiprod marqueprod marqueprod prixprod prixprod CG2054 CG2054 CONGELATEUR CONGELATEUR MOULINEX MOULINEX 245,00 € 245,00 € CG4210 CG4210 CONGELATEUR CONGELATEUR BRANDT BRANDT 229,00 € 229,00 € CG4921 CG4921 CONGELATEUR CONGELATEUR MOULINEX MOULINEX 200,00 € 200,00 € CG5327 CG5327 CONGELATEUR CONGELATEUR MIELE MIELE 215,00 € 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 € Le langage de requête SQL : la restriction Restriction : seulement les congélateurs
refprod refprod desiprod desiprod marqueprod marqueprod prixprod prixprod CG4921 CG2054 CONGELATEUR CONGELATEUR MOULINEX MOULINEX 200,00 € 245,00 € CG4210 CG5327 CONGELATEUR CONGELATEUR BRANDT MIELE 215,00 € 229,00 € CG4210 CG4921 CONGELATEUR CONGELATEUR BRANDT MOULINEX 229,00 € 200,00 € CG5327 CG2054 CONGELATEUR CONGELATEUR MOULINEX MIELE 215,00 € 245,00 € LL450 CS1572 LAVE LINGE CUISINIERE MOULINEX ARTHUR MARTIN 790,00 € 250,00 € LL1050 CS547 LAVE LINGE CUISINIERE ARTHUR MARTIN MOULINEX 520,00 € 950,00 € LL1043 CS7814 LAVE LINGE CUISINIERE BRANDT ROSIERES 610,00 € 900,00 € LL1043 RF147 REFRIGERATEUR LAVE LINGE MIELE BRANDT 750,00 € 610,00 € CS1572 LL1050 LAVE LINGE CUISINIERE MOULINEX MOULINEX 790,00 € 520,00 € CS7814 LL450 CUISINIERE LAVE LINGE ROSIERES ARTHUR MARTIN 900,00 € 250,00 € CS547 LV2050 CUISINIERE LAVE VAISSELLE ARTHUR MARTIN BRANDT 950,00 € 1 035,00 € RF243 LV5790 REFRIGERATEUR LAVE VAISSELLE WHIRLPOOL MIELE 990,00 € 1 050,00 € RF2047 RF147 REFRIGERATEUR REFRIGERATEUR MIELE BRANDT 1 020,00 € 750,00 € RF2047 LV2050 LAVE VAISSELLE REFRIGERATEUR BRANDT BRANDT 1 035,00 € 1 020,00 € RF243 LV5790 LAVE VAISSELLE REFRIGERATEUR WHIRLPOOL MIELE 990,00 € 1 050,00 € Le langage de requête SQL : le tri Tri par ordre de prix
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
numcli refprod nomcli desiprod prenomcli marqueprod adrcli prixprod cpcli villecli CG2054 10003 ANDRE CONGELATEUR Thomas MOULINEX 10 rue courtalon 245,00 € 75014 PARIS 102778 CG4210 BULI CONGELATEUR Patrice BRANDT 20 cours Vuitton 229,00 € 69006 LYON CG4921 124682 VERIN CONGELATEUR Didier MOULINEX 10 rue Schuman 200,00 € 75002 PARIS 125941 CG5327 GADRON CONGELATEUR Dominique MIELE 10 allée des Tilleuls 215,00 € 69300 CALUIRE CS1572 140621 BALOIR CUISINIERE Claude MOULINEX 10 place des cordeliers 790,00 € 75008 PARIS 143025 CS547 BLANC CUISINIERE Cécile ARTHUR MARTIN 12 rue Cortier 950,00 € 89000 AUXERRE 147963 CS7814 DOLMEN CUISINIERE Christian ROSIERES 145 cous Lafayette 900,00 € 75015 PARIS LL1043 148254 JORET LAVE LINGE Geneviève BRANDT 10 rue des provinces 610,00 € 69005 LYON LL1050 150763 MALOT LAVE LINGE Berthe MOULINEX 39 rue denfert rochereau 520,00 € 75014 PARIS 157269 LL450 OLIVE LAVE LINGE Virginie ARTHUR MARTIN 20 rue Berliet 250,00 € 21000 DIJON LV2050 164025 PALO LAVE VAISSELLE Nicole BRANDT 10 rue de la Préfecture 1 035,00 € 75001 PARIS LV5790 172436 MARIE LAVE VAISSELLE Olivier MIELE 43 rue de l'église 1 050,00 € 06000 NICE 172596 RF147 BELO REFRIGERATEUR Vincent MIELE 15 rue des chèvrefeuilles 750,00 € 75002 PARIS RF2047 175298 GIDOT REFRIGERATEUR Sylvie BRANDT 20 rue de Melun 1 020,00 € 75013 PARIS 175496 RF243 FAVRE REFRIGERATEUR Caroline WHIRLPOOL 61 rue du calvaire 990,00 € 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
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 BLANC CONGELATEUR BLANC CONGELATEUR BLANC CONGELATEUR BLANC CONGELATEUR DOLMEN CONGELATEUR DOLMEN CONGELATEUR DOLMEN CONGELATEUR DOLMEN CONGELATEUR JORET CONGELATEUR JORET CONGELATEUR JORET CONGELATEUR JORET CONGELATEUR MALOT CONGELATEUR MALOT CONGELATEUR MALOT CONGELATEUR MALOT CONGELATEUR OLIVE CONGELATEUR OLIVE CONGELATEUR OLIVE CONGELATEUR OLIVE CONGELATEUR PALO CONGELATEUR PALO CONGELATEUR PALO CONGELATEUR PALO CONGELATEUR MARIE CONGELATEUR MARIE CONGELATEUR MARIE CONGELATEUR MARIE CONGELATEUR BELO CONGELATEUR BELO CONGELATEUR BELO CONGELATEUR BELO CONGELATEUR GIDOT CONGELATEUR GIDOT CONGELATEUR GIDOT CONGELATEUR GIDOT CONGELATEUR FAVRE CONGELATEUR FAVRE CONGELATEUR FAVRE CONGELATEUR FAVRE CONGELATEUR VIAR CONGELATEUR VIAR CONGELATEUR VIAR CONGELATEUR VIAR CONGELATEUR MAIRE CONGELATEUR MAIRE CONGELATEUR MAIRE CONGELATEUR MAIRE CONGELATEUR TAR CONGELATEUR TAR CONGELATEUR TAR CONGELATEUR TAR CONGELATEUR FOURNE CONGELATEUR FOURNE CONGELATEUR FOURNE CONGELATEUR FOURNE CONGELATEUR TIRU CONGELATEUR TIRU CONGELATEUR TIRU CONGELATEUR TIRU CONGELATEUR ARTI CONGELATEUR ARTI CONGELATEUR ARTI CONGELATEUR ARTI CONGELATEUR VOLO CONGELATEUR VOLO CONGELATEUR VOLO CONGELATEUR VOLO CONGELATEUR FUTIR CONGELATEUR FUTIR CONGELATEUR FUTIR CONGELATEUR FUTIR CONGELATEUR ELIA CONGELATEUR ELIA CONGELATEUR ELIA CONGELATEUR ELIA CONGELATEUR MOUR CONGELATEUR MOUR CONGELATEUR MOUR CONGELATEUR MOUR CONGELATEUR YZER CONGELATEUR YZER CONGELATEUR YZER CONGELATEUR YZER CONGELATEUR Aucun lien entre les tables
nomcli desiprod VOLO CONGELATEUR MOUR CONGELATEUR ARTI CONGELATEUR BALOIR CONGELATEUR BULI CONGELATEUR VIAR CONGELATEUR PALO CONGELATEUR Jointure : lien entre les tables
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 » ;