Vous êtes sur la page 1sur 94

UNIVERSITE DU LITTORAL

Matrise AES

Informatique de Gestion Daniel DE WOLF

Dunkerque, Octobre 2003

Table des mati` res e


I La pratique dun tableur 1 Introduction aux tableurs 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 2 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 9 9

La notion de tableur . . . . . . . . . . . . . . . . . . . . . . . . 10 Mod` les et tableaux . . . . . . . . . . . . . . . . . . . . . . . . 11 e Composition dune feuille de calcul . . . . . . . . . . . . . . . . 12 Le tableur EXCEL . . . . . . . . . . . . . . . . . . . . . . . . . 14 Modications dun mod` le de calcul . . . . . . . . . . . . . . . . 16 e Les r f rences circulaires . . . . . . . . . . . . . . . . . . . . . 19 ee Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 23

Le solveur dEXCEL. 2.1 2.2 2.3

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 La valeur cible . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 Le solveur dEXCEL . . . . . . . . . . . . . . . . . . . . . . . . 24 2.3.1 2.3.2 R solution graphique du probl` me e e . . . . . . . . . . . . 26 R solution avec le solveur dExcel . . . . . . . . . . . . 28 e Le rapport des r ponses . . . . . . . . . . . . . . . . . . 31 e Le rapport de sensibilit . . . . . . . . . . . . . . . . . . 32 e

2.4

Les rapports du solveur . . . . . . . . . . . . . . . . . . . . . . 31 2.4.1 2.4.2

2.5 3

Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 37

Etude de cas : Optimisation du plan directeur de production

4 II Introduction aux bases de donn es e 4 Concepts des bases de donn es e 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 5

Table des mati`res e 39 41

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 Notions de table, ligne et colonne . . . . . . . . . . . . . . . . . 42 R les dune colonne . . . . . . . . . . . . . . . . . . . . . . . . 42 o Structure dune base de donn es . . . . . . . . . . . . . . . . . . 46 e Exemple de base de donn es relationnelle . . . . . . . . . . . . . 48 e Modications et contraintes dint grit . . . . . . . . . . . . . . 49 e e Les syst` mes de gestion de donn es . . . . . . . . . . . . . . . . 54 e e Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 57

Le langage SQL 5.1 5.2

Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 D nition dune base de donn es . . . . . . . . . . . . . . . . . 59 e e 5.2.1 5.2.2 5.2.3 Cr ation dune table . . . . . . . . . . . . . . . . . . . . 59 e Suppression dune table . . . . . . . . . . . . . . . . . . 61 Ajout et retrait dune colonne . . . . . . . . . . . . . . . 62 Principes de base . . . . . . . . . . . . . . . . . . . . . 62 Requ tes sur une seule table . . . . . . . . . . . . . . . . 62 e Conditions el mentaires . . . . . . . . . . . . . . . . . . 64 e Donn es extraites et donn es d riv es . . . . . . . . . . . 65 e e e e Les fonctions agr gatives . . . . . . . . . . . . . . . . . 66 e

5.3

Consultation et extraction de donn es . . . . . . . . . . . . . . . 62 e 5.3.1 5.3.2

5.4

Conditions de s lection plus complexes . . . . . . . . . . . . . . 64 e 5.4.1 5.4.2 5.4.3

5.5 5.6 5.7 5.8 5.9

Les sous-requ tes . . . . . . . . . . . . . . . . . . . . . . . . . 67 e Les quanticateurs ensemblistes . . . . . . . . . . . . . . . . . . 69 Extraction de donn es de plusieurs tables . . . . . . . . . . . . . 70 e Requ tes sur des donn es cycliques . . . . . . . . . . . . . . . . 73 e e Sous-requ te ou jointure ? . . . . . . . . . . . . . . . . . . . . . 75 e

5.10 Extraction de donn es group es . . . . . . . . . . . . . . . . . . 77 e e

Table des mati`res e

5.11 Comment interpr ter une requ te ? . . . . . . . . . . . . . . . . . 80 e e 5.12 Une introduction a Microsoft Access pour Windows . . . . . . . . 81 ` 5.12.1 D marrage de Microsoft Access . . . . . . . . . . . . . . 81 e 5.12.2 Cr ation dune table . . . . . . . . . . . . . . . . . . . . 82 e 5.12.3 Comment cr er une requ te ? . . . . . . . . . . . . . . . 83 e e 5.12.4 Introduction de la notion de cl primaire e . . . . . . . . . 85 5.12.5 Notion de contrainte r f rentielle . . . . . . . . . . . . . 85 ee 5.12.6 Requ tes sur plusieurs tables . . . . . . . . . . . . . . . 85 e 5.13 Exercices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 6 Etude de cas 2 : voyages a riens e 91

Partie I La pratique dun tableur

Chapitre 1 Introduction aux tableurs


1.1 Introduction

Le but de ce cours dinformatique de gestion est de donner une introduction a ` lutilisation de loutil informatique pour r soudre des probl` mes de gestion, pare e ticuli` rement dans le domaine des transports. On poursuivra un double objectif : e il sagit, dune part, de pouvoir mod liser des probl` mes de gestion et, dautre e e part, une fois la mod lisation faite, de pouvoir mettre en uvre a laide dun e ` logiciel appropri les mod` les ainsi formul s. e e e Comme ouvrage de r f rence, on utilisera louvrage en langue fran aise de ee c J-L. Hainaut [4]. Pour ce qui est de la mod lisation, on fera r f rence au livre e ee en langue anglaise de Williams [14]. Bien s r, pour la partie mise en uvre a u ` laide dun logiciel adapt on fera r f rence aux manuels dutilisation des logiciels e ee utilis s dans ce cours : Microsoft Excel [2] et Microsoft Access. e Le cours est divis en deux parties principales. La premi` re partie est e e consacr e a la pratique dun tableur. La seconde partie est une introduction e ` a lutilisation des bases de donn es relationnelles. Chaque partie du cours sera ` e prolong e par une etude de cas. e Le plan du cours est le suivant. Partie I. La pratique dun tableur. 1. La pratique dun tableur (Microsoft Excel). Dans ce chapitre, nous introduirons les principales fonctionnalit s dun tae bleur. Nous verrons la notion de mod` le de calcul ainsi que son impl mene e tation au moyen de feuilles de calcul Excel. 2. Utilisation dun solveur (solveur dExcel). Dans ce chapitre, nous introduirons, dune part, la notion de valeur cible qui permet de calculer la valeur dun param` tre an de donner une valeur e 9

10

Chapitre 1. Introduction aux tableurs pr d nie a une formule de calcul d pendant du param` tre. Nous verrons, e e ` e e dautre part, lutilisation du solveur qui permet de faire de loptimisation (maximisation dune fonction sous contraintes). 3. Etude de cas : optimisation dun plan directeur de production.

Partie II. Bases de donn es relationnelles. e 1. Conception dune base de donn es. e Dans ce chapitre, nous verrons comment d nir le sch ma conceptuel dune e e base de donn es relationnelle. e 2. Exploitation dune base de donn es. e Dans ce chapitre, nous verrons comment exploiter une base de donn es e relationnelle gr ce a lutilisation du langage SQL. a ` 3. Etude de cas : les voyages a riens. e

1.2

La notion de tableur

On peut donner la d nition suivante pour un tableur. e ` D nition 1.1 Un tableur est un logiciel permettant de calculer des r sultats a e e partir de formules donn es avec une implantation directe des donn es, des formules e e ` e et des r sultats dans une grille de cellules a l cran. e Une notion tr` s importante dans les tableurs est celle de feuille de calcul. Il e sagit de la simulation dune feuille quadrill e rep rant a la fois les donn es et les e e ` e formules de calcul dans les cellules du quadrillage. Cest dailleurs la premi` re e op ration a effectuer lorsquon lance la plupart des tableurs : cr er une nouvelle e ` e feuille de calcul vierge ou ouvrir une feuille de calcul d j` cr ee. e a e Une particularit tr` s importante des tableurs est quil sagit de logiciels a e e ` ex cution imm diate : le logiciel evalue automatiquement toute formule rang e e e e dans une case et y place le r sultat. e Comme exemples de tableurs classiques, on peut citer Lotus 1-2-3 (disponible sur PC compatible), Microsoft EXCEL (disponible PC compatible et Macintosh) ou encore Microsoft WORKS (disponible sur PC compatible et Macintosh). Parmi les nombreux avantages de lutilisation de tableurs, le plus important est certainement lint gration sous forme naturelle dun mod` le sans devoir recourir e e aux etapes classiques que sont :

Section 1.3. Mod`les et tableaux e choix dune structure de donn es; e choix dun algorithme; programmation de celui-ci.

11

Une autre notion tr` s importante est celle de mod` le de calcul. Il sagit de la e e d nition du probl` me : e e Quelles informations cherche-t-on a obtenir ? ` De quelles donn es dispose-t-on ? e Comment calculer ces informations a partir des donn es disponibles ? ` e Nous reviendrons plus en d tails sur la notion de mod` le de calcul a la section e e ` suivante en lillustrant sur un exemple.

1.3

Mod` les et tableaux e

La notion fondamentale des mod` les de calcul est celle de tableau. e D nition 1.2 Un tableau est simplement une feuille sur laquelle les informations e sont reprises sous la forme de lignes et colonnes. On peut illustrer la notion de tableau par lexemple du bilan nancier illustr au e tableau 1.1. On observera, en particulier, dans ce tableau les r sultats de calcul e 2002 Entr es e Sorties Soldes 123 112 11 2003 142 130 12 2004 Totaux 168 174 -6 433 416 17

Tableau 1.1: Un exemple de tableau nancier. suivant : Le solde annuel qui est la diff rence entre les entr es et les sorties de lann e; e e e Le total qui est, pour chaque ligne, la somme sur les ann es. e

12

Chapitre 1. Introduction aux tableurs

Limplantation informatique de la notion de tableau se fait au moyen dune feuille de calcul qui est donc simplement un quadrillage en lignes, indic es par e des chiffres, et en colonnes, indic es par des lettres. Ceci est illustr au tableau e e 1.2. A 1 2 3 4 5 6 7 Tableau 1.2: Implantation informatique Une cellule dun tableau (ou de la feuille de calcul qui est sa repr sentation ine formatique) est a lintersection dune ligne et dune colonne. On parle de dadresse ` dune cellule : ainsi la cellule B5 (voir tableau 1.2) est a lintersection de la co` lonne B et de la ligne 5. On parle aussi de plage pour d signer un ensemble de e cellules : ainsi la plage D3:F4 est constitu e de lensemble des cellules inscrites e dans le rectangle de diagonale principale D3 a F4 (voir tableau 1.2) . ` X X X X X X X B C D E F

1.4

Composition dune feuille de calcul

Voyons maintenant la composition dune feuille de calcul sur lexemple illustr au e tableau 1.1. Son implantation informatique est donn e au tableau 1.3. e Les el ments dune feuille de calcul sont au nombre de trois : e Il y a tout dabord les libell s dont le r le est dam liorer la lisibilit du e o e e mod` le de calcul. Par exemple, le titre qui est attribu a chaque colonne et e e` chaque ligne (cfr limplantation du bilan nancier au tableau 1.3). Le deuxi` me el ment est constitu des donn es du probl` me : il sagit des e e e e e informations qui serviront aux calculs. Dans lexemple, il sagit des entr es e et sorties de chaque ann e. e

Section 1.4. Composition dune feuille de calcul

13

A 1 2 ENTREES 3 4 5 6 SOLDES SORTIES

2002 2003 2004 TOTAUX 123 112 142 130 168 174 433 416

11

12

-6

17

Tableau 1.3: Implantation du tableau nancier. Enn, le troisi` me el ment constitutif dune feuille de calcul sont les r sule e e tats de calcul : il sagit evidemment des informations calcul es a partir des e ` donn es. Dans lexemple, il sagit du solde de chaque ann e et des totaux. e e Insistons ici sur le fait que les r sultats ne sont pas introduits par le clavier mais e on introduit la formule de calcul qui permet darriver au r sultat voulu dans la case e correspondante. Lavantage est que si les entr es sont modi es, automatiquement e e le solde est recalcul ! e Une formule de calcul commence toujours par le signe d galit et est suivie e e de la formule qui fait usage des r f rences des cellules de donn es. Par exemple, ee e le solde de 2002 (cellule B5) r sulte de la formule : e solde 2002 = entr es 2002 - sorties 2002 e Il est introduit sous la forme dune formule entre r f rences des cases : ee = B2 -B3, formule qui est mise dans la cellule B5. Comme autre exemple, prenons le total des entr es qui doit etre mis en cellule e E2 : = B2 + C2 + D2 On peut egalement rentrer cette formule en utilisant la fonction pr d nie e e =SOMME(B2:D2) Remarquer que la formule pour le total des sorties qui doit etre mis dans la cellule juste en dessous (E3) est similaire : = B3 + C3 + D3

14

Chapitre 1. Introduction aux tableurs

Elle peut etre g n r e a partir de la pr c dente en recopiant tout simplement celle e ee ` e e ci vers le bas. De m me, la formule de calcul du solde pour les ann es 2003 et e e 2004 est g n r e a partir de celle de 2002 par un recopier vers la droite. On obtient e ee ` le tableau dont le contenu est illustr au tableau 1.4. e A 1 2 ENTREES 3 4 5 6 Tableau 1.4: Contenu r el du tableau. e SOLDES =B2-B3 =C2-C3 =D2-D3 =E2-E3 SORTIES B 2002 123 112 C 2003 142 130 D 2004 168 174 E TOTAUX =B2+C2+D2 =B3+C3+D3

1.5

Le tableur EXCEL

Lors du lancement du logiciel, une feuille de calcul vierge est produite et le curseur se trouve dans la cellule courante. Pour introduire des donn es ou une formule, il suft de s lectionner la cellule e e avec le pointeur et de taper le contenu (donn es ou formule) via le clavier, enn, e de taper ENTER ou s lectionner une autre cellule pour terminer la saisie du e contenu de la case s lectionn e. e e Les formules de calcul en Excel commencent toujours par =. Elles utilisent les adresses des cellules ainsi que les op rateurs arithm tiques (+,-,*,/). Elles e e peuvent utiliser des parenth` ses ainsi que des fonctions math matiques. e e Voici quelques exemples de formules en Excel : =B2+C2 =2*C2+1/(1-D4) =log(A2-D4) =PI*SIN(D6) La plupart des fonctions math matiques sont d j` programm es en Excel. e ea e Ainsi on peut utiliser les fonctions suivantes :

Section 1.5. Le tableur EXCEL ABS(nombre) ARRONDI(nombre;no_chiffre) ENT(nombre) RACINE(nombre) SIGNE(nombre) TRONQUE(nombre;no_chiffre) : : : : : : valeur absolue arrondi a no_chiffre dcimales ` e partie enti`re du nombre e racine carre du nombre e signe du nombre tronque a no_chirre dcimales ` e

15

Un certain nombre de fonctions agr gatives sont egalement disponibles. Une e fonction agr gative est une fonction dont largument est constitu dune plage de e e cellules et dont le r sultat est une valeur el mentaire. Les fonctions suivantes sont e e disponibles : PRODUIT(E1:E17) : produit des arguments SOMME(A2;D1:D17) : somme des arguments MAX(D1;E2;F3) : maximum parmi les arguments MOYENNE(B3:C10) : moyenne des arguments ECARTYPE(E1:E17) : ecart type des arguments SOMMEPROD(A1:D3;E1:H3) : somme des produits des e e lments correspondant des deux matrices Enn, un nombre limit de fonctions de consultation de tables sont d nies e e en Excel. Illustrons ceci sur lexemple suivant : un achat de 0 a 499 donne une ` r duction de 0 %; un achat de 500 a 2009 donne une r duction de 5 %; etc. . . Ces e ` e donn es peuvent etre rentr es sous la formule du tableau de r duction illustr en e e e e 1.5. A 1 ACHAT 2 3 4 5 6 7 0 500 2 000 3 000 5 000 10 000 B REDUCTION 0 5 10 12 14 15

Tableau 1.5: Tableau de r duction e La fonction RECHERCHEV(valeur;table;no_index_col) recherche dans la premi` re colonne de la table table la plus grande valeur qui soit inf rieure ou e e

16

Chapitre 1. Introduction aux tableurs

egale a valeur et renvoie la valeur situ e, dans la m me ligne, dans la colonne ` e e no_index_col. Ainsi, lexpression RECHERCHEV(2350;A2:B7;2) renvoie la valeur de la r e duction correspondant dans la table A2:B7 a la plus grande valeur inf rieure ou ` e egale a 2350. On peut tester les exemples suivant : ` RECHERCHEV(400;A2:B7;2) RECHERCHEV(2350;A2:B7;2) RECHERCHEV(3500;A2:B7;2) RECHERCHEV(7500;A2:B7;2) RECHERCHEV(11000;A2:B7;2) donne donne donne donne donne 0 10 12 14 15

Il est a noter que les valeurs dans la premi` re colonne de la matrice doivent ` e etre class es par ordre croissant. Ces valeurs peuvent etre purement num riques e e ou alphanum riques. e Excel permet egalement lutilisation dexpressions conditionnelles. Ainsi, la fonction SI(test;valeur_si_oui;valeur_si_non) evalue la condition du test et renvoie valeur_si_oui si le test est v ri , e e valeur_si_non dans le cas contraire. Dans lexemple du tableau de r ductions 1.5, la formule e SI(A2=B2;1;0) SI(A3=B3;1;0) renvoie renvoie 1 0

La formule renvoie donc la valeur 1 sil y a egalit entre les valeurs des deux cases, e et 0 dans le cas contraire. On peut utiliser dans un test les op rateurs logiques suivant (qui renvoient e VRAI ou FAUX) : ET(expr_log1;expr_log2) FAUX NON(expr_log) OU(expr_log1;expr_log2)

1.6

Modications dun mod` le de calcul e

Une premi` re cat gorie tr` s importants de commandes qui permettent de modier e e e ais ment une feuille de calcul sont les commandes de copie. e

Section 1.6. Modications dun mod`le de calcul e

17

La commande Copier permet de copier une cellule ou une plage vers un autre endroit de m me dimension. Leffet est de copier identiquement le contenu sil e sagit dune donn e ou dun commentaire, et de copier la formule en adresses e relatives sil sagit dune formule de calcul. Ainsi la formule mise en cellule E2 = B2 + C2 + D2 sinterpr` te en adresse relative : dans la m me ligne, additionner les e e trois colonnes pr c dentes. Si cette formule est recopi e en cellule E3, apparatra e e e alors la formule suivante : = B3 + C3 + D3. Les commandes Recopier vers le bas et Recopier vers la droite sont utilis es e lorsque lon veut recopier le contenu dune cellule dans plusieurs autres cellules situ es juste en dessous ou a droite. La plage s lectionn e doit contenir la cellule e ` e e de d part et la plage de destination. Dans lexemple ci-dessus, on peut recopier la e formule en cellule E2 vers le bas en cellule E3. La commande Copie sp ciale permet de copier, non pas des formules, mais le e r sultat de leur evaluation. Ceci est particuli` rement utile si on veut transmettre, e e par exemple, les r sultats dun calcul sans devoir egalement transmettre toutes les e donn es a partir desquelles les calculs sont effectu s. Dans ce cas, il suft de coller e ` e uniquement les valeurs. Il importe egalement de bien distinguer les concepts dadresses relatives et dadresses absolues. Illustrons ce concept sur lexemple illustr au tableau 1.6 e donnant l volution de diff rents montants plac s a taux xe. La formule en cellule e e e ` A 1 2 3 4 5 6 Montant 1000 2000 5000 Taux : B 0,0525 C D

1 an : =B3*(1+B1) =C3*(1+B1) =D3*(1+B1) 2 ans : =B4*(1+B1) =C4*(1+B1) =D4*(1+B1) 3 ans : =B5*(1+B1) =C5*(1+B1) =D5*(1+B1) Tableau 1.6: Taux xe

B4 est exprim e en adresse relative : dans la formule qui assigne a la cellule B4 e ` la valeur =B3*(1+B1), ladresse B3 est a comprendre la cellule situ e, dans la ` e m me colonne, une place plus haut. e On peut alors simplement taper la premi` re formule (celle en cellule B4) et e ensuite copier vers la droite dans les cellules C4 et D4 cette formule. On peut alors copier vers les bas chacune de ces formules. On obtient les formules pr sent es e e

18 au tableau 1.7. A 1 2 3 Montant 4 5 6 1000 Taux : B 0,0525

Chapitre 1. Introduction aux tableurs

2000

5000

1 an : =B3*(1+B1) =C3*(1+C1) =D3*(1+D1) 2 ans : =B4*(1+B2) =C4*(1+C2) =D4*(1+D2) 3 ans : =B5*(1+B3) =C5*(1+C3) =D5*(1+D3) Tableau 1.7: Adresses relatives et adresses absolues.

On voit tout de suit le probl` me suscit par cette manuvre : ladresse xe B1 e e est devenue B2,B3,C1,C2,. . . Aussi doit-on imposer pour B1 une adresse absolue. Pour forcer une adresse absolue, on la pr c` de de $. Ainsi e e $B$1 ne sera jamais ajust , ni au point de vue colonne ($ devant le B), ni au point de vue e ligne ($ devant le 1). On tape donc la formule : =B3*(1+$B$1) que lon peut recopier vers la droite et vers le bas. Bien dautres modications dune feuille de calcul sont possibles en Excel. Citons les plus importantes : sp cier le format dafchage des nombres, des dates; e modier la largeur dune colonne; ins rer une nouvelle colonne (ou ligne) en d pla ant les colonnes suivantes; e e c supprimer une colonne (ou une ligne); effacer le contenu dune cellule.

Section 1.7. Les rfrences circulaires ee

19

1.7

Les r f rences circulaires ee

Une r f rence circulaire est la situation dune formule qui d pend directement ee e ou indirectement de la cellule o` elle est rang e. Illustrons les deux cas de gure : u e Exemple 1 : une formule qui d pend directement de sa cellule : e dans C4 : =(C1-C4)/2 Exemple 2 : une formule qui d pend indirectement de sa cellule : e dans C2 : =2*C3 dans C3 : =C4+C5 dans C4 : =C2/2 La cons quence dune r f rence circulaire est evidemment de faire une e ee boucle sans n. Le logiciel Excel signale lanomalie. Mais on peut etre int ress , e e dans certains mod` les r cursifs, a lutilisation volontaire des r f rences circue e ` ee laires. Excel permet ceci. Dans le menu Outils, on s lectionne le sous menu e mode de calcul et on active loption it rations en pr cisant : e e N , le nombre maximum dit rations; e , la diff rence maximum entre deux valeurs successives en dessous de lae quelle on arr te les calculs. e Ainsi le mod` le fait un certain nombres dit rations et la boucle sans n devient e e une boucle it rative. Au d part la valeur initiale est mise a z ro. e e ` e Un exemple dutilisation volontaire de ces r f rences circulaires est la m thode ee e de GAUSS-SEIDEL pour r soudre un syst` me d quations lin aires du type : e e e e a11 x1 + a12 x2 + a13 x3 = b1 a21 x1 + a22 x2 + a23 x3 = b2 a31 x1 + a32 x2 + a33 x3 = b3 Dans cette m thode, on tire xi de la l quation num ro i, ce qui donne : e e e x1 = (b1 a12 x2 a13 x3 )/a11 x2 = (b2 a21 x1 a23 x3 )/a22 x3 = (b3 a31 x1 a32 x2 )/a33 qui peut etre r solu en utilisant les r f rences circulaires. e ee

20

Chapitre 1. Introduction aux tableurs

1.8

Exercices

1.1. Calcul d volution de capital. A partir des trois param` tres taux dint r t, e e e e pr compte mobilier (en %), et capital initial (en F), donner le tableau, e pour une p riode de 10 ans, de l volution annuelle du capital, des int r ts e e ee bruts de lann e ecoul e ainsi que des int r ts nets. Prendre a titre dexemple e e ee ` un capital de 1 million de francs avec un taux dint r t de 6 % lan et un ee pr compte mobilier de 15 %. Le pr compte mobilier est limp t retenu a la e e o ` source sur les int r ts vers s annuellement. On suppose que les int r ts nets ee e ee de pr compte immobilier sont imm diatement r investis en capital. e e e (a) Formuler en un mod` le de calcul. e (b) Mettez ce mod` le en uvre sur une feuille de calcul en Excel. e (c) Donnez la solution obtenue par Excel. 1.2. Moyenne de notes. Les du contr le continu pour les etudiants sont donn es o e au tableau 1.8. NOM Alain note 1 note 2 note 3 note 4 (sur 4) (sur 4) (sur 4) (sur 4) 0 0 3,0 1,5 3,5 2,5 0 2,0 2,0 3,0 3,5 0 note 5 (sur 4) 0

Bernard abs. just. C line e Damien J r me eo 2,5 4,0 3,5

1,5 abs. just. 3,5 4,0

2,0 abs. just. 3,5 3,5

Tableau 1.8: Notes au contr le continu. o

(a) Ecrire la formule qui calcule la moyenne sur 20 points des 5 notes en arrondissant au demi-point. (b) Mettez ce mod` le en uvre sur une feuille de calcul en Excel. e (c) Donnez le r sultat pour les cinq etudiants repris au tableau ci-dessus. e 1.3. M thode de Gauss-Seidel. La m thode de Gauss-Seidel est une m thode e e e it rative de r solution de syst` mes de n equations a n inconnues a dominance e e e ` `

Section 1.8. Exercices diagonale tel que le syst` me suivant : e 30x1 + 4x2 + 7x3 = 12 9x3 = 18 4

21

4x1 + 70x2 + 5x1 +

8x2 + 100x3 =

Elle consiste a tirer x1 de la premi` re equation, x2 de la seconde, etc. . . ` e Partant dune solution de d part nulle, on it` re jusqu` convergence. e e a (a) Formulez en un mod` le de calcul. e (b) Utilisez les r f rences circulaires dEXCEL pour mettre en uvre la ee m thode. e (c) Donnez la solution du syst` me obtenue par EXCEL. e 1.4. Calcul de la paie. Le bar` me de salaire dun employ est fonction de son e e niveau de qualication. Ce montant est alors index pour obtenir le salaire e brut. Sur ce salaire brut est retenue une cotisation de s curit sociale qui e e est un pourcentage du salaire brut. En d duisant cette cotisation du brut, e on obtient la base imposable sur laquelle une retenue dimp t a la source o ` est pratiqu e (apr` s abattement forfaitaire de 10 et de 20 %). Cette retenue e e est progressive (avec des taux marginaux augmentant par tranches). On demande de calculer, pour chaque employ , le montant de son brut, de sa e cotisation sociale, de son imposable, de sa retenue dimp t a la source ainsi o ` que son net a payer, cest-` -dire de calculer tous les el ments de sa che de ` a e salaire. Prendre a titre dexemple, une retenue de s curit sociale de 13 %, ` e e une retenue a la source de 0 % jusqu` 5.000 F, de 15 % de 5.000 a 15.000 ` a ` F, de 25 % au del` . Lindex de ce mois est 1,14. a NOM Brasseur Dupont Durant Fontaine niveau A A B C

Tableau 1.9: Cat gories des membres du personnel e Les trois cat gories sont A, B, et C. Les montants de base de la r mun ration e e e sont donn s ci-apr` s. e e

22

Chapitre 1. Introduction aux tableurs

Cat gorie salaire de base e A B C 9.000 F 14.000 F 20.000 F

Tableau 1.10: Salaires de base (hors index) (a) Formuler en un mod` le de calcul. e (b) Mettez ce mod` le en uvre sur une feuille de calcul en Excel. e (c) Donnez la solution obtenue par Excel.

Chapitre 2 Le solveur dEXCEL.


2.1 Introduction

Le solveur dEXCEL est un r solveur d quation ainsi quun optimiseur exploitant e e les techniques de la programmation lin aire, de la programmation en nombres e entiers et de la programmation non lin aire. e Expliquons quelques points de la terminologie utilis e dans le solveur Excel. e Dans un mod` le de calcul, on rep` re : e e une cellule r sultat R, dite cellule cible; e des cellules de donn es Di, dites cellules variables. e Les probl` mes solubles par Excel sont les suivants : e Trouver les valeurs des donn es Di qui conduisent a donner une valeur x e e ` e a la cible R = v, o` v est une valeur constante x e. ` u e D terminer les valeurs des donn es Di qui rendent minimum (maximum) la e e valeur de la cible R. D terminer les valeurs des donn es Di qui rendent minimum (maximum) la e e valeur de R, de telle mani` re que des contraintes sp ciques soient v ri es. e e e e Trouver des valeurs des donn es Di qui satisfont les contraintes sp ci es. e e e Lorsque le solveur a termin , les cellules R et Di contiennent les valeurs qui e r solvent le probl` me pos . e e e Pour faire le lien avec la programmation math matique, la cellule R contient la e formule de calcul de la fonction objectif tandis que les cellules Di correspondent aux variables du probl` me de programmation math matique. e e 23

24

Chapitre 2. Le solveur dEXCEL.

2.2

La valeur cible

Le probl` me de la valeur cible peut s nonc ainsi : si la cellule C2 (le r sultat) e e e e est calcul e a partir de la cellule C1 qui contient une donn e, quelle devrait etre la e ` e valeur de la donn e C1 pour obtenir une valeur donn e du r sultat C2 ? e e e Illustrons ceci sur lexemple du bilan nancier rappel au tableau 2.1. e B C D E 1992 1993 1994 TOTAUX ENTREES 123 142 168 433 SORTIES 112 130 174 416 SOLDES 11 12 -6 17 A

1 2 3 4 5

Tableau 2.1: Bilan nancier La question qui se pose ici est la suivante : quelle est la valeur des sorties de 1994 (D3) pour que le total des soldes (E5) soit egal a 20 ? ` Le solveur dExcel permet de r pondre a cette question. La mise en uvre au e ` moyen dExcel seffectue par les op rations suivantes : e 1. S lectionner la cellule contenant la formule pour laquelle on souhaite un e r sultat donn (ici E5). e e 2. Choisir dans le menu Outils, le sous-menu Valeur cible. 3. Dans la zone valeur a atteindre, mettre la valeur cible (ici 20). ` 4. Dans la zone cellule a modier, mettre la r f rence de la cellule dont ` ee EXCEL doit modier la valeur (ici D3) . Et le solveur dExcel mettra automatiquement la bonne valeur des sorties de 1994 (soit 171) dans la case D3.

2.3

Le solveur dEXCEL

Nous allons nous int resser ici au module doptimisation sous contraintes dExcel. e Illustrons ceci sur un exemple tir de Hillier et Lieberman [5]. Le probl` me e e s nonce ainsi : une entreprise de fabrication de chassis envisage la mise en proe duction de deux nouveaux mod` les, le chassis en aluminium et le chassis en bois, e

Section 2.3. Le solveur dEXCEL

25

au moyen des capacit s r siduelles de ses trois ateliers : a savoir latelier 1, o` e e ` u sont fabriqu s les cadres en aluminium, latelier 2, o` sont fabriqu s les cadres en e u e bois et latelier 3 o` le montage du verre sur le chassis est r alis pour les deux u e e types de chassis. Le nombre dheures n cessaires par produit et le nombre dheures encore dispoe nibles par semaine sont donn s au tableau 2.2. e Atelier 1 2 3 Chassis Chassis aluminium bois 1h 0h 0h 2h 3h 2h Capacit e disponible 4 h/semaine 12 h/semaine 18 h/semaine

Tableau 2.2: Temps n cessaires et capacit s r siduelles e e e Les marges unitaires sont de 3 $ pour le chassis en aluminium et de 5 $ pour le chassis en bois On se pose la question suivante : combien produire de chassis de chaque type par semaine pour maximiser le prot net ? La formulation de tout probl` me doptimisation est une op ration en trois e e etapes : 1. choix des variables de d cision, e 2. expression de lobjectif en fonction de ces variables, 3. expression des contraintes en fonction de ces variables. ` D nition 2.1 On appelle variable du probl` me toute quantit utile a la r solution e e e e du probl` me dont le mod` le d termine la valeur. e e e Le choix est ici particuli` rement simple : on pose x1 , le nombre de chassis en e aluminium fabriqu s par semaine et x2 , le nombre de chassis en bois fabriqu s par e e semaine. D nition 2.2 On appelle fonction objectif le crit` re de choix entre les solutions e e possibles. Il sagit donc de la fonction que lon veut minimiser ou maximiser. Dans notre exemple, on veut maximiser le prot de lentreprise donc lobjectif sexprime comme : max z = 3x1 + 5x2

26

Chapitre 2. Le solveur dEXCEL.

D nition 2.3 On appelle contrainte du probl` me toute relation limitant le choix e e des valeurs possibles des variables. Ces relations peuvent etre de simples bornes sur les variables. Par exemple, les quantit produites ne peuvent etre n gatives. Math matiquement : e e e x1 , x2 0. Elles peuvent etre plus complexes comme les contrainte de capacit de produc e tion. Le temps pour assembler 1 chassis de type 1 dans latelier 1 est de 1 heure o` il reste 4 heures disponibles. Do` la contrainte de capacit de latelier 1 : u u e x1 4 Semblablement, on peut construire les contraintes de capacit s des deux autres e ateliers : 2x2 12 3x1 + 2x2 18 Il est alors tr` s utile de reprendre sous une forme condens e la formulation e e compl` te du probl` me. Ici, on obtient la formulation suivante : e e max z = 3 x1 + 5 x2 x1

s.c.q.

3x1 x1

2x2 + 2x2 x2

4 12 18 0 0

(2.1)

2.3.1

R solution graphique du probl` me e e

Pour un probl` me lin aire a deux variables, on peut d terminer sa solution optimale e e ` e graphiquement (voir cours de Recherche Op rationnelle). Il sagit egalement dune e proc dure en trois etapes : e 1. Repr sentation de la r gion r alisable. e e e 2. Repr sentation de lobjectif. e 3. D termination du point optimum. e

Section 2.3. Le solveur dEXCEL

27

La premi` re etape de la r solution consiste a repr senter graphiquement la e e ` e r gion r alisable. e e D nition 2.4 On appelle r gion r alisable, lensemble des valeurs de variables e e e de d cision qui satisfont toutes les contraintes. e Dans le cas de lexemple, cest lensemble des points (x1 , x2 ) satisfaisant les in galit s de (2.1). Graphiquement une in galit telle que 3x1 + 2x2 18 correse e e e pond a un demi-plan limit par la droite obtenue en prenant lin quation a l galit ` e e ` e e (3x1 + 2x2 = 18). Lorsque lon fait lintersection des cinq demi-plans correspondant aux cinq in galit s de (2.1), on obtient le polygone hachur a la gure e e e` 2.1. Pour pouvoir repr senter la fonction objectif, il faudrait une dimension de plus e car la variable z fait que lon se trouve dans R3 . On va donc xer quelques valeurs de z et on obtient ainsi quelques droites disovaleur de la fonction objectif : z = 3x1 + 5x2 = k. Ce qui correspond graphiquement a des droites parall` les. Les points dune de ces ` e droites sont donc le lieu de tous les points donnant la m me valeur du prot (do` e u le nom de droite disovaleur de la fonction objectif). Ceci est fait a la gure 2.1 ` o` lon a repr sent z = 10, 20 et 36. u e e
x2 10 8 6 4 2 0 2 6 z = 10 8
(2, 6)

(4 , 3) z = 36

x1

z = 20

Figure 2.1: Droites disoprot. Enn, et cest la troisi` me etape de la r solution, loptimum sera d termin e e e e graphiquement comme le plan de production situ sur la droite disoprot la plus e

28

Chapitre 2. Le solveur dEXCEL.

e elev e, cest-` -dire celle qui donne le prot le plus elev . On voit a la gure 2.1 a e ` quil sagit du point x = (2, 6).

2.3.2

R solution avec le solveur dExcel e

Nous allons maintenant r soudre le probl` me de chassis au moyen du solveur e e dExcel. La premi` re chose a faire est de rentrer les donn es num riques du e ` e e probl` me et les formules de calcul de la fonction objectif ainsi que du membre de e gauche des contraintes. Pour la clart du mod` le, il est indispensable de mettre e e egalement des commentaires. Comme le probl` me est lin aire, on peut rentrer, les e e coefcients num riques sous forme dune matrice. On remarquera au tableau 2.3 e que les coefcients dune m me equation ainsi que sa formule de calcul ont et e e A 1 2 3 4 5 6 7 8 B C x1 x2 3 1 0 3 1 0 5 0 2 2 0 1 D E b

Prot : Atelier 1 : Atelier 2 : Atelier 3 : x1 positif : x2 positif :

=B3*$B$2+C3*$C$2 =B4*$B$2+C4*$C$2 4 =B5*$B$2+C5*$C$2 12 =B6*$B$2+C6*$C$2 18 =B7*$B$2+C7*$C$2 0 =B8*$B$2+C8*$C$2 0

Tableau 2.3: Exemple de probl` me lin aire e e rang s dans une m me ligne qui contient comme commentaire le nom de l quation e e e (Atelier 1, Atelier 2, . . . ). De m me, les coefcients se rapportant a une m me e ` e variable ont et rang en colonne sous le nom de la variable (x1 , x2 ). Remarquez e e ici, pour comprendre les formules, que lon a choisi de placer la valeur de x1 en cellule $B$2$ tandis que celle de x2 est plac e en cellule $C$2. e Il reste maintenant a indiquer a Excel, o` se trouvent les variables, la fonction ` ` u objectif, le membre de gauche, de droite et le sens des contraintes. Ceci peut etre mis en uvre en Excel de la mani` re suivante : e 1. Dans le menu Outils, choisir le sous-menu Solveur. 2. Dans la zone Cellule a d nir, mettre la r f rence de la cellule de calcul ` e ee de lobjectif (ici $D$3).

Section 2.3. Le solveur dEXCEL 3. Dans la zone Egale a, choisir Max ou Min (ici Max). `

29

4. Dans la zone Cellules variables, mettre les r f rences des cellules conteee nant les variables (ici $B$2:$C$2) . 5. Dans la zone Contraintes, choisir ajouter une contrainte et pour chaque contrainte : Dans la zone Cellule mettre la r f rence de la cellule contenant la ee formule de calcul du membre de gauche (par exemple, pour latelier 1 : $D$4). Dans la zone Relation mettre le sens de la contrainte (par exemple, pour latelier 1 : <=). Dans la zone Contrainte mettre la r f rence de la cellule contenant ee le membre de droite (par exemple, pour latelier 1 : $E$4). 6. Dans Option, choisir Mod` le suppos lin aire. e e e 7. Lancer la commande R soudre. e On obtient alors le mod` le illustr par la copie d cran de la gure 2.2 e e e

Figure 2.2: Param` tres du solveur e Plusieurs remarques sur les particularit s dExcel simposent ici : e 1. Pour modier le mod` le on peut utiliser : e la commande supprimer la contrainte; la commande modier la contrainte.

30

Chapitre 2. Le solveur dEXCEL. 2. Il est important de bien choisir le nom de la contrainte et le nom des variables pour une pr sentation claire du rapport (voir a la section suivante comment e ` Excel d termine le nom des variables et des contraintes). e 3. La solution est mise dans les cellules variables. 4. Les contraintes de positivit des variables doivent etre entr es explicitee e ment, ceci contrairement a la convention de beaucoup doptimiseurs qui ` consid` rent par d faut des variables non n gatives. Remarquez que lon e e e peut directement entrer la contrainte sous la forme suivante : $B$2:$C$2 >= 0 On peut, dans ce cas, supprimer les lignes 7 et 8 du tableau 2.3. 5. Seules les variables non calcul es (les variables ind pendantes du mod` le) e e e doivent etre rentr es dans la section variables. Ainsi, si lon avait calcul dans e e une cellule le nombre dheures pass es dans latelier 1, cette cellule contiene drait une variable (au sens math matique du terme) mais ne devrait pas etre e rentr e dans les cellules variables pour Excel, sans quoi Excel consid rerait e e quil sagit dune variable ind pendante et effacerait sa formule de calcul. e 6. Si le mod` le est lin aire (contraintes lin aires et fonction objectif lin aire), e e e e on a tout int r t a s lectionner loption Mod` le suppos lin aire, ce qui ee ` e e e e d clenchera lalgorithme du Simplexe plut t quun algorithme g n ral de e o e e programmation non lin aire. e 7. Remarquez enn que on peut rentrer dune seule commande tout un groupe de contraintes ayant le m me sens. Ainsi, dans lexemple, on aurait pu e rentrer les trois contraintes de capacit s par la commande suivante : e $D$4:$D$6 <= $E$4:$E$6

La solution du solveur est illustr e a la table 2.4. On retrouve bien les valeurs e ` optimales d termin es graphiquement, a savoir e e ` x = 2 1 x = 6 2 et la valeur optimale de lobjectif, a savoir : ` z = 36

Section 2.4. Les rapports du solveur A 1 2 3 4 5 6 7 8 Prot : Atelier 1 : Atelier 2 : Atelier 3 : x1 positif : x2 positif : B x1 2 3 1 0 3 1 0 C x2 6 5 0 2 2 0 1 36 2 12 18 2 6 4 12 18 0 0 D E b

31

Tableau 2.4: Solution du probl` me lin aire e e

2.4

Les rapports du solveur

Lorsque le solveur a termin , soit quil ait trouv la solution optimale, soit quil e e ne parvienne pas a en trouver (probl` me non r alisable ou non convergence de ` e e lalgorithme de r solution), la bote de dialogue illustr e a la gure 2.3 apparat. e e ` Elle laisse le choix entre garder dans les cellules variables la solution obtenue par

Figure 2.3: Rapports possibles du solveur le solveur soit r tablir la solution initiale (g n ralement z ro partout). Cette bote e e e e permet egalement de g n rer trois types de rapport : le rapport des r ponses, le e e e rapport de sensibilit et le rapport des limites. Ce dernier est sans utilit pour ce e e cours.

2.4.1

Le rapport des r ponses e

Le rapport des r ponses (voir gure 2.4) fournit : e la valeur originale et nale de la cellule cible (` Maximiser); a

32

Chapitre 2. Le solveur dEXCEL. la valeur originale et nale des cellules variables; les informations suivantes sur les contraintes : la cellule, le nom, la valeur nale du membre de gauche, la formule de calcul, son status (active ou non a la solution nale), ainsi que la marge (valeur de l cart entre les deux ` e membres de lin galit ). e e

Figure 2.4: Rapports des r ponses e Remarquez que pour d terminer le nom, Excel fait, dans chaque cas, la concae t nation du premier commentaire rencontr dans la m me ligne que la cellule et e e e du premier commentaire rencontr dans la m me colonne que la cellule. Ceci e e est particuli` rement utile si lon a des variables a deux indices comme dans un e ` probl` me de transport. En effet, les variables seront stock es dans un tableau o` les e e u lignes correspondront, par exemple, aux origines et les colonnes, aux destinations. Il sufra de mettre de i a gauche de la ligne et vers j en haut de la colonne pour ` que le nom de la variable a lintersection de la ligne et la colonne se voit attribuer ` le nom de i vers j par le rapport dExcel. On peut dailleurs tester la chose en mettant ici en A2, Production de chassis et en B1, en aluminium tandis quen C1, on met en bois.

2.4.2

Le rapport de sensibilit e

Le rapport de sensibilit (voir gure 2.5) fournit : e les informations sur les variables : la r f rence de la cellule, le nom de la ee variable d termin tel quexpliqu ci-dessus, la valeur nale de la variable, e e e le co t r duit, le coefcient dans la fonction objectif, laccroissement et la u e

Section 2.4. Les rapports du solveur

33

Figure 2.5: Rapport de sensibilit e diminution maximale de ce coefcient avant quune variable ne change de valeur. Nous rappelons ci-dessous la d nition du co t r duit vue au cours de ree u e cherche op rationnelle. e D nition 2.5 Le cout r duit dune variable hors base (cest-` -dire x e a e e a e ` z ro) mesure laccroissement de lobjectif par unit daccroissement de la e e variable. Pour un produit non fabriqu , il est n gatif indiquant ainsi une perte de prot e e par unit du produit non rentable qui serait fabriqu e. Cest exactement la e e valeur minimum de laquelle il faut r duire le co t de production du produit e u pour quil devienne rentable. Do` le nom de co t r duit. u u e les informations sur les contraintes : la r f rence de la cellule, le nom de la ee contrainte, la valeur nale du membre de gauche de la contrainte, le prix dual, la valeur du membre de droite, laugmentation et la diminution maximum de ce membre de droite telles que le prix dual reste le m me. e Nous rappelons ci-dessous la d nition du prix dual vue au cours de ree cherche op rationnelle. e D nition 2.6 Le prix dual, ou encore prix cach , mesure laccroissement e e de lobjectif par unit daccroissement du membre de droite de la contrainte. e Autrement dit, le prix dual donne ici le suppl ment de prot pour une unit e e de capacit en plus dans latelier. Cest donc le prix maximum que lon est e pr t a d bourser pour acqu rir une unit de plus de capacit . Do` le nom e ` e e e e u de prix dual.

34

Chapitre 2. Le solveur dEXCEL.

2.5

Exercices

2.1. Valorisation des d chets. Une soci t de tri de d chets et recyclage de e ee e papier peut se fournir en d chets aupr` s de deux villes. Son r le consiste a e e o ` s parer les listes dordinateur et les journaux. La r partition entre m nages e e e et soci t s est diff rente dune ville a lautre expliquant un pourcentage ee e ` diff rent de listes dordinateur et de journaux dans les d chets. Ces poure e centages ainsi que la quantit maximum de d chets que peuvent fournir par e e an ces deux villes sont reprises au tableau 2.5. La soci t offre aux villes ee Listes Journaux Offre Prix % % tonnes par an $ par tonne Ville 1 5 20 10.000 35 Ville 2 15 30 20.000 35 Tableau 2.5: Valorisation des d chets e un prix de 35 $ par tonne de d chet. Elle doit d cider du montant optimal e e de d chets a acheter a chaque ville pour minimiser son co t dachat. Pour e ` ` u couvrir ses frais xes, la soci t doit au moins collecter 1.500 tonnes de ee listing dordinateur par an. Au del` de 6.000 tonnes de journaux mis sur le a march par an, le prix que la soci t re oit pour la vente de journaux chute e ee c et donc la compagnie ne d sire pas vendre plus que cette quantit . Combien e e la soci t doit-elle acheter de d chets par an a chacune des villes ? ee e ` 2.2. Choix dinvestissements. Un epargnant peut investir 1000 F. Il a le choix entre 3 investissements possibles : A, B et C. Les valeurs attendues et les valeurs minimales garanties apr` s un an sont, pour un franc : e Type valeur valeur dinvestissement attendue garantie A 1, 4 0, 9 B 1, 2 1, 2 C 1, 6 0, 5 L pargnant souhaite un int r t minimum garanti de 5% lan. Lint r t mie ee ee nimal doit porter sur la somme disponible. Cependant, il a promis dinvestir au moins 600 F sur B et C ensemble. Comment pourrait-il r partir son e investissement pour maximiser la valeur attendue globale apr` s un an ? e 2.3. D coupe de bobines m` res. Les papetiers fabriquent des rouleaux de papier e e dont la largeur est x e par les caract ristiques des machines de production e e Ville

Section 2.5. Exercices

35

quils utilisent. Leur clients peuvent leur r clamer des rouleaux de diverses e largeurs et de diverses longueurs. Comme il est fr quent que ni la largeur ni e la longueur des bobines m` res ne soient des multiples de celles de rouleaux e command s, il y a des pertes connues sous le nom de chutes. La largeur des e bobines m` res est de 215 cm et leur longueur de 250 m. Les commandes e accept es par le papetier sont reprises au tableau 2.6. e Largeur longueur nombre de rouleaux (en cm) (en m) 64 250 360 60 250 180 35 250 180 Tableau 2.6: Commandes accept es e Comme la longueur des rouleaux command s est identique a celle des boe ` bines m` res, il suft dassurer la coupe transversale dun certain nombre de e bobines m` res. Pour satisfaire les commandes accept es, le papetier peut, e e par exemple, combiner trois coupes de largeur 64 cm dans la m me bobine, e mais aussi, par exemple, deux de largeur 64 et deux de largeur 35. Toutes les possibilit s sont reprises au tableau 2.7. On veut d terminer comment e e Largeur 1 64 3 60 0 35 0 Chute 23 2 3 2 2 1 0 0 2 27 17 4 5 6 1 1 1 2 1 0 0 2 4 31 21 11 7 0 3 1 0 8 9 10 0 0 0 2 1 0 2 4 6 25 15 5

Tableau 2.7: plans de coupe satisfaire les commandes accept es avec le minimum de bobines m` res. e e (a) Formuler le probl` me (choix des variables, expression de lobjectif et e des contraintes). (b) Ecrire le mod` le de calcul EXCEL. e (c) R soudre avec EXCEL. e 2.4. Calcul dun pr t personnel. Une banque fait une promotion sur les pr ts e e personnels. A partir des caract ristiques du pr t, cest-` -dire, e e a le montant emprunt , e

36 le taux dint r t mensuel, ee

Chapitre 2. Le solveur dEXCEL.

le taux de lassurance solde restant d obligatoire, u la dur e du pr t, e e elle vous demande de concevoir une feuille de calcul qui calcule, mois par mois, le montant des int r ts pay s le mois (ils portent sur le capital restant ee e d ); u le montant de lassurance pay e le mois (elle porte sur le capital restant e d ); u le capital restant d . u Vous devez egalement d terminer le montant de la mensualit constante a e e ` payer chaque mois. (a) Ecrire le mod` le de calcul. e (b) En utilisant les donn es particuli` res suivantes (emprunt de 10.000 e e EURO rembours s en 60 mois avec un taux dint r t annuel de 6,50 e ee % (ce qui correspond a un taux mensuel de 0,541667 %) et un taux ` dassurance annuel de 0,54 % portant sur le solde restant d ), mettre u en uvre votre mod` le en EXCEL. e

Chapitre 3 Etude de cas : Optimisation du plan directeur de production


Une soci t voudrait etablir son plan directeur de production, cest-` -dire les quanee a tit s a produire chaque trimestre ainsi que les ressources a mobiliser chaque trie ` ` mestre pour pouvoir satisfaire la demande a co t total annuel minimum. La de` u mande pour les 12 prochains mois est donn e par trimestre au tableau 3.1. On e Trimestre Demandes Stock minimum Jours ouvrables 1 180 000 55 000 62 2 400 000 85 000 64 3 190 000 50 000 55 4 390 000 100 000 59 Tableau 3.1: Optimisation du plan directeur de production suppose quun ouvrier peut produire 150 unit s par jour ouvrable. Le nombre de e jours ouvrables est repris au tableau 3.1. Il y a un effectif initial de 32 ouvriers et un stock initial de 0. Le co t dembauche dun ouvrier est de 20 000 F. Le co t de u u licenciement est de 50 000 F. Le co t de stockage dune unit pendant un trimestre u e est de 10 F. On suppose que les licenciements et les embauches de personnel ne peuvent se r aliser quen d but de chaque trimestre. De plus, pour des raisons e e commerciales, on souhaite avoir un niveau minimum de stock en n de chaque trimestre. Ceci an de faire face aux demandes du d but du trimestre suivant. e On demande de d terminer les engagements et licenciements de d but de e e chaque trimestre, de mani` re a ce que leffectif du mois soit sufsant pour sae ` tisfaire la demande (aucune rupture de stock nest permise) a co t total minimum ` u (somme du co t dembauche, du co t de licenciement et du co t de stockage). On u u u calculera egalement le niveau de leffectif en d but de chaque trimestre et le niveau e de stock en n de trimestre. 37

38Chapitre 3. Etude de cas : Optimisation du plan directeur de production Une particularit de ce mod` le est quil y a ici des variables ind pendantes e e e et des variables d pendantes. e D nition 3.1 Une variable d pendante est une variable donc la valeur est cale e ` partir de celles dautres variables. cul e a e Si, dans la formulation math matique, la distinction entre variables d pendantes e e et variables ind pendantes est sans objet, il nen va pas de m me dans un mod` le e e e de calcul Excel. En effet, rappelons que seules des variables ind pendantes e doivent etre indiqu es comme variables au mod` le de calcul Excel. Les variables e e d pendantes sont de simples formules de calcul. Si on indique la r f rence de des e ee cases de ces formules de calcul a Excel comme etant la r f rence de variables, ` ee Excel efface le contenu de la case, cest-` -dire la formule de calcul de la variable a d pendante. e On demande ici de 1. formuler math matiquement le probl` me (choix des variables ind pendane e e tes, des variables d pendantes, expression de lobjectif, expression des conte raintes), 2. mettre sous la forme dun mod` le de calcul en Excel la formulation ainsi e obtenue, 3. donner la solution obtenue par EXCEL.

Partie II Introduction aux bases de donn es e

39

Chapitre 4 Concepts des bases de donn es e


4.1 Introduction

Soulignons limportance dune bonne organisation des donn es dans de nome breuses applications. Que ce soit dans lenregistrement de donn es simples telles e que la tenue dun r pertoire dadresses de clients, dans la tenue dun chier de e r f rences bibliographiques, dans la tenue dun catalogue de pi` ces de rechange. ee e Dans ce cas simple, les donn es peuvent etre enregistr es dans un chier o` ces e e u donn es seront structur es en enregistrements. Par exemple, un enregistrement du e e chier clients correspond a la che dun client, compos e des diff rents champs ` e e que sont le nom, ladresse et le num ro de t l phone du client. e ee Que ce soit egalement dans lenregistrement de donn es complexes qui sont e enregistr es dans plusieurs chiers. Par exemple, dans une entreprise, on peut avoir e le chier clients, le chier produits, le chier commandes, le chier factures,. . . etc. Bien s r, il existe des relations entre ces chiers. Par exemple, la commande vient u dun client enregistr dans le chier clients, porte sur des produits du catalogue et e donnera lieu a une facture qui se retrouvera dans le chier facture. ` Les buts principaux des syst` mes de gestion de base des donn es sont au e e nombre de trois : Il sagit tout dabord de garantir la abilit des donn es : Est-ce que linfore e mation stock e est bien celle quon a entr ? Comment eviter quune panne e e informatique nefface le contenu des chiers ? . . . etc. Il sagit ensuite de garantir leur coh rence : Est-ce qu` chaque commande e a livr e correspond une facture ? Est-ce que le nom du client permet univoe quement de le d terminer ? . . . etc. e Il sagit enn de permettre leur acc` s simultan ment par plusieurs utilisae e teurs. Par exemple, le service commandes ou le service facturation doivent 41

42

Chapitre 4. Concepts des bases de donnes e pouvoir travailler simultan ment sur la m me base de donn es. e e e

4.2

Notions de table, ligne et colonne

Une notion fondamentale dans les syst` mes de gestion de bases de donn es est la e e notion de table. D nition 4.1 Une table contient une suite de lignes stock es sur un support tel e e quun disque dur. Une ligne (ou enregistrement) est une suite de plusieurs valeurs de types bien d termin s. e e En cons quence, toutes les lignes pr sentes dans une table on le m me format. e e e Chaque ligne se rapporte a une entit ou un fait du monde r el. ` e e Illustrons ceci par un exemple tir de Hainaut [4]. Dans la table PERSONNES e (voir tableau 4.1), chaque ligne est lenregistrement dun NOM, dune ADRESSE, dune VILLE, dune valeur dun COMPTE. D nition 4.2 Une colonne (ou champs) repr sente donc une propri t des entit s e e ee e de la table. Une colonne est d nie par nom, le type de ses valeurs et sa longueur e maximum Dans lexemple, la colonne NOM de la table PERSONNES contient lensemble des noms de clients. La colonne est d nie par : e son nom : NOM; le type de ses valeurs : des alphanum riques; e sa longueur maximum : 12 caract` res. e

4.3

R les dune colonne o

Nous allons illustrer les diff rentes r les que peut prendre une colonne sur un e o deuxi` me exemple. Les fournisseurs de la table 4.2 peuvent livrer les pi` ces de e e rechanges de la table 4.3 aux prix donn s au tableau 4.4. e On distingue, en g n ral, trois types de colonnes : e e 1. L identiant ou cl (key) de la table : il sagit de la colonne permete tant didentier univoquement une entit . Dans notre exemple, il sagit du e champs NUMF pour la table FOURNISSEURS. Chaque el ment dune telle e colonne doit evidemment etre diff rent. e

Section 4.3. Rles dune colonne o

43

PERSONNES NOM ADRESSE VILLE COMPTE Hansenne 23, A. Dumont Poitiers 1250.0 Mercier 25, r Lemaitre Namur -2300.0 Monti 112, r. Neuve Geneve 0.0 Toussaint 5, r. Godefroid Poitiers 0.0 Vanbist 180, r. Florimont Lille 720.0 Vanderka 3, av. des roses Namur -4580.0 Gillet 14, r. de lEte Toulouse 8700.0 Gofn 72, r. de la Gare Namur -3200.0 Ferard 65, r. du Tertre Poitiers 350.0 Avron 8, ch. de la Cure Liege -1700.0 Neuman 40, r. Bransart Toulouse 0.0 Poncelet 17, r. des Erables Toulouse 0.0 Franck 60, r. de Wepion Namur 0.0 Guillaume 14, ch des Roses Paris 0.0 Nadoy 201, bvd du Nord Toulouse 0.0 Jacob 78, ch. du Moulin Bruxelles 0.0 Tableau 4.1: Contenu de la table personnes

FOURNISSEURS NUMF NOMF VILLEF 152 MERCIER TOURS 174 CHARLES NEVERS 81 DUMONT PARIS 376 RENIER NEVERS 259 CHARLES LIEGE 46 GARCIN PARIS Tableau 4.2: Contenu de la table FOURNISSEURS

44

Chapitre 4. Concepts des bases de donnes e

PIECES NUMP TYPE 14 BOULON 57 ECROU 15 BOULON Tableau 4.3: Contenu de la table PIECES

NUMFL 152 174 152 81 81 152 46 46

LIVRE NUMPL PRIX 15 46. 57 32. 14 62. 14 65. 15 48. 57 34. 15 46. 57 32.

Tableau 4.4: Contenu de la table LIVRE

Section 4.3. Rles dune colonne o

45

2. Les cl s etrang` res (foreign key) : il sagit dune colonne didentiant e e dune autre table. Dans notre exemple, le champs NUMFL est une cl e etrang` re de la table LIVRE. e 3. Les informations compl mentaires : il sagit dune colonne apportant une e information compl mentaire. Dans notre exemple, les colonnes NOMF, e VILLEF, TYPE, PRIX sont des colonnes dinformations compl mentaires. e Un identiant dune tableau peut etre constitu de plus dune colonne : on e parle alors didentiant multicomposant. Par exemple, lidentiant de la table LIVRE pourrait etre le couple (NUMFL,NUMPL). On peut imposer plusieurs identiant a une m me table. Un seul sera choisi ` e comme identiant primaire (primary key), les autres etant des identiant secon daires. Par exemple, dans un chier de s curit s sociale, NUMERO URSAF et e e NUMERO CARTE IDENTITE peuvent etre deux identiants, un des deux peut etre choisi comme identiant primaire. Enn une notion fondamentale des bases de donn es relationnelles est la notion e de contraintes r f rentielles : toute valeur dune cl etrang` re (faisant r f rence ee e e ee a la table A) pr sente dans une table B, on impose par la contrainte r f rentielle ` e ee ` quil y ait une ligne dans la table A correspondant a cette valeur. Illustrons cette notion sur lexemple. Toute valeur de NUMFL dans LIVRE doit etre pr sente e dans FOURNISSEUR comme une valeur de la colonne NUMF. On introduit cette contrainte r f rentielle sur NUMFL de LIVRE de sorte quil ee sera interdit dintroduire la ligne suivante : (NUMFL:93,NUMPL:57,PRIX:32) puisquil ny a pas de valeur 93 de fournisseur. Lorsque linformation dune colonne peut etre omise lorsque lon rentre des enregistrements, on parle de colonnes facultatives. Par exemple, on apprend quun nouveau fournisseur 259 peut livrer la pi` ce 15 mais on ne connat pas encore son e prix. On introduit : (NUMFL:259,NUMPL:15,PRIX:-) La colonne PRIX est ainsi d clar e facultative. e e Il est evident que la colonne de tout identiant primaire est obligatoire. Ainsi, la colonne NUMF de la table FOURNISSEUR est elle obligatoire.

46

Chapitre 4. Concepts des bases de donnes e

4.4

Structure dune base de donn es e

Pour une base de donn es, on distinguera clairement les deux choses que sont : sa e structure et son contenu. Le sch ma dune base de donn es en d ni sa structure en termes de : e e e ses tables, leurs colonnes (avec le type de valeurs, le caract` re obligatoire ou facultatif), e leurs identiant primaires et secondaires, les contraintes r f rentielles. ee Le sch ma correspondant a lexemple des fournisseurs est illustr sans les liens e ` e entre tables au tableau 4.5. La structure dune base de donn es est en g n ral stable e e e FOURNISSEURS NUMF NOMF VILLEF PIECES NUMP TYPE LIVRE NUMFL NUMPL PRIX Tableau 4.5: Sch ma de la base de donn es e e dans le temps. Par contre, le contenu dune base de donn es est beaucoup plus volumineux e et est susceptible d voluer constamment. Dans notre exemple, les fournisseurs e peuvent changer a tout moment. ` Compl tons maintenant ce sch ma par quelques conventions la repr sentation e e e graphique dun sch ma conceptuel dune base de donn es. e e Une table et ses colonnes sont repr sent es par un cartouche contenant le e e nom de la table et celui de chaque colonne. LIVRE NUMFL NUMPL PRIX

Section 4.4. Structure dune base de donnes e

47

On souligne dun trait continu les noms des colonnes de lidentiant primaire et dun trait pointill ceux de chaque identiant secondaire. e LIVRE NUMFL|NUMPL PRIX

Le nom dune colonne facultative est mis entre parenth` ses. e LIVRE NUMFL|NUMPL (PRIX) Une r f rence etrang` re vers un identiant a plusieurs composants est souee e ` lign par une accolade. e ARTICLE NUMA NUMFL ANNEE|SAISON Une contrainte r f rentielle sera repr sent e par une ` che qui part de la ee e e e colonne de r f rence (ou de laccolade dun groupe de r f rence) et qui ee ee pointe vers le cartouche de la table de r f rence. ee On obtient ainsi le sch ma conceptuel complet tel que celui illustr a la gure e e` 4.1.
FOURNISSEUR NUMFL NOMF VILLEF CATALOGUE ANNEE SAISON EDITEUR ARTICLE NUMA NUMFL ANNEE SAISON

Figure 4.1: Sch ma conceptuel complet e

48

Chapitre 4. Concepts des bases de donnes e

4.5

Exemple de base de donn es relationnelle e

Nous allons maintenant introduire un troisi` me exemple de base de donn es qui va e e nous servir dans la suite de ce chapitre et au chapitre suivant consacr aux requ tes e e que lon peut faire sur une base de donn es. Il sagit dun exemple de base de e donn es enregistrant les commandes des diff rents produits dune soci t par ses e e ee diff rents clients. Son sch ma conceptuel est donn a la gure 4.2 e e e`
CLIENT NCLI NOM ADRESSE VILLE (CAT) COMPTE PRODUIT NPRO LIBELLE PRIX QSTOCK

COMMANDE NCOM NCLI DATE LIGNECOM NCOM NPRO QCOM

Figure 4.2: Enregistrement des commandes de clients Les diff rentes tables qui constituent cette base de donn es sont les suivantes : e e La table CLIENT o` chaque ligne est un enregistrement correspondant a un u ` client. Les diff rents champs de cette table sont : e NCLI : le num ro du client; e NOM : son nom; ADRESSE : son adresse; VILLE : sa localit ; e COMPTE : l tat de son compte; e Lidentiant primaire est NCLI. La table PRODUIT o` chaque ligne correspond a un produit vendu par la u ` soci t . Les champs de cette table sont : ee

Section 4.6. Modications et contraintes dintgrit e e NPRO : le num ro du produit; e LIBELLE : son libell ; e PRIX : son prix unitaire; QSTOCK : la quantit en stock; e Lidentiant primaire est NPRO.

49

La table COMMANDE o` chaque ligne correspond a une commande enreu ` gistr e. Les champs de cette table sont : e NCOM : le num ro de la commande; e NCLI : le num ro du client qui a pass commande; e e DATE : la date de passation de commande; Lidentiant primaire est NCOM. NCLI est une r f rence etrang` re vers la table CLIENT. ee e La table LIGNECOM o` chaque ligne correspond a une ligne dans une u ` commande, donc a une partie de commande. Les champs de cette table ` sont : NCOM : le num ro de la commande a laquelle la ligne appartient; e ` NPRO : le num ro du produit command ; e e QCOM : la quantit command e. e e Lidentiant primaire est (NCOM,NPRO). NCOM et NPRO sont deux r f rences etrang` res vers les tables COMee e MANDE et PRODUIT respectivement. Le contenu de la table CLIENT est donn a la table 4.6. e` Le contenu de la table COMMANDE est donn a la table 4.7. e` Le contenu de la table PRODUIT est donn a la table 4.8. e` Le contenu de la table LIGNECOM est donn a la table 4.9. e`

4.6

Modications et contraintes dint grit e e

Le principe g n ral est le suivant : Les propri t s structurelles (identiant, conte e ee rainte r f rentielle, colonne obligatoire/facultative) associ s aux donn es doivent ee e e etre respect es a tout instant, en particulier : e `

50

Chapitre 4. Concepts des bases de donnes e

CLIENT NCLI NOM ADRESSE B112 Hansenne 23, A. Dumont C123 Mercier 25, r Lemaitre B332 Monti 112, r. Neuve F010 Toussaint 5, r. Godefroid K111 Vanbist 180, r. Florimont S127 Vanderka 3, av. des roses B512 Gillet 14, r. de lEte B062 Gofn 72, r. de la Gare C400 Ferard 65, r. du Tertre C003 Avron 8, ch. de la Cure K729 Neuman 40, r. Bransart F011 Poncelet 17, r. des Erables L422 Franck 60, r. de Wepion S712 Guillaume 14, ch des Roses D063 Nadoy 201, bvd du Nord F400 Jacob 78, ch. du Moulin

VILLE COMPTE Poitiers 1250 Namur -2300 Geneve 0 Poitiers 0 Lille 720 Namur -4580 Toulouse -8700 Namur -3200 Poitiers 350 Liege -1700 Toulouse 0 Toulouse 0 Namur 0 Paris 0 Toulouse -2250 Bruxelles 0

Tableau 4.6: Contenu de la table CLIENT

COMMANDE NCOM NCLI DATE 178 K111 12/03/96 179 C400 12/02/96 182 S127 14/03/96 184 C400 27/03/96 185 F011 02/04/96 186 C400 02/04/96 188 B512 03/04/96 Tableau 4.7: Contenu de la table COMMANDE

Section 4.6. Modications et contraintes dintgrit e e

51

PRODUIT NPRO CS262 CS264 CS464 PA45 PA60 PH222 PS222 Libelle CHEV. SAPIN 200x6x2 CHEV. SAPIN 200x6x4 CHEV. SAPIN 400x6x4 POINTE ACIER 45 (1K) POINTE ACIER 60 (1K) PL. HETRE 200x20x2 PL. SAPIN 200x20x2 PRIX QSTOCK 75 45 120 2690 320 450 105 580 95 134 230 782 185 1220

Tableau 4.8: Contenu de la table PRODUIT

LIGNECOM NCOM NPRO QCOM 178 CS464 25 179 PA60 20 179 CS262 60 182 PA60 30 184 CS464 120 184 PA45 20 185 PA60 15 185 PS222 600 185 CS464 260 186 PA45 3 188 PA60 70 188 PH222 92 188 CS464 180 188 PA45 22 Tableau 4.9: Contenu de la table LIGNECOM

52 lors de lajout dune ligne;

Chapitre 4. Concepts des bases de donnes e

lors de la suppression dune ligne; lors de la modication de donn es dune ligne. e Dans le cas contraire, on dit que les donn es ont perdu leur int grit ! e e e Examinons les propri t s a respecter a tout moment : ee ` ` Un identiant impose une contrainte dunicit : a tout instant, les lignes e ` dune table poss` dent des valeurs distinctes dans la colonne correspondant e ` a lidentiant de la table. Par exemple, la colonne NCLI de la table client. Les propri t s suivantes sont a respecter : ee ` Lors de la cr ation dune ligne, il ne peut exister de ligne poss dant le e e m me identiant. e Lors de la suppression dune ligne, il ny a pas de contrainte pour la table en question. Lors de la modication de lidentiant dune ligne, il ne peut exister de ligne poss dant la nouvelle valeur de lidentiant dans la table en e question. Une contrainte r f rentielle pr cise que certaines colonnes dune table ee e (les cl s etrang` res) doivent a tout instant, pour chaque ligne, contenir des e e ` valeurs que lon retrouve comme identiant primaire dune ligne dans une autre table. Par exemple, la table COMMANDE (cfr gure 4.3) est soumise a une cont` rainte r f rentielle suivante : toute valeur de NCLI doit identier une ligne ee de CLIENT. Examinons les propri t s a respecter lors des diverses op rations de modiee ` e cation de COMMANDE : Lors de la cr ation dune ligne de COMMANDE, la valeur de NCLI e de cette ligne doit etre pr sente dans la colonne NCLI dune ligne de e CLIENT. Lors de la suppression dune ligne de COMMANDE, il ny a pas de contrainte (du moins dans sa relation avec CLIENT). Lors de la modication de la valeur de NCLI dune ligne de COMMANDE, la nouvelle valeur de NCLI de la ligne doit etre pr sente dans e la colonne NCLI dune ligne de CLIENT.

Section 4.6. Modications et contraintes dintgrit e e


CLIENT NCLI NOM ADRESSE VILLE (CAT) COMPTE PRODUIT NPRO LIBELLE PRIX QSTOCK

53

COMMANDE NCOM NCLI DATE LIGNECOM NCOM NPRO QCOM

Figure 4.3: Les commandes des clients Examinons les propri t s a respecter lors des diverses op rations de modiee ` e cation de CLIENT : Lors de la cr ation dune ligne de CLIENT, il ny a pas de restriction. e Lors de la suppression dune ligne de CLIENT, si ce client poss` de des e commandes dans COMMANDE, on peut soit 1. refuser la suppression de la ligne CLIENT an d viter des lignes e de COMMANDE orphelines; 2. supprimer la ligne de CLIENT et toutes les lignes de COMMANDE qui la r f rencent; ee 3. si NCLI de COMMANDE est facultative, effacer la valeur de la colonne NCLI des lignes de COMMANDE correspondantes. Lors de la modication de NCLI dune ligne CLIENT, si des lignes de COMMANDE y font r f rence, soit : ee 1. cela a le m me effet sur COMMANDE quune suppression de la e ligne CLIENT; 2. cela va modier la valeur de NCLI en m me temps dans la ligne de e CLIENT et dans les lignes de COMMANDE qui y font r f rence. ee Si une colonne est d clar e obligatoire, chaque ligne doit poss der une e e e valeur. Lors de la cr ation ou de la modication, chaque ligne doit recevoir e une valeur signicative. Par exemple, dans la table CLIENT, il est permis de cr e une ligne sans valeur pour CAT, mais pas sans valeur pour VILLE. e

54

Chapitre 4. Concepts des bases de donnes e

4.7

Les syst` mes de gestion de donn es e e

Il existe deux types de logiciels a vocation bien diff rentes : ` e Les syst` mes de gestion de chiers; e Les syst` mes de gestion de base de donn es. e e Les logiciels de gestion de chiers permettent a lutilisateur non sp cialis ` e e de r soudre des probl` mes simples relatifs a des donn es non complexes. Ils ne e e ` e permettent souvent que de g rer un seul chier a la fois. Les fonctions offertes e ` sont : la construction dun nouveau chier; la consultation de ses enregistrements; la modication des donn es (ajout, suppression, modication); e le tri; la production de rapports sur des donn es extraites du chier. e Nous avons vu un exemple dun tel logiciel dans la premi` re partie du cours : il e sagit du tableur Excel. Les logiciels de gestion de base de donn es sadressent egalement au d vee e loppeur dapplications. Ils permettent de travailler simultan ment sur plusieurs e tables en relation entre elles. En plus, des fonctions des syst` mes de gestion de e chiers, ils disposent : de fonctions de consultation et de manipulation des donn es tr` s evolu es; e e e dun langage de programmation qui permet le d veloppement de programe mes complexes (le langage SQL). Cest ce que nous verrons au chapitre suivant. Nous verrons egalement comment utiliser un des logiciels les plus connus : il sagit de Microsoft Access.

Section 4.8. Exercices

55

4.8

Exercices

4.1. Les animaux du zoo. Les animaux du zoo suivent chacun un r gime alie mentaire. Un r gime est constitu dun m lange dingr dients, chacun en e e e e quantit d termin e. Le r gime dun animal peut varier dun jour a lautre. e e e e ` Chaque animal est caract ris , en fonction de son esp` ce, par ses besoins e e e minima et maxima en nutriment (calcium, prot ines, etc.), exprim s en mg e e par unit de poids de lanimal. Ces besoins sont fonction de lesp` ce de e e lanimal. On connat la teneur de chaque ingr dient en nutriment, exprim e e e en mg par kg dingr dient. Chaque ingr dient a un co t unitaire. Chaque e e u animal requiert des soins qui sont evalu s en francs par jour. On demande e de construire le sch ma conceptuel de la base de donn es. e e 4.2. Gestion dun bibliographie. On d sire g rer une bibliographie constitu e e e e darticles (code identiant, type, titre). Chaque article est ecrit par un nombre quelconque dauteurs. Chaque auteur est caract ris par son nom (suppos e e e identiant) et lorganisme dont il d pend. En outre, chaque article est tir e e dun ouvrage dont on donne le titre, l diteur, la date de parution, ainsi e quun num ro identiant. Dans cet ouvrage, chaque article commence en e haut dune page dont on connat le num ro. Exemple : larticle de code e 13245, du type THEORIE, intitul Non-monotonic reasoning in operae tional research, ecrit par Baxter (Standford Univ.) et Randon (Bell Labs) est extrait (page 340) de louvrage num ro 556473, intitul Advanced Toe e pics in Decision Support Systems, publi par North-Holland en 1988. On e demande de traduire ce sch ma en structure de tables. e 4.3. Les prescriptions m dicales. Les patients dun h pital son r partis dans e o e les services (caract ris s chacun par un nom identiant, sa localisation, sa e e sp cialit ) de ce dernier. A chaque patient peuvent etre prescrits des rem` des. e e e Un rem` de est identi par son nom et caract ris par son type et son fabrie e e e cant. Chaque prescription dun rem` de a un patient est faite par un m decin e ` e a une date donn e pour une dur e d termin e. Chaque patient est identi ` e e e e e par un num ro dinscription. On en connat le nom, ladresse et la date de e naissance. Chaque m decin appartient a un service. Il est identi par son e ` e nom et son pr nom. On demande de traduire ce sch ma en structure de e e tables. On sera particuli` rement attentif a la notion de prescription. e ` 4.4. Flotte de v hicules. Une entreprise de distribution dispose dun certain e nombre de v hicules (identi s par leur num ro et caract ris s par leur e e e e e capacit et le nom du conducteur). Chaque jour, chaque v hicule effectue une e e (et une seule) tourn e de distribution, dune longueur d termin e. Durant e e e cette tourn e, le v hicule emporte des colis (d crits chacun par un num ro e e e e

56

Chapitre 4. Concepts des bases de donnes e identiant et un poids) . Chaque colis doit etre livr a un destinataire. Un e` destinataire est identi par un num ro de destinataire et caract ris par e e e e un nom et une adresse. On demande de traduire ce sch ma conceptuel un e structure de tables. On fera attention a lidentiant concernant les tourn es. ` e

Chapitre 5 Le langage SQL


5.1 Introduction

Le langage SQL, pour Structured Query Langage, est un langage, utilis par la e plupart des SGBD, qui permet dadresser des requ tes a une base de donn es. e ` e Une base de donn es SQL est organis e en : e e tables (tables); colonnes (columns); identiants primaires (primary key); colonnes de r f rences (foreign keys). ee Les op rations envisageables en SQL sont les op rations de modications de e e base que sont : le rajout dune ligne; la suppression dune ligne; la modication dune ligne. Mais le langage SQL permet aussi : le rajout dune table a la base donn es; ` e la suppression dune table de la base; le rajout dune colonne dans une table. la suppression dune colonne dans une table. 57

58

Chapitre 5. Le langage SQL

Lacc` s aux donn es et leur manipulation seffectuent a partir du langage SQL. e e ` Le r sultat dune requ te SQL se pr sente sous la forme dune table ( ventuellement e e e e r duite a une seule ligne ou une seule colonne). G n ralement, les donn es de cette e ` e e e table r sultante sont e soit un sous-ensemble dune table existante; soit construites a partir dextraits de plusieurs tables, mises en correspon` dance sur base de valeurs communes dans certaines colonnes. On pr sentera e plus loin des exemples. Les donn es extraites sont g n ralement pr sent es sous forme dun rapport e e e e e qui peut : etre lu a l cran; ` e etre imprim ; e etre stock dans une nouvelle table de la base. e Dautres fonctions plus sp ciques existent dans la plupart des SGDB SQL e telles que : la d nition des vues; e la protection contre les incidents; la gestion des acc` s concurrents; e le contr le dacc` s; o e ... En conclusions, le langage SQL permet donc de : d nir la structure de la base de donn es; e e manipuler le contenu des tables de cette base. Chaque instruction SQL constitue une requ te qui peut etre introduite de mani` re e e interactive, au terminal, soit peut etre g n r e via un programme ecrit en Pascal, e ee C ou Cobol. Nous consid rerons ici seulement la version interactive. e

Section 5.2. Dnition dune base de donnes e e

59

5.2
5.2.1

D nition dune base de donn es e e


Cr ation dune table e

Illustrons la cr ation de la table sur lexemple introduit au chapitre 4 et dont le e sch ma conceptuel rappel a la gure 5.1. e e`
CLIENT NCLI NOM ADRESSE VILLE (CAT) COMPTE PRODUIT NPRO LIBELLE PRIX QSTOCK

COMMANDE NCOM NCLI DATE LIGNECOM NCOM NPRO QCOM

Figure 5.1: Enregistrement des commandes de clients En SQL, on cr era la table CLIENT par les commandes suivantes : e create table CLIENT ( NCLI NOM ADRESSE LOCALITE CAT COMPTE char(4), char(12), char(20), char(12), char(2), decimal (9,2))

Cette op ration a pour effet de produire une table vide (cest-` -dire sans ligne). e ` a On sp cie donc : e le nom de la table; le nom de chaque colonne de la table;

60 le type des valeurs de chaque colonne; la longueur de chaque colonne. Les diff rents types possibles sont : e SMALLINT : pour les entiers cours (16 bits), INTEGER : pour les entiers longs (32 bits),

Chapitre 5. Le langage SQL

DECIMAL(m,n) : pour les d cimaux de m chiffres dont n apr` s point d cimal, e e e FLOAT : pour les r els ottants, e CHAR(n) : pour une chane xe de n caract` res, e VARCHAR : pour une chane variable de n caract` res au plus, n < 256, e LONG VARCHAR : pour une chane variable de moins de 32768 caract` res, e DATE : pour une date. On compl tera la d claration de la table par la clause primary key : e e create table CLIENT ( NCLI char(4), NOM char(12), ADRESSE char(20), LOCALITE char(12), CAT char(2), COMPTE decimal (9,2), primary key (NCLI) ) Remarquez les parenth` ses autour de la cl primaire. Ceci est n cessaire pour e e e pouvoir sp cier des cl s primaires compos es de plusieurs champs telles que e e e celle de la table LIGNECOM : create table LIGNECOM (NCOM char(4), NPRO char(5), QCOM decimal(4), primary key (NCOM, NPRO)) Les identiants secondaires seront d clar s par la clause unique comme dans e e lexemple du num ro dafliation a la s curit sociale et du num ro didentit : e ` e e e e

Section 5.2. Dnition dune base de donnes e e create table ASSURE ( NUM_AFFIL char(4), NUM_IDENT char(5), NOM char(25), primary key (NUM_AFFIL), unique (NUM_IDENT) )

61

Voyons maintenant comment exprimer dune contrainte r f rentielle en ee SQL. On d clarera une cl etrang` re et la table r f renc e par la clause foreign e e e ee e key en y indiquant vers quelle table pointe la cl etrang` re : e e create table LIGNECOM (NCOM char(4), NPRO char(5), QCOM decimal(4), primary key (NCOM, NPRO), foreign key (NCOM) references COMMANDE, foreign key (NPRO) references PRODUIT) Voyons maintenant comment exprimer le caract` re obligatoire/facultatif e dune colonne. Par d faut, toute colonne est facultative. Le caract` re non nul est e e d clar par la clause not null : e e create table LIVRE (NUMFL char(4) not null, NUMPL char(5) not null, PRIX decimal(4), primary key (NUMFL, NUMPL), foreign key (NUMFL) references FOURNISSEUR, foreign key (NUMPL) references PIECE)

5.2.2

Suppression dune table

Toute table peut etre supprim e par : e drop table LIGNECOM Si la table contient des lignes, elles sont pr alablement supprim es. Par exemple, e e la suppression de la table COMMANDE entranerait la suppression de toutes les lignes de LIGNECOM (mais pas de la table) an que les contraintes dint grit e e soient respect es. e

62

Chapitre 5. Le langage SQL

5.2.3

Ajout et retrait dune colonne

La commande suivante ajoute la colonne POIDS a la table PRODUIT : ` alter table PRODUIT add POIDS smallint La commande suivante elimine la colonne PRIX de la table PRODUIT : alter table PRODUIT drop PRIX

5.3
5.3.1

Consultation et extraction de donn es e


Principes de base

Lex cution dune requ te select produit un r sultat qui est une table. Une requ te e e e e contient trois parties : la clause select pr cise les valeurs (nom des colonnes, valeurs d riv es) e e e qui constituent chaque ligne du r sultat, e la clause from indique la ou les tables desquelles on tire les valeurs, la clause where donne la condition de s lection que doivent satisfaire les e lignes qui fournissent le r sultat. e Illustrons ceci sur quelques exemples.

5.3.2

Requ tes sur une seule table e

La requ te la plus simple consiste a s lectionner la valeur de certaines colonnes e ` e dune table. Ainsi, la requ te e select from NCLI, NOM, VILLE CLIENT

Section 5.3. Consultation et extraction de donnes e

63

demande les valeurs de NCLI, NOM et VILLE des lignes de la table CLIENT. La r ponse se pr sente ainsi : e e NCLI B112 C123 B332 F010 K111 S127 B512 B062 C400 C003 K729 F011 L422 S712 D063 F400 NOM Hansenne Mercier Monti Toussaint Vanbist Vanderka Gillet Gofn Ferard Avron Neuman Poncelet Franck Guillaume Nadoy Jacob VILLE Poitiers Namur Geneve Poitiers Lille Namur Toulouse Namur Poitiers Liege Toulouse Toulouse Namur Paris Toulouse Bruxelles

Si on veut les valeurs de toutes les colonnes, on peut simplier la clause select comme suit : select * from CLIENT Supposons maintenant que lon veuille s lectionner les informations NCLI et e NOM de la table CLIENT uniquement pour les clients de Toulouse. La requ te e SQL correspondante est : select NCLI,NOM from CLIENT where VILLE = Toulouse

64 Le r sultat est la table suivante : e NCLI B512 K729 F011 D063 NOM Gillet Neuman Poncelet Nadoy

Chapitre 5. Le langage SQL

Le r sultat dune requ te contient autant de lignes quil ny a, dans la table e e de d part, de lignes v riant la condition de s lection. Si lidentiant primaire e e e nest pas repris dans la clause select, il se peut que le r sultat contienne plusieurs e lignes identiques : select VILLE from CLIENT where CAT = C1 Donne le r sultat suivant : e VILLE Poitiers Namur Poitiers Namur Namur On peut eliminer les lignes en double par la clause distinct. Ainsi, la requ te e SQL : select distinct VILLE from CLIENT where CAT = C1 donne le r sultat suivant : e VILLE Poitiers Namur

5.4
5.4.1

Conditions de s lection plus complexes e


Conditions el mentaires e

On peut, dans la clause where, utiliser des expressions bool ennes au moyen e des op rateurs and, or, not. Par exemple, on peut s lectionner les NOM, e e

Section 5.4. Conditions de slection plus complexes e

65

ADRESSE et COMPTE des clients de Toulouse ayant un compte d biteur par e la commande SQL suivante : select NOM, ADRESSE, COMPTE from CLIENT where VILLE = Toulouse and COMPTE <= 0 Une condition el mentaire peut porter sur la pr sence ou non dune valeur pour e e un champ non obligatoire tel que le champ CAT de la table client : where CAT is null where CAT is not null ` Une condition el mentaire peut aussi porter sur lappartenance a une liste : e where CAT in (C1,C2,C3) where VILLE not in (Toulouse, Namur) ` Une condition el mentaire peut porter sur lappartenance a un intervalle de vae leurs : where COMPTE between 1000 and 4000 Une condition el mentaire peut porter sur la pr sence de certains caract` res dans e e e un nom. On utilise un alors masque : where CAT like _1 where ADRESSE not like %Neuve% Dans le masque _1, le sigle _ signie un caract` re quelconque. Par exemple, e A1, B1, C1 conviennent. Dans le masque %Neuve%, le sigle % signie une suite quelconque de caract` res (suite eventuellement vide). Ainsi e 137 rue Neuve convient.

5.4.2

Donn es extraites et donn es d riv es e e e e

La clause select permet de sp cier des donn es d riv es, cest-` -dire des valeurs e e e e a calcul es et non plus simplement extraites des tables. Ainsi, la requ te SQL e e suivante :

66

Chapitre 5. Le langage SQL

select TVA de , NPRO, = ,0.19*PRIX*QSTOCK from PRODUIT where QSTOCK > 500 produit un tableau donnant les montants de TVA des articles dont la quantit en e stock est sup rieure a 500 unit s. Le r sultat est le suivant : e ` e e TVA de TVA de TVA de TVA de TVA de NPRO CS264 PA45 PH222 PS222 = = = = = 0.19*PRIX*QSTOCK 61332 11571 34173 42883

5.4.3

Les fonctions agr gatives e

Un certain nombres de fonctions agr gatives existent en SQL. Elles permettent e ` de calculer un r sultat unique a partir de lensemble des valeurs dune colonne e dune table. Ainsi, la requ te count(*) compte le nombre de lignes trouv es dans une table, e e la requ te avg(nom-colonne) calcule la moyenne de la colonne, e la requ te sum(nom-colonne) calcule la somme de la colonne, e la requ te min(nom-colonne) calcule le minimum de la colonne, e la requ te max(nom-colonne) calcule le maximum de la colonne. e Par exemple, la requ te calculant la moyenne et le nombre des comptes des e clients de NAMUR s crit en SQL : e select Namur,avg(COMPTE),count(*) from CLIENT where VILLE~: Namur Remarquez que largument nom-colonne dans les fonctions agr gatives peut e etre remplac par toute expression a valeur num rique. Ainsi la requ te SQL e ` e e suivante : select sum(QSTOCK*PRIX) from PRODUIT where LIBELLE like %SAPIN%

Section 5.5. Les sous-requtes e calcule la valeur du stock des produits en SAPIN.

67

Remarquez aussi que la clause distinct peut etre utilis e dans largument e dune fonction agr gative. Par exemple, pour obtenir le nombre de clients diff rents e e enregistr s dans la table COMMANDE, on utilisera la requ te SQL suivante : e e select count(distinct NCLI) from COMMANDE

5.5

Les sous-requ tes e

On parle de sous-requ tes lorsque les donn es sont extraites dune seule table, e e mais que les conditions de s lection porte sur des donn es dautres tables. e e Par exemple, supposons que lon veuille trouver les commandes des clients qui habitent Namur. On peut trouver les num ros des clients de Namur par la requ te e e SQL suivante : select NCLI from CLIENT where VILLE = Namur dont lex cution donne : e NCLI C123 S127 B062 L422 Les commandes des clients de Namur sont alors obtenues par : select NCOM,DATE from COMMANDE where NCLI in (C123,S127,B062,L422) Mais il vaut mieux utiliser la structure embot e suivante : e select NCOM,DATE from COMMANDE where NCLI in (select NCLI from CLIENT where VILLE = Namur)

68

Chapitre 5. Le langage SQL

D nition 5.1 Une structure select-from dans une clause where est appel e e e une sous-requ te. e Bien s r, une sous-requ te peut contenant une sous-requ te. Par exemple, u e e pour trouver les produits qui ont et command s par au moins un client de Namur, e e on peut ecrire les sous-requ tes embot es suivantes : e e select * from PRODUIT where NPRO in (select NPRO from LIGNECOM where NCOM in (select NCOM from COMMANDE where NCLI in (select NCLI from CLIENT where VILLE = Namur ) ) ) Une table peut apparatre plus dune fois dans une requ te. Illustrons ceci e sur les deux exemples suivants. Exemple 5.1 Quels sont les clients qui habitent dans la m me localit que le client e e B512 ? La r ponse est fournie par la requ te SQL suivante : e e select * from CLIENT where VILLE in (select VILLE from CLIENT where NCLI = B512) Exemple 5.2 Quelles sont les commandes qui sp cient une quantit de produit e e ` PA60 inf rieure a celle de la commande 182 ? e La r ponse est fournie par la requ te SQL suivante : e e

Section 5.6. Les quanticateurs ensemblistes select * from COMMANDE where NCOM in (select NCOM from LIGNECOM where NPRO = PA60 and QCOM < (select QCOM from LIGNECOM where NPRO = PA60 and NCOM = 182))

69

Remarquons que lorsquun m me nom de colonne appartient dans plusieurs e ` tables (comme NCOM), par d faut, on fait toujours r f rence a la requ te la plus e ee e embot e dont la table contient une colonne de ce nom. Si deux tables ont deux e colonnes de m me nom et que lon veut lever lambigut , on peut pr xer le nom e e e de la colonne du nom de la table : CLIENT.NCLI ou COMMANDE.NCLI Remarquez enn que, pour raccourcir les commandes SQL, on peut donner un synonyme au nom de la table apparaissant dans le from et utiliser ce synonyme : select * from PRODUIT P1 where P1.PRIX>123

5.6

Les quanticateurs ensemblistes

Une condition peut porter sur lexistence (exists) ou la non existence (not exists) dau moins une ligne dans le r sultat dune sous-requ te. Illustrons ceci e e sur lexemple suivant. Exemple 5.3 Quels sont les produits qui ne sont pas command s pour linstant ? e select * from PRODUIT P where not exists ( select NPRO from LIGNECOM where NPRO = P.NPRO) Le quanticateur existentiel any signie quau moins un el ment de lensemble e satisfait la condition. Illustrons ceci sur lexemple suivant.

70

Chapitre 5. Le langage SQL

Exemple 5.4 Quelles sont les lignes de commandes de PA60 dont la quantit e command e nest pas minimale ? e select * from LIGNECOM where QCOM > any (select QCOM from LIGNECOM where NPRO = PA60) and NPRO = PA60 Le quanticateur universel all signie que que tous les el ments de lensemble e satisfont la condition. Illustrons ceci sur lexemple suivant. Exemple 5.5 Quelles sont les lignes de commandes sp ciant la quantit minimum e e du produit PA60 ? select * from LIGNECOM where QCOM <= all (select QCOM from LIGNECOM where NPRO = PA60) and NPRO = PA60

5.7

Extraction de donn es de plusieurs tables e

On parle de jointure de plusieurs tables lorsque les donn es sont extraites de e plusieurs tables pour etre pr sent es dans une table. On doit pr ciser le nom e e e des tables dont sont extraites les donn es et la r` gle dassociation des lignes des e e diff rentes tables. Illustrons ce concept sur lexemple suivant. e Exemple 5.6 Pour chaque commande, on demande joindre les informations sur ` le client a lorigine de la commande. Ceci peut etre fait au moyen de la jointure des tables COMMANDE et CLIENT : select NCOM,CLIENT.NCLI,DATE,NOM,ADRESSE from COMMANDE,CLIENT where COMMANDE.NCLI = CLIENT.NCLI

Section 5.7. Extraction de donnes de plusieurs tables e NCOM NCLI DATE 178 179 182 184 185 186 188 K111 C400 S127 C400 F011 C400 B512 12/03/96 12/03/96 14/03/96 27/03/96 02/04/96 02/04/96 03/04/96 NOM Vanbist Ferard Vanderka Ferard Poncelet Ferard Gille ADRESSE 180 r. Florimont 65 r. du Tertre 3 av. des Roses 65 r. du Tertre 17 clos des Erables 65 r. du Tertre 14 r. de lEte

71

Tableau 5.1: Jointure des tables COMMANDE et CLIENT dont le r sultat est donn a la table 5.1. e e` Expliquons le principe de construction du r sultat dune jointure. Concepe tuellement, le r sultat est obtenu comme suit : e 1. On construit une table en accouplant chaque ligne de la premi` re table a e ` chaque ligne de la seconde : from COMMANDE, CLIENT 2. On s lectionne, parmi les lignes obtenues, celles qui v rient la condition e e dassociation : where COMMANDE.NCLI = CLIENT.NCLI 3. On ne retient que les colonnes demand es : e select NCOM, NCLI, DATE, NOM, ADRESSE Remarquons que les SGBD ne proc` dent pas de la sorte : une enum ration de e e toutes les jointures possibles est tr` s inefcace, mais, dun point de vue conceptuel, e le r sultat est le m me. e e Remarquons aussi que, dans une jointure, on peut omettre la condition de jointure. On obtient alors n m lignes dans le r sultat. e Remarquons aussi que la jointure ne pr serve pas toutes les lignes des are guments. Ainsi les clients nayant pas de commandes napparatront pas dans le r sultat. Si on veut, en plus des lignes avec les clients nayant pas de commande, e on peut utiliser la commande UNION :

72 select from where UNION select from where

Chapitre 5. Le langage SQL NCOM,CLIENT.NCLI,DATE,NOM,ADRESSE COMMANDE,CLIENT COMMANDE.NCLI = CLIENT.NCLI null, NCLI, null, NOM, ADRESSE CLIENT NCLI not in (select NCLI from COMMANDE)

Il en r sultera la table 5.2. e NCOM NCLI DATE 178 179 182 184 185 186 188 null null null null null null null null null null null K111 C400 S127 C400 F011 C400 B512 B112 C123 B332 F010 B062 C003 K729 L422 S712 D063 F400 12/03/96 12/03/96 14/03/96 27/03/96 02/04/96 02/04/96 03/04/96 null null null null null null null null null null null NOM Vanbist Ferard Vanderka Ferard Poncelet Ferard Gillet Hansenne Mercier Monti Toussaint Gofn Avron Neuman Franck Guillaume Nadoy Jacob ADRESSE 180 r. Florimont 65 r. du Tertre 3 av. des Roses 65 r. du Tertre 17 des Erables 65 r. du Tertre 14 r. de lEte 23 A. Dumont 25 r Lemaitre 112 r. Neuve 5 r. Godefroid 72 r. de la Gare 8 ch. de la Cure 40 r. Bransart 60 r. de Wepion 14 ch des Roses 201 bvd du Nord 78 ch. du Moulin

Tableau 5.2: Illustration de la commande UNION Enn, on peut combiner des conditions de jointure avec des conditions de s lection. Par exemple, on peut combiner la condition de jointure e COMMANDE.NCLI = CLIENT.NCLI avec des conditions de s lection. Illustrons ceci sur lexemple suivant. e

Section 5.8. Requtes sur des donnes cycliques e e

73

Exemple 5.7 Quelles sont les commandes avec adresse du client, en se limitant aux clients de la cat gorie C1 et aux commandes ant rieures au 15/03/96 ? e e select from where and and NCOM,CLIENT.NCLI,DATE,NOM,ADRESSE COMMANDE,CLIENT COMMANDE.NCLI = CLIENT.NCLI CAT = C1 DATE < 15/03/96

5.8

Requ tes sur des donn es cycliques e e

On qualie de cyclique ou r cursive un structure de donn es qui fait, directement e e ` ou indirectement, r f rence a elle-m me. Illustrons ceci sur un exemple de la ee e table PERSONNE (voir tableau 5.3) o` chaque personne est caract ris e par son u e e matricule et peut avoir eventuellement un responsable. PERSONNE MATRICULE p1 p2 p3 p4 p5 p6 p7 p8 NOM Mercier Durant Noirons Dupont Verger Dupont Dermiez Anciers p1 p1 p4 p4 p6 p2 (RESPONSABLE)

Tableau 5.3: Exemple de donn es cycliques e Dans table PERSONNE, la colonne RESPONSABLE est une cl etrang` re e e vers la table PERSONNE elle-m me. Elle d signe le responsable de la personne e e qui peut elle aussi avoir un responsable. Cette table peut etre cr ee par la requ te SQL suivante : e e create table PERSONNE ( MATRICULE char(4) not null, NOM char(25) not null,

74

Chapitre 5. Le langage SQL RESPONSABLE char (4), primary key (MATRICULE), foreign key (RESPONSABLE) references PERSONNE) Supposons maintenant que lon veuille r pondre a la question suivante : e `

Exemple 5.8 Pour chaque personne nomm e Dupont, donner son matricule et le e nom de son responsable. Ceci peut etre fait par la requ te SQL suivante : e select from where and D.MATRICULE, R.MATRICULE, R.NOM PERSONNE D, PERSONNE R R.MATRICULE = D.RESPONSABLE D.NOM = Dupont

Illustrons le m me concept sur un autre exemple de structure r cursive e e illustr e au tableau 5.4. e COMPOSITION COMPOSE | COMPOSANT | QUANTITE PRODUIT NPRO LIBELLE (PRIX) (POIDS)

Tableau 5.4: Exemple de structure cyclique La table COMPOSITION permet de donner la composition dun produit en terme de ses sous-produits, ceux-ci pouvant aussi etre d compos s. Cette structure e e permet de repr senter, par exemple, le fait quune unit de produit 123 contient e e 0,5 unit s du produit 432 et 1,2 du produit 551. Il suft en effet, denregistrer e dans la table COMPOSITION, les deux lignes dentr es suivantes : e COMPOSITION COMPOSE COMPOSANT QUANTITE 123 123 432 551 0,5 1,2

Section 5.9. Sous-requte ou jointure ? e

75

5.9

Sous-requ te ou jointure ? e

On a parfois le choix d crire une requ te de mani` re alternative en utilisant le e e e concept de sous-requ te ou le concept de jointure. Illustrons ceci sur les deux e exemples suivants : Exemple 5.9 D terminer les commandes des clients habitant Namur. e La requ te peut s crire comme une sous-requ te de la mani` re suivante : e e e e select NCOM,DATE from COMMANDE where NCLI in (select NCLI from CLIENT where VILLE = Namur) Elle peut s crire comme une jointure sous la forme suivante : e select from where and NCOM,DATE COMMANDE, CLIENT COMMANDE.NCLI = CLIENT.NCLI VILLE = Namur

Illustrons ceci egalement sur lexemple 5.2 dont l nonc est rappel ci-dessous. e e e Exemple 5.2. Quelles sont les commandes qui sp cient une quantit de produit e e ` PA60 inf rieure a celle de la commande 182 ? e Cette requ te peut etre ecrite en utilisant le concept de sous-requ te comme suit : e e select * from COMMANDE where NCOM in (select NCOM from LIGNECOM where NPRO = PA60 and QCOM < (select QCOM from LIGNECOM where NPRO = PA60 and NCOM = 182)) Mais peut s crire de mani` re equivalente en utilisant le concept de jointure e e comme :

76 select from where and and and and

Chapitre 5. Le langage SQL C.NCOM, DATE, NCLI COMMANDE C, LIGNECOM L1, LIGNECOM L2 C.NCOM = L1.NCOM L1.NPRO = PA60 L2.NCOM = 182 L2.NPRO = PA60 L1.QCOM < L2.QCOM

Expliquons cette seconde forme : La condition C.NCOM = L1.NCOM associe a chaque commande de la table ` COMMANDE C chacune de ses lignes dans LIGNECOM L1. La conditions L1.NPRO = PA60 retient les lignes LIGNECOM L1 qui sp cient le produit PA60. e Les conditions L2.NCOM=182 and L2.NPRO=PA60 d signent la ligne de e r f rence de LIGNECOM L2 : il sagit de celle concernant la commande ee du produit PA60 dans la commande 182. La condition L1.QCOM<L2.QCOM etablit le crit` re de s lection des lignes e e LIGNECOM L1 par rapport a la ligne de r f rence de LIGNECOM L2. ` ee La jointure permet egalement deffectuer des calculs sur des quantit s extraites e de plusieurs tables. Illustrons ceci sur lexemple suivant. ` Exemple 5.10 Quelle est le montant de la commande a payer ? On peut y r pondre par la requ te SQL suivante faisant la jointure de la table e e LIGNECOM (pour chercher la quantit command e et la r f rence du produit) et e e ee la table PRODUIT (pour chercher le prix) : select NCOM, L.NPR, QCOM*PRIX from LIGNECOM L, PRODUIT P where L.NPRO = P.NPRO Enn, on peut bien s r utiliser la clause distinct si lon veut eviter les u doublons dans une jointure de plusieurs tables. Illustrons ceci sur lexemple suivant avec plusieurs jointures : select VILLE,LIBELLE from CLIENT CLI, COMMANDE COM,

Section 5.10. Extraction de donnes groupes e e LIGNECOM CLI.NCLI COM.NCOM L.NPRO = L, PRODUIT P = COM.NCLI = L.NCOM P.NPRO

77

where and and

Le r sultat contient autant de lignes de couples (VILLE,LIBELLE) quil ny en a e dans LIGNECOM. Or un m me produit peut etre command par plusieurs clients e e dune m me ville. Lajout de la clause distinct dans la clause select donnerait e lensemble des couples (v,l) lorsque dans la ville v, on a commande au moins une fois le produit l. Ceci est fait par la requ te suivante : e select distinct VILLE,LIBELLE from CLIENT CLI, COMMANDE COM, LIGNECOM L, PRODUIT P where CLI.NCLI = COM.NCLI and COM.NCOM = L.NCOM and L.NPRO = P.NPRO

5.10

Extraction de donn es group es e e

D nition 5.2 La clause group by permet de regrouper en sous-ensemble les e lignes dune table en fonction de la valeur dun champ. Illustrons ce concept sur lexemple suivant Exemple 5.11 Pour chaque groupe de client regroup s par localit , donner le e e nombre de clients du groupe et le montant moyen des avoirs en compte. La r ponse a cette question est fournie par la requ te SQL suivante : e ` e select VILLE, count(*), avg(COMPTE) from CLIENT group by VILLE dont le r sultat est donn a la table 5.5. e e` Deux remarques tr` s importantes simposent ici : e 1. On ne peut mettre dans la clause select que des noms de champ pour lesquels il nexiste quune seule valeur par groupe. Par exemple, on naurait pas pu sp cier le NOM ni la CAT. En effet, dans le r sultat, il ny a quune e e seule ligne par groupe.

78 VILLE Poitiers Namur Geneve Lille Toulouse Paris Bruxelles

Chapitre 5. Le langage SQL count(*) avg(COMPTE) 3 4 1 1 5 1 1 533.33 -2520.00 0.00 720.00 -2530.00 0.00 0.00

Tableau 5.5: Exemple dextraction de donn s group es e e 2. La colonne cit e dans la clause group by doit etre pr sente dans la clause e e select. Ceci, bien s r an de servir de cl primaire a la table r sultat. u e ` e On peut egalement imposer des conditions de s lection aux groupes par la e clause having qui est un peu l quivalent de la clause where pour le select. e Illustrons ceci sur lexemple suivant. Exemple 5.12 Donner les m mes informations uniquement pour les groupes dau e moins trois clients. La r ponse est fournie par la requ te SQL suivante : e e select from group by having VILLE, count(*), avg(COMPTE) CLIENT VILLE count(*) >= 3

Dont le r sultat est donn a la table 5.6. e e` VILLE Poitiers Namur Toulouse count(*) avg(COMPTE) 3 4 5 533.33 -2520.00 -2530.00

Tableau 5.6: Exemple de condition de s lection aux groupes. e On peut egalement utiliser dans une m me requ te SQL les concepts de groupes e e et jointures. Illustrons ceci sur lexemple suivant. Exemple 5.13 On veut obtenir la quantit totale de PA60 que chaque client a e command , par groupement sur la jointure de COMMANDE et LIGNECOM. e

Section 5.10. Extraction de donnes groupes e e

79

Comme les donn es a afcher (NCLI et somme des QCOM) appartiennent a deux e ` ` tables diff rentes, il faudra faire la jointure de ces deux tables : e select C.NCLI, count(*), sum(QCOM) from COMMANDE C, LIGNECOM L where C.NCOM = L.NCOM and NPRO = PA60 group by C.NCLI having count(*) >= 2 Pour terminer signalons que lon peut sp cier lordre des lignes dun r sultat e e par la clause order by. Illustrons ceci sur lexemple suivant. Exemple 5.14 Donner les informations sur les CLIENTS, class es par VILLE, et e ensuite par CATegorie. Ceci peut etre fait en utilisant la clause order by de la mani` re suivante : e select NCLI, NOM, VILLE, CAT from CLIENT order by VILLE,CAT Les clients vont apparatre class s par VILLE, puis dans chaque VILLE, class s e e par cat gorie. Par d faut, le classement se fait par ordre ascendant. On peut e e sp cier un ordre par (asc) pour ascendant et (desc) pour descendant. Ainsi, la e requ te suivante : e select * from PRODUIT where LIBELLE like %SAPIN% order by QSTOCK (desc) va donner les informations sur les produits en sapin class s par ordre d croissant e e de quantit en stock. e On peut sp cier le nom de la colonne sur laquelle porte le tri soit sa place e dans la clause select. Ainsi, la requ te suivante : e select from group by order by VILLE, count(*), sum(COMPTE) CLIENT VILLE 2 (desc)

a pour effet de pr senter les VILLE par ordre d croissant de population. e e

80

Chapitre 5. Le langage SQL

5.11

Comment interpr ter une requ te ? e e

En pr sence dune seule table, on proc dera ainsi : e e on consid` re la table sp ci e dans la clause from; e e e on s lectionne les lignes sur base de la clause where; e on classe ces lignes en groupes comme sp ci par group by; e e on ne retient que les groupes qui v rient la clause having; e de chacun des groupes retenus, on extrait les valeurs demand es dans la e clause select; les valeurs demand es sont ordonn es selon la clause order by. e e En pr sence de plusieurs tables, on proc dera ainsi : e e on consid` re les tables sp ci es dans la clause from; e e e on effectue la jointure de ces tables selon le crit` re de jointure de la clause e where; on s lectionne les lignes de la jointure sur la base des autres conditions de e la clause where; on classe ces lignes en groupes comme sp ci par group by; e e on ne retient que les groupes qui v rient la clause having; e de chacun de ces groupes retenus, on extrait les valeurs demand es dans la e clause select; les valeurs demand es sont ordonn es selon la clause order by eventuelle. e e Appliquons cette proc dure sur lexemple suivant : e 6 1 2 3 4 5 7 : : : : : : : select NCLI, count(*), sum(QCOM) from COMMANDE C, LIGNECOM L where C.NCOM = L.NCOM and NPRO = PA60 group by NCLI having count(*) >= 2 order by NCLI

Section 5.12. Une introduction a Microsoft Access pour Windows `

81

1. On consid` re les tables sp ci es dans la clause from : ici, il sagit des e e e tables COMMANDE et LIGNECOM. 2. On effectue la jointure de ces tables selon le crit` re de jointure de la clause e where : on va donc ici, pour chaque commande, aller chercher les lignes de la commande dans LIGNECOM. 3. On s lectionne les lignes de la jointure sur la base des autres conditions de e la clause where : ici, on ne retient que les commandes de PA60. 4. On classe ces lignes en groupes comme sp ci par group by : ici, on les e e groupe par client. 5. On ne retient que les groupes qui v rient la clause having : donc ici, les e clients ayant au moins deux commandes de PA60. 6. De chacun de ces groupes retenus, on extrait les valeurs demand es dans la e clause select : donc ici le num ro du client, le nombre de commandes de e PA60, la somme des quantit s command es de PA60. e e 7. Les valeurs demand es sont ordonn es selon la clause order by eventuelle : e e ici par ordre croissant du client. Donc cette requ te afche le num ro du client, le nombre de commandes de e e PA60, la somme des quantit s command es de PA60 pour les clients ayant e e au moins deux commandes de PA60, class s par ordre croissant du client. e

5.12
5.12.1

Une introduction a Microsoft Access pour Windows `


D marrage de Microsoft Access e

On d marrera Microsoft Access pour Windows de la mani` re suivante : e e cliquer sur le bouton d marrer en bas a gauche de l cran; e ` e pointer sur le menu programme; s lectionner le sous-menu Microsoft Access. e On se retrouve dans la fen tre initiale dAccess. On peut soit : e 1. Ouvrir une base de donn es existante : e

82

Chapitre 5. Le langage SQL si elle se trouve dans la liste, en cliquant deux fois dessus; sinon, en choisissant autres chiers. On se trouve alors dans la bote de dialogue Ouvrir et lorsque lon a rep r le bon chier, on fait ok. ee 2. Soit cr er une nouvelle base de donn es. On a le choix entre : e e cr er une nouvelle base de donn es seul; e e cr er une base de donn es avec lassistant de cr ation dapplication. e e e Ici, on va s lectionner la premi` re solution, cest-` -dire Nouvelle base de e e a donn es. Dans la fen tre Fichier nouvelle base de donn es, on doit indiquer e e e le nom que lon veut donner a la nouvelle base de donn es : ` e dans nom de chier, on indique a la place de bd1.mdb, par exemple, ` Adresses, pour introduire un chier dadresses. Lextension .mdb pour microsoft data base sajoute automatiquement. on clique sur ok. La fen tre base de donn es safche alors. On y trouve six onglets correse e pondant aux six types dobjets que lon peut rencontrer dans une base de donn es : e les Tables qui contiennent toutes les informations; les Requ tes qui permettent de s lectionner des informations; e e les Formulaires qui servent a la saisie des donn es et a lafchage des ` e ` r sultats; e les Etats qui servent a imprimer les donn es; ` e les Macro qui servent a automatiser certaines op rations; ` e les Modules qui sont des proc dures ecrites en Visual Basic. e Nous ne nous int resserons quaux deux premiers concepts : les tables et les e requ tes. e

5.12.2

Cr ation dune table e

Pour cr er une table, on se met dans longlet Tables et on clique sur le bouton e Nouveau. A nouveau, on a le choix entre : cr er directement la table en choisissant le mode cr ation; e e cr er la table avec lAssistant Table. e

Section 5.12. Une introduction a Microsoft Access pour Windows `

83

Cest la premi` re solution, la solution directe, que nous choisissons en cliquant sur e mode cr ation puis sur ok. e Une fen tre Table1 safche avec trois colonnes : e Le Nom de champ pour pr ciser les noms choisis pour d signer les champs; e e Le Type de donn es pour pr ciser le type et la longueur des donn es; e e e Une Description eventuelle du contenu du champ. Dans Nom de champ, on tape, par exemple, pour un chier dadresses : Numero Nom Prenom Rue Code Ville Pays On peut alors modier les types de donn es qui sont par d faut Texte, en cliquant e e sur la case correspondante et en utilisant le menu d roulant de droite pour choisir e le bon type : num rique, date, etc. . . e On enregistre alors la table en cliquant sur lic ne de la disquette. On doit alors o donner un nom a la table. Par exemple, taper Adresses puis ok. ` Pour quitter le mode cr ation, cliquez sur le bouton de fermeture, en haut a e ` droite de la fen tre. On se retrouve alors sur longlet table avec le nom de toutes e les tables ainsi d nies. e Pour les remplir, il suft de double-cliquer sur lic ne dune table et apparat o alors une feuille de calcul avec en ent te le nom des champs. Il suft de rentrer les e enregistrements, ligne par ligne.

5.12.3

Comment cr er une requ te ? e e

Les requ tes servent a extraire des donn es dune ou plusieurs tables, donn es e ` e e qui satisfont a certains crit` res. Pour cr er une requ te, dans la fen tre g n rale ` e e e e e e Base de donn es, on clique sur longlet Requ tes, puis sur le bouton Nouveau. A e e nouveau, on a le choix du mode : en Mode cr ation; e

84 avec Assistant Requ te Simple; e

Chapitre 5. Le langage SQL

Pour une requ te sur une seule table, on choisit Assistant Requ te Simple. Dans la e e fen tre Assistant Requ te Simple apparat : e e La table sur laquelle porte la requ te; e Dans la rubrique Champs disponibles sont enum r s tous les champs sur ee lesquels peut porter la requ te. e Pour cr er la requ te, on proc dera comme suit : e e e 1. S lectionner les champs que lon souhaite voir gurer dans le r sultat en e e cliquant sur le champ et en le d pla ant vers la droite en cliquant sur >. e c Le champ apparat alors dans Champs S lectionn s. e e S lectionner, par exemple, Nom,Prnom,Tlphone pour constituer un care e e e net des num ros de t l phones. Apr` s avoir s lectionn tous les champs e ee e e e voulus, cliquez sur Suivant. ` 2. Puis a nouveau sur Suivant et donner un nom a la requ te. Ici, par exemple, ` e rpertoire. e 3. Vous pouvez modier la requ te en s lectionnant loption Modier la struce e ture de la requ te. Dans la partie sup rieure se trouve afch e la table sur e e e laquelle porte la requ te. Dans la partie inf rieure se trouvent afch s, en e e e premi` re ligne, les champs s lectionn es avec, en deuxi` me ligne, le nom e e e e de la Table dont ils sont extraits. Pour trier les noms par ordre croissant, cliquer sur la ligne Tri en dessous du champ nom et choisir croissant dans le menu d roulant. e Pour indiquer un crit` re de s lection, on clique sur la ligne Crit` re en e e e dessous du champ. Par exemple, si on tape "Namur" dans le champ ville, on se restreint aux personnes dont la ville est Namur. On peut ne pas vouloir afcher certains champs (par exemple, ceux qui ne servent qu` introduire un crit` re de s lection). Il suft de les a e e d s lectionner dans la ligne Afcher en enlevant le v. ee 4. Pour ex cuter la requ te, il suft de la fermer et de cliquer sur son ic ne, e e o elle sex cute automatiquement. e

Section 5.12. Une introduction a Microsoft Access pour Windows `

85

5.12.4

Introduction de la notion de cl primaire e

Pour rappel, on appelle cl primaire un champ dont toutes les valeurs doivent etre e diff rentes. Cette cl primaire permet de diff rencier sans ambigut les diff rents e e e e e enregistrements dune table. On a le choix entres deux solutions : 1. soit ajouter le champ Num ro-Auto qui va ajouter des num ros cons cutifs e e e chaque fois que lon rentre un nouvel enregistrement dans la base. Par d faut e ce num ro servira de cl primaire de la table. e e 2. soit choisir un champ de la table comme cl primaire en s lectionnant ce e e champ au moment o` lon d nit la structure de la table et en cliquant sur u e lic ne de la cl . o e

5.12.5

Notion de contrainte r f rentielle ee

Une cl etrang` re indique, par exemple, que le num ro de client NCLI dans la table e e e COMMANDE doit correspondre a un des num ros de clients enregistr s comme une ` e e des valeurs de la cl primaire NCLI de la table CLIENT. e ` On parle de relation 1 a n entre la table CLIENT et et la table COMMANDE. En effet, un num ro NCLI peut apparatre une seule fois dans la table CLIENT et plusieurs e fois dans la table COMMANDE. ` Pour indiquer une relation 1 a n entre deux tables, on proc dera comme suit : e 1. Cliquer sur lic ne relations en haut a droite de l cran. Une fen tre relations o ` e e apparat. 2. Ajouter toutes les tables sur lesquelles vont porter les relations. ` 3. Il sagit dune relation 1 a n entre le champ NCLI de la table CLIENT et le champ NCLI de la table commande. On clique sur le champ NCLI de la table CLIENT et on le d place par glissement sur le champ NCLI de la table e ` COMMANDE. La relation 1 a n est automatiquement cr ee entre les deux e tables.

5.12.6

Requ tes sur plusieurs tables e

LAssistant de requ te simple ne permet que de d nir des requ tes sur une seule e e e table. Si vous voulez en faire par jointure de plusieurs tables, il faut s lectionner e le mode cr ation de la mani` re suivante : e e

86 activer longlet requ te; e cliquez sur Nouveau; double-cliquez sur mode cr ation. e Apparat la fen tre Ajouter une table. e

Chapitre 5. Le langage SQL

On s lectionne toutes les tables voulues. Elles apparaissent dans la partie e sup rieure de la fen tre avec une condition de jointure indiqu e par la e e e ` che entre les deux champs qui doivent se correspondre dans les deux e tables. On s lectionne les champs en double-cliquant sur leurs noms. Ils se reportent e automatiquement dans la liste de la partie inf rieure de la fen tre. e e Si on veut faire des calculs, plut t que de la simple extraction, o qui aura pour effet dajouter une 1. On clique sur lic ne op ration o e ligne Op rations entre la ligne Table et la ligne Tri. e 2. On active la ligne op ration pour le champ pour lequel on veut effectuer e le calcul. 3. On choisit le calcul possible parmi le menu d roulant : somme, moe yenne, min, max, compte, ecartype, var. 4. On peut aussi entrer directement la formule de calcul dans le nom du champ. Par exemple, dans le champ chiffre-aff que lon cr e on indique e chiffre-aff:[quantit]*[Prix] e Dans la ligne crit` re, on peut indiquer un des crit` res de choix suivant : e e Champ Pays Date Pays Crit` re e France Signication le pays doit etre la France

Entre #01/01/95# Et #31/03/95# etre entre les deux dates Comme S doit commencer par S etre sup rieure a 1000 e ` le nom doit contenir info.

Quantit > 1000 e Nom Comme *info*

Section 5.13. Exercices

87

5.13

Exercices

5.1. D nition dune base de donn es. Pour le sch ma de la base de donn es e e e e illustr a la gure 5.2, e`
CLIENT NCLI NOM ADRESSE VILLE (CAT) COMPTE PRODUIT NPRO LIBELLE PRIX QSTOCK

COMMANDE NCOM NCLI DATE LIGNECOM NCOM NPRO QCOM

Figure 5.2: Enregistrement des commandes de clients (a) donner sa d nition du sous la forme dune suite de requ tes SQL; e e (b) mettre en uvre au moyen de microsoft Access. 5.2. Requ te SQL. Pour cette m me base de donn es, e e e (a) ecrire la requ te SQL qui permet de donner la liste des num ros des e e clients qui ont pass au moins une commande; e (b) ecrire la requ te SQL qui permet de donner le solde moyen des comptes e des clients de la ville de Namur; (c) ecrire la requ te SQL qui permet dextraire de la table des commandes, e les commandes des clients de Namur. (d) Donner, sous la forme dune requ te SQL, la liste des clients nayant e aucune commande actuellement enregistr e dans la base. e (e) mettre en uvre au moyen de microsoft Access. 5.3. Jointure de deux tables. Pour cette m me base de donn es, e e

88

Chapitre 5. Le langage SQL (a) ecrire la requ te SQL donnant les commandes avec adresse du client, e class es par villes en se limitant aux commandes pass e avant le 1er e e avril 1996; (b) mettre en uvre au moyen de microsoft Access.

5.4. R sultat dune requ te SQL. On applique aux donn es du tableau 5.3 la e e e requ te SQL suivante : e select from where and D.MATRICULE, R.MATRICULE, R.NOM PERSONNE D, PERSONNE R R.MATRICULE = D.RESPONSABLE D.NOM = Dupont

(a) Expliquer ce que fait cette requ te et ecrire le r sultat de cette requ te e e e SQL; (b) V rier ce r sultat en mettant en uvre la requ te au moyen dAccess. e e e 5.5. Donn es group es. Donner la liste des clients ayant command exactement e e e une fois le produit PA60. 5.6. Groupement sur une jointure. Par groupement sur une jointure, donner la requ te qui etablit, pour chaque client de NAMUR, le montant total de ses e commandes. 5.7. Soci t de formation. Une soci t de formation d sire informatiser la gesee ee e tion des inscriptions aux sessions quelle organise, ainsi que la facturation. Il existe un certain nombre de s minaires de formation, chacun consacr a e e` un th` me d termin et factur a un tarif d termin . Un s minaire peut etre e e e e` e e e organis plus dune fois, ce qui correspond a autant de sessions. Les sessions e ` dun s minaire se tiennent a des dates diff rentes. Des entreprises inscrie ` e vent certains de leurs employ s a certaines sessions. Il existe un nombre e ` maximum de participants par session pour chaque s minaire (ce maximum e est ind pendant de la date de la session). Tous les mois, la soci t facture a e ee ` chaque entreprise concern e le montant correspondant a la participation de e ` ses employ s aux sessions du mois ecoul . e e (a) Traduire ce sch ma en structure de tables (sans inclure la facturation). e (b) Ecrire une requ te SQL qui v rie la contrainte sur le nombre de particie e pants a chaque session en recherchant les anomalies. Plus pr cis ment, ` e e pour chaque session, calculer le nombre dinscrits et lafcher en regard du nombre maximum.

Section 5.13. Exercices

89

(c) Ecrire une requ te SQL qui, entreprise par entreprise, calcul le montant e de sa facture du mois courant. 5.8. Soci t de formation. Une soci t de formation d sire informatiser la gesee ee e tion des inscriptions aux sessions quelle organise, ainsi que la facturation. Il existe un certain nombre de s minaires de formation, chacun consacr a e e` un th` me d termin et factur a un tarif d termin . Un s minaire peut etre e e e e` e e e organis plus dune fois, ce qui correspond a autant de sessions. Les sessions e ` dun s minaire se tiennent a des dates diff rentes. Des entreprises inscrie ` e vent certains de leurs employ s a certaines sessions. Il existe un nombre e ` maximum de participants par session pour chaque s minaire (ce maximum e est ind pendant de la date de la session). Tous les mois, la soci t facture a e ee ` chaque entreprise concern e le montant correspondant a la participation de e ` ses employ s aux sessions du mois ecoul . e e (a) Traduire ce sch ma en structure de tables (sans inclure la facturation). e (b) Ecrire une requ te SQL qui v rie la contrainte sur le nombre de particie e pants a chaque session en recherchant les anomalies. Plus pr cis ment, ` e e pour chaque session, calculer le nombre dinscrits et lafcher en regard du nombre maximum. (c) Ecrire une requ te SQL qui, entreprise par entreprise, calcul le montant e de sa facture du mois courant. 5.9. Flotte de v hicules. Pour lexercice 4.4, donner, sous la forme dune requ te e e SQL, pour chaque v hicule de livraison, le nombre clients habitant Paris e auxquels on doit livrer un colis exc dent 100 kg. On pr sentera les lignes e e du r sultat par ordre d croissant du poids moyen des livraisons a des clients e e ` parisiens de colis exc dent 100 kg. e 5.10. Soci t de transport. Une soci t de transport d sire informatiser la gestion ee ee e de son parc de v hicules. Elle dispose de 8 camions de capacit identique. e e Chaque camion est conduit a une date d termin e par un chauffeur identi ` e e e par son num ro. Le chauffeur est responsable des infractions commises e ce jour-l` par le v hicule. Chaque v hicule, achet neuf, est soumis a un a e e e ` contr le technique tous les ans, a partir de sa quatri` me ann e. La liste des o ` e e chauffeur est la suivante : Fichier CHAUFFEUR NO NOM PRENOM 1 LEDRU YVES 2 HENNEAUX PAUL 3 STEEN LOUIS

RUE CODE Rue des Affrouettes 23 69000 Avenues des comble 12 45000 Avenue du Gnral 118 e e 3000

VILLE LYON ORLY MOUTIERS

90 4 5 6 7 8 9 10 VANLAYES LATOUR CATTOIR LAPORTE LABBE DELARUE RENAULT ROBERT GEORGE LOUIS JEAN JULES JACQUES ALBAN

Chapitre 5. Le langage SQL Avenue du port 15 Rue des crocus 45 Rue du petit prince 2 Boulevard Leopold 3 Rue de Nivelles Route du bourg 34 Place du village 1 59000 38000 75000 3000 38000 42990 69000 LILLE GRENOBLE PARIS MOUTIERS GRENOBLE ST FOY LYON

La liste des v hicules avec leur date dachat et le num ro du conducteur e e pour les trois derniers mois sont donn s ci-dessous (une barre signie que e le camion est rest au d p t ce jour-l` : e e o a Fichier CAMION IMMATR DATEACHA 5687UV69 12.03.96 6725UY69 2.12.98 7845MP03 25.02.90 1459FK03 15.04.95 5647UK38 18.05.89 9023IM38 01.04.92 1443LK75 13.05.97 3602OL42 12.06.94

... 19/05/99 20/05/99 ... 1 1 ... 10 ... 4 3 ... 6 7 ... 5 5 ... 8 ... 2 2 ... 9 8

On doit conserver la trace du chauffeur qui a conduit le camion non seulement pour le jour courant mais aussi pour les trois derniers mois an de pouvoir identier le responsable lorsquune contravention parvient par la suite a ` lentreprise de transport. On veut donc pouvoir, pour toute date vielle de moins de trois mois, dire qui conduisait chaque camion (premi` re exigence). e De m me, on veut pouvoir a tout moment identier les camions qui vont etre e ` soumis au contr le technique dans le mois qui vient (seconde exigence). o (a) Proposez une structure de donn es sous forme de tables avec leurs cl s e e primaires et les relations entre tables qui permette de r pondre a ces e ` deux engeances. On donnera sa r ponse sous forme graphique. e (b) Ecrire une requ te SQL qui donne la liste des v hicules ayant a passer e e ` le contr le technique dans le courant du mois de juin 99. o (c) Ecrire, pour le jour courant (20/05/99), une requ te SQL qui permet e didentier, a partir du num ro dimmatriculation dun camion, les nom ` e et pr nom de son chauffeur ce jour. e

Chapitre 6 Etude de cas 2 : voyages a riens e


Le domaine dapplication concerne des vols organis s par une compagnie a rienne, e e et dont on veut d terminer la structure du co t. On consid` re donc quun vol relie e u e deux a roports en passant par un certain nombre d tapes, qui sont egalement des e e a roports. Un a roport porte un nom, mais sera le plus souvent d sign par un code e e e e standard propre aux compagnies a riennes. Une m me ligne peut etre desservie e e a des dates diff rentes par des appareils diff rents. Un appareil, d sign par son ` e e e e mod` le, est caract ris par la capacit de ses r servoirs (en kilos de carburant) ainsi e e e e e que la consommation a vide, equipage compris (en kilos de carburant par km). On ` connat aussi sa charge utile maximale et sa consommation suppl mentaire par e kilo de charge (en kilos de carburant par kilo de charge et par km). Il est a noter ` cependant que la consommation a vide ninclut pas le transport du carburant lui` m me. On admet que la charge utile (fret et passagers) est constante pour toute la e dur e du vol, mais quelle peut varier dune date a lautre. On connat la longueur e ` de chaque etape, cest-` -dire la distance entre deux a roports cons cutifs de ce vol. a e e On supposera que la consommation en vol est une fonction lin aire de la charge e emport e (charge utile + carburant). e A chaque escale, lappareil est ravitaill en carburant. Celui-ci est achet au e e tarif local (en dollars par kilo). Le tarif local d pend de la date et de la roport. e e Lorsque lappareil atterrit a la n de son vol, ainsi qu` la roport de d part, ses ` a e e r servoirs peuvent contenir une quantit r siduelle non consomm e lors du pare e e e cours du tron on pr c dent. Pour effectuer le tron on suivant, il est g n ralement c e e c e e n cessaire dajouter au r servoir une quantit qui permet datteindre lescale ou e e e la roport suivant. Il est cependant possible demporter une quantit sup rieure e e e a ce qui est strictement n cessaire. Ce suppl ment peut etre int ressant si le ta` e e e rif local est particuli` rement bas et si le tron on suivant nest pas trop long. On e c fera lhypoth` se que la valeur nanci` re dune quantit r siduelle est a calculer e e e e ` au tarif de lendroit o` cette quantit est observ e, donc a latterrissage (=valeur u e e ` de revente). On notera que lappareil est pr sum devoir consommer la quantit e e e r siduelle a la roport de d part et quil faut donc la lui imputer, mais quil na pas e ` e e 91

92

Chapitre 6. Etude de cas 2 : voyages ariens e

consomm celle qui subsiste apr` s latterrissage nal, et quil ne faut donc pas la e e lui imputer puisquelle naura pas servi au vol. 6.1. Construire le sch ma conceptuel de la base de donn es qui permet le calcul e e du co t des vols. u 6.2. Produire le sch ma SQL correspondant. e 6.3. Pour un vol donn (ID) a une date donn e (D) et pour une quantit r siduelle e ` e e e initiale dans les r servoirs (QRES INIT), etablir le mod` le de calcul qui e e permet le calcul du co t total du vol (CoutVol). u 6.4. Ecrire les commandes SQL qui permettent daller extraire les donn es n e e cessaires de la base de donn es. e 6.5. Impl menter en EXCEL le mod` le de calcul pour les donn es suivantes : e e e ESCALE TRONCON CODE TARIF NUM.TR DISTANCE CODE.DE QEMP BAH 0,27 1 4900 CDG 90000,00 CDG 0,348 2 5500 BAH 112000,00 HLP 0,33 3 2700 SIN 42000,00 LAX 0,35 4 4200 HLP 75000,00 NOU 0,4 5 2100 NOU 30000,00 PPT 0,335 6 5300 PPT 103000,00 SIN 0,3 Tableau 6.1: Les tarifs et les tron ons du vol consid r . c ee La QRESDEPART vaut 10 000, la CHARGE vaut 30 000, la CAP.RES vaut 120 000, la CONS.VIDE vaut 7, la CONS CH vaut 0,000 15 et le CODE ARR est LAX.

Bibliographie
[1] Michel BRINGER et Jean-Fran oise DAUX, Informatique appliqu e a la c e ` gestion, Travaux pratiques, Editions Foucher, Paris, 1994. [2] EXCEL, Guide de lutilisateur, Microsoft, 1992. [3] Vincent GIARD, Gestion de la production et des ux, Economica, Paris, 2003. [4] Jean-Luc HAINAUT, Base de donn es et mod` les de calcul, Interedition, e e 1994. [5] F.S. HILLIER et G.S. LIEBERMAN, Introduction to Operations Research, 6` me edition, Mac Graw-Hill International Editions, Singapour, 1995. e [6] F.S. HILLIER, M.S. HILLIER et G.S. LIEBERMAN, Introduction to Management Sciences, 1` re edition, Mac Graw-Hill International Editions, Boston, e 2000. ` e [7] LACAZE Dominique, Optimisation appliqu e a la gestion et a l conomie, e ` Economica, 1990. [8] D. G. LUENBERGER, Linear and NonlinearProgramming, Addison-Wesley, 1984. [9] Yves NOBERT, Roch OUELLET et R gis PARENT, La recherche op rae e tionnelle, Ga tan Morin Editeur, Montr al, 1995. e e [10] Jean-Fran ois PHELIZON, Informatique Op rationnelle I, m thodes relec e e vant de loptimisation, Economica 1976. [11] Jean-Fran ois PHELIZON, Informatique Op rationnelle II, mod` les conduic e e ` sant a la simulation, Economica 1977. [12] G rard REBOUL, Informatique de gestion, Analyse et mod` le relationnel, e e Collection Express, Dunod, Paris, 1997.

93

94

Bibliographie

[13] SIMMONARD Michel, La programmation lin aire, Dunod 1972. e [14] M.P. WILLIAMS, Model building in Mathematical Programming, John Wiley, 1990. [15] M.P. WILLIAMS, Model solving in Mathematical Programming, John Wiley, 1992. [16] XPRESS-MP, User Guide and Reference Manual, Dash Associates, Northants, 1997.

Vous aimerez peut-être aussi