Вы находитесь на странице: 1из 11

Systmes de gestion de bases de donnes

Master 2 Gomatique Paris VIII


Meriadeg Jaouen
Nicolas Bonus
2007-2008
Prsentation du cours
Lobjectif de ce cours est dassimiler, en 13 sances, les bases pour manipuler le
logiciel Microsoft Access.
Ce logiciel est considr comme un Sgbd, cest--dire un outil de stockage de
linformation, et permettant lextraction dinformations grce au langage Sql.
Ce cours se veut la fois pratique et thorique ; fait appel aux connaissances
suivantes : anglais, calcul matriciel, logique et ensembles, statistiques descriptives,
notions de programmation, bureautique.
Plusieurs devoirs sont rendre au fil des sances, avec un examen final.
Sommaire
1. quest ce quun SGBD ?
a)
b)
c)
d)

introduction langage SQL


les outils du march
les sgbd au service de la gographie
prsentation de microsoft Access : linterface et ses onglets

2. concepts de base
a)
b)
c)
d)
e)
f)
g)
3.

tables
champs
requtes
modules
macros
formulaire
la mthodologie Merise, le MCD et le MLD
la syntaxe SQL

b)
c)
d)
e)

la grammaire du SQL
syntaxe SQL des principales requtes
les jointures
mots-clefs et fonctions principales

4.

exemples et exercices

5.

rsum des cours 1 13

1.

quest ce quun SGBD ?

Cest un programme informatique, compos dun outil de stockage des donnes, et


des outils utiliss pour interroger ces donnes. Un SGBD est dit relationnel quand on
peut relier les tables entre elles par des liens logiques.
a) le langage SQL
Lacronyme signifie short query language , cest la syntaxe utilise universellement
pour interroger les bases de donnes.
Cette syntaxe est formalise, et peut se rsumer un pseudo-anglais ayant un
lexique de mots-clefs. Ce lexique varie peu suivant les outils.
b) les outils du march
-

propritaires : Oracle , Access, Sybase, etc


open-source : mySql, postgreSQL , etc

Certains outils proposent des modules dits spatiaux (Oracle spatial, PostGis)
ddis au traitement de linformation gographique.
c) les sgbd au service de la gographie
Les bases de donnes peuvent se coupler aux logiciels cartographiques, voire eux
mmes tre capables d interprter des donnes gomtriques ; les Sgbd se
retrouvent donc aux cur des SIG, pour le stockage et linterrogation et la production
de donnes, mais aussi pour lanalyse spatiale et la production de cartes.
d) Microsoft Access : prsentation
A louverture, crer un fichier vide de type .mdb (Microsoft data base), nommez-le et
sauvegardez-le un emplacement de votre choix; vous importerez ensuite vos tables
dans ce fichier mdb ; Access peut importer beaucoup de types de fichiers, txt, xls, dbf,
etc.
Linterface gnrale contient plusieurs onglets :
longlet Tables stocke vos objets tables
longlet Requtes stocke vos requtes de slection, de mise jour, de cration de tables,
les requtes croises et les requtes de suppression de donnes, et les requtes dajout
de deux tables.

longlet Formulaire stocke vos formulaires, cd des interfaces que vous crez pour la
saisie ou la consultation de vos donnes. Ils sont personnalisables, et permettent
dappeler des images, ou des contrles activeX dans des fentres ddies.
Les onglets tats et pages ne seront pas abords dans ce cours et ne sont pas
indispensable pour nos besoins.
Longlet Macros stocke vos scripts dautomatisation des tches, rdiger en langage
Vba.
Longlet Modules stocke des lments de scripts et des fonctions, rdigs en Vba ;
des formules de mise en classe de sries continues, des fonctions de traitement de
chanes de caractres, etc
2. Outils et concepts de base
a) Tables
Chaque objet de cet onglet est une table, cest dire une matrice n lignes X p
colonnes (nxp). Contrairement Excel, le nombre denregistrements nest pas limit.
Les n lignes sont appels des enregistrements.
Les p colonnes sont des champs.
b) Champs
Ils ont un nom < ou = 8 caractres en gnral, de prfrence sans accentuation et
sans ponctuation part le caractre _ .
La liste de tous les champs de toutes les tables est un document produire pour toute
conduite de projet, et se nomme gnralement dictionnaire des donnes .
Gnralement, les tables contiennent des donnes identifiantes (adresses, noms,
codes,), des donnes attributaires (des valeurs ou du texte), et de la gomtrie dans
le cas des SIG (mmo, objet OLE,)
Une mme table contient des champs de diffrents types, dont voici les principaux :
texte : stocke des caractres alphanumriques, du texte, des libells, ou des variables
qualitatives. Longueur max = 255 caractres.
mmo : idem, mais peut recueillir des chanes de caractres plus longues (la gomtrie
dobjets par exemple.
numrique/entier : stocke des entiers naturels N uniquement, comme des variables
quantitatives discrtes, des comptages, des identifiants.
numrique/rel : stocke des rels R ; sries quantitatives continues, taux, indicatrices
date/heure : beaucoup de formats
montaire
cl primaire, ou identifiant, ou index: champ texte ou numrique/entier stockant un
identifiant unique, cad que les valeurs de ce champ sont distinctes deux deux. Il ny a
pas de doublons dans ce champ. Gnralement, ils sagit de codes ; codes client, codes
administratifs, clefs composes, numro de commande, etc.

Ces champs particuliers sont trs importants car ils permettent deffectuer les liaisons
entre tables.
Access propose une fonction de cl automatique, NumeroAuto.
c) Requtes
Vous pouvez manipuler vos tables pour en les interroger simplement, pour extraire de
linformation plus labore, pour les modifier, ou mme pour les effacer.
Access possde un assistant la composition de requtes qui vous traduira votre
opration en instruction SQL.( onglet Requtes , puis Nouveau , puis Mode
cration . Il est cependant important daller vrifier soi-mme le code gnr.
Lavantage du stockage de requtes est dautomatiser la production de donnes.
Lautre avantage est de disposer de nouveaux objets assimilables des tables dans vops
futurs traitements, mais dynamiques, et trs lgers.
Access propose, dans longlet Requtes, quelques requtes assistes :
Slection :
slectionner un sous-ensemble de donnes issues des tables. Renvoie une nouvelle
table stocke dans longlet requte.
mise jour :
remplit un champ avec des valeurs que vous saisissez ou bien qui proviennent dune
autre table/requte.
cration de table :
transforme le rsultat dune slection en un nouvel objet table
requtes croises :
renvoie un tableau crois de variables qualitatives ou quantitatives discrtes
requtes de suppression de donnes
ajout de deux tables
requtes paramtres
d) Modules
Cest une fonction rdige en VBA.
Exemple venir MJ, module de mise en classe.
e) Macros
Suite dinstructions visant automatiser des taches.
scripts en VBA, la fonction DoRunSQL est trs utile.

f) formulaire
Exemple venir NB
g) la mthodologie MERISE
On peut analyser la structure dune base grce certains outils, en la modlisant,
notamment avec la mthodologie MERISE.
Cette mthode a eu comme objectif premier de jeter un pont entre les besoins des
utilisateurs et les solutions des informaticiens. Certes sa finalit est quand mme de
faciliter la conception des projets informatiques en permettant d'analyser et de formaliser
trs tt les besoins des utilisateurs. wikipedia
- Le MCD
Le Modle Conceptuel de Donnes est la formalisation de la structure et de la
signification des informations dcrivant des objets et des associations.
Le MCD comporte les concepts basiques suivants, reprsenter sous forme de
diagramme compos de boites contenant des listes de champs ; les champs clefs
primaires et les clefs trangres sont signals respectivement en gras et soulign, et
en gras.
Entit : table
Relation : modlisation d'une association entre deux ou plusieurs entits ;appartient ,
possde, vend, achte, rside,
Cardinalits : modlisation des participations mini et maxi d'une entit une relation ;
<1,n> , <1,1> , <n,m>,
Proprits : modlisation des informations descriptives rattaches une entit ou une
relation
Identifiant : modlisation des proprits contribuant la dtermination unique d'une
occurrence d'un entit.
- Le MLD
Le MLD est la traduction technique du MCD
Access gre le MLD dans loption Relations interface dans laquelle vous prcisez les
liens entre tables.
NB
3.

La syntaxe SQL

La formule pour gnrer une instruction SQL est toujours la mme, et le langage possde
une grammaire trs simple.
a) La grammaire du SQL
pour crer vos instructions, vous assemblerez toujours, dans lordre, les lments
suivants :

Une instruction de base obligatoire, dfinissant le type dopration (SELECT, INSERT


INTO, DELETE)
Vient ensuite la liste des champs que vous voulez restituer : champs dorigine, champs
calculs ou des fonctions dagrgat, ou bien la totalit des champs (caractre * ).
Loption AS permet de donner un nouveau nom aux champs calculs.
Un champ est nomm <nomtable.nomchamp> dans votre formule.
Linstruction obligatoire FROM, aprs laquelle vous prcisez les tables dont sont issues
les champs extraire
Peuvent suivre une ou plusieurs clauses facultatives :
Clause de slection logique WHERE ( =, <,>,<>,etc)
Clause de jointure : prcision du lien logique entre les tables ( WHERE, INNER JOIN ON,
LEFT JOIN ON, RIGHT JOIN ON)
Clause dagrgat GROUP BY
Clause de restriction de la fonction dagrgat HAVING, remplaant la clause WHERE
si la requte contient un GROUP BY
La formule gnrale dune requte SQL se rsume donc ceci :
Type dopration, liste de champs restituer, liste des tables requter, clauses
facultatives.
Ou encore : TypeRequte, <champs> FROM <tables>, critres et clauses.
b) Syntaxe SQL des principales requtes
Requte de suppression de table :
DROP TABLE <NomTable>
Requte de suppression de champs ou denregistrements :
DELETE <NomTableSource.*> FROM <NomTable> WHERE <critre>
NomTableSource.* dsigne la table dans de laquelle s'effectue la suppression dans le cas
d'une jointure avec une autre table.
Requte de Mise jour partir dune autre table:
INSERT INTO <NomTableDestination> SELECT <Champ1>, <Champ2>.FROM
<NomTableSource> WHERE <condition>
Pour que l'insertion soit valide il faut que les champs de la table source aient le mme
type et la mme longueur que ceux de la table destination.
Mise jour denregistrements laide dune valeur choisie par lutilisateur :
UPDATE <NomTable> SET <Nouvelle_valeur> WHERE critre

Requte de slection :
SELECT <Champ>, <Champ2>,...,... FROM <Relation> WHERE <Condition>
A noter que lon peut complter linstruction select :
SELECT ALL (par dfaut)
SELECT DISTINCT slectionne sans doublons.
Cration dune table :
CREATE TABLE NomTable (<Champ1 Type (taille)> CONSTRAINT <Index>, <Champ2
Type (taille)> CONSTRAINT <Index2>)...CONSTRAINT <Index_multichamp>
c) Les jointures
Soient une table A et une table B contenant chacune deux champs que lon peut apparier.
Les jointures seront de 3 types, correspondant aux 3 rsultats obtenus en intersectant les
2 ensembles A et B.
La jointure se dclare aprs la clause FROM <tables>.
LEFT JOIN : tous les enregistrements de A et seulement ceux de B pour lesquels le
critre dappariement est gal
RIGHT JOIN : : tous les enregistrements de B et seulement ceux de A pour lesquels le
critre dappariement est gal
INNER JOIN : tous les enregistrements pour lesquels la cl dappariement est gale.
d) mots-cl et fonctions principales
instructions SQL, type de requte :
slectionner : SELECT, SELECT ALL
slectionner sans doublons : SELECT DISTINCT
mettre jour des valeur : UPDATE
ajouter des enregistrements une table depuis une autre table: INSERT INTO
effacer une table : DROP
effacer des enregistrements : DELETE
clauses :
indiquer les tables desquelles sont issues les donnes : FROM <liste des champs>
renommer un champ/donner un nouveau nom un champ : <ancien> AS <nouveau>
regrouper/agrger les donnes : GROUP BY <champs>
clause de restriction pour lagrgat : HAVING
clause de slection : WHERE
jointure : JOIN <Table> ON (<Champ1> = <Champ2>)
fonctions dagrgat ou expressions de regroupement :

moyenne : AVG
cart-type : STDEVP
maximum, minimum :MAX, MIN
premier, dernier : FIRST, LAST
compte : COUNT
somme : SUM
oprateurs de la clause WHERE (non-exhaustif):
et : AND
ou inclusif: OR
ou exclusif : XOR
infrieur :
suprieur :
tri croissant : ORDER BY < champs> ASC
tri dcroissant : ORDER BY < champs> DESC
quivalence : EQV
est vide : IS NULL
nest pas vide : IS NOT NULL
entre : BETWEEN
Access propose, notamment grce au gnrateur dexpressions de lassistant
requtes, un vaste choix de fonctions de traitement de chanes de caractres, et
doprations logiques et mathmatiques.
Dans dautres systmes, il existe des clauses WHERE topographiques, (intersect,
inside,..), ainsi que des fonctions topographiques (distance, surface, centroide,..).
4.

exemples et exercices

Exemple1 :
soit une table A n clients x p champs, avec :
p1 = identifiant client
p2 = CA ralis
p3 = nb de commandes
p4 =code zone gographique
- restituer la table A lidentique scrira :
- quelle est la cl ? qualifiez les autres champs :
- restituer une table renvoyant le CA moyen par commande et la dispersion de la srie :
- restituer une table renvoyant le CA moyen par client et la dispersion de la srie :

restituer une table renvoyant le nb de clients, le CA moyen et total, le nb de


commandes moyen et total, par zone, la table de rsultat sera trie par le nb de clients
dcroissant :

- Idem que la prcdente, mais que pour les secteurs ouest et sud-est

Exemple 2 :
on dispose dune nouvelle table dinformations sur nos clients, la table B, contenant
lidentifiant client et leurs adresses postales . Les donnes de cette table contiennent des
erreurs, certains clients sont en double, et certaines adresses sont manquantes.
- comment d-doublonner la table B ? (deux manires)

- comment incorporer les donnes de B dans A ? quel est le pr-requis avant cette
manipulation ?

- dans les tables A et B, slectionner les clients dont ladresse est renseigne.

Exemple 3 :
Rdiger des mini MLD (3 ou 4 tables) orients vers la gestion marketing/produits.
rdiger les listes de tables et champs comme ci-dessous en vitant la redondance de
linformation
imaginer quelques tables sur les thmes suivants : librairie, vente par correspondance,
ngoce de matires premires, devoir commun.
Exemple dune librairie
livres (<code livre, code_auteur, code_editeur,code_genre, titre, prix, date_sortie,
stock_initial, date_debut, date_fin >)
auteurs (<code auteur, nom, prenom, age, code pays>)
diteurs (<code diteur, nom, adresse, fax, code pays>)
tickets (<code_ticket, code_livre, quantite, date>)
tables dindex (genres, pays)
- caractrisez ces tables et ces champs (cls primaires, clefs trangres, attributs et leurs
types).

- Comment composeriez-vous le code livre ? pourquoi <code ticket de caisse> nest pas
une clef unique ?
- partir de cet exemple , tracer un diagramme des entits-relations dans powerpoint ou
autre.
- Quelles informations pourriez-vous extraire dun tel systme ? rdiger les requtes
correspondantes, et les reprsenter et les nommer sur le diagramme dans une deuxime
partie du dessin.
- Ces 4 tables permettent une analyse des ventes et une gestion de stock ; quels autres
aspects aurait-on pu incorporer dans cet outil de gestion ? quelles tables et champs
rajouteriez-vous ?
- une fois que les tables, les relations et les requtes pr-enregistres sont formalises,
quels outils pourrait-on imaginer avec les autres outils dAccess ?
5.

rsum des cours

cours 1
comparaison de la requte croise dans Access et du tableau crois dynamique dans
Excel ;
notion dagrgat ; notion denregistrement ;
rvision des dcoupages administratifs franais.
cours 2
table des communes avec coordonnes des centroides xy, et populations des communes.
Agrgat pour recrer la table des agglos France.
table des agglomrations uu99 ;
discrtisation de la srie pop99 pour carto thmatique population des agglos
France .
requte de slection avec jointure simple entre les deux tables.
gocodage auto pour carte thmatique Access<-> Geoconcept
cours 3
Prsentation du devoir commun.
table des tronons des ligne des mtro de Rennes et Marseille, table des stations. ;
Slection de lments de Marseille par code uu99 ;
requte de cration de table ;
import pour production du plan de mtro de Marseille (2 lignes).
Cours 4
requte dajout, ajout des 3 lignes de tramway de Nantes aux donnes du cours
prcdent, et production du plan.
Cours 5 et 6 (ven et sam)
tape 1 au 15.11.07 devoir commun rendre
exercices de ce cours et correction
rvision rapide dcoupages administratif France
traitements de donnes de carroyage, notions de modlisation

10

correction exercice cours2

11

Вам также может понравиться