Vous êtes sur la page 1sur 91

ROYAUME DU MAROC

Office de la Formation Professionnelle et de la Promotion du Travail

OFPPT

DIRECTION RECHERCHE ET INGENIERIE DE FORMATION

RESUME THEORIQUE & GUIDE DE TRAVAUX PRATIQUES

Module : 5 Manipulation d'une base de donnes

SECTEUR SPCIALIT NIVEAU

: TERTIAIRE ET NTIC : SYSTME ET RSEAUX INFORMATIQUES : TECHNICIEN SPCIALIS

Module N 5 Manipulation de base de donne

Filire : TSSSRI

REMERCIEMENT
La DRIF remercie les personnes qui ont contribu llaboration du prsent document. Pour la supervision :

- MME.BENNANI WAFAE - M. ESSABKI NOURDDINE

DIRECTRICE CDC TERTIAIRE & TIC CHEF DE DIVISION CCFF

Pour la conception :

- ELGHOLABZOURI MOUNIR

Formateur l ISTA Hay Riad

Pour la validation :

- JELLAL ABDELILAH

Formateur animateur au CDC Tertiaire & TIC

Les utilisateurs de ce document sont invits communiquer la DRIF toutes les remarques et suggestions afin de les prendre en considration pour lenrichissement et lamlioration de ce programme. Said Slaoui

Page 2/91

TABLE DE MATIERE

TABLE DE MATIERE ......................................................................................................................................1 PARTIE 1 OBJECTIFS ..................................................................................................................................4 PARTIE 2 SGBD PRINCIPE ET FONCTIONNEMENT ...................................................................7 I GENERALITES SUR LES BASES DE DONNEES .................................................................................................7 II OBJECTIFS DE L'APPROCHE SGBD ..............................................................................................................8 III ARCHITECTURE FONCTIONNELLE D'UN SGBD : ANSI-SPARC .............................................................9 IV FONCTIONNEMENT D'UN SGBD ................................................................................................................11 V PRINCIPAUX MODELES LOGIQUES ...............................................................................................................12 PARTIE 3 CONCEPTION ET DEMARCHE .........................................................................................16 I CONCEPTION DE BASES DE DONNEES ..........................................................................................................16 II DEMARCHE DE CREATION DUNE BASE DE DONNEES ................................................................................17 III LES REDONDANCES ....................................................................................................................................20 PARTIE 4 CREATION ET MANIPULATION DES BASES DE DONNEE AVEC MS ACCESS ..............................................................................................................................................................23 I CREATION DES TABLES .................................................................................................................................23 II SAISIE DE DONNEE ET CREATION DE FORMULAIRE ...................................................................................31 III MANIPULATION DES DONNEE ET CREATION DES REQUETE......................................................................40 IV LANGAGE SQL ............................................................................................................................................46 V LES FORMULAIRES ET SOUS- FORMULAIRES ..................................................................................56 VI LES ETATS ...............................................................................................................................................57 PARTIE 5 TRAVAUX D'APPLICATION .............................................................................................64 INTRODUCTION.................................................................................................................................................64 ATELIER N 1 CREATION DE TABLES ..........................................................................................................65 ATELIER N 2 REMPLISSAGE DES TABLES ..................................................................................................66 ATELIER N 3 PROPRIETE DES TABLES .......................................................................................................67 ATELIER N 4 LES REQUETES .....................................................................................................................68 ATELIER N 5 LES FORMULAIRES ...............................................................................................................70 ATELIER N 6 LES FORMULAIRES (SUITE) .................................................................................................71 ATELIER N 7 LES ETATS ............................................................................................................................72 ATELIER N 8 LES MACROS ........................................................................................................................73 ATELIER N 9 GESTION DES COMMANDES (ATELIER RECAPITULATIF) ....................................................75 PARTIE 6 EXERCICES DAPPLICATIONS (LANGAGE SQL) ...................................................78 PARTIE 7 EVALUATION............................................................................................................................83 ANNEXE .............................................................................................................................................................87

Module N 5 Manipulation de base de donne

Filire : TSSSRI

PARTIE 1 Objectifs OBJECTIFS OPERATIONNELS DE REMIER NVEAU DE COMPORTEMENT

COMPORTEMENT ATTENDU Pour dmontrer sa comptence, le stagiaire doit utiliser les techniques de manipulation d'une base de donnes l'aide d'un logiciel de bases de donnes selon les conditions, les critres et les prcisions qui suivent.

CONDITIONS DEVALUATION Travail effectu avec : un micro-ordinateur ; un logiciel de base de donnes ; une imprimante. Travail effectu partir des source de rfrence et tude de cas CRITERES GENERAUX DE PERFORMANCE Respect des consignes et du temps allou. Utilisation judicieuse des commandes. Interprtation juste des messages apparaissant l'cran. Sauvegarde et restauration appropries des donnes. Utilisation optimale des fonctions d'aide des logiciels et autres sources de rfrence. Respect des rgles de la scurit.

OBJECTIFS
A. Analyser la demande pour manipuler une Base de donnes B. Traiter et manipuler les donnes C. Adapter la structure de la base de donnes de nouveaux besoins D. Documenter la base de donnes

Module N 5 Manipulation de base de donne

Filire : TSSSRI

OBJECTIFS OPERATIONNELS DE SECOND NIVEAU

LE STAGIAIRE DOIT MAITRISER LES SAVOIRS, SAVOIRS-FAIRE, SAVOIR-PERCEVOIR OU SAVOIR-ETRE JUGES PREALABLES AUX APPARENTISSAGES DIRECTEMENT REQUIS POUR LATTEINTE DE LOBJECTIF DE PREMIER NIVEAU, TELS QUE :

Avant dapprendre analyser la demande pour manipuler une Base de donnes. (A) :

1. Dcrire les consquences des systmes de gestion de base de donnes sur le fonctionnement dune entreprise. 2. Dcrire les caractristiques des bases de donnes. 3. Distinguer les types de bases de donnes. 4. Enumrer les utilisations possibles dune base de donnes. 5. Expliquer au stagiaire le principe des bases de donnes relationnelles.. 6. Dcrire au stagiaire les phases de cration dune base de donnes simple 7. Analyser la demande (2 tables avec une relation).

Avant dapprendre Traiter et manipuler les donnes (B) :

1. Enumrer les inconvnients dune mthode classique de recherche des donnes. 2. Montrer la souplesse dutilisation dun SGBDR pour la recherche des donnes.

Avant dapprendre adapter la structure de la base de donnes de nouveaux besoins. (C): Sensibiliser le stagiaire l'intrt de la scurit des donnes. Avant dapprendre documenter la base de donnes (D):

Sensibiliser le stagiaire la terminologie correctement en anglais et en Franais

Module N 5 Manipulation de base de donne

Filire : TSSSRI

PARTIE 1 SYSTEME DE GESTION DE BASE DE DONNEE, PRINCIPE ET FONCTIONNEMENT

Module N 5 Manipulation de base de donne

Filire : TSSSRI

PARTIE 2 SGBD PRINCIPE ET FONCTIONNEMENT I Gnralits sur les bases de donnes


Dfinition et Historique Une base de donnes est un ensemble structur de donnes enregistres sur des supports informatiss, pouvant satisfaire simultanment plusieurs utilisateurs de faon slective, en un dlai raisonnable. Le concept de Base de Donnes (BDD) est apparu vers 1960, face au nombre croissant d'informations que les entreprises devaient grer et partager : Chaque nouvelle application crait alors ses propres fichiers de donnes et ses propres programmes ; le concept de base de donnes va l'encontre de cette faon de procder : il permet la centralisation, la coordination, l'intgration et la diffusion de l'information archive. La base de donnes enregistre les faits ou vnements qui surviennent dans la vie d'un organisme, pour les restituer la demande : elle permet galement de tirer des conclusions en rapprochant plusieurs faits lmentaires. Les donnes peuvent tre manipules par plusieurs utilisateurs ayant des vues diffrentes sur ces donnes ("points de vue" diffrents). La structure densemble des donnes suit une dfinition rigoureuse appele SCHEMA. Facteurs lis au dveloppement des SGBD : augmentation des capacits mmoire, et diminution des temps d'accs apparition sur le march dapplications fiables et diversifies, qui doivent partager leurs donnes dveloppement des systmes de gestion en temps rel : "Gestion transactionnelle" approche globale "oriente donnes" des problmes de gestion : les donnes sont organises de faon rationnelle plutt que dfinies au coup par coup selon les applications raliser.

Rappel sur les systmes de gestion de fichiers Toute manipulation de fichier exige trois niveaux dintervention, et trois couches logicielles : Gestion du support physique : disques durs, disquette, streamers Pilote dentres-sorties (Driver) Gestion des structures internes des fichiers, et des mthodes daccs : ouverture, fermeture, lecture, criture Systme de gestion de fichiers (SGF) Gestion des contenus : calculs, tests, affichages ... Programmes applicatifs Applications Systme d'exploitation Matriel

Ouvrir, fermer lire, crire Programme applicatif Code derreur ou Donnes logiques
Niveau Logique Systme de Gestion de Base de donnes : SGBD

Demande d'un enregistrement physique

Units de lecture et/ou criture

SGF
Code derreur ou Enregistrement physique

Niveau Physique

Ensemble des programmes et des langages de commande qui permettent de :

Module N 5 Manipulation de base de donne

Filire : TSSSRI

dfinir des "bases de donnes", et des relations entre les lments de chaque base ; spcifier le traitement de ces donnes : interrogations, mises jour, calculs, extractions... Le SGBD reoit des commandes aussi bien des programmes d'application que des utilisateurs : il commande les manipulations de donnes, gnralement par l'intermdiaire d'un SGF.

Utilisateur Ouvrir, fermer, Gestion de la Base lire, crire SGBD Code rponse, Programme applicatif Donnes logiques SGF Enreg. physique ou code erreur Demande d'un enreg. physique Units De Lecture/ Ecriture

II Objectifs de l'approche SGBD


Pour pallier aux inconvnients des mthodes classiques de gestion de fichiers, les SGBD visent quatre objectifs : intgration et corrlation, flexibilit (indpendance), disponibilit, scurit. Ces objectifs exigent une distinction nette entre les donnes et les procdures de manipulation de ces donnes : aux donnes, on associera une fonction d'administration des donnes, aux procdures de manipulation une fonction de programmation.

Intgration et corrlation Dans les systmes classiques, chaque application gre ses donnes dans ses propres "fichiers", do : Un risque de redondance, et un danger d'incohrence des donnes La mme donne peut appartenir plusieurs applications, induisant une dperdition de stockage. Toute modification de cette donne est enregistrer plusieurs fois : si cette mise jour multiple n'est pas effectue correctement, les donnes deviennent incohrentes. Le cot de la mise jour augmente du fait de la multiplication des entres-sorties physiques. Une difficult pour crer de nouveaux traitements Les nouvelles applications entranent des duplications supplmentaires de donnes. Leur intgration avec les applicatifs en exploitation entrane des modifications importantes.

Dans l'approche SGBD, un "rservoir" commun (intgration) est constitu, reprsentant une modlisation (corrlation) aussi fidle que possible de l'organisation relle de l'entreprise : Toutes les applications puisent dans ce rservoir, les donnes qui les concernent, vitant ainsi les duplications. Mais le partage des donnes entre les utilisateurs pose le problme de la synchronisation des accs concurrents.

Flexibilit ou indpendance Dans les systmes classiques, tout changement intervenant dans le stockage des donnes (support, mthode d'accs physique) entrane des modifications lourdes des applications correspondantes. L'approche SGBD poursuit trois objectifs, pour assurer lindpendance des donnes par rapport aux traitements : indpendance physique: tout changement de support, de mthode d'accs reste transparent au niveau de l'utilisateur. indpendance logique : les programmes d'application sont rendus transparents une modification dans l'organisation logique globale, par la dfinition de sous-schmas couvrant les besoins spcifiques en donnes.

Page 8/91

indpendance vis--vis des stratgies d'accs : l'utilisateur n'a plus prendre en charge l'criture des procdures d'accs aux donnes. Il n'a donc pas intgrer les modifications tendant optimiser les chemins d'accs (ex: cration d'index).

Disponibilit Le choix d'une approche SGBD ne doit pas se traduire par des temps de traitement plus longs que ceux des systmes antrieurs. Lutilisateur doit ignorer l'existence d'utilisateurs concurrents. L'aspect "performance" est donc crucial dans la mise en oeuvre d'une base de donnes. Un tel objectif ne peut tre atteint que si la conception d'une base de donnes est mene de faon rigoureuse avec un dcoupage fonctionnel adquat. Les rgles et contraintes inhrentes sont voques lors de l'apprentissage d'une mthodologie d'analyse (exemple MERISE).

Scurit La scurit des donnes recouvre deux aspects : l'intgrit, ou protection contre l'accs invalide (erreurs ou pannes), et contre l'incohrence des donnes vis--vis des contraintes de l'entreprise. la confidentialit, ou protection contre l'accs non autoris ou la modification illgale des donnes. Pour ne pas trop affecter les performances, la scurit doit galement tre prise en compte ds la phase de conception.

III Architecture fonctionnelle d'un SGBD : ANSI-SPARC


Dans le cadre du groupe de normalisation nord amricain (ANSI), un groupe d'tudes a t cr en 69, Standard Planning and Requirement Committee (SPARC) avec pour mission, une standardisation des SGBD. Les travaux ont abouti en 75 (ANSI 75) par la proposition d'une architecture multi-niveaux : chaque niveau fonctionnel, sont associs un modle et un schma de donnes, un langage de description de donnes (LDD) permettant de dcrire les donnes du schma, et un langage de manipulation de donnes (LMD) permettant de les utiliser (accs pour consultation, mise jour...).
Programmeur d'application

Modle externe

Schma Externe
Utilisateur 1

Schma externe
Utilisateur 2

Schma externe
Application 3

Modle conceptuel

Schma conceptuel

Analyste

Schma Modle interne interne

Administrateur de la base

Niveau conceptuel Cest une abstraction aussi fidle que possible, de l'univers de l'entreprise, aprs modlisation et indpendamment de toute rfrence l'utilisation et l'implantation en machine.

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Le modle conceptuel de donnes (MCD) permet le passage d'un concret inaccessible (l'univers rel) un abstrait manipulable : le schma conceptuel. Celui-ci peut donc tre considr comme la description du contenu de la base : c'est le rsultat d'un travail d'analyse et de conception d'un systme d'information automatis. Un schma conceptuel doit offrir les caractristiques suivantes : puissance de reprsentation : aspects structurels, contraintes existant dans l'univers rel. stabilit et flexibilit : l'ajout d'une nouvelle donne ou d'une nouvelle contrainte ne doit pas entraner de changement important dans le schma. simplicit de comprhension : nombre d'lments rduit, dissociation claire des diffrents concepts. simplicit d'utilisation : nombre restreint d'outils ou de primitives de manipulation. base formelle : la dfinition du schma doit s'appuyer sur une mthode rigoureuse, mathmatique, pour viter toute ambigut d'interprtation et pour garantir la fiabilit des donnes. Pour aboutir au schma conceptuel, l'analyste doit reprer dans le rel, et recenser de manire exhaustive, toutes les entits et toutes les associations :

Une entit peut tre dfinie comme une personne, un objet, un lieu, un statut, un vnement qui ont une existence dans le monde rel. C'est un objet concret ou abstrait, possdant un certain nombre de caractristiques spcifiques (exemple : le produit x cote y francs). Gnralement, les entits du monde rel se manifestent travers des faits lmentaires. Certains faits faisant intervenir plusieurs entits, il apparat la notion d'association. Une association (ou lien) est un ensemble de deux ou plusieurs entits, chacune d'elles jouant un rle particulier. Exemple : le fait que la "voiture x" appartienne la "personne y" est une association entre les entits "voiture " et "personne". Selon la notation CODASYL, trois types de liens peuvent tre envisags :

les liens fonctionnels nots N : 1 On a un lien fonctionnel N:1 de A vers B si toute occurrence de A dtermine au plus une occurrence de B, et si toute occurrence de B, correspond un nombre quelconque doccurrences de A. Exemple : dans une compagnie arienne, connaissant le numro d'un vol, on en dduit d'une manire unique la destination, mais plusieurs vols peuvent avoir la mme destination.

Numros Vols

Destinations
X Y Z

X Y Z W

les liens hirarchiques nots 1 : N. On a un lien hirarchique 1:N de A vers B si une occurrence de A peut dterminer un nombre quelconque doccurrences de B et si, une occurrence de B, correspond au plus une occurrence de A. Exemple : la polygamie est un lien 1 : N de "homme" vers "femme". - les liens maills nots N : M. On a un lien maill de A vers B s'il n'existe aucune restriction sur le nombre d'occurrences de A et B intervenant dans le lien.

Exemple : dans un lyce donn, un enseignant peut dispenser des cours dans plusieurs matires diffrentes ; de la mme faon, une matire peut tre dispense par plusieurs enseignants.

Page 10/91

Niveau externe Le niveau externe comprend les "vues" spcifiques dfinies pour la manipulation des donnes. Il prend en compte les contraintes d'accs imposes par la nature des applications considrer (indpendamment des caractristiques techniques) et exprime les besoins en donnes des diffrents utilisateurs, ou applications. Le modle logique des donnes (MLD) utilis ce niveau externe peut diffrer de celui utilis au niveau conceptuel. Ainsi, certaines vues peuvent ne pas tre construites dans la base, mais dduites par calcul partir de certaines donnes du schma conceptuel (exemple : anciennet obtenue par diffrence entre anne en cours et annne d'embauche dans la socit).

Niveau interne ou Physique Il correspond la reprsentation en machine, aussi efficace que possible, du schma conceptuel : le schma physique intgre les caractristiques techniques (choix du SGBD, du matriel, du systme dexploitation). L'efficacit doit tenir compte d'une part des contraintes d'implantation (taille des disques, optimisation du systme de fichiers), d'autre part des critres d'utilisation (traitement interactif ou en batch, selon la frquence dutilisation et la dure du traitement).

IV Fonctionnement d'un SGBD


Chronologie des oprations dans linterrogation dun SGDB Un programme d'application A met une demande de lecture de donnes au SGBD sur une des bases : Le SGBD traite la demande en consultant le sous-schma externe relatif au programme d'application A, obtenant ainsi la description des donnes. Le SGBD consulte le schma conceptuel et dtermine le type logique de donnes extraire. Le systme examine la description physique de la base en rapport avec la requte logique et dtermine le (ou les) enregistrement(s) physique(s) lire. Le systme lance une commande au systme d'exploitation pour rechercher physiquement l'enregistrement dsir. Le systme d'exploitation, par le biais de ses mthodes d'accs, accde l'enregistrement physique. Les donnes demandes sont transfres dans les buffers, ou mmoires tampons. Le SGBD, partir d'une comparaison entre le schma logique global (conceptuel) et le sousschma externe de lapplication A, extrait des donnes stockes dans le buffer, l'enregistrement logique rclam par le programme d'application. Il effectue galement les transformations ventuelles de format. Le SGBD transfre les donnes des buffers dans la zone de liaison du programme d'application A. Le SGBD fournit galement des informations "d'tat" au programme d'application, lui signalant en particulier les erreurs ventuellement constates au cours du processus d'extraction. Le programme d'application, qui dispose des donnes et d'informations de "service" en assure la bonne exploitation ! Les ordres d'criture dans la base physique sont traits par un processus similaire, toute modification ou adjonction tant en gnral prcde d'une opration de lecture. A signaler que, dans la majorit des cas, le SGBD doit traiter simultanment plusieurs demandes de donnes en provenance de plusieurs programmes d'application, utilisant plusieurs schmas externes diffrents.

Les langages d'un SGBD Cette prsentation des SGBD fait apparatre la ncessit de bien diffrencier deux tapes : la dfinition des donnes par ladministrateur de la base (DBA) leur utilisation par les utilisateurs ou les programmeurs d'application. Le SGBD met donc disposition deux types de langage : LDD et LMD Langage de Description de Donnes : LDD

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Il permet de dcrire prcisment la structure de la base et le mode de stockage des donnes. Alors que l'utilisation de fichiers permet seulement une description de donnes interne au programme, dans une approche Base de Donnes, on effectue la description de toutes les donnes une fois pour toutes : elle constitue l'ensemble des tables et dictionnaires de la base, son schma (terminologie CODASYL). En particulier, il prcise la structure logique des donnes (nom, type, contraintes spcifiques...), la structure physique (mode d'implantation sur les supports, mode d'accs), la dfinition des sous-schmas ou "vues".

Langage de Manipulation de Donnes : LMD L'utilisation d'une BDD suppose un grand nombre d'utilisateurs, souvent non informaticiens, ayant des tches et des besoins varis auxquels le LMD doit pouvoir rpondre. Le SGBD fournit deux niveaux daccs : le langage d'interrogation, ou langage de requte interactif vite le recours des langages gnraux de programmation. Il doit avoir une syntaxe souple, si possible graphique, tre accessible aux non-spcialistes et permettre la formulation de demandes utilisant des critres varis et combins. le langage hte pour les traitements rguliers, le SGBD doit fournir une interface permettant l'utilisation de la base l'aide des langages procduraux (COBOL, Pascal, C/C++.), en incorporant les requtes dans des programmes classiques. Classification des LMD langages navigationnels (ex : SYMBAD) dans les SGBD hirarchiques ou rseaux. Les requtes du langage dcrivent les chemins d'accs aux diffrentes donnes, celles-ci tant gnralement chanes entre elles. langages algbriques (ex : SQL voir en dtail chap. 4 part. 3) Dans les SGBD relationnels. Ils utilisent, pour fournir des rsultats aux requtes, les oprateurs de l'algbre relationnelle.

V Principaux modles logiques


Les trois principaux modles sont, dans l'ordre chronologique de leur arrive sur le march, le modle hirarchique, le modle rseau (ou navigationnel), le modle relationnel. Le modle hirarchique Exemple : le Systme dinformation d'une compagnie arienne

Socit

Salaris

Vols

Matriel

Pilotes

Htesses

Entretien

Administratif

L'anctre le plus rpandu est le SGBD IMS (Information Management System), dvelopp et commercialis par IBM dans les annes 70 Caractristiques gnrales du modle :
Page 12/91

Forte dpendance entre la description de la structure des donnes et la manire dont celles-ci sont enregistres sur le support physique. Les lments de base du modle sont des enregistrements logiques relis entre eux pour constituer un arbre ordonn. Les entits (ou segments) constituent les noeuds, celui de plus haut niveau portant le nom de racine ; les branches (pointeurs logiques entre entits) constituent les liens. Chaque segment est une collection d'objets appels champs (ou Fields). Chaque segment a obligatoirement un pre (sauf la racine), et peut avoir plusieurs fils. Avantages : rigueur des structures et des chemins d'accs simplicit relative de l'implmentation adquation parfaite du modle une entreprise structure arborescente.

Inconvnients : les accs se font uniquement depuis la racine la structure interdit les liens N:M, ne permettant que le lien 1:N. La reprsentation d'autres relations impose de ce fait une redondance de l'information. Exemple : comment reprsenter dans ce modle, un parc de vhicules et un ensemble de chauffeurs, chaque chauffeur pouvant conduire plusieurs vhicules, et un vhicule pouvant tre conduit par plusieurs chauffeurs ? les "anomalies" que l'on constate lors des oprations de mise jour (insertion, destruction, modification) : l'limination d'un noeud entrane l'limination de tous les segments de niveau infrieur qui lui sont rattachs (risque de perdre des donnes uniques) indpendance logique trs rduite : la structure du schma doit reflter les besoins des applications. pas d'interface utilisateur simple. Le modle en rseau Evolution du modle hirarchique intgrant les rsultats du travail du groupe CODASYL (comit de langage de programmation), qui avait dmarr l'tude d'une extension de COBOL pour manipuler les bases de donnes. En 1969, il donne ses premires recommandations concernant syntaxe et smantique du LDD et du LMD. Mme si cette vue est un peu simplificatrice, une base en rseau peut tre dcrite comme un certain nombre de fichiers comportant des rfrences les uns vers les autres. Les entits sont connectes entre elles l'aide de pointeurs logiques : un enregistrement d'un ensemble de donnes A est associ une srie d'enregistrements (ou records) d'un autre ensemble de donnes B. On constitue ainsi des SET, ou COSET, structure fondamentale du modle en rseau le lien entre les enregistrements de A et ceux de B est 1:N le COSET comporte un type d'enregistrement "propritaire" (l'enregistrement de A est dit OWNER) et un type d'enregistrement "membre" (les enregistrements de B sont MEMBER).

Avantages et inconvnients du modle : aucune restriction dans la conception : un type de "record" peut la fois tre propritaire et membre de plusieurs sets reprsentation naturelle des liens maills N:M pas d'anomalies pour les oprations de stockage commercialisation importante des systmes correspondants (DMS, IDMS, TOTAL, IDS II, SOCRATE...), MAIS pas d'indpendance par rapport aux stratgies d'accs procduralit importante des langages de manipulation ; l'utilisateur doit "naviguer" dans le rseau logique constitu par les enregistrements et les chanes de pointeurs. Exemple : schma reprsentant le sous-systme d'information Produits / magasins de stockages / fournisseurs / domiciliations bancaires

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Produits

Fournisseurs

Magasin de stockage

Produit/Fournisseur

Domiciliation bancaire

Le modle relationnel C'est un article publi en 1969 par un mathmaticien du centre de recherche IBM, Codd, qui dfinit les bases de ce modle relationnel. Codd s'est intress au concept d'information et a cherch le dfinir sans se proccuper de la technique informatique, de ses exigences et de ses contraintes. Il a tudi un modle de reprsentation des donnes qui repose sur la notion mathmatique de "relation". Dans la pratique, une relation sera reprsente par une table de valeurs.

Exemple: reprsentation d'une table du personnel Matricule 350 780 320 490 Nom Durand Dupond Veillon Martin poste Employ Cadre PDG Cadre Salaire 8000 15000 25000 15000 N dept 320 870 400 320

Dfinitions Une relation est un ensemble de tuples (lignes), dont l'ordre est sans importance. Les colonnes de la table sont appeles attributs ou champs. Lordre des colonnes est dfini lors de la cration de la table. Une cl est un ensemble ordonn d'attributs qui caractrise un tuple. Une cl primaire le caractrise de manire unique, l'inverse d'une cl secondaire. On dit qu'un attribut A est un dterminant si sa connaissance dtermine celle de l'attribut B (B dpend fonctionnellement de A). Caractristiques du modle Schma de donnes facile utiliser : toutes les valeurs sont des champs de tables deux dimensions. Amliore l'indpendance entre les niveaux logique et physique : pas de pointeurs visibles par l'utilisateur. Fournit aux utilisateurs des langages de haut niveau pouvant ventuellement tre utiliss par des non-informaticiens (SQL, L4G) et un ensemble d'oprateurs bas sur l'algbre relationnelle : union, intersection, diffrence, produit cartsien, projection, slection, jointure, division. Optimise les accs aux bases de donnes Amliore l'intgrit et la confidentialit : unicit de cl, contrainte dintgrit rfrentielle Prend en compte une varit d'applications, en gestion et en industriel Fournir une approche mthodologique dans la construction des schmas.

Page 14/91

Module N 5 Manipulation de base de donne

Filire : TSSSRI

PARTIE 2 CONCEPTION ET DEMARCHE

Module N 5 Manipulation de base de donne

Filire : TSSSRI

PARTIE 3 Conception et dmarche I Conception de bases de donnes


Les formes normales Les formes normales permettent de construire un schma conceptuel correct partir des relations brutes issues des donnes recueillies auprs des clients. 1re forme normale Une relation est dite en premire forme normale si chaque attribut possde une seule valeur (ce qui exclut les groupes), et si elle admet une cl primaire.

Exemple: L'exemple porte sur un ensemble de donnes concernant des tests de types diffrents, effectus sur les lments matriel d'un systme de production : R (libell matriel, code marque, libell marque, type de test, date du test, rsultat du test) n'est pas en 1re forme normale car aucun attribut ne peut tre cl primaire : le libell matriel peut tre identique pour plusieurs lments. R (code matriel, libell matriel, code marque, libell marque, code type de test, libell du test, date du test, rsultat du test) n'est pas en 1re forme normale car on peut faire plusieurs tests sur un mme matriel, ce qui exige de rpter les informations "code type de test", "libell du test", "date du test", "rsultat du test", dans un mme nuple. La relation doit tre clate en deux, pour tre exprime en 1re forme normale : R-MATERIEL (code matriel, libell matriel, code marque, libell marque) R-TEST (code matriel, code type, libell test, date du test, rsultat du test) Les deux relations ne comportent que des attributs sans rptition. Dans R_TEST, la cl primaire est compose de "code matriel" et "code type" : un type de test peut concerner plusieurs matriels, un matriel peut tre test plusieurs fois, mais chaque matriel ne subit quune fois un type de test donn. 2me forme normale Une relation est dite en deuxime forme normale si elle est en premire forme normale, et si tout attribut n'appartenant pas la cl primaire ne dpend pas que d'une partie de cette cl.

R-TEST(code matriel, code type, libell test, date du test, rsultat du test) n'est pas en 2me forme normale car l'attribut "libell test" ne dpend que du "code type" et pas du "code matriel" ; La relation doit clate en deux, pour tre exprime en deuxime forme normale :

R-TEST (code matriel, code type, date du test, rsultat du test) R-TYPETEST (code type, libell test)

3me forme normale Une relation est dite en troisime forme normale si elle est en deuxime forme normale, et si toutes les dpendances fonctionnelles issues de la cl primaire sont directes

R-MATERIEL (code matriel, libell matriel, code marque, libell marque)

La dpendance entre "code matriel" et "libell marque" n'est pas directe, "libell marque" est en dpendance fonctionnelle directe avec le "code marque". La relation doit tre clate en deux, pour tre exprime en troisime forme normale : R-MATERIEL (code matriel, libell matriel, code marque) R-MARQUE (code marque, libell marque) Le schma conceptuel final de la base de donnes est donc : R-MATERIEL (code matriel, libell matriel, code marque) R-MARQUE (code marque, libell marque) R-TYPETEST (code type, libell test) R-TEST (code matriel, code type, date du test, rsultat du test) Commentaires: Le schma conceptuel fait apparatre 3 relations entits : R-MATERIEL, R-MARQUE, RTYPETEST et la relation association R-TEST qui ralise le lien Matriel <--> Type test de type N:M Le lien fonctionnel Matriel <--> Marque de type N:1 est ralis par la prsence du "code marque" dans la relation R-MATERIEL.

N MATERIEL 1

1 MARQUE TYPE TEST 1

TEST N N

II Dmarche de cration dune base de donnes


Avant la cration de la base de donnes un travail danalyse pralable est indispensable. Il est ncessaire danalyser le problme traiter en partant des rsultats obtenir (en sortie) avec leur frquence. Etudions par exemple la cration dune base de donnes de gestion dun Centre sportif. LE PROBLEME A RESOUDRE Le Centre sportif NATURE ET SANTE permet ses adhrents d'utiliser des quipements sportifs, sur certains sites moyennant une cotisation dont le montant est fonction des quipements ncessits par l'activit choisie et le lieu de pratique. Les activits possibles et les cotisations annuelles sont les suivants : BALNEO 2 035,00 F GOLF 4 200,00 F GYMNASTIQUE 1 815,00 F MUSCULATION 2 420,00 F SQUASH 1 320,00 F TENNIS 3 500,00 F Le montant du droit dentre par lieu de pratique est le suivant : Decazeville 150,00 F Millau 190,00 F Rodez 300,00 F Saint Affrique 90,00 F Villefranche 160,00 F Les cotisations sont payes pour l'anne au dbut du mois de janvier. Les adhrents peuvent choisir plusieurs activits et utiliser les quipements correspondant aux activits choisies, quand bon leur semble, aux heures d'ouverture de chaque lieu. Chaque adhrent ne sinscrit que dans un seul lieu de pratique. Le responsable du Centre souhaite grer sur Base de donnes les cotisations d'environ 500 adhrents. De plus, il voudrait grer les renseignements concernant les adhrents, les activits, les lieux, les tarifs, et pouvoir diter les tats correspondants.

Module N 5 Manipulation de base de donne LES RESULTATS A OBTENIR

Filire : TSSSRI

Recenser tous les rsultats que votre application doit pouvoir vous fournir. Il sagit gnralement dtats produire. Ces tats doivent contenir des donnes. Une maquette papier des tats peut tre ralise afin de ne rien oublier. Si nous reprenons notre exemple, les rsultats obtenir sont : la liste des adhrents avec leur code, nom, prnom, date de naissance, adresse, code postal, ville et numro de tlphone la liste des quipements mis leur disposition avec le code, le nom et le tarif dutilisation la liste des adhrents et des quipements quils utilisent, ainsi que le montant pay. LE DICTIONNAIRE DES DONNEES Il faut alors crer le dictionnaire des donnes cest--dire recenser tous les renseignements grer sans distinguer ce quoi ils se rapportent. Nous aurons donc : Nom adhrent Prnom adhrent Date de naissance Adresse Code postal Ville Numro de tlphone Nom activit Tarif activit Lieu de pratique Droit dentre LA DEFINITION DES ENTITES Lentit peut tre un individu (client, adhrent), un bien (article, dpt, magasin, quipement), un concept (description dune commande, inscription). Nous voyons apparatre ici trois entits : les adhrents les activits et les lieux de pratique. Il sagit maintenant de dfinir quelle entit se rapportent les donnes recenses plus haut, cest-dire de quel objet ou entit elles deviennent lattribut (ou la caractristique). Nous pouvons dfinir le schma qui suit :

ADHERENT Nom adhrent Prnom adhrent Date de naissance Adresse Code postal Ville Numro de tlphone ACTIVITE Nom activit Tarif activit LIEU Nom du lieu Droit dentre

A chaque entit correspondra une table dans la base de donnes. LE MODELE ENTITE ASSOCIATION Lassociation est un lien entre 2 (ou plusieurs) entits. Entre lentit ADHERENT et lentit ACTIVITE, lassociation correspond la notion de PRATIQUE de lactivit, et est matrialise par le verbe Pratiquer. Entre lentit ADHERENT et lentit LIEU, lassociation correspond la notion dutilisation et est matrialise par le verbe Utiliser De plus nous allons rajouter un identifiant unique dans chaque table sous forme de Numro ou de Code. Le modle Entit Association prend lallure suivante :

Page 18/91

ADHERENT
Num_adh

PRATIQUE

ACTIVITE
Code_activ

Nom_adh Prn_adh Dat_Nais_adh Ad_adh CP_adh Vil_adh Num_tl_adh

Activ Tarif

UTILISE

LIEU
Code_lieu

Lieu Entre

Num_adh est lidentifiant de la table ADHERENT. Ce champ sera dfini comme cl primaire index sans doublon. Code_activ est lidentifiant de la table ACTIVITE. Il sera dfini comme cl primaire index sans doublon. Code_lieu est lidentifiant de la table LIEU. Il sera dfini comme cl primaire index sans doublon. LES REGLES DE GESTION Ce sont les rgles qui rgissent notre application. Ici un adhrent peut pratiquer plusieurs activits, sur un seul lieu. Il suffira quil paie le tarif des cotisations correspondant aux quipements utiliss, et le droit dentre sur le lieu de pratique. LE MODELE RELATIONNEL Nous devons maintenant crer le modle relationnel. Les activits Un adhrent peut pratiquer plusieurs ACTIVITES Une activit peut tre pratique par plusieurs ADHERENTS Il y a donc une relation de plusieurs plusieurs entre les tables ADHERENT et ACTIVITE. Avec ACCESS, il nest pas possible de crer un tel type de relation directement entre deux tables. Il faut ncessairement transiter par une table intermdiaire. Pour cela, il faut remplacer lassociation matrialise par le verbe utiliser par une nouvelle table qui servira de lien entre les 2 autres tables. Cette nouvelle table que nous appellerons PRATIQUE comprendra donc les champs suivants : Num_adh Code_activ N.B Ces deux champs correspondent aux cls primaires des deux autres tables. Nous tablirons une relation de type un plusieurs entre le champ Num_adh de la table ADHERENT et le champ Num_adh de la table PRATIQUE. Nous tablirons une relation de type un plusieurs entre le champ Code_activ de la table ACTIVITE et le champ Code_activ de la table PRATIQUE. Le lieu de pratique Un adhrent ne pratique que sur un seul lieu. Un lieu peut recevoir plusieurs adhrents. N.B Nous avons donc une relation de un plusieurs entre la table LIEU et la table ADHERENT. Pour crer cette relation, nous allons devoir rajouter dans la table ADHERENT le code du lieu de pratique, afin dtablir la relation directe entre le champ Code_lieu de la table LIEU et le champ Code_lieu de la table ADHERENT. Le modle relationnel sera donc le suivant

Module N 5 Manipulation de base de donne

Filire : TSSSRI

III Les redondances


Exemple Il est ncessaire dviter les redondances dans le modle relationnel. Prenons par exemple la table suivante qui concerne les propritaires de vhicules : nom date tl n immat marque Durand 10/2/88 23.32.32.23 3344RF45 Renault Dupont 8/10/88 62.62.52.55 7787FG56 Peugeot Pagnol 7/7/89 76.45.34.34 554FG22 Volvo Pagnol 21/4/90 76.45.34.34 667TG22 Peugeot Duval 15/8/90 78.25.68.52 129DR75 Renault Elle pose dans son utilisation un certain nombre de problmes, lis la Donnes redondantes type cv R25 9 405GR 7 245 8 305 6 R25 9 redondance des coul bleu vert blanc gris blanc donnes.

La table fait apparatre une personne et ses coordonnes autant de fois quelle possde un vhicule. Pagnol Pagnol 7/7/89 21/4/90 76.45.34.34 76.45.34.34 554FG22 667TG22 Volvo Peugeot 245 305 8 6 blanc gris

Si Mr Pagnol change de N de tlphone, il faut sassurer que la mise jour seffectue bien sur les deux enregistrements le concernant. Une autre redondance est lie la correspondance Marque, Type, CV Durand Duval 10/2/88 15/8/90 23.32.32.23 78.25.68.52 3344RF45 129DR75 Renault Renault R25 R25 9 9 bleu blanc

Pour chaque propritaire ayant une R25, il faudra saisir la marque et la puissance. De plus, un mme vhicule peut passer entre les mains de plusieurs propritaires. Il faudra alors saisir toutes ces caractristiques lorsquil changera de mains. Solution Les champs que nous trouvons dans cette table sont les attributs dentits diffrentes. Nous allons rattacher ses attributs aux entits quils caractrisent Nom et Numro de tlphone caractrisent lentit PROPRIETAIRE Numro dimmatriculation, Marque, Type et Couleur caractrisent lentit VEHICULE Marque et Puissance caractrisent lentit TYPE. Lentit PROPRIETAIRE et lentit VEHICULE sont lies par la notion de Possession. La relation est matrialise par le verbe Possder : En effet, un propritaire possde un ou plusieurs vhicules. Mais, un mme vhicule pourra avoir t possd par plusieurs propritaires successifs. Nous avons donc entre ces deux entits une relation de plusieurs plusieurs. Lattribut Date dachat ne caractrise pas lune des entits mises en vidences ci-dessus. Par contre elle caractrise le moment ou le propritaire va possder le vhicule. Lentit VEHICULE et lentit TYPE seront lies par la notion dappartenance. La relation est matrialise par le verbe Appartenir. En effet un vhicule appartient un TYPE et un seul.

Page 20/91

PROPRIETAIRE Possde

VEHICULES TYPE

Numro

Num immat NomType Couleur

Appartien

NomType Marque Puissance

Le modle relationnel aura cette allure :

La relation entre la table PROPRIETAIRES et la table VEHICULES est matrialise par la table POSSEDE. Celle-ci a comme attributs les deux cls primaires des deux tables et le champ Date dachat, point de dpart de la possession du vhicule. La relation entre la table VEHICULES et la table TYPES ne ncessite pas la cration dune table intermdiaire puisquil sagit dune relation de un plusieurs de la table TYPES vers la table VEHICULES.

Module N 5 Manipulation de base de donne

Filire : TSSSRI

PARTIE 3 CREATION ET MANIPULATION DES BASES DE DONNEE AVEC MS ACCESS

PARTIE 4 CREATION ET MANIPULATION DES BASES DE DONNEE AVEC MS ACCESS I Cration des tables
La table est Le principal organe de stockage de donnes d'ACCESS. Pour qu'une base de donnes Access existe, il faut au moins une table. Il peut bien videmment y en avoir plusieurs. Les tables servent emmagasiner les donnes stables (quand on dit donnes stables, cela veut dire que leur structure est stable ; par exemple une table clients contiendra toujours des noms, des adresses, etc. et ces lments se retrouveront un emplacement dtermin). La table ressemble physiquement une feuille de calcul Excel : il y a des colonnes, qui prennent ici le nom de champs et des lignes qu'on appelle enregistrements. Crer une table, c'est d'abord dcider de sa structure c'est--dire quels champs il faut crer et quel sera leur type de contenu (alphabtique, numrique, etc.) Exemple de fichier clients (exemple de gestion dun club de loisir) Champs (colonnes)

Enregistrements (lignes)

Chaque ligne contiendra les coordonnes dun client (On saisira ces donnes plus tard)

Cration de la table ADHRENTS Double cliquez la premire option

Vous obtenez le panneau de cration de structure de table

Le travail va consister dcider les noms des champs puis choisir le type de donnes qui figureront dedans. (Par exemple, le nom de l'adhrent contiendra du texte exclusivement ; ce sera donc un champ de type Texte).

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Entrez les noms des champs tels qu'ils apparaissent ci-contre ; pour le moment ne touchez pas au type de donnes. Vous obtenez

Jusque-l, vous travaillez sur la structure c'est--dire l'envers du dcor. Pour visualiser ce que vous venez de crer, passez en mode feuille de donnes

Habituez-vous passer du mode cration

au mode feuille de donnes

Rpondez oui la question : la table doit d'abord tre enregistre, donnez-lui le nom ADHRENTS et rpondez non la question laisser ACCESS dfinir une cl primaire. Rsultat (rappel : vous vous trouvez en mode feuille de donnes)

Pour continuer travailler sur la structure de la table, il faut repasser en mode cration.

Cliquez sur l'icne Dfinir les caractristiques des champs Vous allez maintenant dfinir le type de vos diffrents champs.

Page 24/91

Cliquez aprs le mot Texte sur la mme ligne que CodeAd et choisissez Numrique. Cela veut dire que le code de vos adhrents sera constitu de chiffres. Remarque : un champ Texte peut contenir des lettres ou des chiffres, alors qu'un champ Numrique ne peut contenir que des chiffres. Laissez les autres champs en texte. Pour le CodePostal ; placez-vous sur sa ligne et limitez-le 5 caractres en corrigeant les 50 en 5 dans la zone Taille de champ de l'onglet Gnral en bas

Passez en mode Feuille de donnes pour voir, puis repassez en cration. Vous allez maintenant ajouter d'autres champs la table ADHRENTS. Sur la ligne aprs Ville, ajoutez Numtel. Vous allez le laisser en texte (nous avons vu qu'un champ texte peut contenir des chiffres), mais pour que la saisie soit plus aise par la suite, vous allez dfinir un masque de saisie. Cela veut dire que la zone remplir pour le numro de tlphone se prsentera ainsi : __ __ __ __ __ et que vous n'aurez pas saisir les espaces. Il faut savoir que tout champ contenant un masque de saisie, mme s'il doit recevoir des chiffres, doit tre obligatoirement un champ Texte. Le curseur tant sur la ligne de Numtel, cliquez dans Masque de saisie puis sur les pointills qui vont lancer l'assistant. Laissez-vous guider par les crans ; vous obtenez en fin de compte les signes suivants sur la ligne Masque de saisie : 00\ 00\ 00\ 00\ 00;;_ (remarque : en tapant ces signes la main, on obtiendrait le mme rsultat). Ajoutez la table ADHRENTS les champs suivants: DateAd, champ de type Date/heure pour saisir la date d'adhsion du membre Individuel, champ de type Oui/Non pour savoir s'il appartient ou non un comit d'entreprise Passez en Feuille de donnes pour voir (acceptez l'enregistrement de la table). Dans ce mode, cliquez dans le champ Numtel pour voir si le masque est actif. Repassez en mode Cration. Il manque un champ Civilit ; vous allez insrer une nouvelle ligne. Slectionnez la ligne NomAd et appuyez sur la touche Inser du clavier. Une nouvelle ligne est cre. Saisissez Civilit comme nom de champ.

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Ce serait intressant de crer une liste droulante pour les civilits, c'est dire une liste dans laquelle il suffirait de choisir au lieu d'avoir saisir.

Le curseur tant sur la ligne de Civilit, cliquez sur l'onglet Liste de choix puis sur la ligne Zone de texte et choisissez Zone de liste modifiable. Indique que ce sera une liste droulante Indique que les valeurs vont tre saisies au clavier sur la ligne en dessous

Sur la ligne en-dessous, choisissez Liste de valeurs Sur la ligne en-dessous, saisissez : Monsieur;Madame;Mademoiselle (n'oubliez pas les points virgules et ne faites pas d'espace) Passez en mode visualisation, placez-vous dans la case sous Civilit : vous obtenez

Rcapitulons : vous avez cr la trame capable daccueillir les donnes des adhrents. Pour le moment, vous navez pas saisi ces donnes ; il est en effet prfrable davoir cr toutes les tables utiles avant de les remplir, car sil y avait une erreur dedans, en la corrigeant on risquerait de perdre tout ou partie de la saisie, cest--dire davoir travaill pour rien !

Notion de cl primaire
Dans un systme de gestion de bases de donnes comme Access, pour toute table que lon cre il faut se poser une question : Quel est le champ qui contiendra pour chaque enregistrement une caractristique unique ? (Vous allez comprendre : sil sagit de personnes, la caractristique que lon est absolument sr de ne pas retrouver chez plusieurs personnes diffrentes, cest son numro INSEE !) Il est indispensable que toute table comporte un tel champ, de faon que le systme puissse identifier de manire certaine chaque enregistrement. Dans la table ADHRENTS, quel champ va servir didentifiant ? Cest bien sr le Code Adhrent : chaque adhrent aura le sien. Pour indiquer au systme que le champ CodeAd est lidentifiant unique, vous allez poser dessus une cl (on dit une cl primaire). En mode cration, slectionnez la ligne de CodeAd et cliquez sur licne de cl. Un symbole de cl sinsre en dbut de ligne.
Page 26/91

Pour Access, cela signifie quil est impossible de donner deux fois le mme code dans la table. Remarque : la cl est gnralement pose sur un champ numrique mais techniquement rien n'empche de la poser sur un champ texte, dans la mesure o on est sr que le contenu sera unique dans la table. Il est possible aussi de poser une cl sur deux champs en mme temps : ce moment-l ce sera lassociation des deux contenus qui devra tre unique. Refermez la table ADHRENTS en enregistrant les modifications. Cration des tables pour la location des bateaux Dans la plaquette dAURAY PLAISANCE, la page Tourisme fluvial dcrit la flotte. On peut louer trois types de bateaux, mais il y a plusieurs bateaux de chaque type ; vous aurez donc besoin de deux tables : la table TYPES DE BATEAUX, qui contiendra pour chaque enregistrement les caractristiques du type de bateau. La table BATEAUX contiendra le nom propre de chaque bateau et sera rattache la table TYPES DE BATEAUX (de cettemanire, vous naurez saisir les caractristiques quune fois par type de bateau). Dans la partie Tables de la fentre Base de donnes, cliquer Crer une table en mode Cration. Rflchissez maintenant aux champs ncessaires dans chacune de ces deux tables. Il sagit de chercher dans le descriptif de la flotte ce qui se rapporte au Type de bateau et ce qui se rapporte un bateau en particulier (de cette analyse dpend le bon fonctionnement de la base de donnes). On peut ainsi schmatiser la structure de nos deux tables :

Nom des tables


TYPES DE BATEAUX CodeTypeBateau Catgorie NbPersonnesMax NbPersonnesMin TarifHteSaison TarifBsSaison Champs cl BATEAU CodeBateau CodeTypeBateau NomBateau Autres champs

Depuis la fentre Base de donnes, dans llment Tables, faites Crer une table en mode cration. Constituez la table TYPES DE BATEAUX comme sur le modle ci-contre. Noubliez pas de poser la cl sur le premier champ. Vrifiez que vous ne vous tes pas tromp(e) de type de donnes pour chaque champ. Pour les tarifs, mettez en plus de Montaire un format Euro dans l'onglet du bas.

Refermez et enregistrez la table sous le nom TYPES DE BATEAUX (les donnes seront saisies plus tard, de mme que pour la table ADHRENTS) Crez la table BATEAUX comme ci-contre en posant la cl sur ce champ. Refermez et enregistrez la table sous le nom BATEAUX.

Module N 5 Manipulation de base de donne On pourrait aller chercher le CodeTypeBateau dans la table TYPE DE BATEAUX. Cration de la table CROISIRES Vous savez maintenant crer une table.

Filire : TSSSRI

Crez la table CROISIRES comme ci-contre. Pour les champs montaires, demandez un format euro. Refermez la table. La base AURAY comporte maintenant 4 tables : ADHRENTS, BATEAUX, TYPES DE BATEAUX et CROISIRES. Ainsi juxtaposes, les 4 tables ne communiquent pas entre elles. Les liaisons que vous allez tablir dans le chapitre suivant vont les rendre communicantes. Quelles relations peut-on tablir entre ces tables ? Pour trouver la rponse cette question, on utilise des phrases avec sujet, verbe, complment : un adhrent rserve une croisire, un adhrent loue un bateau. Le fait de rserver ou louer nous amne crer deux autres tables : une table des rservations et une table des locations dans laquelle seront stocks les lments propres aux rservations ou aux locations (exemple : la date ; celle-ci est bien une caractristique de la rservation et non du bateau). Cration de la table LOCATIONS

Crez la table LOCATIONS comme ci-contre Placez la cl sur le champ CodeLoc Pour DateDbut et DateFin, choisissez un format date,abrg (en vous plaant sur la ligne concerne, cliquer dans Format, onglet Gnral). Refermez la table LOCATIONS. Cration de la table RSERVATIONS

Page 28/91

Crez la table RSERVATIONS comme ci-contre. Placez la cl sur le champ CodeResa Pour la date, prenez un format Date, abrg

Dfinition des relations


Cette partie du travail est particulirement importante, car si vous rencontrez des problmes ils se rpercuteront tout au long du travail. Il faut donc imprativement que les relations fonctionnent parfaitement. Depuis la fentre de la Base de donnes, cliquez sur licne Relations

Vous vous trouvez sur ADHRENTS ; cliquez Ajouter. Dplacez-vous sur BATEAUX, cliquez Ajouter, et ainsi de suite sur CROISIRES puis LOCATIONS puis RSERVATIONS puis TYPES DE BATEAUX. Les 6 tables sont affiches. Cliquez Fermer. (Si par mgarde vous avez ajout deux fois une table, tez-la en appuyant sur la touche Suppr du clavier aprs l'avoir slectionne avec la souris). Les tables peuvent tre redimensionnes et dplaces comme nimporte quelle fentre Windows. Amnagez-les pour obtenir ceci :

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Remarquez que dans chaque table, le champ cl se prsente en caractres gras. Il reste tracer les relations.

Placez-vous sur CodeAd de la table ADHRENTS et sans lcher le clic, tirez-le pour le dposer sur le champ CodeAd de la table RSERVATIONS. Dans la fentre qui apparat, cochez Appliquer lintgrit rfrentielle puis cliquez sur Crer. Le rsultat est une ligne qui va de CodeAd de la table ADHRENTS jusqu CodeAd de la table RSERVATIONS. Signification de cette ligne Le systme retrouve ladhrent qui a rserv grce son code, indiqu dans la table des RSERVATIONS 1. Le chiffre 1 et le symbole (infini) signifient que pour 1 adhrent, plusieurs rservations sont possibles. En revanche, une rservation ne peut tre attribue qu un et un seul adhrent. 2. Le sens de la relation, de 1 indique aussi que lorsque vous saisirez les donnes, il faudra dabord saisir celles de la table du ct du 1 (en clair : il ne sera pas possible denregistrer une rservation pour un adhrent qui nexiste pas encore). Dfinissez les autres relations pour obtenir ceci (chaque fois il suffit de prendre le champ de dmarrage et de le dposer sur le champ d'arrive, attention de ne pas vous tromper). Vrifiez bien que votre cran est conforme cette image

Page 30/91

A partir de maintenant, le modle est prt. On sait quelles sont les tables, quels sont les champs quelles contiennent avec quel type de donnes lintrieur, on sait o se trouvent les cls, et on sait quelles relations unissent les tables. Enregistrez les modifications apportes la fentre des relations. Lessentiel de la base est constitu, la saisie des donnes va pouvoir se faire.

II Saisie de donne et cration de formulaire


Saisie de donnes en mode table Rappel : d'aprs le modle que vous avez dtermin, la saisie des donnes ne peut pas se faire dans n'importe quel ordre ; la table des rservations devra tre saisie en dernier, puisque les chiffres 1 sont tous du ct des autres tables (voir fentre des relations). Prenez avec vous la page 8 (fichier adhrents). Depuis la fentre Base de donnes, dans les tables, double-cliquez sur ADHRENTS pour ouvrir la table en mode Feuille de donnes. Vous obtenez :

Vous allez saisir le premier adhrent de la liste. Cliquez dans le champ CodeAd, 1re ligne, et saisissez 1 puis tabulateur pour passer au champ Civilit. Cliquez sur la petite flche de la liste droulante et choisissez Madame. Continuez saisir les donnes du premier adhrent. Constatez que le masque de saisie pour le tlphone a bien fonctionn. Un petit problme se pose cependant : la date de naissance n'a pas t prvue. Vous allez remedier cela. La structure de la table peut encore tre modifie si cela ne touche pas au champ qui comporte la cl. De plus il ne s'agit que d'ajouter un champ. Cliquez sur l'querre pour passer en mode cration. Slectionnez la ligne DateAd et appuyez sur la touche Inser du clavier pour ajouter une ligne vierge. Crez le champ DateNaiss de type Date/Heure et dans l'onglet Gnral du bas donnez un format Date, abrg.

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Le champ DateAd n'avait pas jusqu'ici de format Date,abrg ; profitez de l'occasion pour le faire. Vous obtenez le rsultat ci-contre

Repassez en mode Feuille de donnes Continuez votre saisie jusqu'au dernier adhrent. Cochez le champ Individuel lorsque l'adhrent n'appartient pas un comit d'entreprise Rsultat obtenir ci-dessous (en raison de la dimension de notre page, le dernier champ Individuel napparat pas sur limage)

La saisie que vous venez d'effectuer s'est faite en mode Table, c'est--dire dans un tableau o sont regroupes toutes les donnes de tous les enregistrements. Ce n'est pas trs convivial !! Heureusement, on peut se faciliter la vie en crant une sorte de fentre de dialogue qui s'appelle Formulaire. La diffrence avec la table, c'est que le formulaire n'affiche qu'un enregistrement la fois. (Pour ceux qui connaissent la fonction Base de donnes d'Excel, cela correspond l'affichage Grille).

Formulaire

Donnes

Donnes

Saisie en mode table

Rservoir de donnes d'une table

En fait les donnes sont toujours contenues dans la table ; si vous les saisissez depuis le formulaire, elles vont dans le mme "rservoir".

Page 32/91

Saisie de donnes en mode formulaire Grce aux assistants d'Access, le travail va tre facile. Depuis la fentre Base de donnes, placez-vous sur la table TYPES DE BATEAUX et dveloppez le menu droulant Nouvel objet, choisissez Formulaire automatique.

C'est vraiment instantan ! Vous avez devant les yeux un formulaire tout prt. Il n'y a plus qu' entrer les donnes dedans et amliorer sa prsentation, mais ceci est un dtail que nous verrons par la suite.

Saisissez les donnes du premier type de bateau en lui attribuant le code 1. Le systme a prvu (en fonction des liaisons que vous avez dclares) un sous-formulaire pour enregistrer les diffrents bateaux. Saisissez les donnes de chaque bateau comme ci-contre. Pour passez au deuxime enregistrement, cliquez tout en bas de la fentre sur la flche de dfilement. Pour le moment, cela indique que vous en tes la saisie de l'enregistrement 1 sur un total de 1. Saisissez les donnes du second type de bateau avec les trois bateaux concerns (attention dans le sous formulaire, les noms des bateaux seront numrots 4, 5), puis les donnes du troisime type de bateau avec ses deux bateaux ( numroter 6 et 7). Remarque : Il est possible de demander Access de numroter lui-mme les enregistrements avec un compteur automatique. Toutefois en situation d'apprentissage nous avons remarqu que cela pose beaucoup de problmes car si l'apprenant se trompe et dtruit un enregistrement, ce numro n'est plus rutilisable. On risque de se retrouver en dphasage avec le support de cours. Mais dans la ralit, on utiliserait le compteur automatique. Il suffit de demander dans la structure de table un type de donnes NumAuto au lieu de Numrique. Fermez et enregistrez le formulaire sous le nom TYPES DE BATEAUX.

Module N 5 Manipulation de base de donne Cration du formulaire CROISIRES

Filire : TSSSRI

De la mme manire que prcdemment, crez partir de la table CROISIRES un formulaire instantan et saisissez les donnes des croisires. Pour les descriptifs, utilisez une forme abrge (exemple : sortie 2 h passage cluse) Quand il n'y a qu'un tarif, mettez le mme pour adultes et enfants. Pour la Formule Moussaillons, mettez 0 dans tarif adulte. Refermez le formulaire en acceptant le nom CROISIRES propos par le systme.

Vous allez vrifier que les donnes saisies dans le formulaire sont bien prsentes dans les tables. Dans la fentre Base de donnes, cliquez l'lment Tables et double-cliquez CROISIRES ; constatez que les donnes sont l. Refermez la table. Faites de mme pour la table TYPES DE BATEAUX, puis pour la table BATEAUX.

Cration du formulaire LOCATIONS Crez un formulaire instantan partir de la table LOCATIONS. Ne saisissez rien pour le moment.

Gestion des vnements courants Ajouter des enregistrements dans une table Aujourd'hui, deux nouveaux clients s'inscrivent AURAY PLAISANCE ; avant de les enregistrer, crez un formulaire instantan partir de la table ADHRENTS. Saisissez ensuite les donnes de : LUCAS Elizabeth (Madame) 3 place de la Poste 56740 LOCMARIAQUER 02 97 54 87 21 Ne le 03/05/58 Individuel BERLAND Jean-Luc 71 bd de la Rpublique 35000 RENNES 02 99 41 52 63 N le 25/6/59 Individuel

Modifier des donnes Monsieur LE GUEN Denis fait part de son nouveau numro de tlphone : 06 14 30 45 78. Faites la modification (vous pouvez pour cela utiliser le filtre par formulaire). Madame MARIN a chang dadresse : dsormais elle habite 13 place Kerval (mme localit). Trier, filtrer, rechercher dans une table selon des critres Tri Ouvrez la table ADHRENTS. Vous voulez obtenir un tri alphabtique par noms dadhrents.

Page 34/91

Slectionnez le champ NomAd ; cliquez sur licne A/Z. Immdiatement, la table est trie. Constatez que les donnes de la ligne entire ont suivi le nom de ladhrent (heureusement !) Remarque : sous Excel, il peut arriver que les donnes soient destructures si vous avez fait une slection malencontreuse ; avec Access, cela ne peut pas arriver. Recherche Vous recherchez ladhrent GUEGUEN. Cliquez sur licne qui reprsente des jumelles. Remplissez la fentre dialogue comme suit.

Cliquez Suivant : le nom de GUEGUEN apparat en surbrillance dans la liste. Filtre Vous voulez ressortir uniquement les adhrents qui habitent RENNES. Cliquez licne Filtrer par formulaire. Placez-vous dans le champ Ville et choisissez RENNES dans la petite liste. Ensuite, cliquez sur Appliquer le filtre.

Vous avez devant les yeux la liste des adhrents de Rennes. Pour annuler le filtre, dsactivez licne (qui sappelle maintenant Supprimer le filtre). Supprimer le critre Rennes. Filtrez les adhrents ns aprs le 1er janvier 1965 (saisissez > 01/01/65 dans le champ DateNaiss ). Faites dautres essais votre guise (attention, noubliez pas dter les critres entre deux essais, sinon le systme va chercher des enregistrements qui correspondent la fois plusieurs critres et naura peut-tre pas de rponse). Amliorer la prsentation d'un formulaire Jusqu'ici nous ne nous sommes pas intresss la prsentation car d'autres choses taient plus importantes toutefois il est toujours plus agrable de travailler sur un cran convivial et c'est pourquoi vous allez consacrer un peu de temps amliorer votre cadre de saisie. Ceci est dans votre intrt personnel, mais il faut penser que, dans l'entreprise, ce sont peut-tre d'autres personnes qui devront saisir des donnes et qu'il est bon de leur faciliter aussi le travail.

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Depuis la fentre Base de donnes, dans l'lment Tables, placez-vous sur ADHRENTS et crez un formulaire instantan comme d'habitude. Vous obtenez : Passez en mode Cration

Vous allez travailler sur l'envers du dcor. A tout moment, vous pouvez passer en mode Visualisation pour voir leffet produit par vos manipulations. Cliquez sur la zone de texte CodeAd : lensemble du contrle est slectionn. Dplacez-le vers la droite ; vous pouvez constater que lensemble du contrle se dplace. Maintenant vous allez dplacer uniquement ltiquette. Pour cela, cliquez prcisment sur le petit carr noir en haut gauche de ltiquette. Le curseur prend la forme dune main doigt lev. Rapprochez ltiquette de la zone de texte. Observez bien de quelle manire apparaissent les marques de slection dans les diffrents cas.

Page 36/91

Les tiquettes (ou intituls) sont des emplacements o on peut crire ce quon veut, alors que les zones de textes correspondent pour le systme des champs qui ont t dfinis dans la base de donnes. Ainsi vous ne pouvez changer le mot CodeAd de la zone de texte fond blanc sans perturber le fonctionnement. En revanche, le mot CodeAd sur fond gris de ltiquette peut tre modifi. Slectionnez le mot CodeAd ainsi Tapez la place N Adhrent Agrandissez la fentre au maximum Ecrivez Adhrent la place de Civilit dans l'tiquette Ecrivez NOM la place de NomAd Supprimez l'tiquette CodePostal et l'tiquette Ville Vous obtenez Rapprochez les tiquettes des zones de texte concernes Dplacez les contrles pour arriver une prsentation ressemblant celle-ci. Renommez les tiquettes Numtel en Tlphone, DateAd en Date d'adhsion, DateNaiss en N(e) le. Cliquez Affichage En-tte/Pied de formulaire. Ouvrez la bote outils Cliquez l'outil Aa Crez une tiquette dans l'en-tte de formulaire (il faut la dessiner c'est--dire cliquer glisser depuis le coin gauche suprieur jusqu'au coin droit infrieur). Tapez ADHERENTS dans l'tiquette. Slectionnez le cadre pour mettre l'tiquette en 24 gras. Cliquez avec le bouton droit sur le fond de l'en-tte de formulaire et dans l'option Couleur d'arrire-plan remplissage, choisissez une couleur orange clair. Faites la mme chose pour la partie Dtail du formulaire. Vous allez formater en une fois toutes les tiquettes. Pour les slectionner, cliquez sur la premire (N Adhrent) puis appuyez sur la touche MAJ du clavier et maintenez-la enfonce puis cliquez sur chacune des autres tiquettes une par une. Lorsque la slection est faite, mettez les tiquettes en gras italique. Peut-tre certaines d'entre elles seront trop troites il vous suffira de les agrandir lgrement comme n'importe quel objet de dessin. Vous allez amliorer l'alignement des zones de texte et des tiquettes. Slectionnez les zones de texte (fond blanc) de la premire partie, depuis CodeAd jusqu' CodePostal. Cliquez avec le bouton droit dans cette slection et choisissez Alignement puis Gauche. Faites la mme chose pour les zones de texte de la deuxime partie. Alignez les tiquettes de la premire partie sur la droite puis celle de la deuxime partie. Page suivante, voir rsultat obtenir.

Passez en mode Feuille de donnes

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Repassez en mode Cration. Vous allez crer un bouton de commande pour fermer le formulaire. Assurez-vous que l'outil Assistant est enclench. Dans la bote outils, (affichez-la si ncessaire) choisissez l'outil Bouton de commande. Dessinez un petit rectangle avec cet outil dans la zone en-tte du formulaire, droite de l'tiquette ADHERENTS. Choisissez les paramtres suivants : Oprations sur formulaire et Fermer formulaire

Dans la bote suivante, choisissez Texte Fermer Formulaire, Ok, puis donnez comme nom votre bouton Fermer Adhrents. Passez en mode Affichage pour juger du rsultat. Testez le fonctionnement de votre bouton.

Page 38/91

Allez au dernier enregistrement pour inscrire un nouvel adhrent Enregistrez le nouvel adhrent : Mademoiselle Claire NANTREC, 7 impasse des Sternes, RENNES, tlphone 02 99 65 41 89, date de naissance 5/6/71, individuel. Fermez le formulaire. Ouvrez le formulaire LOCATIONS en mode Cration. Affichez En-tte et pied de formulaire. Crez une tiquette LOCATION DE BATEAUX dans lentte. Formatez-la en gras 18. En mode Affichage vous obtenez:

Le problme cest que pour enregistrer une location, il va falloir aller chercher le code de ladhrent dans la table ADHRENTS et le code du bateau dans la table BATEAUX. Heureusement, vous allez pouvoir automatiser tout cela grce aux outils assists. La technique va consister supprimer le champ et le remplacer par une liste droulante, laquelle ira chercher les donnes dans une table. Repassez en Cration. Cliquez sur le contrle CodeAd et supprimez-le (touche Suppr).

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Dans la bote outils prenez loutil Zone de liste modifiable (licne Assistant doit tre enclenche) et dessinez le nouveau contrle la mme place que prcdemment. Cliquez deux fois Suivant (vous voulez que le systme aille chercher les donnes dans la table ADHRENTS). Dans le panneau suivant, prenez les trois premiers champs (CodeAd, NomAd et Prnom). Ce sont ceux qui safficheront pour que vous puissiez choisir ladhrent. Cliquez Suivant. Dans le panneau suivant, gardez loption Colonne cl cache (en fait, dans le formulaire, peu vous importe de connatre le numro de ladhrent, pourvu que la machine sy retrouve). Dans le panneau suivant, cochez loption Stocker la valeur dans le champ et choisissez CodeAd. Ceci est une ncessit de la base de donnes pour quelle sy retrouve. Suivant. Donnez comme nom ltiquette : Adhrent. Termin. Passez en mode Affichage pour voir ce que a fait. Revenez en mode Cration pour crer la deuxime liste modifiable. Supprimez le contrle CodeBateau. Avec loutil zone de liste modifiable, dessinez-en un autre. Avec lassistant, laissez-vous guider par les crans comme prcdemment (en choisissant la table BATEAUX), gardez les trois colonnes, et noubliez pas de stocker la valeur dans le champ CodeBateau. Donnez le nom Bateau retenu votre tiquette. Passez en mode Affichage pour voir. Repassez en Cration, mettez votre formulaire dans une couleur de votre choix. Saisissez dans votre formulaire les locations suivantes : Monsieur LE GOFF Andr loue un EAU CLAIRE (bateau de type 2) pour une semaine compter du 20/07. Il y aura 3 adultes et 5 enfants. Mademoiselle DURUEL Vronique loue un ESPADE 850 (type 1) pour 3 adultes pour deux semaines compter du 09/09. Monsieur BERLAND loue un CAT CAMP (type 3) pour la semaine prochaine pour 6 personnes

III Manipulation des donne et cration des requte


En matire de bases de donnes, la requte est quelque chose dimportant car cela sert beaucoup de choses. Cest dabord une question quon pose au systme (exemple : quels sont les clients qui habitent RENNES ? ou Quels sont les bateaux retenus pour telle priode ?). Le systme fournit une rponse sous forme de liste. Lavantage de dfinir une requte (par rapport une simple interrogation) est que vous pouvez lenregistrer et vous en resservir plus tard. La rponse ultrieure du systme tiendra compte, bien entendu, des mises jour qui auraient eu lieu entretemps. Avec une requte on peut aussi faire des calculs, des regroupements,etc. Dans le cas qui nous intresse, vous allez utiliser la requte pour regrouper des tables et ainsi crer un formulaire qui affiche les donnes venant de ces tables.

Requte slection Dans la fentre Base de donnes, placez-vous dans longlet Requtes, puis cliquez Crer une requte en mode Cration. Double-cliquez ADHRENTS puis fermer.
Page 40/91

Double-cliquez les champs suivants : CodeAd, NomAd, Prnom, Ville Vous obtenez Sur la ligne Critres du champ Ville saisissez RENNES. Vous obtenez : Excutez la requte en appuyant sur licne point dexclamation de la barre doutils. Le rsultat saffiche : il y a 3 clients RENNES.. Refermez la requte ; donnez-lui le nom ADHRENTS RENNES.

Requte Tri Vous voulez disposer tout moment dune liste des clients trie par codes postaux puis alphabtiquement lintrieur de ce classement. Requtes, Cration dune requte en mode Cration Ajoutez la table ADHRENTS. Fermez. Ajoutez les champs CodePostal, NomAd, Prnom, Adresse, Ville (dans cet ordre-l) Dans la ligne Tri des champs CodePostal et NomAd, choisissez tri Croissant. Un premier tri va seffectuer sur le code postal, premier champ rencontr par le systme puis un deuxime tri sur le champ Nom. Excutez la requte puis refermez-la en lui donnant le nom Liste des clients par localits.

Requte regroupement de tables Cette requte a pour but de crer un formulaire regroupant les donnes de plusieurs tables. Crez une nouvelle requte en mode Cration. Ajoutez les tables RSERVATIONS, CROISIRES et ADHRENTS. Fermez. Ajoutez tous les champs de RSERVATIONS et CROISIRES et le champ VILLE de la table ADHERENTS

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Pour linstant, inutile dexcuter la requte, car il ny a pas de donnes saisies dans les tables. Refermez-la et donnez-lui comme nom Pour formulaire rservations. Dans la fentre Base de donnes, placez-vous sur la requte que vous venez de crer et cliquez sur Formulaire instantan de faon crer votre formulaire automatiquement en se basant sur les tables regroupes dans la requte. Supprimez le contrle RESERVATIONS.CodeC

Comme vous lavez fait dans le formulaire LOCATIONS, vous allez remplacer CodeAd par une liste droulante qui affichera les noms en clair. Supprimez le contrle puis dessinez avec la bote outils une zone de liste modifiable puis laissez-vous guider par les crans en choisissant la talbe ADHRENTS et en demandant laffichage des champs CodeAd, NomAd, Prnom. Noubliez pas de stocker la valeur dans le champ CodeAd. Remplacez aussi le contrle CROISIERES.CodeCrois par une liste modifiable (choisissez la talbe CROISIRES et demandez laffichage des 2 premiers champs) et stockez la valeur dans le champ CodCrois. Supprimez le contrle NomCrois car cela ferait double emploi. Passez en mode Affichage et remplissez votre formulaire pour tester son fonctionnement avec cette rservation : Monsieur GUEGUEN Alphonse rserve une croisire AU FIL DE L'EAU pour le 20/07 pour un groupe de 32 personnes (17 adultes et 15 enfants) Constatez que lorsque vous choisissez une croisire dans la liste droulante, ses caractristiques se reportent automatiquement dans les autres champs. Ceci se fait en fonction de tout ce que vous avez dtermin dans le modle de base. De mme, la ville o habite ladhrent se reporte automatiquement. Amliorez la prsentation du formulaire en le mettant en couleur,en alignant mieux les diffrentes tiquettes et zones de texte. Insrer un en-tte de formulaire avec une tiquette de titre RSERVATIONS DE CROISIRES, comme ci-dessous.

Le formulaire commence prendre tournure.Toutefois vous pensez peut-tre avec raison quil serait intressant de pouvoir calculer directement le cot de cette rservation pour le client. Le nombre dadultes et denfants est connu, de mme que les tarifs. Il faudrait pouvoir crer un champ qui calcule. Cest possible ! Mais rappelez-vous, le formulaire est bas sur une requte. Cest dans celle-ci quil faut prparer le champ calcul ; ensuite il suffira dinsrer ce nouveau champ dans le formulaire.
Page 42/91

Fermez le formulaire, ouvrez la requte Pour formulaire RSERVATIONS en mode Cration. Placez-vous sur le premier champ libre (tout--fait droite de tous les autres) et saisissez trs exactement lexpression de calcul suivante (attention, toute erreur de crochet ou de majuscules provoquera un dysfonctionnement). Noubliez pas le signe deux-points aprs Cot. Rappel : le crochet sobtient en actionnant la touche AltGr et la touche 5 ou . Cot:[NbAd]*[TarifAd]+[NbEnf]*[TarifEnf] Excutez la requte pour voir si le calcul se fait bien. Il reste insrer le champ calcul dans votre formulaire. Fermez la requte en lenregistrant. Ouvrez le formulaire RSERVATIONS en mode Cration. Cliquez licne Liste des champs. Celle-ci a lavantage de se tenir toujours jour des modifications que lon pourrait apporter au support de notre formulaire.

En effet, dans la liste qui apparat vous voyez le champ Cot que vous venez de crer. Prenezle avec la souris et placez-le dans le formulaire. Passez en mode Affichage pour voir. Enregistrez les deux rservations suivantes dans votre formulaire. Monsieur MALECK Guy rserve une croisire DETENTE Madame LUCAS rserve une croisire EVASION

pour le 23/06 pour 40 adultes et 11 enfants pour le 7 juillet pour 52 personnes (35 adultes entre 3 et 12 ans et 17 enfants)

Proprits des champs

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Vous pouvez constater que ds que vous positionnez le nom de la croisire, le reste saffiche de luimme. Toutefois vous avez remarqu que la touche tabulation qui vous permet de passer dun champ lautre passe un peu du coq lne car les champs ont t dplacs ou rajouts et cela ne suit pas lordre qui vous faciliterait la saisie. Il y a heureusement un remde. En mode Cration, cliquez licne Proprits de la barre doutils. Cette fentre vous montre toutes les proprits de tous les lments de votre cran. Ici vous tes dans le formulaire Rservations. Cliquez sur le champ CodeResa et dans la fentre des proprits, prenez longlet Autres. Regardez la ligne Index Tabulation : il y 0, ce qui veut dire que cest la premire zone remplir.

Sans fermer la fentre des proprits, cliquez sur CodeAd ; mettez 1 la place de lindex tab. Continuez de la mme manire pour tous les autres champs, jusquau Cot qui sera le 10e. Dornavant, la touche tabulation vous emmnera du dbut la fin selon votre paramtrage ! Un nouvel adhrent sinscrit (le 3 juin) :

Jacques FERRUGIA 84 route de Vannes 56740 LOCMARIACQUER Tl. 02 97 45 78 12 Individuel Loue un CAT CAMP pour 3 semaines pour 4 personnes compter du 10 aot N le 7/3/51

Vous allez lenregistrer dans le formulaire ADHRENTS ; toutefois vous avez remarqu que vous tes oblig de taper en majuscules le nom de famille ; il serait prfrable de disposer dun systme o la saisie serait faite en majuscules mme si on tape en minuscules. Il y a une solution ! Ouvrez le formulaire en mode Cration. Placez-vous sur le champ NomAd, ouvrez la fentre des proprits, onglet Format. Sur la ligne Format, saisissez simplement le caractre > (il forcera laffichage en majuscules dans ce champ). Repassez en mode Affichage pour saisir votre nouvel adhrent et constatez que votre manipulation a port ses fruits. Enregistrez la location dans le formulaire LOCATIONS.

Page 44/91

Requte Mise jour Malheureusement, les prix des locations de bateaux augmentent de 10 %. Vous allez devoir changer les tarifs de la table TYPES DE BATEAUX. La mauvaise solution serait de le faire manuellement ; bien entendu le cas de notre exemple est tellement petit que ce ne serait pas gnant de faire les oprations la main. Mais il faut toujours penser gros volumes avec une base de donnes. Vous allez donc crer une requte qui procdera automatiquement laugmentation des prix. Dans llment Requtes de la fentre Base de donnes, crez une requte en mode Cration. Ajoutez la table TYPES DE BATEAUX, affichez tous les champs sauf les nombres de personnes. Cliquez sur le menu Requte et choisissez Requte Mise jour, ce qui aura pour effet dajouter une ligne Mise jour dans vos champs. Saisissez comme ci-dessous les expressions de calcul dans les champs des tarifs (attention, pas derreur de saisie, sans quoi cela ne marchera pas !)

Excutez la requte. Attention, ne faites la manuvre quune seule fois ! Si vous la lancez plusieurs fois, les prix seront augments plusieurs fois de 10 %, et chaque fois sur la base dj augmente Il faudra alors calculer le coefficient capable de ramener les choses leur tat initial. Donc vous lexcutez une seule fois et vous cliquez sur Feuille de donnes pour voir le rsultat.

Requte Somme/Regroupement Vous aimeriez disposer dun moyen permanent de connatre ce qua rapport globalement chaque type de croisire Crez une requte en mode Cration, ajoutez la requte Pour formulaire RSERVATIONS, affichez les champs Cot et CROISIERES.CodeCrois. Cliquez licne de la barre doutils qui aura pour effet dajouter une ligne Regroupement dans vos champs. Dans cette ligne pour le champ Cot, droulez la liste et choisissez Somme. Pour le deuxime champ, laissez Regroupement. Excutez la requte. Fermez la requte et enregistrez-la sous le nom Chiffre daffaires croisires. Vous pourrez tout moment lancer cette requte et connatre ainsi votre chiffre daffaires croisires. Requte slection (autre genre) Vous souhaiteriez disposer moments rguliers de la liste des clients ayant lou un bateau et de celle des clients ayant rserv une croisire. Cela pourra tre dit sous forme dtat, ce que vous allez tudier dans le chapitre suivant. Mais il faut dj disposer de la requte qui fait lextraction de donnes. Crez une requte en mode Cration, ajoutez les tables ADHRENTS, RSERVATIONS, CROISIRES. Affichez les champs :Nom, Prnom, Ville, Individuel de la table ADHRENTS, NbAd et NbEnf de la table RSERVATIONS, NomCrois de la table CROISIERES. Pour connatre le nombre total de personnes de chaque croisire, crez un champ calcul sur le premier champ vierge, ainsi paramtr : Nb Total :[NbAd]+[NbEnf] Excutez la requte.

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Vous voudriez que la liste soit trie par ordre alphabtique des clients. Que pouvez-vous modifier dans la requte pour lobtenir ? Fermez et enregistrez la requte sous le nom CROISIRES PAR CLIENT.

IV Langage SQL
INTRODUCTION Qu'appelle ton SQL? SQL (Structured Query Language, traduisez Langage de requtes structur) est un langage de dfinition de donnes (LDD, ou en anglais DDL Data Definition Language), un langage de manipulation de donnes (LMD, ou en anglais DML, Data Manipulation Language), et un langage de contrle de donnes (LCD, ou en anglais DCL, Data Control Language), pour les bases de donnes relationnelles. Le modle relationnel a t invent par E.F. Codd (Directeur de recherche du centre IBM de San Jos) en 1970, suite quoi de nombreux langages ont fait leur apparition: IBM Sequel (Structured English Query Language) en 1977 IBM Sequel/2 IBM System/R IBM DB2 Ce sont ces langages qui ont donn naissance au standard SQL, normalis en 1986 par l'ANSI pour donner SQL/86. Puis en 1989 la version SQL/89 a t approuve. La norme SQL/92 a dsormais pour nom SQL 2. SQL est un langage de dfinition de donnes SQL est un langage de dfinition de donnes (LDD), c'est--dire qu'il permet de crer des tables dans une base de donnes relationnelle, ainsi que d'en modifier ou en supprimer. SQL est un langage de manipulation de donnes SQL est un langage de manipulation de donnes (LMD), cela signifie qu'il permet de slectionner, insrer, modifier ou supprimer des donnes dans une table d'une base de donnes relationnelle. SQL est un langage de protections d'accs Il est possible avec SQL de dfinir des permissions au niveau des utilisateurs d'une base de donnes. On parle de DCL (Data Control Language). Typologie du langage Il est possible d'inclure des requtes SQL dans un programme crit dans un autre langage (en langage C par exemple), ainsi que d'envoyer directement les requtes SQL telles quelles au SGBD. Il est possible d'ajouter des commentaires grce: au caractre %. Tous les caractres situs aprs celui-ci sur la mme ligne ne seront pas interprts aux dlimiteurs /* et */. Tous les caractres compris entre les dlimiteurs sont considrs comme des commentaires Le langage SQL n'est pas sensible la casse (en anglais case sensitive), cela signifie que l'on peut aussi bien crire les instructions en minuscules qu'en majuscule. Toutefois, cette insensibilit la casse n'est que partielle dans la mesure o la diffrenciation entre minuscules et majuscules existe au niveau des identificateurs d'objets. SELECTION DES DONNEES Le langage de manipulation de donnes Le SQL est la fois un langage de manipulation de donnes et un langage de dfinition de donnes. Toutefois, la dfinition de donnes est l'oeuvre de l'administrateur de la base de donnes, c'est pourquoi la plupart des personnes qui utilisent le langage SQL ne se servent que du langage de manipulation de donnes, permettant de slectionner les donnes qui les intressent. La principale commande du langage de manipulation de donnes est la commande SELECT. Syntaxe de la commande SELECT La commande SELECT est base sur l'algbre relationnelle, en effectuant des oprations de slection de donnes sur plusieurs tables relationnelles par projection. Sa syntaxe est la suivante:
Page 46/91

SELECT [ALL] | [DISTINCT] <liste des noms de colonnes> | * FROM <Liste des tables> [WHERE <condition logique>] Il existe d'autres options pour la commande SELECT: GROUP BY HAVING ORDER BY L'option ALL est, par opposition l'option DISTINCT, l'option par dfaut. Elle permet de slectionner l'ensemble des lignes satisfaisant la condition logique L'option DISTINCT permet de ne conserver que des lignes distinctes, en liminant les doublons La liste des noms de colonnes indique la liste des colonnes choisies, spares par des virgules. Lorsque l'on dsire slectionner l'ensemble des colonnes d'une table il n'est pas ncessaire de saisir la liste de ses colonnes, l'option * permet de raliser cette tche La liste des tables indique l'ensemble des tables (spares par des virgules) sur lesquelles on opre La condition logique permet d'exprimer des qualifications complexes l'aide d'oprateurs logiques et de comparateurs arithmtiques III- EXPRESSION DES PROJECTIONS Expression d'une projection Une projection est une instruction permettant de slectionner un ensemble de colonnes dans une table. Soit la table VOITURE suivante: TABLE VOITURE Marque Renault Renault Renault Peugeot Peugeot Ford Modle 18 Kango kango 106 309 Escort srie RL RL RL KID Chorus Match Numro 469sj45 4568hd16 6576VE38 7845ZS83 5647ABY82 8562EV23

La slection de toutes les colonnes de la table se fait par l'instruction: SELECT * FROM VOITURE Rsultat Marque Renault Renault Renault Peugeot Peugeot Ford Modle 18 Kango kango 106 309 Escort srie RL RL RL KID Chorus Match Numro 469sj45 4568hd16 6576VE38 7845ZS83 5647ABY82 8562EV23

La slection des colonnes Modle et Srie de la table se fait par l'instruction: SELECT Modle, Srie FROM VOITURE Rsultat Modle 18 Kango kango 106 309 Escort srie RL RL RL KID Chorus Match

La slection des colonnes Modle et Srie en liminant les doublons se fait par l'instruction: SELECT DISTINCT Modle, Srie FROM VOITURE Rsultat Modle 18 kango 106 srie RL RL KID

Module N 5 Manipulation de base de donne 309 Escort LEXPRESSION DES RESTRICTIONS Chorus Match

Filire : TSSSRI

Une restriction consiste slectionner les lignes satisfaisant une condition logique effectue sur leurs attributs. En SQL, les restrictions s'expriment l'aide de la clause WHERE suivie d'une condition logique exprime l'aide d'oprateurs logiques AND OR NOT De comparateurs de chane: IN BETWEEN LIKE Doprateurs arithmtiques: +, -, *, /, %, &, |, ^, ~ Et de comparateurs arithmtiques: =, !=, >, <, >=, <=, <>, !>, !< Restrictions simples Soit la table suivante, prsentant des voitures d'occasion:

TABLE OCCAZ Marque Renault Renault Renault Peugeot Peugeot Ford Modle 18 Kango kango 106 309 Escort srie RL RL RL KID Chorus Match Numro 469sj45 4568hd16 6576VE38 7845ZS83 5647ABY82 8562EV23 Compteur 123450 56000 12000 75600 189500

Le champ prsentant la valeur du kilomtrage au compteur de la Ford Escort est dlibrment non renseign. La slection de toutes les voitures d'occasion ayant un kilomtrage infrieur 100 000 Km se fait par l'instruction: SELECT * FROM OCCAZ WHERE (Compteur < 100000) Rsultat Marque Renault Renault Peugeot Modle Kango kango 106 srie RL RL KID Numro 4568hd16 6576VE38 7845ZS83 Compteur 56000 12000 75600

La slection des colonnes Marque et Compteur des voitures ayant un kilomtrage infrieur 100 000 Km se fait par l'instruction: SELECT Marque, Compteur FROM OCCAZ WHERE (Compteur < 100000) Rsultat Marque Renault Renault Peugeot Compteur 56000 12000 75600

La slection de toutes les voitures d'occasion ayant un kilomtrage infrieur ou gal 100 000 Km, mais suprieur ou gal 30000Km, se fait par l'instruction:
Page 48/91

SELECT * FROM OCCAZ WHERE (Compteur <= 100000) AND (Compteur >= 30000) Rsultat Marque Renault Peugeot Modle Kango 106 srie RL KID Numro 4568hd16 7845ZS83 Compteur 56000 75600

Restriction sur une comparaison de chane Le prdicat LIKE permet de faire des comparaisons sur des chanes grce des caractres, appels caractres jokers: Le caractre % permet de remplacer une squence de caractres (ventuellement nulle) Le caractre _ permet de remplacer un caractre (l'quivalent du "blanc" au scrabble...) Les caractres [-] permettent de dfinir un intervalle de caractres (par exemple [J-M]) La slection des voitures dont la marque a un E en deuxime position se fait par l'instruction: SELECT * FROM OCCAZ WHERE Marque LIKE _E% Rsultat Marque Renault Renault Renault Peugeot Peugeot Modle 18 Kango kango 106 309 srie RL RL RL KID Chorus Numro 469sj45 4568hd16 6576VE38 7845ZS83 5647ABY82 Compteur 123450 56000 12000 75600 189500

Restriction sur un ensemble Les prdicats BETWEEN et IN permettent de vrifier respectivement qu'une valeur se trouve dans un intervalle ou qu'une valeur appartient une liste de valeurs: La slection de toutes les voitures d'occasion ayant un kilomtrage infrieur ou gal 100 000 Km, mais suprieur ou gal 30000Km, (effectue plus haut avec des comparateurs arithmtiques) peut se faire par l'instruction: SELECT * FROM OCCAZ WHERE Compteur BETWEEN 100000 AND 30000 Rsultat Marque Renault Peugeot Modle Kango 106 srie RL KID Numro 4568hd16 7845ZS83 Compteur 56000 75600

La slection des voitures d'occasion dont la marque est Peugeot ou Ford se fait grce l'instruction: SELECT * FROM OCCAZ WHERE Marque IN (Peugeot, Ford) Rsultat Marque Peugeot Peugeot Ford Modle 106 309 Escort srie KID Chorus Match Numro 7845ZS83 5647ABY82 8562EV23 Compteur 75600 189500

Restriction sur les valeurs manquantes Lorsqu'un champ n'est pas renseign, le SGBD lui attribue une valeur spciale que l'on note NULL. La recherche de cette valeur ne peut pas se faire l'aide des oprateurs standard, il faut utiliser les prdicats IS NULL ou bien IS NOT NULL. La slection de toutes les voitures d'occasion dont le kilomtrage n'est pas renseign se fait par l'instruction: SELECT * FROM OCCAZ WHERE Compteur IS NULL Rsultat Marque Modle srie Numro Compteur

Module N 5 Manipulation de base de donne Ford Escort Match 8562EV23

Filire : TSSSRI

TRI DES RESULTATS Il est possible en SQL d'organiser les tuples fournis en rsultat grce la clause ORDER BY. La clause ORDER BY est suivie des mots cls ASC ou DESC, qui prcisent respectivement si le tri se fait de manire croissante (par dfaut) ou dcroissante. Le classement se fait sur des nombres ou des chanes de caractres. Prenons l'exemple de la table voiture: La slection de toutes les colonnes de la table tries par ordre croissant de l'attribut Marque se fait par l'instruction: SELECT * FROM VOITURE ORDER BY Marque ASC Rsultat Marque Ford Peugeot Peugeot Renault Renault Renault Modle Escort 106 309 18 Kango kango srie Match KID Chorus RL RL RL Numro 8562EV23 7845ZS83 5647ABY82 469sj45 4568hd16 6576VE38 Compteur 75600 189500 123450 56000 12000

La slection de toutes les colonnes de la table tries par ordre croissant de l'attribut Marque, puis par ordre dcroissant du compteur, se fait par l'instruction: SELECT * FROM VOITURE ORDER BY Marque ASC, Compteur DESC Rsultat Marque Ford Peugeot Peugeot Renault Renault Renault Modle Escort 106 309 18 Kango kango srie Match KID Chorus RL RL RL Numro 8562EV23 7845ZS83 5647ABY82 469sj45 4568hd16 6576VE38 Compteur 75600 189500 123450 56000 12000

Regroupement de rsultats Il peut tre intressant de regrouper des rsultats afin de faire des oprations par groupe (oprations statistiques par exemple). Cette opration se ralise l'aide de la clause GROUP BY, suivie du nom de chaque colonne sur laquelle on veut effectuer des regroupements. Les principales fonctions pouvant tre effectues par groupe sont: AVG: Calcule la moyenne d'une colonne (ou de chaque regroupement si elle est couple la clause GROUP BY) COUNT: Calcule le nombre de lignes d'une table (ou de chaque regroupement ...) MAX: Calcule la valeur maximale d'une colonne (ou de chaque regroupement ...) MIN: Calcule la valeur minimale colonne (ou de chaque regroupement ...) SUM: Effectue la somme des valeurs d'une colonne (ou de chaque regroupement ...) Soit la table VOITURE ci-dessus: L'affichage des moyennes des compteurs par marque se fait par l'instruction: SELECT AVG(Compteur) FROM VOITURE GROUP BY Marque Rsultat Marque Modle srie Numro Compteur

Renault kango RL 4568hd16 70350 Peugeot 309 Chorus 5647ABY82 63816.6 Ford Escort Match 8562EV23 La clause HAVING va de pair avec la clause GROUP BY, elle permet d'appliquer une restriction sur les groupes crs grce la clause GROUP BY.

Page 50/91

L'affichage des moyennes des compteurs non nulles regroupes par marque se fait par l'instruction: SELECT AVG(Compteur) FROM VOITURE GROUP BY Marque HAVING Compteur IS NOT NULL Rsultat Marque Peugeot Ford LES JOINTURES Expression des jointures Une jointure (ou -jointure) est un produit cartsien de deux tables. On appelle quijointure une jointure dont la qualification est une galit entre deux colonnes. En SQL, l'expression d'une jointure se fait en prcisant le nom des colonnes des tables sur lesquelles on fait la jointure, en dsignant les colonnes des diffrentes tables en crivant le nom de la table, suivie d'un point puis du nom de la colonne. La clause WHERE permet de prciser la qualification de la jointure. Soit les deux tables suivantes: TABLE OCCAZ Marque Renault Renault Renault Peugeot Peugeot Ford Modle 18 Kango kango 106 309 Escort srie RL RL RL KID Chorus Match Numro 469sj45 4568hd16 6576VE38 7845ZS83 5647ABY82 8562EV23 Compteur 123450 56000 12000 75600 189500 Modle 309 Escort srie Chorus Match Numro 5647ABY82 8562EV23 Compteur 70350 63816.6

TABLE SOCIETE NOM Renault Peugeot Ford PAYS France France US

L'affichage des pays d'origine des voitures par marque/modle se fait par l'instruction: SELECT Occaz.Marque, Occaz.Modele, Societe.Nom, Societe.Pays FROM OCCAZ,SOCIETE WHERE Occaz.Marque = Societe.Nom Rsultat Marque Renault Renault Renault Peugeot Peugeot Ford LES SOUS-REQUETES Expression des sous requtes Effectuer une sous requte consiste effectuer une requte l'intrieur d'une autre, ou en d'autres termes d'utiliser une requte afin d'en raliser une autre. Une sous-requte doit tre place la suite d'une clause WHERE ou HAVING, et doit remplacer une constante ou un groupe de constantes qui permettraient en temps normal d'exprimer la qualification. Lorsque la sous-requte remplace une constante utilise avec des oprateurs classique, elle doit obligatoirement renvoyer une seule rponse (une table d'une ligne et une colonne). Par exemple: SELECT ---- FROM ---WHERE ---- < (SELECT ---- FROM ----) Modle 18 Kango kango 106 309 Escort Pays France France France France France US

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Lorsque la sous-requte remplace une constante utilise dans une expression mettant en jeu les oprateurs IN, EXISTS, ALL ou ANY, elle doit obligatoirement renvoyer une seule ligne. SELECT ---- FROM ---WHERE ---- IN (SELECT ---- FROM ----) Revenons a la table voiture: La slection des voitures dont le compteur est infrieur la moyenne se fait par l'instruction: SELECT * FROM OCCAZ WHERE Compteur < (SELECT AVG(Compteur) FROM OCCAZ) Rsultat Marque Renault Renault Peugeot OPERATIONS ENSEMBLISTES Les oprations ensemblistes Les oprations ensemblistes en SQL, sont ceux dfinis dans l'algbre relationnelle. Elles sont ralises grce aux oprateurs: UNION INTERSECT (ne fait pas partie de la norme SQL et n'est donc pas implment dans tous les SGBD) EXCEPT (ne fait pas partie de la norme SQL et n'est donc pas implment dans tous les SGBD) Ces oprateurs s'utilisent entre deux clauses SELECT. L'oprateur UNION Cet oprateur permet d'effectuer une UNION des tuples slectionns par deux clauses SELECT (les deux tables sur lesquelles on travaille devant avoir le mme schma). SELECT ---- FROM ---- WHERE -----UNION SELECT ---- FROM ---- WHERE -----Par dfaut les doublons sont automatiquement limins. Pour conserver les doublons, il est possible d'utiliser une clause UNION ALL. L'oprateur INTERSECT Cet oprateur permet d'effectuer une INTERSECTION des tuples slectionns par deux clauses SELECT (les deux tables sur lesquelles on travaille devant avoir le mme schma). SELECT ---- FROM ---- WHERE -----INTERSECT SELECT ---- FROM ---- WHERE -----L'oprateur INTERSECT n'tant pas implment dans tous les SGBD, il est possible de le remplacer par des commandes usuelles: SELECT a,b FROM table1 WHERE EXISTS ( SELECT c,d FROM table2 WHERE a=c AND b=d ) L'oprateur EXCEPT Cet oprateur permet d'effectuer une DIFFERENCE entre les tuples slectionns par deux clauses SELECT, c'est--dire slectionner les tuples de la seconde table n'appartenant pas la premire (les deux tables devant avoir le mme schma). SELECT a,b FROM table1 WHERE -----INTERSECT SELECT c,d FROM table2 WHERE -----L'oprateur EXCEPT n'tant pas implment dans tous les SGBD, il est possible de le remplacer par des commandes usuelles: SELECT a,b FROM table1 WHERE NOT EXISTS ( SELECT c,d FROM table2 WHERE a=c AND b=d) Modle Kango Kango 106 srie RL RL KID Numro 4568hd16 6576VE38 7845ZS83 Compteur 56000 12000 75600

Page 52/91

MODIFICATION DES DONNEES

Le SQL permet la modification d'une table par un utilisateur (pour peu qu'il ait les droits suffisants...). La modification d'une table consiste : Ajouter des tuples Modifier des tuples existants Ou bien supprimer des tuples Insertion de donnes L'insertion de nouvelles donnes dans une table se fait grce l'ordre INSERT, qui permet d'insrer de nouvelles lignes dans la table. L'ordre INSERT attend la clause INTO, suivie du nom de la table, ainsi que du nom de chacune des colonnes entre parenthses (les colonnes omises prendront la valeur NULL par dfaut). Les valeurs insrer peuvent tre prcises de deux faons: avec la clause VALUES: une seule ligne est insre, elle contient comme valeurs, l'ensemble des valeurs passes en paramtre dans la parenthse qui suit la clause VALUES. Les donnes sont affectes aux colonnes dans l'ordre dans lequel les colonnes ont t dclares dans la clause INTO INSERT INTO Nom_de_la_table(colonne1,colonne2,colonne3,...) VALUES (Valeur1, Valeur2, Valeur3,...) Lorsque chaque colonne de la table est modifie, l'numration de l'ensemble des colonnes est facultative avec la clause SELECT: plusieurs lignes peuvent tre insres, elle contiennent comme valeurs, l'ensemble des valeurs dcoulant de la slection. Les donnes sont affectes aux colonnes dans l'ordre dans lequel les colonnes ont t dclares dans la clause INTO INSERT INTO Nom_de_la_table(colonne1,colonne2,...) SELECT colonne1, colonne2,... FROM Nom_de_la_table2 WHERE qualification Lorsque l'on remplace un nom de colonne suivant la clause SELECT par une constante, sa valeur est affecte par dfaut aux tuples. Il n'est pas possible de slectionner des tuples dans la table dans laquelle on insre des lignes (en d'autres termes Nom_de_la_table doit tre diffrent de Nom_de_la_table2) Modification de donnes La modification de donnes (aussi appele mise jour) consiste modifier des tuples (des lignes) dans une table grce l'ordre UPDATE. La modification effectuer est prcis aprs la clause SET. Il s'agit d'une affectation d'une valeur une colonne grce l'oprateur = suivi d'une expression algbrique, d'une constante ou du rsultat provenant d'une clause SELECT. La clause WHERE permet de prciser les tuples sur lesquels la mises jour aura lieu UPDATE Nom_de_la_table SET Colonne = Valeur_Ou_Expression WHERE qualification Suppression de donnes La suppression de donnes dans une table se fait grce l'ordre DELETE. Celui-ci est suivi de la clause FROM, prcisant la table sur laquelle la suppression s'effectue, puis d'une clause WHERE qui dcrit la qualification, c'est--dire l'ensemble des lignes qui seront supprimes. L'ordre DELETE est utiliser avec prcaution car l'opration de suppression est irrversible. Il faudra donc s'assurer dans un premier temps que les lignes slectionnes sont bien les lignes que l'on dsire supprimer!

CREATION DES TABLES Le SQL, comportant un langage de dfinition de donnes (LDD), permet de crer des tables. Pour cela, il utilise le couple de mots cls CREATE TABLE. La cration de tables Le cration de tables se fait l'aide du couple de mots-cls CREATE TABLE. La syntaxe de dfinition simplifie d'une table est la suivante: CREATE TABLE Nom_de_la_table (Nom_de_colonne1 Type_de_donne,

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Nom_de_colonne2 Type_de_donne, ...); Le nom donn la table doit gnralement (sur la plupart des SGBD) commencer par une lettre, et le nombre de colonnes maximum par table est de 254. Les types de donnes Pour chaque colonne que l'on cre, il faut prciser le type de donnes que le champ va contenir. Celui-ci peut tre un des types suivants:

Type de donne

Syntaxe

Description Chane de caractres de longueur fixe n (n<16383) Chane de (n<16383) caractres de n caractres maximum

Type alphanumrique CHAR(n) Type alphanumrique VARCHAR(n) Type numrique Type numrique Type numrique Type numrique Type horaire Type horaire Type horaire NUMBER(n,[d]) SMALLINT INTEGER FLOAT DATE TIME TIMESTAMP

Nombre de n chiffres [optionnellement d aprs la virgule] Entier sign de 16 bits (-32768 32757) Entier sign de 32 bits (-2E31 2E31-1) Nombre virgule flottante Date sous la forme 16/07/99 Heure sous la forme 12:54:24.85 Date et Heure

L'option NOT NULL, place immdiatement aprs la type de donne permet de prciser au systme que la saisie de ce champ est obligatoire. Insertion de lignes la cration Il est possible de crer une table en insrant directement des lignes lors de la cration. Les lignes insrer peuvent tre alors rcupres d'une table existante grce au prdicat AS SELECT. La syntaxe d'une telle expression est la suivante: CREATE TABLE Nom_de_la_table (Nom_de_colonne1 Type_de_donne, Nom_de_colonne2 Type_de_donne, ...) AS SELECT Nom_du_champ1, Nom_du_champ2, ... FROM Nom_de_la_table2 WHERE Prdicat; LES CONTRAINTES DINTEGRITE Expression de contraintes d'intgrit Une contrainte d'intgrit est une clause permettant de contraindre la modification de tables, faite par l'intermdiaire de requtes d'utilisateurs, afin que les donnes saisies dans la base soient conformes aux donnes attendues. Ces contraintes doivent tre exprimes ds la cration de la table grce aux mots cls suivants: CONSTRAINT DEFAULT NOT NULL UNIQUE CHECK Dfinir une valeur par dfaut Le langage SQL permet de dfinir une valeur par dfaut lorsqu'un champ de la base n'est pas renseign grce la clause DEFAULT. Cela permet notamment de faciliter la cration de tables, ainsi que de garantir qu'un champ ne sera pas vide. La clause DEFAULT doit tre suivie par la valeur affecter. Cette valeur peut tre un des types suivants: Constante numrique Constante alphanumrique (chane de caractres) Le mot cl USER (nom de l'utilisateur) Le mot cl NULL Le mot cl CURRENT_DATE (date de saisie)
Page 54/91

Le mot cl CURRENT_TIME (heure de saisie) Le mot cl CURRENT_TIMESTAMP (date et heure de saisie) Forcer la saisie d'un champ Le mot cl NOT NULL permet de spcifier qu'un champ doit tre saisi, c'est--dire que le SGBD refusera d'insrer des tuples dont un champ comportant la clause NOT NULL n'est pas renseign. Emettre une condition sur un champ Il est possible de faire un test sur un champ grce la clause CHECK() comportant une condition logique portant sur une valeur entre les parenthses. Si la valeur saisie est diffrente de NULL, le SGBD va effectuer un test grce la condition logique. Celui-ci peut ventuellement tre une condition avec des ordres SELECT... Tester l'unicit d'une valeur La clause UNIQUE permet de vrifier que la valeur saisie pour un champ n'existe pas dj dans la table. Cela permet de garantir que toutes les valeurs d'une colonne d'une table seront diffrentes. Nommer une contrainte Il est possible de donner un nom une contrainte grce au mot cl CONSTRAINT suivi du nom que l'on donne la contrainte, de telle manire ce que le nom donn s'affiche en cas de non respect de l'intgrit, c'est--dire lorsque la clause que l'on a spcifie n'est pas valide. Si la clause CONSTRAINT n'est pas spcifie, un nom sera donn arbitrairement par le SGBD. Toutefois, le nom donn par le SGBD risque fortement de ne pas tre comprhensible, et ne sera vraisemblablement pas compris lorsqu'il y aura une erreur d'intgrit. La stipulation de cette clause est donc fortement conseille. Exemple de cration de table avec contrainte Voici un exemple permettant de voir la syntaxe d'une instruction de cration de table avec contraintes: create TABLE clients( Nom char(30) NOT NULL, Prenom char(30) NOT NULL, Age integer, check (age < 100), Email char(50) NOT NULL, check (Email LIKE "%@%")) Dfinition de cls Grce SQL, il est possible de dfinir des cls, c'est--dire spcifier la (ou les) colonne(s) dont la connaissance permet de dsigner prcisment un et un seul tuple (une ligne).

L'ensemble des colonnes faisant partie de la table en cours permettant de dsigner de faon unique un tuple est appel cl primaire et se dfinit grce la clause PRIMARY KEY suivie de la liste de colonnes, spares par des virgules, entre parenthses. Ces colonnes ne peuvent alors plus prendre la valeur NULL et doivent tre telles que deux lignes ne puissent avoir simultanment la mme combinaison de valeurs pour ces colonnes. PRIMARY KEY (colonne1, colonne2, ...) Lorsqu'une liste de colonnes de la table en cours de dfinition permet de dfinir la cl primaire d'une table trangre, on parle alors de cl trangre, et on utilise la clause FOREIGN KEY suivie de la liste de colonnes de la table en cours de dfinition, spares par des virgules, entre parenthses, puis de la clause REFERENCES suivie du nom de la table trangre et de la liste de ses colonnes correspondantes, spares par des virgules, entre parenthses. FOREIGN KEY (colonne1, colonne2, ...) REFERENCES Nom_de_la_table_etrangere(colonne1,colonne2,...)

Module N 5 Manipulation de base de donne

Filire : TSSSRI

V LES FORMULAIRES et sous- FORMULAIRES


Reprenons lexemple de dpart. Le directeur du centre souhaite que lorsque ladhrent vient sinscrire, la saisie soit facile faire et que le montant payer apparaisse directement sur le formulaire de saisie. Le reu des cotisations devra alors pouvoir tre imprim facilement. Nous allons donc crer un formulaire de saisie qui nous permettra dentrer les renseignement concernant ladhrent et les activits quil souhaite pratiquer, et visualiser le montant total payer. La saisie doit pouvoir se faire dans les deux tables ADHERENT et PRATIQUE, au moyen dun seul formulaire, avec sous formulaire, qui se prsentera ainsi : Nous devons baser le formulaire principal sur une requte partir des tables ADHERENT et LIEU, de faon faire apparatre tous les champs concernant ladhrent, son lieu de pratique et le montant du droit dentre quil aura payer. Cette requte est trie sur le numro de ladhrent, et se nommera R_entre par adhrent. Pour le sous formulaire nous crons une requte base sur la table PRATIQUE et la table ACTIVITE, en filtrant : Code_activ de la table PRATIQUE Activits de la table ACTIVITES Tarif de la table ACTIVITES Num_adh de la table PRATIQUE Elle se nommera R_activits par adhrent et aura lallure suivante : Le formulaire est cr laide de lassistant partir de tous les champs de la premire requte (pour le formulaire principal) , et des champs Code_activ, Activit et Tarif de la deuxime requte (pour le sous formulaire). Le formulaire principal est nomm SAISIE DES ADHERENTS et le sous formulaire SF activits par adhrent. Il reste maintenant modifier le formulaire principal de faon faire apparatre le montant global des cotisations concernant les activits et le montant total payer par ladhrent. Le droit dentre figure dj dans le formulaire principal dans un contrle nomm Entre. On peut le dplacer en bas du formulaire de faon le regrouper avec les autres calculs. Calculs dans le sous formulaire Il faut modifier le sous formulaire SF activits par adhrent de faon rajouter le calcul du total des cotisations, dans le pied de formulaire. Ce calcul est introduit dans un contrle de type zone de texte par la formule suivante : =SOMME([tarif]) Ce contrle est nomm Total. Calculs dans le formulaire principal Dans le formulaire principal, il suffit maintenant de crer un contrle de type Zone de texte dans lequel on va gnrer la formule suivante : =[SF activits par adhrent].[Formulaire]![Total] Celle-ci rcupre le total des cotisations dans le sous-formulaire. Ce contrle se nommera Cotis. Dans un autre contrle de type zone de texte, il suffit maintenant dentrer la formule suivante : =[Entre]+[Cotis] Celle-ci renvoie le total d par ladhrent.

Page 56/91

Nous pouvons aussi ajouter un contrle de type Zone de liste pour faciliter le choix du lieu de pratique. Nous pouvons schmatiser lenchainement des lments de la faon suivante :

Table ADHERENT

Table LIEU

Table PRATIQUE

Table ACTIVITE

REQUETE R_entre par adhrent Table ADHERENT Tous les champs

REQUETE R_activits par adhrent Table PRATIQUE Activ Num_adh Table ACTIVITES Activit

Tri par Numro


Table LIEU

Lieu

Formulaire principal

Sous formulaire avec calcul du total

Calculs

VI LES ETATS
L'tat, dans un systme de bases de donnes, est l'lment qui permet d'obtenir une prsentation des donnes sur papier. Bien sr vous pouvez imprimer n'importe quel autre objet, table, formulaire, etc. Mais vous aurez une liste exhaustive de toutes les donnes et de tous les champs, alors qu'un tat donne la possibilit de n'imprimer que certains champs, avec une mise en forme choisie, et de plus on peut obtenir des calculs et des regroupements. Il est aussi possible par le biais de l'tat de crer des tiquettes pour envoyer des courriers. tat-liste Pour obtenir une tat ainsi prsent, vous allez utiliser l'assistant-tat d'Access.

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Cet tat, comme vous le voyez, affiche les adhrents et les classe par ville. Tri alphabtique l'intrieur de chaque ville. Dans le fentre Bases de donnes, placez-vous dans l'onglet Etats et cliquez crer un Etat l'aide de l'assistant. Double-cliquez les champs suivants : Civilit, NomAd, Prnom, Adresse, CodePostal, Ville, DateAd. Cliquez Suivant. Dans le panneau suivant, choisissez le niveau de regroupement : Ville (double-cliquez dessus). Vous voyez se dessiner l'tat. Cliquez Suivant. Choisissez NomAd dans le panneau qui suit. Cliquez Suivant. Cliquez encore deux fois Suivant et la fin acceptez le nom Adhrents pour votre tat. L'tat se prsente l'cran en mode Affichage ; mais le fait d'avoir utilis l'assistant ne vous oblige pas accepter la prsentation exactement telle qu'il la propose ! Vous prfreriez juste titre avoir une prsentation en Paysage pour ne pas tronquer certains champs. Passez en mode Cration. Vous tes l'envers du dcor. Regardez comment se prsente la structure de cet tat ; dans la section En-tte de page, vous avez les tiquettes (les titres des colonnes) dans la section En-tte de groupe vous avez le champ de regroupement (Ville) et dans la section Dtail, ce sont les zones de texte (l o saffichent les donnes). Commencez par mettre ltat en Paysage (Fichier Mise en page, Page, Paysage). Ensuite arrangez, dplacez, agrandissez les tiquettes pour quelles ne soient pas tronques ; vous pouvez changer leur contenu si vous le souhaitez (par exemple, au lieu de DateAd saisissez Date dadhsion). Puis modifiez la place des zones de texte de la section Dtail pour quelles soient conformes au tiquettes. Ne changez rien au contenu des zones de texte, car comme vous le savez, ces contenus correspondent des champs bien prcis de la base. Passez en Affichage pour voir (pour les tats, le mode Affichage est symbolis par licne Aperu ). Les traits bleus sont trop courts maintenant que vous avez mis la page en Paysage. Repassez en Cration, reprez les traits (ils sont dans la section En-tte de page au ras en haut et en bas de cette zone) et agrandissez-les avec la souris. Changez le titre de ltat : juste aprs ADHRENTS, saisissez PAR VILLE. Jugez de leffet en mode Affichage. Imprimez votre tat. Planche dtiquettes Depuis llment Etats de la fentre Base de donnes, cliquez sur licne Nouvel Objet, choisissez Etat, puis Assistant Etiquette, et choisissez ADHRENTS comme table.

Page 58/91

Cliquez deux fois sur Suivant. Double-cliquez sur les champs insrer dans ltiquette en plaant des espaces entre eux. Si vous ne mettez pas despaces, ne vous plaignez pas ensuite que la prsentation est vilaine. Dans le panneau suivant, choisissez le tri sur le NomAd pour diter vos tiquettes en ordre alphabtique. Suivant. Terminer. Vos 10 tiquettes doivent tenir sur une page A4.

tat de regroupement et de synthse Vous avez cr prcdemment une requte qui prsente les locations par types de bateaux. Vous souhaiteriez disposer dun Etat bas sur cette requte qui effectuerait des calculs : dabord le nombre total et le nombre moyen de participants un sjour pour un type de bateau, ensuite la dure moyenne dun sjour ainsi que la dure totale par type de bateau. Dans Etats, cliquez Crer un tat laide de lassistant. Basez-vous sur la requte LOCATIONS PAR TYPE DE BATEAU. Ajoutez les champs Catgorie, NomBateau, NomAd, Nb total, Dure. Cliquez 3 fois Suivant. Cliquez Options de synthse. Cochez Somme et Moyenne pour les deux lignes. Laissez Dtail et Total, cliquez Ok. Choisissez NomAd comme critre de tri, cliquez 3 fois suivant. Donnez comme nom ltat : TAT DES CROISIRES PAR CATGORIE DE BATEAUX. Passez en cration ; supprimez les zones en italiques synthse.. ; <

Revenez en Affichage pour voir si cela vous convient. Si vous le souhaitez, vous pouvez apporter des amliorations la prsentation. Vous allez enregistrer quelques rservations supplmentaires et ensuite vous raliserez un autre type dtat, visant calculer le chiffre daffaires des croisires. Madame MARIN AU FIL DE L'EAU 24 adultes et 7 enfants 24 juillet Madame MARIN EVASION 34 adultes 5 aot Monsieur LE GUEN AU FIL DE L'EAU 15 adultes et 18 enfants 26 juillet Monsieur GUEGUEN EAU FRAICHE 15 adultes 12 enfants 7 aot Monsieur MALECK DETENTE 27 adultes 0 enfants 2 aot Mademoiselle DURUEL EAU FRAICHE 20 adultes 13 enfants 10 aot

Vous allez crer un tat qui permettra de connatre le chiffre d'affaires des croisires, avec le dtail par croisire. Il aura cette allure :

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Vous allez d'abord pour plus de facilit crer une requte qui regroupe les tables utiles, d'o vous pourrez extraire les champs que vous voulez utiliser. Crez une nouvelle requte en mode Cration. Ajoutez les tables ADHRENTS, RSERVATIONS et CROISIRES. Ajoutez les champs NomCrois, NomAd, NbAd, NbEnf. Crez la suite des champs affichs deux champs calculs comme suit : Nb Pers : [NbAd]+[NbEnf] Cot total : [TarifAd]*[NbAd]+[TarifEnf]*[NbEnf] Excutez la requte pour voir le rsultat puis fermez-la et enregistrez-la sous le nom POUR TAT CROISIRES. Dans l'lment Etats, cliquez Crer un Etat avec l'aide de l'assistant. Choisissez la requte POUR TAT CROISIRES, ajoutez tous les champs en cliquant sur le double chevron. Cliquez Suivant. Regroupez sur le NomCrois. Cliquez Options de synthse, cochez Somme pour Nb Pers et pour Cot et Moyenne pour Nb Pers. Ok. Triez selon les NomAd. Suivant. Allez jusqu'au bout, donnez comme nom CHIFFRE D'AFFAIRES CROISIRES. Passez en Cration, agrandissez les tiquettes et/ou les zones qui pourraient tre tronques (faites notamment attention aux zones qui contiennent des chiffres, car si elles sont tronques, on peut croire que les calculs sont faux alors qu'ils sont cachs). Supprimez la mention en italique "Synthse;" qui n'est pas utile. Pour peaufiner, rapprochez les mots Somme et Moyenne des chiffres concerns. Ecrivez en clair les intituls. ETAT BASE SUR UNE TABLE Nous voulons diter la liste des adhrents avec un regroupement par lieu. Il suffit dutiliser lassistant tat, en slectionnant la table ADHERENT. Nous obtiendrons ltat suivant :

Page 60/91

tat bas sur une requte Nous voulons maintenant diter un tat gnral des cotisations des adhrents. Il suffit de crer une requte filtrant les renseignements suivants : Table ADHERENT : Numro adhrent, Nom, Prnom, Entre, Table LIEU : Lieu de pratique, Table ACTIVITE : Activit, Tarif Nous crons ensuite un tat avec regroupement sur les caractristiques de ladhrent. Nous rajoutons le calcul du cumul des cotisations des activits en pied de groupe, ainsi que le calcul du Montant total payer.

Aprs mise en forme, il se prsentera ainsi : ETAT BASE SUR UNE REQUETE PARAMETREE De la mme faon il est possible de crer un tat des cotisations dun seul adhrent. Nous crons une requte avec les renseignements suivants : Table ADHERENT : Nom, prnom, adresse, code postal, ville et entre Table LIEU : Lieu Table ACTIVITE : Activit et tarif Dans la colonne Num_adh de la requte, il suffit dajouter le paramtre suivant sur la ligne critre : [Saisir le numro de ladhrent]. De cette faon, lorsquil est fait appel cette requte, un message demande lutilisateur de saisir le numro de ladhrent. Les donnes sont alors filtres sur ce numro. Nous crons ensuite un tat des cotisations pour un adhrent. Avec tous les renseignements cidessus. Nous rajoutons le calcul du montant d par ladhrent.

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Ltat peut se prsenter ainsi aprs mise en forme : AUTRES ETATS

On pourra ainsi crer dautres tats en fonction des besoins de lapplication. Par exemple on peut crer ltat des cotisations par lieu de pratique :

Page 62/91

Module N 5 Manipulation de base de donne

Filire : TSSSRI

PARTIE 4 TRAVAUX D'APPLICATION

Module N 5 Manipulation de base de donne

Filire : TSSSRI

PARTIE 5 Travaux d'application

Introduction Les travaux dapplications sont conu pour tre une synthse des acquis thorique vue dans le modules 5 manipulation de base de donnes , ils sont poses sous forme datelier enchaner qui abouti a llaboration dune application de base de donne touchant la totalits des fonctionnalits dun SGBDR Tel que MS Access. Le projet est ports sur la GESTION DUN FOURNISSEUR DE PHARMACIES

Page 64/91

Module N 5 Manipulation de base de donne

Filire : TSSSRI

ATELIER N 1 Cration de tables Objectifs : Crer une base de donne sous MS Access Crer des table sous MS Access Dfinir des Cls Un micro-ordinateur par 2 stagiaires Un logiciel de base de donnes MS ACCESS Une imprimante

Travail effectu avec:

Un laboratoire de mdicaments dsire informatiser la gestion de stock des mdicaments ainsi que la gestion des commandes, et les mdicaments prims et dautres oprations manuelles. 1) Crer une nouvelle base de donnes sur le disque dur, en prcisant le nom de la base gestion dun Laboratoire de mdicaments . 2) Crer la table mdicaments pour le stockage des informations concernant tous les mdicaments Sur la 1re colonne, vous prciserez les noms des champs, Sur la 2me colonne, vous prciserez les types des champs, Sur la 3me colonne, vous donnez les descriptions des champs. La liste des champs de la table mdicaments est la suivante : Nom du champ Rfrence mdicament Libelle mdicament Date de premption Prix unitaire Quantit en Stock Quantit min Type de donnes Numrique Texte Date Numrique Numrique Numrique

4) Une fois les noms des champs spcifis, vous devez dfinir la cl primaire pour la table en . utilisant licne 5) Crer la table Catgorie de mdicament nomme (Catgorie) La liste des champs de la table Catgorie est la suivante : Nom du champ Numro Catgorie Libelle Catgorie Type de donnes Numrique Texte

6) Crer la table pharmacie La liste des champs de la table Pharmacie est la suivante : Nom du champ Numro pharmacie Nom pharmacie Adresse Tel Type de donnes Numrique Texte Texte Texte

6) Fermez la base de donnes Fournisseur de pharmacies avec Fichier / Fermer.

Module N 5 Manipulation de base de donne

Filire : TSSSRI

ATELIER N 2 Remplissage des tables

Objectifs :

Remplir et saisir les donne table sous MS Access Mettre en forme des tables et Champs Grer les tables sous MS Access Un micro-ordinateur par 2 stagiaires Un logiciel de base de donnes MS ACCESS Une imprimante

Travail effectu avec:

1) Entrez les donnes des mdicaments dans la table mdicaments , en cliquant sur le bouton table puis ouvrir. Informations saisir dans la table mdicaments : Rfrence Mdicament 0001 0002 . . Libelle Mdicament Doliprane Aspgic . . Date Premption 01/01/2004 12/03/2004 Prix unitaire 12 50 Quantit en Stock 100 200 Quantit en Seuil 20 50

2) Triez les enregistrements 3) Recherchez lenregistrement n 0007 4) Supprimer lenregistrement n 0007 5) Modifier la largeur des colonnes 6) Modifier la hauteur des lignes 7) Masquer la colonne Quantit min 8) Rafficher la colonne Quantit min . 9) Figez la colonne Libelle mdicament 10) Changer la couleur de larrire plan de la table 11) Faites une copie de la table (Donnes et structure) 12) Renommez la table Mdicament 13) Supprimez la table que vous venez de renommer. 14) Entrez les donnes des Catgories dans la table catgorie Numro catgorie 01 02 03 . Libell catgorie Antibiotique Antiinflamatoire Antalgique .

15) Entrez les donnes des pharmacies dans la table pharmacie Numro pharmacie 001 002 . Nom pharmacie Pharma-Maroc MdiAgdal Adresse 36 Av Toubkal Fs 25 Av mohamed Casablanca Tel 56-89-75-55 V 75-48-89-36

Page 66/91

ATELIER N 3 Proprit des tables

Objectifs :

Dfinir et configurer les proprits des tables Dfinir et configurer les proprits des champs Un micro-ordinateur par 2 stagiaires Un logiciel de base de donnes MS ACCESS Une imprimante

Travail effectu avec:

A) Copier la table mdicament sous un autre nom mdicament1 (la structure seulement). B) Ouvrez la table mdicament1 et dfinissez les proprits des champs.

Aprs avoir dfini chaque nouveau format, basculez du mode cration vers le mode feuille de donnes pour tester le format que vous venez de crer
1. 2. Rfrence mdicament doit tre numrique Le Libell du mdicament doit avoir une entre indispensable, sachant quune chane vide est interdite 3. La quantit min doit avoir une valeur par dfaut 10 . 4. Le libell du mdicament doit tre saisi en majuscule et affich en bleu 5. Le tel domicile doit comporter uniquement des chiffres 6. La date de premption doit tre suprieur la date du systme 7. La Quantit min doit tre comprise entre 10 et 100 8. Pour la date de premption, elle doit tre comprise entre date systme +1jour et la date systme +5ans. 9. Lorsque vous entrez une date qui ne respecte pas la rgle de validit, Access ouvre une bote de dialogue affichant un message derreur. Modifiez le message de cette bote de dialogue. 10. Crer une rgle de validit qui permet de contrler si la quantit en stock est suprieure la quantit min. (Proprit de la table). Afficher un message derreur personnalis.

Module N 5 Manipulation de base de donne

Filire : TSSSRI

ATELIER N 4 Les Requtes

Objectifs :

Crer des requtes a laide dinterface graphique de MS Access Crer des requtes a laide du code SQL

Travail effectu avec:

Un micro-ordinateur par 2 stagiaires Un logiciel de base de donnes MS ACCESS Une imprimante

N.B

Les stagiaires doivent raliser latelier en utilisant les deux modes dinterrogation des bases de donnes (graphique et code SQL).

1. Crez une requte n'affichant que les mdicament(s) dont la date de premption est
infrieure 2003. Procdez comme suit :

Appuyez sur le bouton Requtes puis Nouveau Mode cration puis Ok Slectionnez la table mdicaments et appuyer sur Ajouter, puis Fermer Glissez les champs que vous voulez afficher dans la requte Placez le critre <=31/12/2003 dans le champ date de premption.

2. Enregistrez la requte sous le nom liste 2003 avec Fichier / Enregistrer. 3. Ajoutez le champ code catgorie dans la table mdicament (en utilisant la

commande Insrer Liste de choix) afin de pouvoir crer une requte qui regroupe les deux tables mdicament et catgorie . 4. Modifier la requte liste des mdicaments par catgorie , en affichant que les mdicaments ayant la catgorie Antibiotique . 5. Modifier la requte liste des mdicaments par catgorie , en affichant que les mdicaments ayant la catgorie Antibiotique et la date de premption suprieure 2003. 6. Crer une nouvelle table Achat , pour chaque Achat on veut savoir le Nom pharmacie, le mdicament, la quantit achet, la date dachat. 7. Crer la requte qui affiche la liste des achats effectus. 8. Modifier la requte en affichant que les achats effectus par une pharmacie spcifie comme paramtre. 9. Faites une copie de la requte. 10. Supprimez la requte. 11. Modifiez la requte Liste des mdicaments par catgorie par liste des mdicament par catgorie et par date en paramtrant la catgorie et la date. 12. Crer une requte sous le nom Liste des mdicaments commenant par C permettant dafficher lensemble des mdicaments dont le nom commence par la lettre C. 13.Modifier la requte prcdente de telle manire pouvoir afficher toutes les mdicaments dont le nom commence avec le caractre spcifi en tant que paramtres. 14.Crer une nouvelle requte nomme liste des mdicaments achets pendant une priode permettant dafficher la liste des mdicaments achets pendant une date dbut et une date fin. 15. Crer une requte de la table mdicament qui permet de calculer automatiquement le nombre dannes restant de chaque mdicament pour tre prim.

16.Crer une requte permettant laffichage de la liste des pharmacies se trouvant rabat. 17.Crer une requte permettant laffichage de la liste des pharmacies se trouvant rabat et 18.Crer une requte permettant laffichage du nombre total dachat par pharmacie pendant 19.Crer une requte permettant laffichage du nombre total de mdicaments par catgorie 20.Crer une requte paramtr permettant dafficher le montant minimum dachat dune 21.Afficher le prix de mdicament le plus cher dune catgorie donne.
Page 68/91

dont le numro de tlphone commence par le 77. une anne.

donne comme paramtre. pharmacie.

22.Crer la requte qui affiche les nom des mdicaments dont la date de premption est 23.Augmenter de 10% le prix des mdicaments dont le prix est suprieur 100. 24.Requte Cration de table
Requte cration de table pour copier tous les mdicaments dont la quantit est infrieure 30, dans une table Rupture. Requte cration de table pour copier juste les codes et les dsignations des mdicaments dans une table mdicament. Requte cration de table pour copier la table pharmacie dans une nouvelle table pharmacie sauve. aujourdhui.

25.Requte dajout

Requte ajout permettant dajouter des pharmacies dans la table pharmacie partir de la table pharmacie sauve.

26.Requte Suppression

Requte suppression permettant de supprimer un mdicament quelconque dans la table mdicament. Requte suppression permettant de supprimer les achats passs avant le (01/01/2001). Requte suppression permettant de supprimer les achats dune pharmacie donne.

27.Requte mise jour


Requte mise jour permettant deffectuer une rduction de 10% sur les prix unitaire de tous les mdicaments. Requte mise jour permettant daugmenter la quantit disponible de 20% pour tous les mdicaments.

Module N 5 Manipulation de base de donne

Filire : TSSSRI

ATELIER N 5 Les Formulaires

Objectifs :

Crer des Formulaires de saisie en mode cration Mettre en forme les formulaires

Travail effectu avec:

Un micro-ordinateur par 2 stagiaires Un logiciel de base de donnes MS ACCESS Une imprimante

1. Crez un nouveau formulaire de la table mdicament en mode cration .


Appuyez sur le bouton Formulaire, puis Nouveau. Choisissez la table mdicament. Mode cration. Changez la couleur darrire plan. Insrez le titre gestion du personnel Modifier le format du titre 3D enfonc . Insrez les champs de la table mdicament. Insrez un champ affichant la date du jour. Modifiez le format des champs (taille, police, couleur, style). Insrez une image. Basculez en mode formulaire pour visualiser les modifications.

2. Utilisez les boutons de navigation, situs en bas du formulaire, pour passer dun 3. Crez un deuxime formulaire mode cration de la table Catgorie. 4. Modifiez le format de votre formulaire en basculant en mode cration. 5. Crez un formulaire de la table mdicament dans le format tabulaire (reprsentant 6. Insrez dans votre formulaire un graphique Excel reprsentant les donnes suivantes :
Anne 2000 2001 2002 Antibiotique 1012 1520 1789 Antinflamatoire 1520 2006 2500 les valeurs en lignes et colonnes comme un tableau dune feuille de calcul). enregistrement un autre.

7. Crez un formulaire de type graphique reprsentant les donnes de la requte Liste 8. Le formulaire suivant sera de type sous-formulaire. Etant entendu que dans une
des mdicaments par catgorie . catgorie donn, il y a plusieurs mdicament, il est trs utile pour vous dobtenir dans un tableau tout les mdicaments dune catgorie. 9. Jusqu prsent, vous avez enregistr dans les tables des donnes rdiges par crit. Le champ de type objet OLE permet denregistrer dans la table des images ou des photos. Voil pas pas la mthode pour linsertion dun champ de type OLE dans une table. Ouvrez la table pharmacie . Ajoutez un champ de type OLE, nomm logo . Basculez en mode feuille de donnes. Positionnez le curseur sur le champ logo du 1er enregistrement. Choisissez le menu Insertion / Objet. Cherchez le nom du fichier insrer partir du bouton Parcourir. Spcifier le chemin de recherche et appuyer sur Ouvrir. Crer un nouveau formulaire de la table Pharmacie en insrant le nouveau champ logo .

Page 70/91

ATELIER N 6 Les Formulaires (suite)

Objectifs :

Crer des Formulaires de saisie en mode Assistant Crer et manipuler les contrles

Travail effectu avec:

Un micro-ordinateur par 2 stagiaires Un logiciel de base de donnes MS ACCESS Une imprimante

1. Crez un nouveau formulaire de la table mdicament en mode assistant pour 2. Crez un autre formulaire de la table mdicament permettant de modifier les donnes des 3. Copier le formulaire et modifiez dans les proprits de telle faon pouvoir consulter les 4. Crez un formulaire principal reliant lensemble des formulaires prcdents. (Utilisation des 5. Ajoutez dans les formulaires (ajout modification et consultation) un bouton de fermeture ; 6. Crer un formulaire Cration et mise jour de la table Pharmacie en utilisant des
pour pouvoir revenir au formulaire principal. boutons de commandes. Bouton Cration Bouton Modification Bouton Suppression Bouton Consultation Boutons de dplacements Bouton Quitter qui revient au menu principal 7. Crer un formulaire qui permet laffichage des informations de la table Achat en accordant une remise de prix pour chaque pharmacie de 0,75. boutons). enregistrements sans mise jour. champs part celui du code mdicament. ajouter de nouveau enregistrements sans modifier les anciens.

Module N 5 Manipulation de base de donne

Filire : TSSSRI

ATELIER N 7 Les Etats

Objectifs :

Crer et imprimer les tats basant sur des tables et des requtes Crer des de regroupement Mettre en forme les tats Un micro-ordinateur par 2 stagiaires Un logiciel de base de donnes MS ACCESS Une imprimante

Travail effectu avec:

1. Crez un Etat reprsentant la liste des mdicaments Appuyez sur Etat puis Nouveau Slectionnez la table et le type d'tat que vous souhaitez crer, cliquez sur OK. Slectionnez les champs insrer dans l'tat (de la mme faon que l'insertion des
champs dans un formulaire). Cliquez sur Suivant. Indiquez comment doit s'effectuer le regroupement des enregistrements et Cliquez sur Suivant. Slectionnez le ou les champs en fonction desquels les enregistrements doivent tre tris lors de l'impression de l'tat et cliquez sur suivant. Choisissez la prsentation souhaite et cliquez sur suivant. Tapez le titre de l'tat. Activez l'option Placer tous les champs sur une seule page pour que chaque enregistrement soit imprim sur une seule ligne. Cliquez sur le bouton Aperu pour visualiser le rsultat. Basculez en mode cration afin de modifier la prsentation de votre Etat. Crez un nouvel Etat permettant le regroupement des mdicaments par catgorie. Crez un Etat style tabulaire permettant dditer la liste des pharmacies. Crez un Etat bas sur la table pharmacie pour laquelle il faut gnrer des tiquettes en vue d'un publipostage. Cliquez sur Etat puis sur le bouton Nouveau ; Cliquez sur Assistant Etiquette ; Choisissez la table pharmacie ; Choisissez la mise en forme de vos tiquettes et le format de vos tiquettes ; Placez les champs Cliquez sur le bouton Terminer pour visualiser le rsultat. On vous propose la ralisation d'un tat o les mdicaments seront regroups par ordre alphabtique. Crez un tat l'Assistant Etat en vous basant sur la table mdicaments ; Placez les champs ncessaires pour obtenir un tat; Choisissez le champ Nom mdicament comme champ de regroupement ; Choisissez un type de prsentation, puis un style et cliquez sur le bouton Terminer. Crer un tat de la table mdicament bas sur une mise en forme conditionnelle permettant de slectionner les prix de mdicament >50 Dh. Crer un tat bas sur une mise en forme conditionnelle permettant de slectionner les mdicaments dont la quantit stock < la quantit minimal. Crer ltat qui permet dafficher la somme des achats de chaque pharmacie par page. Crer ltat qui permet de regrouper les mdicaments par ordre alphabtique (Utiliser loption trier et regrouper) et changer la proprit de la zone (Gauche$([libelle mdicament] ; 1]

2. 3. 4.

5.

6. 7. 8. 9.

10.Crer ltat qui affiche partir dune requte crois dynamique le nombre de mdicaments
par catgorie et par date de premption.

Page 72/91

ATELIER N 8 Les Macros

Objectifs :

Consulter des donnes dpendants dans deux formulaires, en Utilisant les macros Grer et naviguer entre les diffrents objets de MS Access en utilisant les macros Un micro-ordinateur par 2 stagiaires Un logiciel de base de donnes MS ACCESS Une imprimante

Travail effectu avec:

1. Comment synchroniser laffichage de deux formulaires aprs ouverture via une macro Exemple (Liste des mdicaments par catgorie). 2. Crer des formulaires de la table mdicament plusieurs pages via le contrle saut de
page et dune Macro ?

Ces deux pages constituent un seul Page 1 Page 2

En cliquant sur ce bouton on passe la page 2


Exemple

En cliquant sur ce bouton on revient la page 1

3. Crer la macro qui permet dextraire

des enregistrements de la table mdicaments condition davoir la possibilit de limiter des enregistrements dont le nom de mdicament commence par une lettre. Exemple

1. Crer la macro qui permet dagrandir un formulaire. 2. Crer le formulaire qui permet de consulter selon des critres

Module N 5 Manipulation de base de donne

Filire : TSSSRI

La liste des achats de toutes les pharmacies OU La liste des achats dune pharmacie choisie dans la liste de choix (avec un contrle si la liste est vide lancez un message)

3. Crer la macro qui permet de crer une barre de menu

Page 74/91

Module N 5 Manipulation de base de donne

Filire : TSSSRI

ATELIER N 9 Gestion des commandes (Atelier Rcapitulatif)

Objectifs :

Crer une application de base de donne sous Access Crer un formulaires menu

Travail effectu avec:

Un micro-ordinateur par 2 stagiaires Un logiciel de base de donnes MS ACCESS Une imprimante

1. Crez une nouvelle base de donnes gestion des commandes . 2. Crez les tables (Client, Commandes, Lignes-commande et article) pour le stockage des
informations de la base de donnes.

Client
CdClient Socit (texte) Contact (texte) Fonction (texte) Adresse (texte) Ville (texte)

Commande CdCommand e CdClient (num) Date de d

Ligne de commande

CdArticle CdCommand e Qt command

Article CdArticle Libell article (texte) Prix unitaire (montaire

3. Dfinissez la cl primaire de chaque table. 4. Entrez les donnes dans les tables pour pouvoir effectuer des tests dextractions au niveau
des requtes. Tables Clients Code Socit client 1 SOMACA 2 3 4 5 EXOTIC LIQUIDE SPECIALIT E BISCUITS COSUMAR Blondel pre et fils Contact ALAMI Samir Charlote cooper Tijani Mohamed Salmi brahim Frdrique Citeaux Fonction Reprsenta nt Assistant Export Chef de produit Directeur de marketing Directeur marketing Adresse 45 Av des fars 66 Belveder Av Mohamed V 56 IN SABAA Ville Pays Tel 77-7789 77-8945-88 56-8945 75-5889 12-5689-56 Fax 77-78-79 56-8978-45 56-56-89 45-55-55 44-4477-44

Casablan Maroc ca Paris France Rabat Maroc

Casablan Maroc ca Royau me-Uni

24, place London klber

Tables Commandes Code commande B01 B02 B03 B04 Code client 1 1 2 1 Date commande 05/01/1998 10/12/1997 25/04/1998 23/05/1997 Date livraisonn 05/02/1998 11/12/1997 25/05/1998 12/06/1997

Module N 5 Manipulation de base de donne Tables Lignes commandes Code ligne 1 2 3 1 1 1 2 3 4 Table Article Code article 0001 0002 0003 0004 0005 Libelle article Chaise Table Bureau Tableau blanc Photocopieur Prix unitaire 200 1000 2000 1500 10000 Code commande Code article B01 0001 B01 0002 B01 0003 B02 0001 B03 0003 B04 0001 B04 0004 B04 0002 B04 0005

Filire : TSSSRI

Qt commande 12 13 20 40 16 20 10 5 12

5. Crez :

Une requte permettant laffichage des commandes passes entre le 01/1997 et le 12/1997. Une requte paramtre permettant laffichage des commandes entre une date de dbut et une date de fin. 6. Crez une requte permettant laffichage du nombre de commandes par client au Maroc. 7. Crer une requte permettant laffichage de tous les clients trangers. 8. Crer la requte qui permet de slectionner les clients dont le pays est le Royaume-Uni ou dont la ville est Paris. 9. Crez une requte permettant laffichage de lentte dune commande cest--dire (lensemble des informations de la commande et le client qui a pass la commande). 10.Crez une requte permettant laffichage du dtail de la commande Cest--dire pour chaque ligne commande (code ligne commande, libell article, prix unitaire, quantit commande et une expression de calcul permettant de calculer le montant de ligne commande). 11.Crez une requte permettant laffichage du pied de commande cest--dire pour chaque commande, le montant total des lignes commande. 12.Crer un formulaire qui permet laffichage des informations de la table article en accordant une remise de prix pour chaque article de 0,75.

13.Crer le formulaire qui permet dafficher la liste des bons de commandes par client. 14.Crez un formulaire permettant laffichage dune commande.

Page 76/91

15.Crer 16.Crer 17.Crer 18.Crer

un tat qui permet laffichage de la liste alphabtique des clients. ltat qui permet de regrouper les commandes livres par semaine. ltat qui permet laffichage des informations de la tables article. ltat qui permet dafficher la liste des clients qui ont pass une commande

19.

Crer le formulaire suivant qui permet la gestion des commandes.

Module N 5 Manipulation de base de donne

Filire : TSSSRI

PARTIE 6 EXERCICES DAPPLICATIONS (LANGAGE SQL)


Exercice 1 : Select nom_diteur, ville, rgion from diteurs nom_diteur ---------------------------------------New Moon Books Binnet & Hardley Algodata Infosystems Five Lakes Publishing Ramona, diteur GGG&G Scootney Books Editions Lucerne (8 ligne(s) affecte(s)) Exercice 2 : SELECT nom_employ, pn_employ, date_embauche, position_employ FROM employ WHERE (nom_employ LIKE 'L%') AND (date_embauche LIKE '%1990%') AND (position_employ BETWEEN 10 AND 100) nom_employ pn_employ date_embauche position_employ ------------------------------------- --------------------------- ---------------Lincoln Elizabeth 7/dc./1990 0:00 35 (1 ligne(s) affecte(s)) ville -------------------Boston Washington Bruxelles Chicago Lausanne Munich New york Paris rgion -----MA DC (null) IL (null) (null) NY (null)

Exercice 3 :

SELECT nom_employ, id_diteur FROM employ ORDER BY id_diteur, nom_employ nom_employ id_diteur ------------------------------ ---------Brognon 0736 Ibsen 0736 Josephs 0736 Karttunen 0736 Lebihan 0736 Mendel 0736 O'Rourke 0736 Saveley 0736 Snyder 0736 etc (43 ligne(s) affecte(s))

Exercice 4 : SELECT nom_auteur, pays, adresse FROM auteurs WHERE pays IN ('FR','CH', 'BE')

nom_auteur pays adresse ---------------------------------------- ---- ---------------------------------------Lorense BE 14, impasse Lacarte Schildwachter BE 11, rue Buffon Bec BE 4, chemin de la Tour de Campel

Posey CH 57, avenue des tapis Sorense CH 55, rue Pierre-Louis Coll Chevalier CH 48, rue de Valmy Chevalier CH 48, rue de Valmy etc (20 ligne(s) affecte(s))
Exercice 5 : SELECT position_employ, count(*), MIN(date_embauche),MAX(date_embauche) FROM employ GROUP BY position_employ

position_employ ---------------- ----------- --------------------------- --------------------------32 1 6/nov./1989 0:00 6/nov./1989 0:00 35 3 9/nov./1989 0:00 8/dc./1992 0:00 64 1 7/juil./1992 0:00 7/juil./1992 0:00 75 3 1/janv./1990 0:00 5/dc./1992 0:00 78 1 9/dc./1988 0:00 9/dc./1988 0:00 80 1 11/nov./1993 0:00 11/nov./1993 0:00 ..etc (31 ligne(s) affecte(s))

Exercice 6 : SELECT id_titre, MAX(droits) FROM droits_prvus GROUP BY id_titre id_titre -------- ----------BU1032 12 BU1111 24 BU2075 24 BU7832 24 MC2222 20 MC3021 24 ..etc (16 ligne(s) affecte(s))

Exercice 7 : select ville, nom_diteur, count(*) from diteurs GROUP BY ville, nom_diteur HAVING ville LIKE '%L%' OR ville LIKE '%B%' ville nom_diteur -------------------- ---------------------------------------- ----------Boston New Moon Books 1 Bruxelles Algodata Infosystems 1 Lausanne Ramona, diteur 1 (3 ligne(s) affecte(s))

Exercice 8 : SELECT droits, id_titre, minimum, maximum FROM droits_prvus ORDER BY droits

Module N 5 Manipulation de base de donne droits id_titre ----------- -------10 BU1032 10 PC1035 10 BU2075 10 PS2091 .etc count ======== 16 minimum ----------0 0 0 0 maximum ----------5000 2000 1000 1000

Filire : TSSSRI

droits id_titre minimum maximum ----------- -------- ----------- ----------12 BU1032 5001 50000 12 PC1035 2001 3000 12 BU2075 1001 3000 12 PS2091 1001 5000 ..etc count ======== 16 ..etc (94 ligne(s) affecte(s))

Exercice 9 : SELECT nom_auteur, titre, prix FROM auteurs a, titres t, titreauteur ta WHERE (ville = 'PARIS') AND (a.id_auteur = ta.id_auteur) AND (ta.id_titre = t.id_titre) nom_auteur titre prix ---------------------------------------- --------------------------------------Mathieu Guide des bases de donnes du gestionnaire press 140,00 Mathieu Le stress en informatique n'est pas une fatalit ! 24,00 Merrell Toute la vrit sur les ordinateurs 136,00 Jalabert Phobie et passion informatique : ventail de comportements 147,00 (4 ligne(s) affecte(s)) Exercice 10 SELECT nom_diteur, nom_auteur, titre, qt FROM auteurs a,titreauteur ta, titres t, diteurs e, ventes v WHERE (a.id_auteur = ta.id_auteur) AND (ta.id_titre = t.id_titre) AND (t.id_diteur = e.id_diteur) AND (t.id_titre = v.id_titre) ORDER BY nom_diteur COMPUTE SUM(qt) BY nom_diteur Exercice 11

SELECT nom_auteur, SUM(qt) FROM auteurs a,titreauteur ta, titres t, ventes v WHERE (a.id_auteur = ta.id_auteur) AND (ta.id_titre = t.id_titre) AND (t.id_titre = v.id_titre) GROUP BY nom_auteur HAVING SUM(qt) > 20 Exercice 12 SELECT nom_auteur, pn_auteur FROM auteurs a WHERE id_auteur IN (SELECT id_auteur FROM titreauteur) un livre */ AND 100 = ALL (SELECT droits_pourcent FROM titreauteur WHERE a.id_auteur = id_auteur) ORDER BY nom_auteur

/* lauteur doit avoir crit au moins

Page 80/91

nom_auteur ---------------------------------------Bec Bourne Chartier Merrell Sorense Vilc Vue (7 ligne(s) affecte(s)) Exercice 13 :

pn_auteur -------------------Arthur Stphanie Laurent Patricia Christophe Benjamin Jessica

SELECT titre, prix FROM titres WHERE prix = (SELECT MAX (prix) FROM titres ) titre prix ------------------------------------------------------------------------- -----Est-ce vraiment convivial ? 156,00 (1 ligne(s) affecte(s))

Exercice 14 : Afficher la liste des titres et le cumul de leurs ventes, tous magasins confondus, classs par ordre croissant des ventes SELECT titre, somme = (SELECT SUM (qt) FROM ventes v WHERE t.id_titre = v.id_titre) FROM titres t ORDER BY somme

Titre somme -------------------------------------------------------------------------------- ----------La psychologie des ordinateurs de cuisine (null) Guide des bonnes manires sur un rseau (null) Les festins de Parly 2 10 Guide des bases de donnes du gestionnaire press 15 Toute la vrit sur les ordinateurs 15 Privation durable d'informations : tude de quatre cas reprsentatifs 15 Phobie et passion informatique : ventail de comportements 20 Cinquante ans dans les cuisines de l'Elyse 20 La cuisine japonaise - la porte de tous 20 La cuisine - l'ordinateur : bilans clandestins 25 Vivre sans crainte 25 Equilibre motionnel : un nouvel algorithme 25 Est-ce vraiment convivial ? 30 Le stress en informatique n'est pas une fatalit ! 35 Les micro-ondes par gourmandise 40 Oignon, poireau et ail : les secrets de la cuisine mditerranenne 40 Les secrets de la Silicon Valley 50 La colre : notre ennemie ? 108 (18 ligne(s) affecte(s))

Exercice 15 : Afficher le titre du livre le plus vendu de tous les magasins, et le nom de ce magasin SELECT titre, nom_mag FROM titres t, ventes v, magasins m WHERE t.id_titre = v.id_titre AND v.qt = ( SELECT MAX(qt) FROM ventes) AND v.id_mag = m.id_mag titre nom_mag ------------------------------------------------- ----------------------------------------

Module N 5 Manipulation de base de donne La colre : notre ennemie ? Librairie spcialise

Filire : TSSSRI

Exercice 16 : Rentrez vos noms, prnoms, dans la table auteurs, avec un identificateur qui n'existe pas dj insert auteurs (id_auteur, nom_auteur, pn_auteur, contrat) values ('100-00-1020', 'Lcu', 'Rgis', 1) Exercice 17 : Recopier toutes les caractristiques d'un auteur en lui donnant un nouvel identificateur, et un nouveau nom INSERT auteurs (id_auteur, nom_auteur, pn_auteur, tlphone, adresse, ville, pays, code_postal, contrat) SELECT '100-00-1200', 'toto', pn_auteur,tlphone, adresse, ville, pays, code_postal, contrat FROM auteurs WHERE nom_auteur = 'Bourne' Exercice 18 : Augmenter de 10% tous les prix des livres de lditeur Algodata Infosystems. Vrifier lopration par une commande Select adquate avant et aprs laugmentation. SELECT titre, prix FROM titres t, diteurs e WHERE t.id_diteur = e.id_diteur AND nom_diteur = "Algodata Infosystems" AND prix is not NULL UPDATE titres SET prix = 1.10 * prix WHERE prix is not NULL AND id_diteur = (SELECT id_diteur FROM diteurs WHERE nom_diteur = "Algodata Infosystems") SELECT titre, prix FROM titres t, diteurs e WHERE t.id_diteur = e.id_diteur AND nom_diteur = "Algodata Infosystems" AND prix is not NULL

Exercice 19 : Dtruire les lignes cres dans la tables auteur, dans les exercices 16 et 17 DELETE auteurs FROM auteurs where nom_auteur ='Lcu'

Page 82/91

Module N 5 Manipulation de base de donne

Filire : TSSSRI

PARTIE 7 EVALUATION Epreuve pratique


Dure 4 heures Barme : /40 La compagnie BALADI de transport envisage dintgrer dans son site web la gestion des rservations et paiement en ligne des voyages planifis. A cet effet, le directeur de la compagnie veut implanter au pralable la nouvelle gestion des rservations et paiement en ligne sous Access et par la suite la migrer vers SQL Server Le MLD relationnel de la base de donne se prsente ainsi : Client (CINClient,NomClient, PrnomClient, TelClien)t Billet (NumBillet, CINClient, CodeVoyage, DateBillet, NumPlace, Regl, EtatPlace) Voyage (CodeVoyage,HeureDepartVoyage, HeureArrivVoyage , VilleArrivVoyage, PrixVoyage) Place (NumPlace)

Structure de la base de donne


Table Client Nom de champ CINClient NomClient PrnomClient TelClien Signification CIN de Client Nom de Client Prnom de Client Tlphone de Client Texte Texte Texte Texte Type 10 20 15 12 Taille/Format

Table Billet Nom de champ NumBillet CINClient CodeVoyage DateBillet NumPlace Rgl EtatPlace Signification Numro de Billet CIN Client Code Voyage Date de Billet Numro de Place Regl Etat de Place Texte Numrique Date et heure Numrique Oui/Non Texte 7 Type Numrique 10 Entier Abrg Octet Taille/Format Entier long

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Table Voyage Nom de champ CodeVoyage HeureDepartVoyage Ville_Dpart HeureArrivVoyage VilleArrivVoyage PrixVoyage Signification Code de Voyage Heure de Dpart de Voyage Ville de dpart de voyage Heure dArriver de Voyage Ville dArriver de Voyage Prix de Voyage Table Place Nom de champ NumPlace Signification Numro de la place Type Numrique Taille/Format octet Type Numerique Date et heure texte Date et heure Texte Monetaire Taille/Format Entier Heure Abrg 15 Heure Abrg 15 Dh

Travail demand
1. Pour chaque table ci-dessus, crer sa structure. Utiliser les mmes cls primaires indiques dans le MLD ci-dessus et crer les relations entrer ces tables (4 Pts) 2. Saisie les enregistrements donns dans lannexe ci-dessus pour chaque table de la base donne. (2 Pts) 3. Crer une requte qui affiche les informations sur un client en introduisant son CIN et lentreprise sous R_CIN_client (3 Pts) 4. Crer une requte qui affiche les informations sur un voyage planifi en introduisant la ville de dpart et la ville darriver puis lenregistrer sous R_Client_CIN (3 Pts) 5. Crer un formulaire base sur la requte R_Client_CIN et lenregistrer sous F_Client_CIN (3 Pts) 6. Crer une requte qui affiche les informations sur le billet + voyage et lenregistrer sous R_Rservation (3 Pts) 7. Crer un formulaire base sur la requte R_voyage et lenregistrer sous F_Voyage (3 Pts) 8. Crer un formulaire base sur la table voyage (Ajouter/modifier/Supprimer) et lenregistrer sous F_Voyage (3 Pts) 9. Crer un formulaire base sur la requte R_Rservation et lenregistrer sous F_Rservation comme est montre dans la figure suivante :(10 Pts)

Page 84/91

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Rservation
N Billet CIN Code Voyage Heure Dpart Ville Dpart Place Prix Heure Arriv Ville Arriv Etat Pay Billet Nouvelle rservation Menu Date

Le bouton affiche les information sur un voyage a choisir et remplir les champ de voyage dans ce formulaire Le bouton nouvelle rservation vide tous le champs Le bouton billet imprime le billet de la place rserv Le bouton menu retourne vers le formulaire ci-dessus

10. Crer ltat qui fait sortir des billes payes par un client donn dans une date de voyage comme le montre la figure suivante et lenregistrer sous E_billets et le lier au bouton Billet du formulaire du Rservation. (6 Pts)

Module N 5 Manipulation de base de donne

Filire : TSSSRI

BALADY TRANSPORT
N : 0012500254 Date :01/01/06

Heure Dpart 4 :00

Ville Dpart Casa

Heure Arriv 10 :00

Ville Arriv Agadi

Place 3

Prix 350.00

Page 86/91

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Annexe
Formalisme MERISE
Concevoir une base de donnes relationnelle, c'est tablir pour le systme d'information tudi, les relations entits et les relations associations en troisime forme normale. 1re tape : Etablir les schmas externes, c'est--dire lister les donnes ncessaires chaque utilisateur de la future base. 2me tape : Etablir le dictionnaire de donnes en regroupant les schmas externes, en supprimant les redondances et en ne conservant que les informations lmentaires (non dduites). Ceci revient lister les attributs de la base. Dictionnaire de donnes du systme d'informations relatif aux tests sur les matriels de production : code matriel, libell matriel code marque, libell marque code type de test, libell du test, date du test, rsultat du test 3me tape : Etablir les contraintes d'intgrit fonctionnelle (ou dpendances fonctionnelles) entre attributs.

Entit = Cl + Attributs dpendants

Attributs
Code matriel Libell matriel... Code marque Libell marque. Code type de test Libell du test.. Date du test.. Rsultat du test..

En dpendance fonctionnelle avec


code matriel code marque code type de test code matriel + type de test code matriel + type de test

Associatio n

4me tape : En dduire les relations "entits" et les relations "associations avec attributs" : Les entits sont constitues dune cl primaire et dun ou plusieurs attributs qui ne dpendent fonctionnellement que de cette cl Les associations sont constitues dune liste dau moins deux cls reprsentant des entits, et dattributs qui dpendent de ces cls Entits : Matriel, Marque, Type de test Association avec attributs : Test 5me tape : Etablir les relations "associations sans d'attributs" en considrant deux cas : Il existe un lien fonctionnel N : 1 entre les entits : la cl primaire de l'entit mre devient cl trangre dans l'entit fille Exemple: matriel-marque. Lentit "Matriel" dpend (est fille) de lentit "Marque" : la cl trangre "code marque" dans "Matriel" pointe sur la cl primaire "code marque" dans "Marque" . Le lien entre les deux entits est de type N:M : il faut crer une nouvelle relation association sans attributs, qui contient seulement les cls primaires des deux relations associes. 6me tape: Reprsenter le schma de la base 7me tape:

S'assurer que les relations sont en troisime forme normale.

Les phases de la conception avec un symbolisme de type merise


Prsentation

Module N 5 Manipulation de base de donne

Filire : TSSSRI

Sans faire un expos sur la mthode Merise, cet Annexe chapitre voudrait prsenter succinctement les diffrents modles des donnes (MCD Conceptuel, MLD Logique, MPD Physique), titre de comparaison avec la mthode maison qui vient dtre expose. Aprs avoir recueilli les donnes auprs des clients (tape 1), supprim les redondances (tapes 2), class les donnes selon les dpendances fonctionnelles (tape 3), on construit le modle conceptuel entits/associations (tape 4), o les associations sont des relations values, comportant un ou plusieurs attributs :

Entit

Association R avec la proprit PropR.1

Objet1 Prop1.1 Prop1.2

0,1

R PropR .1

Objet2 0,n Prop2.1

Min, Max cardinalit

A partir du modle conceptuel, on peut dduire le modle logique et physique par des oprations
systmatiques (tape 5 et 6) : lapplication complte de la mthode Merise garantit lobtention des formes normales. Le passage du MCD au MLD, puis au MPD dpend de la cardinalit des relations.

Du MCD au MPD, pour un lien fonctionnel (N :1) ou hirarchique (1 :N) M.C.D


Objet1 Prop1.1 Prop1.2 R PropR. 1 Objet2 0,n Prop2.1

0,1

Exemple :

Livres Titre Auteur

Emprunt 0,1 Date 0,n

Adh. Nom

Lassociation est emprunt le contient la proprit Date


Cardinalit : Un livre peut tre emprunt 0 ou une fois (min = 0, max = 1 dans la notation Merise). Un

adhrent peut emprunter de 0 N livres (min= 0, max= N) lien fonctionnel N : 1 dans la notation ANSI-SPARC

La relation inverse emprunte le est une relation hirarchique 1 :N


Adh Nom Emprunte Date Livre Titre 0,1 Auteur

0,n

Page 88/91

M.L.D
OBJET1 Prop1.1 Prop1.2 PropR.1 OBJET2 Prop2.1

Rgle : les proprits de lassociation glissent du ct 0-1, la flche pointe vers le ct 0,n
Livres Titre Auteur Date Adh Nom

Dans la table Livres, on ajoute la date de lemprunt, et une flche vers ladhrent emprunteur

MPD
Objet1 (Prop1.1, Prop1.2, PropR.1, Prop2.1) Objet2 (Prop2.1) Rgle : une cl trangre Prop2.1 pointant sur objet2.Prop2.1 est ajoute objet1
Livres (Titre, Auteur, Date, Nom) Adhrents (Nom) Dans la relation Livres, on ajoute la cl trangre Nom , pointant sur Adherents.Nom

Du MCD au MPD pour une Relation 0-N : 0-N


M.C.D
Objet1 Prop1.1 Prop1.2 0,n R PropR.1 0,n Objet2 Prop2.1

Exemple :
Auteurs Nom Prnom 1,n

crit
Date

Livres 1,m Ident Titre.

Lassociation "crit"contient la proprit "Date" (de parution)


Cardinalit de la relation : Un auteur peut crire de 1 n livres. Un livre peut avoir de 1 m auteurs => lien

maill N : M dans la notation ANSI-SPARC

M.L.D
OBJET1 Prop1.1 Prop1.2 R PropR.1 OBJET2 Prop2.1

Rgle : lassociation devient une nouvelle table et les flches pointent vers les tables lies
Auteurs Nom Prnom crit Date Livres Ident Titre

On cre une nouvelle table crit , avec Auteurs et Livres

la proprit Date , et des liens vers les cls des entits

Module N 5 Manipulation de base de donne

Filire : TSSSRI

MPD Objet1 (Prop1.1, Prop1.2) R1 (Prop1.1, Prop2.1, PropR.1) Objet2 (Prop2.1) Rgle : la relation devient une table dont la cl est la concatnation des cls des deux objets lis.
Exemple : Livres (Ident, Titre) Ecrit (Nom, Ident, Date) Auteurs (Nom, Prnom)

Exemple rcapitulatif
MCD
Client NClient 0,n NomClient PrenomClient Commande 1,1 NCommande DateCommande MontantCommande Article NArticle 0,n DesignationArticle PUArticle

Passe

1,n

SeComposeDe Qte TauxTva

MLD
Client NClient NomClient PrenomClient Commande NCommande DateCommande MontantCommande SeComposeDe Qte TauxTva Article NArticle DesignationArticle PUArticle

MPD Client Commande SeComposeDe Article (NClient, NomClient, PrenomClient). (NCommande, DateCommande, MontantCommande, NClient). (NCommande, NArticle, Qte, TauxTva). (NArticle, DesignationArticle, PUArticle).

Du MCD au MPD, dans une Relation ternaire


MCD
Profs Matiere
Matiere CoeffMatiere

1,n

Enseigne

1,n 1,n

1,n Cours
DateCours HeureCours

Nom Prenom Age Salaire

1,n Salle
NSalle DesignationSalle

MLD

Page 90/91

Matiere Matiere CoeffMatiere

Enseigne

Profs NomProf PrenomProf AgeProf SalaireProf

Cours DateCours HeureCours

Salle NSalle DesignationSalle

MPD Matiere (Matiere, CoeffMatiere). Enseigne (NomProf, Matiere). Profs (NomProf, PrenomProf, AgeProf, SalaireProf). Cours (NomProf, Matiere, NSalle, DateCours, HeureCours). Salles (NSalle, DesignationSalle) Rgle : une relation ternaire devient une table dont la cl est la concatnation des cls des trois objets lis.

Vous aimerez peut-être aussi