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

Bases de donnes

Access, Mysql et autres


Systmes de Gestion de Base de
Donnes Relationnelle (=SGBDR)
(=DBMS)

Sommaire
Base de donnes : dfinition et utilisation
Pourquoi pas Excel ?
BdD : viter la redondance
Langage SQL et requtes

Dfinition
Base de donnes
Un ensemble de donnes
Une structuration forte
Une gestion de plusieurs utilisateurs
simultans
Un ensemble doutils permettant dextraire
rapidement des informations de lensemble
des donnes
Ensemble structur de donnes enregistres avec le minimum de
redondances pour satisfaire simultanment plusieurs utilisateurs de
faon slective et en un temps opportun.

Voir article
Quel SGBD choisir

Access
Paradox
Sybase
SQL Server
Oracle
MySQL (libre avec
PHP)
InterBase
PostGreSQL
SQLite

Utilisation

Bases de donnes omniprsentes


Les bases de donnes sont omniprsentes :
Hautes coles, Universits :
Donnes sur les tudiants
Id, nom, prnom, classe, section, cycle, anne

Donnes sur les formations


matire, intervenant (enseignant), public, salle

Donnes sur les rsultats


matire, intervenant (enseignant), pondration, rsultat

Entreprises
fichiers clients, fournisseurs, commandes
facturation,
gestion de stock, inventaire.

Bases de donnes omniprsentes


Les bases de donnes sont omniprsentes :
Bibliothques :
Donnes sur les lecteurs
Id, nom, prnom, statistiques, montant d

Donnes sur les livres


Titre, ISBN, auteur, genre, code, emplacement, emprunts,
collection, diteurs

Donnes sur les auteurs


Livres, adresse, nom, prnom,

Priv
Collection de CD ou DVD
Contenu de conglateur

Pourquoi pas Excel ? (1)


Et cest parti
jattends ma premire commande

Pourquoi pas Excel ? (2)


Premier client, premire commande

Pourquoi pas Excel ? (3)

Dans sa commande, mon client dsire


plusieurs produits

Pourquoi pas Excel ? (4)


Chiffre daffaires pour les tomates ?

Pourquoi pas Excel ? (5)


Les dfauts :
Redondance :
Donnes rptes (info client si plusieurs commandes, info
produit si plusieurs fois command)

Rcriture
Orthographe, perte de temps, mise jour difficile

Nombre de lignes
65535 = 216 1

Mlange de divers types de donnes


Client, produit, commande, prix,
gestion de stock, inventaire.

Base de donnes (1)


Exemple :
un carnet dadresses
organise les informations sur vos
interlocuteurs
en plusieurs catgories :
nom, numro de tlphone fixe, gsm,
fax, adresse, e-mail, etc.
Une base de donnes est un ensemble organis dinformations
structures

Base de donnes (2)


Nom

Prnom

Adresse Tl

Fax

E-mail

Nom1
Nom2

Une table contient


des enregistrements en lignes, correspondant
aux individus (anims ou inanims)
et des champs en colonnes,
dcrivant chaque individu

viter la redondance (1)


Nom

Prnom

Classe

Matires

Durand

Pierre

1NSSE

Compta1

Durand

Pierre

2NSSE

Compta2

Dupond

Paul

1NSSE

Compta1

Dupond

Paul

1NSSE

Droit1

Durand

Pierre

1NSSE

Droit1

Dupond

Paul

1NSSE

Stat

Durand

Pierre

1NSSE

Stat

Nom

Prnom

Classe

Classe

Matires

Durand

Pierre

1NSSE

1NSSE

Compta1

Durand

Pierre

2NSSE

2NSSE

Compta2

Dupond

Paul

1NSSE

1NSSE

Compta1

Dupond

Paul

1NSSE

1NSSE

Droit1

Durand

Pierre

1NSSE

1NSSE

Droit1

Dupond

Paul

1NSSE

1NSSE

Stat

Durand

Pierre

1NSSE

1NSSE

Stat

viter la redondance (2)


Nom

Prnom

Classe

Matires

Durand

Pierre

1NSSE

Compta1

Durand

Pierre

2NSSE

Compta2

Dupond

Paul

1NSSE

Compta1

Dupond

Paul

1NSSE

Droit1

Durand

Pierre

1NSSE

Droit1

Dupond

Paul

1NSSE

Stat

Durand

Pierre

1NSSE

Stat

Nom

Prnom

Classe

Durand

Pierre

1NSSE

Durand

Pierre

2NSSE

Dupond

Paul

1NSSE

Classe

Matires

1NSSE

Compta1

2NSSE

Compta2

1NSSE

Droit1

1NSSE

Stat

Attention :
Un lve peut suivre plusieurs cours
un mme cours peut tre suivi par plusieurs lves

viter

viter la redondance (3)

Client

Produit

NoClient

RaisonSociale

Adresse1

Ref prod

Descript

Puht

C987

Dupont & Co

12 rue Par..

P1234567

Tomate

10

C986

Durand & Cie

71 cbru

B9873685

Banane

C9875986

Poire

180

Attention :
Un client peut acheter plusieurs produits
un mme produit peut tre achet par plusieurs clients

viter

Redondance (4), relation


fonctionnelle
Client

Produit

NoClient

Ref prod

RaisonSociale

Descript

Adresse1

Puht

TxTVA

1
n

Acceptable
Commande

Comprendre
.

NoComm

# NoComm

DateCommande

# Ref Prod

# NoClient

Quantit

Attention :
Un client peut passer plusieurs commandes
Mais :
Une commande ne peut tre passe que par un seul client

Redondance (4), relation


fonctionnelle
Client

Produit

NoClient

Ref prod

RaisonSociale

Descript

Adresse1

Puht

TxTVA

1
n

Commande

NoComm

Acceptable
1

Comprendre
.
(ou Ligne de commande)

# NoComm

DateCommande

# Ref Prod

# NoClient

Quantit

Attention : Une commande peut comprendre plusieurs couples commandeproduit (lignes de commandes) pour des quantits diffrentes
Mais : Un couple commande-produit ou une ligne de commande ne
peut tre compris(e) quune fois que dans une seule commande

Redondance (4), relation


fonctionnelle
Client

Produit

NoClient

Ref prod

RaisonSociale

Descript

Adresse1

Puht

TxTVA

1
n

Acceptable
Commande

NoComm

Comprendre
.
1

# NoComm

DateCommande

# Ref Prod

# NoClient

Quantit

Attention : Un produit ne peut tre compris que dans un seul couple


commande-produit pour une quantit prcise
Et : Un couple commande-produit ne peut comprendre quun seul
produit

1
1

Donnes saisies ou calcules

saisies

calcules

Donnes : tables
Lanalyse de la liste des donnes saisies
permet de mettre en vidence des
ensembles homognes.
Exemples :
- donnes concernant les clients
- donnes concernant les produits
Chacun de ces ensembles est reprsent
par une table.
Exemples : - la table client
- la table produit

Table : sa structure
Une table se compose:
- de colonnes o sont indiqus les diffrents attributs
- de lignes o sont ranges les valeurs des diffrents attributs.
Lensemble des valeurs dune ligne est appel un enregistrement.

DPENDANCE FONCTIONNELLE

La connaissance dune valeur de lattribut


cl primaire dtermine de faon unique la
connaissance des valeurs des autres
attributs,
on dit quil existe entre
dpendance fonctionnelle.

eux

une

Exemple : la connaissance du numro de


client nous permet de retrouver son nom et
son adresse.

Un attribut principal appel cl primaire doit permettre


didentifier chaque enregistrement sans ambigut.
Les valeurs de lattribut cl primaire doivent donc
obligatoirement tre uniques.
Pour la table client, Numcli rpond le mieux ce
critre.
La cl primaire est gnralement situe en premire
colonne.
8

Table : modle relationnel (1.1)


Entits
attributs (caractristiques) : description
ex. : clients, produits, lves, citoyens belges, motos
belges ...
Cl primaire unique

Relations
relation entre entits
ex. : commandes (clients, produits),
proprio (moto, citoyen)
conjoint (citoyen1, citoyen2)

Table : modle relationnel (1.2)

CLIENT (

NumCli, Nomcli, Adresseruecli,

AdresseCPcli, Adressevillecli

Nom de la relation/entit (en majuscules) suivi de


parenthses
Attributs spars par des virgules
Cl primaire en premier lieu et souligne :
unique.

Base : modle relationnel entre deux


tables (2.1)
La connaissance dun numro de
commande nous permet de retrouver de
faon unique un numro de client.
Dpendance
fonctionnelle

Il existe donc une dpendance fonctionnelle


entre deux tables (commande et client).
Pour matrialiser ce lien, une colonne (numcli)
sera ajoute la table source de la dpendance
fonctionnelle.
Celle-ci sera appele cl trangre.

Attribut commun aux


deux tables
matrialisant la
dpendance
fonctionnelle.
10
8

Base : modle relationnel entre deux


tables (2.2)
n

Attribut commun aux


deux tables
matrialisant la
dpendance
fonctionnelle.

CLIENT ( NumCli, Nomcli, Adresseruecli, AdresseCPcli, Adressevillecli)


COMMANDE ( NumCom, datecom, # NumCli )
Si la relation comprend un attribut cl trangre, celui-ci sera plac la fin et
prcd du signe #.

10
8

Table : modle relationnel entre


deux tables (2.3)
Ce qui est ncessaire :
2 tables (ou requtes ou une combinaison des deux)
1 champ en commun dans chacune des tables
mme type de champ (texte avec texte, numrique
avec numrique ...)
mme longueur (pas un champ long de 15 caractres
avec un autre long de 50 caractres !)
mme genre d'information (Ex.: Code d'inventaire
avec des codes d'inventaires, NAS avec NAS ...)

Et vive les cls primaires et trangres !!!

Table : modle relationnel entre


deux tables (2.4)

La table Fournisseurs
contient toutes les
informations de contact au
sujet de ces entreprises

Quant la table Produits, elle fait rfrence


la table Fournisseurs, mais elle ne doit pas
forcment inclure toutes les informations de
contact de tous les fournisseurs.

Base : modle relationnel entre plusieurs


tables (1)
Dpendance
fonctionnelle
compose

La connaissance du numro de commande et de


la rfrence du produit nous permet de retrouver
de faon unique la quantit commande.
Il existe donc une dpendance fonctionnelle
multiple ou compose partir des tables
PRODUIT et COMMANDE .
Pour matrialiser ce double lien, une table
supplmentaire COMPRENDRE sera cre.
Celle-ci sera compose dune cl primaire
concatne Numcom+Refprod et de
lattribut quantite

10
8

Base : modle relationnel entre plusieurs


tables (2)

CLIENT ( NumCli, Nomcli, Adresseruecli, AdresseCPcli, Adressevillecli)


PRODUIT ( Refprod, Designprod, PUprod)
COMMANDE ( NumCom, datecom, # NumCli )
COMPRENDRE ( NumCom, Refprod, Quantit )
Dans le cas dune cl primaire concatne, lensemble des attributs formant la
cl est soulign.
10
8

Duferco
Duferco produit des brames quelle vend.
Brame : La brame est un demi-produit sidrurgique.
C'est la matire premire utilise pour la fabrication des
tles ou des plaques sur les trains de laminoirs.
La brame ou slab est une masse d'acier de forme
paralllpipdique de fortes dimensions (plus de 1000
mm de largeur pour plus de 10 mtres de long et un
poids de plusieurs dizaines de tonnes), obtenue soit
directement de coule continue soit aprs rduction
d'un lingot dans un slabbing lequel est un train de
laminoirs dgrossisseur.

Duferco (2)
Fourniss

Brames

Clients

Codefourniss

Codebrame

Codeclient

Codecoule

Coules

Commandes

Codecoule

Codecommande

Codechim

Codebrame

Codeequip

Codeclient

Codefourniss

Equipes

Compchim

Codeequip

Codechim

Duferco (3)

Bases & tables : exemples


1. Duferco
tables, relations_0,
2. Enseignement suprieur
x
3. Police dIxelles
x
4. Centre de documentation
x
5. Rservations thtre
x
6. 9e art
x

Crer une base de donnes (0)


Contrainte de cl primaire :
Une fois que la cl primaire sera dsigne et
le champ dclar sans doublons, les saisies
de valeurs identiques seront impossibles.

Lors de la cration dune table, la cl primaire et


lappartenance des donnes un type doivent
tre obligatoirement dfinies.
Dautres lments peuvent tre poss pour assurer
le confort et la scurit de la saisie.

Choix du type :
Il sagit de prciser quel type de valeurs sera
stock dans le champ.
Il existe trois grands types (numrique,
date, texte). Pour les champs de type texte, il
est possible dintervenir sur la taille du
champ, de manire optimiser la place
occupe sur le support de stockage.
Contrle de la saisie :
Pour faciliter la saisie, un masque, une
valeur par dfaut, peuvent tre mis en place.
Contrainte de domaine :
Il est possible, pour un champ donn, de
limiter les valeurs autorises la saisie.
Celles-ci sont indiques dans la case
Valide si , un message derreur peut y tre
associ.
9

Crer une base de donnes (1)


Possibilit de crer avec SQL, mais pas indispensable
Base de donnes = ensemble de tables

Crer une base de donnes (2)

Donner un nom la Base de donnes extension .mdb

Crer une base de donnes (3)


La Base de donnes est cre,
Elle ne contient aucune Table au dpart

Objets dune base de donnes (1)


Tables, Requtes
Formulaires, tats
Tables,
entits/relations
Requtes,
interrogations
Formulaires,
visualisation de
tous les attributs
tats,
documents
publier

Objets dune base de donnes (2)


Tables, Requtes
Formulaires, tats
Tables,
entits/relations
Requtes,
interrogations
Formulaires,
visualisation de
tous les attributs
tats,
documents
publier

Objets dune base de donnes (3)


Requtes,
interroger les
donnes

tats,
publier et mettre
en forme les
rsultats

Macros,
automatiser des
actions excuter

Modules,
programmer en
VisualBasic
Tables,
entits/relations
saisir les donnes

Formulaires,
visualiser et
faciliter la saisie
des attributs

Crer une table (0)

3
2
1

Crer une table donnes (1)

Crer une table assistant (2.1)

Crer une table assistant (2.2)

Crer une table cration (3.1)

Crer une table cration (3.2)

Crer une table SQL (4)


CREATE TABLE
exemple :
Crer la nouvelle table "table_test" contenant quatre champs :
un champ avec un entier qui doit toujours tre saisi et un champ
contenant une chane de 5 caractres :
CREATE TABLE table_test
(
champ1 int unsigned
champ2 integer CONSTRAINT champ2 NOT NULL,
champ3 char(5),
champ4 date
);

Les types dattributs (1)

Les types dattributs (2)


1. Texte
max : 255 caractres
2. Mmo
max : 65 535 caractres
3. Numrique
entier, simple prcision, nbre dcimales, etc.
4. Date/Heure
anne 1009999, 12 ou 24 h
5. Montaire
nombres rels de 1 4 dcimales
6. NumroAuto
incrmentation automatique
7. Oui/Non
Vrai/Faux , Actif/inactif
8. Objet OLE (Object Linking and Embedding)
feuilles de calcul, sons, vidos, graphiques
9. Lien Hypertexte
chemin complet (local ou internet)

Les masques de saisie (1)

Les masques de saisie (2)

Les masques de saisie (3)

Les masques de saisie (4)


Symbole

Signification

Chiffre de 0 9 obligatoire

Chiffre ou espace facultatif

Chiffre ou espace ou + ou -

Lettre de A Z obligatoire

Lettre de A Z non obligatoire

Lettre ou chiffre obligatoire

Lettre ou chiffre non obligatoire

&

Caractre quelconque obligatoire

Caractre quelconque non obligatoire

<

Passe tout en minuscules (bas de casse)

>

Passe tout en majuscules (haut de casse)

Saisie partir de la droite

Les masques de saisie (5)


masque

sens

exemples

00 00 00 00 00

Numro de tlphone franais


nouvelle numrotation

04 12 34 56 78

00 999

Code postal franais


(dpartement obligatoire)

75 123 ou 59

>CCCCCCCCCCCCCCC
CCCCC
>C<CCCCCCCCCCCCC
CCCCCC

Nom de maximum 20 caractres,


converti en capitales

VAN DELDER ou BOND

Prnom de maximum 20
caractres, 1re lettre capitale,
lettres suivantes bas de casse

Guy ou James 007

0 00 00 00 0000

Matricule denseignant sur


prcisment 11 chiffres

1 53 06 07 0557

00/00/0099

Date avec anne possible sur 2


ou 4 chiffres

07/06/1953 ou 22/02/53

(000) 000-0000

Tlphone avec indice rgional


obligatoire

(207)555-0199 ou
(165)345-2025

Les masques de saisie (6)


masque

sens

exemples

(999) 000-0000!

Tlphone avec indice rgional


facultatif remplissage par la
droite
Tlphone amricain (derniers
chiffres peuvent tre des lettres)

(207)555-0199 ou ()3452025
(206) 555-TELE

#999

Nombre positif ou ngatif, compos de quatre


caractres ou moins, sans sparateur de
milliers ni sparateur dcimal.

2345 ou -20

>L????L?000L0

Combinaison de lettres obligatoires (L), lettres


facultatives (?) et nombres obligatoires (0). Le
signe > oblige les utilisateurs entrer toutes
les lettres en capitales.

(000) AAA-AAAA

0 00 00 00 0000

Matricule denseignant sur


prcisment 11 chiffres

00/00/0099

Date avec anne possible sur 2


ou 4 chiffres

(000) 000-0000

Tlphone avec indice rgional


obligatoire

GREENGR339M3 ou
MAY R462B7
1 53 06 07 0557

07/06/1953 ou 22/02/53
(207)555-0199 ou
(165)345-2025

Les masques de saisie (5)

La saisie (1)

Les listes droulantes (1)

Monsieur, M., Mr, Dr, Me, Madame, Mme, Mlle,

Les listes droulantes (2)


solution simple, par valeurs souhaites
Dans la table, crer le champ Titre

Cliquer sur Assistant Liste de choix


Slectionner "Je taperai
les valeurs souhaites"

Dresser la liste dans


Contenu

Les listes droulantes (3)

Les listes droulantes (4)

Les listes droulantes (5)

Les clefs (1)

Lier des tables (1)

Lier des tables (2)

Lier des tables (3)

Les filtres (1)


Les filtres permettent de limiter simplement,
de faon temporaire,
les enregistrements affichs dans une table.

On peut filtrer selon deux mthodes :


- le filtre sur un seul critre :
ex : les tudiants qui habitent Braine-le-Comte ;
- le filtre sur plusieurs critres :
ex : les tudiants qui habitent Braine-le-Comte ou ceux qui
sappellent Durand .

Les filtres (2) un seul critre


1. on se positionne sur l'enregistrement d'un client habitant Paris,
2. on slectionne le mot Paris dans le champ Ville ;

3. on clique sur licne de filtre ;

et voil

4. pour revenir un affichage non filtr, on clique sur licne


et nous voil comme avant

Les filtres (3a) plusieurs critres


(= filtre par formulaire)
1. on clique sur licne de filtre

2. un enregistrement vide apparat ;


3. on slectionne Machin dans le champ Nom ;

4. Puis on slectionne ou dans le coin infrieur gauche, on obtient


un nouvel enregistrement vide

Les filtres (3b) plusieurs critres


(= filtre par formulaire)
5. on slectionne Saint-Quentin dans le champ Ville ;

6. pour terminer (et pas pour revenir un affichage non filtr), on clique
sur licne
;

Les requtes
(= interroger une base de donnes)
1. Requte de consultation, (=slection, interrogation)
1. Requtes dans une table ou plusieurs tables
2. Tri, filtres (critres), calculs, regroupement
3. Projection, slection / restriction, jointure
2. Requte daction (attention)
1.
2.
3.
4.

Mise jour
Suppression
Ajout
Cration de table

3. Requte danalyse croise


4. Requte SQL
1. Langage spcifique, permet une excution fine des requtes cidessus

Crer une requte de consultation


(1)

Interroger une base de donnes


(plusieurs tables ventuellement)
=
Crer une requte de consultation

Crer une requte de gestion (1)

Grer une base de donnes


(plusieurs tables ventuellement)
=
Crer une nouvelle table ;
Modifier la structure dune table ;
Supprimer une table ;
Crer ou supprimer un index.

Crer une requte de


manipulation (1)

Manipuler une base de donnes


(plusieurs tables ventuellement)
=
Ajouter des donnes dans une table ;
Modifier les donnes dune table ;
Supprimer des donnes dune table.

Crer une requte de consultation


(1)
Interroger une base de donnes
(plusieurs tables ventuellement)
=
Crer une requte de consultation
les noms des clients et ceux des villes o ils sont domicilis ?
Projection (dune table) -> tous les enregistrements, quelques champs
les noms des clients domicilis Paris ?
projection et restriction/slection (dune table) -> quelques champs de
quelques enregistrements spcifiques
les dates des commandes passes par les clients domicilis Paris ?
projection, restriction/slection et jointure (de plusieurs tables)

Crer une requte : consultation


(2)
Requteur graphique = langage visuel
propre chaque logiciel,
possibilits sont limites lors de cas
complexes.

SELECT liste des champs afficher


Les logiciels SGBDR intgrent galement
un langage textuel de programmation de
requtes :
le SQL (Structured Query language),
universel, normalis
et capable de traiter toutes les difficults.

FROM liste des tables utilises


WHERE champ et critre de condition
AND champ commun aux tables utilises
ORDER BY champ trier ASC ou DESC

22

Crer une requte consultation (3)


Les requtes de consultation en SQL
ont gnralement la structure suivante:
Linstruction SELECT permet de
lister les champs que lon souhaite
obtenir, il correspond l oprateur de
PROJECTION.

SELECT liste des champs afficher


FROM liste des tables utilises

Linstruction FROM permet de lister


les tables utiles la requte.
Les instructions WHERE et AND
sont
lies.
Elles
permettent
dintroduire :

WHERE champ et critre de condition


AND champ commun aux tables utilises
ORDER BY champ trier ASC ou DESC

les
critres de conditions
correspondant
loprateur de
RESTRICTION.
- les champs communs aux tables
utilises correspondant loprateur
de JOINTURE.

Linstruction ORDER BY permet de


demander un tri sur un champ (ASC
pour croissant et DESC pour
dcroissant).
22

Langage des requtes : projection


(prsentation thorique)
Une requte de consultation est une interrogation de la base de donnes portant sur le contenu dune ou
plusieurs relations.
Elle met en jeu des oprateurs (projection, restriction, jointure).

La projection consiste
en un dcoupage
vertical.
Requte1 : On souhaite obtenir les noms des clients (tous) et ceux
des villes o ils sont domicilis.
Pour cela, nous allons utiliser loprateur de projection.
15

Requtes : projection
(requteur graphique)
Les logiciels de gestion de bases de donnes (SGBDR) mettent disposition des utilisateurs un requteur
graphique (Query by example dans le logiciel Access) permettant de raliser des requtes de consultation
facilement et intuitivement.
Requte avec projection : VILLES DES CLIENTS

Table utilise dans la


requte.

Projection des champs


retenus dans la requte.
Un attribut est appel un
champ par le logiciel.

18

Requtes : projection
(langage
SQL[1])
Projection Exemple
Une projection est une instruction de consultation permettant de slectionner
un ensemble de colonnes (champs, arguments) dans une table.
Soit la table Clients qui contient les champs :
NumCli, NomCli, Adresseruecli, AdresseCPcli, Adressevillecli
++++++++++++++++++++++++++++++++++++++++++++++++
Linstruction
Select * FROM Clients
aura comme
rsultat un tableau contenant lensemble de la table (tous les champs)

Linstruction
Select NomCli, Adressevillecli FROM Clients
aura comme rsultat un tableau contenant uniquement les informations (les
champs) correspondant(e)s.

Requtes : projection
(langage SQL[2])

Projection Suite
Une projection est une instruction de consultation permettant de slectionner
un ensemble de colonnes dans une table.
Soit la table Clients qui contient les champs :
NumCli, NomCli, Adresseruecli, AdresseCPcli, Adressevillecli
++++++++++++++++++++++++++++++++++++++++++++
Linstruction
Select DISTINCT Adressevillecli FROM Clients
aura comme
rsultat lensemble des villes o lon a des clients (sans doublons)

Linstruction
Select NomCli, Adressevillecli FROM Clients ORDER BY Adressevillecli
aura comme
rsultat la liste des clients, classs alphabtiquement par commune.

Requtes : projection

Requtes : restriction/slection
(prsentation thorique)

La restriction ou
slection consiste en un
dcoupage horizontal.

La projection consiste
en un dcoupage
vertical.
Requte2 : On souhaite obtenir les noms des clients domicilis
Paris. Nous conserverons le nom de la ville dans laffichage.
Pour cela, nous allons utiliser les oprateurs de projection et de
restriction/slection.
16

Requtes : restriction slection


(requteur graphique)
Table utilise dans la
requte.

Projection des champs


retenus dans la requte.

Restriction sur le champ


adressevillecli en
posant comme critre
paris .
Requte avec projection et restriction :
CLIENTS PARISIENS
19

Requtes : restriction slection


(langage SQL[1])

Restriction - slection Exemple

Une restriction est une instruction de consultation permettant de slectionner


un ensemble de lignes dans une table, selon un critre fix.
Soit la table Clients qui contient les champs :
NumCli, NomCli, Adresseruecli, AdresseCPcli, Adressevillecli
++++++++++++++++++++++++++++++++++++++++
Linstruction
Select Nomcli FROM Clients WHERE Adressevillecli="paris"
aura comme
rsultat la liste des clients parisiens
Linstruction
Select NomCli, Adressevillecli FROM Clients WHERE Adressevillecli="paris"
OR Adressevillecli="lille"
aura comme rsultat
la liste des clients parisiens ou lillois.

Requtes : restriction slection


(langage SQL[2])

Soit la table ETUDIANT (NEtudiant, Nom, Age, CodePostal, Ville)


SELECT * FROM ETUDIANT
WHERE Age IN (19, 20, 21, 22, 23) ;
SELECT * FROM ETUDIANT
WHERE Age BETWEEN 19 AND 23 ;
SELECT * FROM ETUDIANT
WHERE CodePostal LIKE 70* ;
SELECT * FROM ETUDIANT
WHERE CodePostal LIKE 70?0 ;
SELECT * FROM ETUDIANT
WHERE Ville IS NULL ; // tudiants pour lesquels la ville n'est pas renseigne
SELECT * FROM ETUDIANT
WHERE Ville IS NOT NULL ; // tudiants pour lesquels la ville est renseigne

Requtes : restriction slection


(exemple 1)

Soit une base contenant plusieurs tables,


soit la table Clients
On clique sur requtes
nouveau/elle
mode cration
// tudiants pour lesquels la ville est renseigne

Requtes : combinaison de
critres [1]
Linstruction
Select titre FROM Tableaux WHERE (expo NOT LIKE *paris*) AND ((anne
BETWEEN 1600 And 1699) OR (anne BETWEEN 1900 And 1999))
aura comme rsultat la liste des titres des tableaux
non exposs Paris,
et datant des XVIIe ou XXe sicles

Requtes : combinaison de
critres [2]
Et

Ou

Requtes : combinaison de
critres [3]
Et/ou [1]

Et/Ou [2]

Plusieurs Ou
=
in(x;y;z;w)

Langage des requtes : restriction


slection

Requtes consultation : jointure


(prsentation thorique)

La projection consiste
en un dcoupage
vertical.

La jointure permet de lier


deux tables ayant un
attribut commun.

La restriction consiste
en un dcoupage
horizontal.

Requte3 : On souhaite obtenir les dates des commandes


passes par les clients domicilis Paris
Pour cela, nous allons utiliser les oprateurs de projection,
de restriction et de jointure.
17

Requtes : jointure
(requteur graphique)
Requte avec projection, restriction et jointure : DATES DE COMMANDES DES CLIENTS PARISIENS

Tables utilises dans la


requte.
Jointure liant les deux
tables ayant un champ
commun : numcli .

Projection des champs


retenus dans la requte.
Restriction sur le champ
adressevillecli avec le
critre paris .

20

Requtes : jointure
Jointure Exemple

(langage SQL[1])

Une jointure est une instruction permettant de slectionner un ensemble de


lignes dans plusieurs tables (lies), selon un critre fix.
Soit les tables Client, Commande qui contient les champs :
NumCli, NomCli, Adresseruecli, AdresseCPcli, Adressevillecli
NumCom, datecom, NumCli
+++++++++++++++++++++++++++++++++++++++++

Linstruction
Select Nomcli, Adressevillecli, datecom
FROM Clients, Commande
WHERE Adressevillecli="paris AND Clients.NumCli = Commande.NumCli
aura comme
rsultat la liste des dates de commandes des clients parisiens

Langage des requtes : jointure

Langage des requtes : jointure

Les requtes paramtres


Dans la ligne Critres du (ou des)
champs concern(s) par le
paramtrage, entrer entre crochets [ ]
linvite qui apparatra dans la bote de
dialogue.

La requte est alors


excute en fonction
de la rponse de
l'oprateur.

Requtes : analyse croise


Il s'agit d'un tableau interactif qui contient des donnes de synthse constitues
partir d'une BDD interne (Access) ou externe (SQL Server, etc.) que l'on peut
manipuler l'aide de fonctions statistiques pour les analyser sous divers angles.
Le vocable dynamique dcoule du fait que l'on peut
faire pivoter les titres des colonnes et des lignes
pour obtenir diffrentes prsentations analytiques des donnes.
Exemples,
rcapituler les ventes par service, par mois ou par vendeur ;
subdiviser ces catgories par produit ;
comparer les ventes ralises et les dpenses avec les montants
budgts par mois, par trimestre ou par anne.

Par rapport une requte Slection,


les informations obtenues sont plus compactes
et se prtent donc mieux une analyse.

Requtes : analyse croise

Par rapport une requte Slection,


les informations obtenues sont plus compactes
et se prtent donc mieux une analyse.

Requtes : fonctions de calcul


Les fonctions suivantes peuvent tre
utilises dans une clause SELECT pour
effectuer des calculs sur le rsultat de la
requte :
COUNT : nombre d'enregistrements (Pour
viter de compter les doublons, on peut ajouter le paramtre
DISTINCT)

SUM : somme d'une colonne


AVG : moyenne (average)
MAX : maximum d'une colonne
MIN : minimum d'une colonne

Requtes : fonctions de calcul


Select AVG(tableagrgation.nombre)
as Moyennedenombre
from tableagrgation

Requtes : fonctions de calcul


Select COUNT(*)
from PERSONNEL
nombre de salaris

Requtes : fonctions de calcul


Select SUM(salaire)
from PERSONNEL
where fonction= maitre-assistant
Somme des salaires des matreassistant

Requtes : regroupement sans


fonction de calcul [1]

Select tableagrgation.ville
from tableagrgation
GROUP BY tableagrgation.ville

Requtes : regroupement sans


fonction de calcul [2]

Select
from
GROUP BY

Requtes : fonctions de calcul et


groupement
Select AVG(tableagrgation.nombre)
as Moyennedenombre
from tableagrgation
GROUP BY tableagrgation.ville

Requtes : groupement, slection et


fonction de calcul

On affiche les villes pour lesquelles la moyenne du champ


"nombre" est suprieure 400.
On affiche aussi les moyennes du champ "nombre" pour
les villes retenues.

Select tableagrgation.ville, avg(nombre)


from tableagrgation
GROUP BY tableagrgation.ville
HAVING avg(nombre)>400

Requtes : groupement, slection et


fonction de calcul [2]

On affiche les numros de client et le nombre de


commandes passes.

Select numclient, count(*)


from commande
GROUP BY numclient

Requtes : groupement, slection et


fonction de calcul [3]

On affiche pour chaque client ayant pass plus de 2 commandes, quel est
le montant minimum, et maximum des commandes quil a passes.

Select numclient, min(montant), max(montant)


from commande
GROUP BY numclient
HAVING count(*)>2

Requtes : groupement, slection et


fonction de calcul [4]
On affiche pour chaque client ayant pass plus de 2 commandes, son
numro, nom, prnom, nombre de commandes passes, moyenne et cumul
total des montants, le tout tri par nombre dcroissant de commandes
passes, puis par noms, prnoms croissants

Select cl.numclient, nom, prenom, count(*), avg(montant), sum(montant)


from client cl, commande co
WHERE cl.numclient = co.numclient
GROUP BY numclient
HAVING count(*)>2
ORDER BY 4 desc, nom, prenom

Requtes : groupement, slection et


fonction de calcul [5]
On affiche pour chaque lment command, ceux dont 90% de la quantit
commande dpasse les 500 units

Select *
from details
WHERE quantite quantite * 0,1 > 500

Requtes : groupement, slection et


fonction de calcul [6]
On affiche pour chaque lment command, ceux dont 90% de la quantit
commande dpasse les 500 units

Select sum(prixunitaire * quantite)


from details
WHERE numcommande = PO467-2009

Requtes : requtes imbriques


(intersection) [1]
On affiche les tudiants qui se sont inscrits aprs tre
passs par la journe portes ouvertes
Select numetud, nom, prenom
from students
WHERE numetud in
(select numetud
from JPO)

Select numetud, nom, prenom


from students
Intersect
select numetud
from JPO)

Requtes : requtes imbriques


(intersection) [2]
On affiche les tudiants qui se sont inscrits sans tre
passs par la journe portes ouvertes
Select numetud, nom, prenom
from students
WHERE numetud NOT in
(select numetud
from JPO)
Select numetud, nom, prenom
Select numetud, nom, prenom
from students
from students
Minus
Except
select numetud
select numetud
from JPO)
from JPO)

Requtes : exemples et exercices


Travail (prsentation Powerpoint) relatif aux requtes
(les fautes dorthographe sont de leurs auteurs) :
Fait par Hyacinthe Laini (59 dias) :
Fait par Didric Sluis (21 dias) :
Fait par Cline Stevens (21 dias) :
Fait par Giusy Talluto (27 dias) :
Fait par Jonathan Visage (23 dias) :

Requtes : exemples et exercices


Travail (prsentation Powerpoint) relatif aux
requtes, une cinquantaine dexemples (les fautes
dorthographe sont de leurs auteurs) :
NET_PROVENCE,
fait par Richit Nathalie, Pouplier Thierry, Patrice Viaud, Patrick
Laupies (42 dias) :

Formulaires : assistant (1)

Formulaires : assistant (2.1)

Formulaires : assistant (2.2)

Formulaires : assistant (3)

Formulaires : assistant (4)

Formulaires : assistant (5)

Formulaires : assistant (6)

Formulaires : instantan (6)

Formulaires : assist. Graph. (7)

Formulaires : assist. Graph. (8)

Formulaires : assist. tabl. dyn. (9)

tats : cration (1)

tats : cration (2)

tats : cration (3)

tats : cration (4)

tats : cration (5)

tats : cration (6)

tats : cration (7)

tats : assistant tiquettes (8)

tats : assistant tiquettes (9)

tats : calculs (10)

tats : tris & regroupements (11)

Cas Baronnia (nonc [1])


Dans la haute socit, Madame la Baronne Damien Fz de V'nir
(Ukraine) est une figure incontournable. Elle organise avec un
brio ingal des rceptions qui vont du souper simple entre amis
(24 couverts, 5 services), la soire de mariage princier.
Inutile de dire que ses invitations sont extrmement prises. Et pour
cause...
Madame la Baronne, avec beaucoup de tact, veille inviter au
moins une fois l'an chacune de ses relations. En bonne htesse,
elle sait prsenter ses invits les uns aux autres en rappelant les
professions respectives et, le cas chant, quelle rception ils
ont dj eu l'occasion de se rencontrer.
Le nombre d'amis et relations ne faisant que crotre, Madame la
Baronne envisage - non sans une certaine rpugnance - de
recourir l'ordinateur ("Vous savez trs chre, cette chose pleine
de puces et de souris..."). Sur recommandation de son ami
intime, le Comte Ren de Saissandre, qui vous connat trs bien
(si, si ...), elle dcide de vous confier la rsolution de cet
angoissant problme.

Cas Baronnia (nonc [2])


Madame la Baronne dsire :
tablir un carnet d'adresse de ses amis, relations et connaissances (en
distinguant chacune de ces catgories) ;
savoir si telle personne tait prsente la dernire rception, si elle tait
malade ou excuse ;
savoir depuis combien de temps telle personne n'a plus t invite et
adresser des invitations celles qui n'ont plus t invites depuis 8 mois ;
connatre l'ge (en toute discrtion bien sr), la profession et le revenu
annuel (en toute discrtion aussi a va de soi) de ses relations ;
faire la liste des personnes qui appartiennent une tranche d'ge donne
;
vrifier le budget, c'est--dire connatre le cot des rceptions. On compte
un cot fixe (location du chteau) et un cot proportionnel par invit
(menu) ;
savoir si une invitation a t confirme ;
savoir si le temps tait beau, maussade ou pluvieux chacune de ses
rceptions ;
etc.

Cas Baronnia (nonc [3])


Quelques informations supplmentaires :
On ne considre que les personnes individuelles et non les
couples ;
Les invits apportent souvent un petit cadeau. Pour viter tout
impair, il faut savoir qui a apport quoi et quelle rception ;
De mme, certains invits reoivent un petit cadeau
(anniversaire, promotion...) ; il faut savoir qui a reu quoi et
quelle rception... et pour quelle valeur (budget) ;
Plusieurs amis possdent un titre de noblesse

Cas Baronnia (nonc [4])


Quelques exigences particulires, il faudrait pouvoir obtenir :
la liste des personnes invites la rception du jj/mm/aaaa,
[titre, nom, prnom, profession de l'invit ; tri par nom] ;
la liste des personnes prsentes la rception du jj/mm/aaaa
(critre) [tous les champs ; tri par nom] ;
la liste de toutes les rceptions [Date, lieu, nombre d'invits
prsents ; tri par date dcroissante] ;
le cot d'une rception donn par la formule suivante :
nombre d'invits (sauf excuss) x cot par personne + cot fixe
+ cot des cadeaux offerts

Cas Baronnia (nonc [5])


Quelques rceptions remarquables :

Lieu

Date

Cot fixe (Eur)

Cot / pers
(Eur)

Chteau de
Lamalle

21 juillet 1999

1 250

100

Chteau
d'Outre Meuse

15 aot 1999

1 350

125

Domaine des
Prs Fleuris

14 fvrier 1998

950

62,5

Ferme du
Marquisat

21 mars 1999

450

45

Cas Baronnia (nonc [6])


Quelques amis et relations (remarquables ?) :

Identit

Adresse

Ville

Omer dAlors

Rue neuve 5

Juprelle

Dominique Nique
(marquise)

Rue Dewonck 67

Fexhe

Roland Nset-Abond

Rue du sale 118

Mellery

Elvire Sacutti

Rue provinciale

Villers

Aubin Sahalore
(comte)

Rue Marchal 114

Lantin

Diviser pour rgner


Carnet dadresse
Covert Harry, rue Minant 3, 6681 Lavacherie, 0475 98 76 54
Dalors Homre, rue Tilant 9, 1348 Louvain-la-Neuve, 010 11 12 13
John Deuf, rue Barbe 10, 7090 Dour, 065 43 21 00

Qui

Tel

Covert Harry

rue Minant 3, 6681 Lavacherie,

0475 98 76 54

Dalors Homre

rue Tilant 9, 1348 Louvain-laNeuve

010 11 12 13

John Deuf

rue Barbe 10, 7090 Dour

065 43 21 00

cPrenom cNom

cAdresse

cCP

cCommune

cTel

Harry

Covert

rue Minant 3

6681

Lavacherie

0475 98 76 54

Homre

Dalors

rue Tilant 9

1348

Louvain-la-Neuve

010 11 12 13

John

Deuf

rue Barbe 10

7090

Dour

065 43 21 00

Structure des bases de donnes


Base de donnes
mabase.mdb
Table1
lves
Enregistrement1
lv Dupont

Table2
Classe

Enregistrement2
lv Durand Pierre1

Champ1
Nom

Champ2
Prnom

Table3
Matires

Utile dans les requtes (1)


Like "S*"

Fournit tous les enregistrements pour lesquels le


champ commence par S.

Like "*Imports"

Fournit tous les enregistrements pour lesquels le


champ termine par le mot "Imports".

Like "[A-D]*"

Fournit tous les enregistrements pour lesquels le


champ commence par une lettre entre A et D.

Like "*ar*"

Fournit tous les enregistrements pour lesquels le


champ contient la squence "ar".

Like "Acc?"

Fournit tous les enregistrements pour lesquels le


champ commence par "Acc" et pour lesquels la
quatrime et dernire lettre est inconnue.

Like [forms]!
[NomForm]!
[NomChamp]

Fournit tous les enregistrements pour lesquels le


champ est identique au champ "NomChamp" du
formulaire "NomForm".

Utile dans les requtes (2)


< 100

Fournit tous les enregistrements pour lesquels le


champ contient une valeur numrique infrieure
100.

< 1/1/2000

Fournit tous les enregistrements pour lesquels le


champ contient une date antrieure au 1/1/2000.

A And B

Fournit tous les enregistrements pour lesquels le


champs satisfait le critre A et le critre B.

A Or B

Fournit tous les enregistrements pour lesquels le


champs satisfait le critre A ou le critre B.

A Xor B

Fournit tous les enregistrements pour lesquels le


champs satisfait le critre A ou le critre B de
manire exclusive.

Null

Fournit tous les enregistrements pour lesquels le


champs est vide.

Is not null

Fournit tous les enregistrements pour lesquels le


champs n'est pas vide.

Les cardinalits (1)


A
a1

B
b1

A
a1

B
b1

A
a1

B
b1

a2

b2

a2

b2

a2

b2

a3

b3

a3

b3

a3

b3

a4

b4

a4

b4

a4

b4

a5

b5

a5

b5

a5

b5

b6

a6

b6

a6
<1,1>
(0,1)-(1,1)
One to one

<1,n>
(0,n)-(1,1)
One to many

<m,n>
(1,n)-(0,n)
Many to many

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