BDD1 TD3 : Bases de données relationnelles I) SQL avec jointure : Cas commande (multitables) Soit le schéma relationnel de la base de données GestCommande comportant les 4 tables : C_CLIENT(NCLI, NOM, ADRESSE, LOCALITE, CAT, COMPTE) C_COMMANDE(NCOM, NCLI, DATECOM) C_DETAIL(NCOM, NPRO, QCOM) C_PRODUIT(NPRO, LIBELLE, PRIX, QSTOCK) a) Soulignez les clés primaires, entourez les clés étrangères dans le schéma relationnel ci-dessus. b) Écrivez les requêtes suivantes en SQL 1) Numéro du client qui a passé la commande n° 30179. 2) Nom et localité du client qui a passé la commande n° 30179. 3) Liste des localités. 4) Liste des localités qui ont au moins un client (client ayant passé une commande). 5) Liste des clients (N°) qui ont commandé le produit CS464. 6) Liste des clients (N°, nom, localité) qui ont commandé le produit CS464. 7) Quel est le nombre de clients enregistrés qu'ils aient ou non commandés ? 8) Quel est le nombre de clients différents qui ont passé commande ? 9) Quel est le nombre de commandes effectuées par chaque client ? 10) Quels sont les produits en sapin qui font l'objet d'une commande ? 11) Pour chaque ligne (détail) de commande, calculer son prix total (prix unitaire multiplié par la quantité). 12) Calculer pour chaque commande son prix total (somme du prix unitaire multiplié par la quantité). 13) Par client, quel est le nombre de commandes effectuées, le nombre de lignes de commandes et le montant total de ses commandes ? 14) Idem 13 mais seulement pour les clients dont le montant total de commande est supérieur à 50 000 € C_CLIENT (certains n'ont pas passé de commande...) NCLI NOM ADRESSE B112 HANSENNE 23 A. DUMONT C123 MERCIER 25 RUE LEMAITRE B332 MONTI 112 RUE NEUVE F010 TOUSSAINT 5 RUE GODEFROID K111 VANBIST 180 RUE FLORIMONT S127 VANDERKA 3 AV. DES ROSES B512 GILLET 14 RUE DE L'ETE B062 GOFFIN 72 RUE DE LA GARE C400 FERARD 65 RUE. DU TERTRE C003 AVRON 8 CHEMIN DE LA CURE K729 NEUMAN 40 RUE BRANSART F011 PONCELET 17 CLOS DES ERABLES L422 FRANCK 60 RUE DE WEPION S712 GUILLAUME 14A CHEMIN DES ROSES D063 MERCIER 201 BD DU NORD F400 JACOB 78 CHEMIN DU MOULIN C_COMMANDE NCOM NCLI 30178 K111 30179 C400 30182 S127 30184 C400 30185 F011 30186 C400 30188 B512 LOCALITE POITIERS NAMUR GENEVE POITIERS LILLE NAMUR TOULOUSE NAMUR POITIERS TOULOUSE TOULOUSE TOULOUSE NAMUR PARIS TOULOUSE BRUXELLES DATECOM 2003-12-21 2003-12-22 2003-12-23 2003-12-23 2004-01-02 2004-01-02 2004-01-03 C_PRODUIT NPRO LIBELLE CS262 CHEV. SAPIN 200x6x2 CS264 CHEV. SAPIN 200x6x4 CS464 CHEV. SAPIN 400x6x4 PA45 POINTE ACIER 45 PA60 POINTE ACIER 60 PH222 PL. HETRE 200x20x2 PS222 PL. SAPIN 200x20x2 Université Paris-Est Marne-la-Vallée Informatique / F. Petit PRIX 75 120 220 105 95 230 185 QSTOCK 45 2690 450 580 134 782 1220 Février 2008 CAT C1 C1 B2 C1 B1 C1 B1 B2 B2 B1 B2 C1 B1 C2 COMPTE 1250.00 -2300.00 0.00 0.00 720.00 -4580.00 -8700.00 -3200.00 350.00 -1700.00 0.00 0.00 0.00 0.00 -2250.00 0.00 C_DETAIL NCOM NPRO 30178 CS464 30179 PA60 30179 CS262 30182 PA60 30184 CS464 30184 PA45 30185 PA60 30185 PS222 30185 CS464 30186 CS464 30188 PA60 30188 PH222 30188 CS464 30188 PA45 QCOM 25 20 60 30 120 20 15 600 260 3 70 92 180 22 BD1-TD-BDSQL3.doc 1/2 BDD1 II) Conception de base de données relationnelles (Dépendances fonctionnelles) Soit la base de données expo (num-expo, titre, prix, date_debut, date_fin, theme). Pour chaque cas ci-dessous : 1) Faites le graphe des dépendances fonctionnelles (DF). 2) Ecrivez le schéma relationnel de la base de données (clé primaire soulignée) 3) Entourez la clé étrangère. Cas à étudier : a) Chaque exposition a un seul responsable. Une personne peut être responsable de plusieurs expositions. On souhaite enregistrer pour les responsables : nom, prénom, téléphone et numéro de bureau. b) On souhaite enregistrer les libellés entiers correspondant au thème de l'exposition. c) On souhaite modifier le système de tarification. Chaque exposition peut avoir plusieurs tarifs. Le tarif d'une exposition dépend de la catégorie de clients (code et libellé, par exemple ETU pour "étudiant", SEN pour "senior", CHO pour "Chômeur", etc.). d) On souhaite pouvoir associer plusieurs thèmes à chaque exposition. e) On souhaite enrichir l'enregistrement des thèmes avec d'une part, le thème principal (unique), d'autre part, un ou plusieurs thèmes secondaires. III) Conception de base de données relationnelles (schéma Entité/association ou E/A) a) A partir du sujet Expo du chapitre II (enrichi de tous les cas précédents), faites le schéma Entité/Association (nommé aussi Modèle Conceptuel de Données ou Schéma Conceptuel de Données). b) Indiquez les cardinalités sur votre schéma E/A. c) A partir du schéma Entité/Association, écrivez le modèle relationnel en appliquant les règles de passage du modèle E/A au schéma relationnel. d) Vérifiez que vous obtenez bien le même schéma relationnel qu'en passant par la méthode des dépendances fonctionnelles (DF). Université Paris-Est Marne-la-Vallée Informatique / F. Petit Février 2008 BD1-TD-BDSQL3.doc 2/1