Vous êtes sur la page 1sur 87

Bases de donnes sous Access

Plan

Excel avanc
Outils de rsolution
Valeur cible, solveur

Outils de simulation
Tables de valeurs, scnarios

Interactivit dans les feuilles de calcul


Utilisation de la barre doutils Formulaire

Initiation aux bases de donnes


Application sous Access
Structure dune base de donnes
Langages de manipulation de donnes
Algbre relationnelle (thorique)
QBE dAccess

INITIATION AUX BASES DE DONNEES


Une base de donnes est un ensemble ou une collection
structure de donnes
Il existe plusieurs types de bases de donnes (BDs) qui se
distinguent de par la faon dont les donnes sont structures
BDs relationnelles, objet, hirarchiques, rseau,
fonctionnelles, dductives
95% des BDs sont relationnelles
Oracle, socit ditrice de logiciels pour bases de donnes
est la deuxime plus grosse socit aprs Microsoft.

Structure dune BD relationnelle

Une BD relationnelle est compose dun ensemble


de tables (ou relations)

Une table est compose de


Lignes quon appelle enregistrements (ou tuples)
Colonnes reprsentant chacune un champ (ou un attribut)

Chaque table a un nom

Chaque champ a un nom et un type


Texte, numrique, date,

Exemple de table
Nom de la table

3 champs

Command NCommande DateCommande


e
27
13/2/2007

Montant
120

65

12/1/2008

34

10/06/2006

27

34

14/12/2007

1500

4 enregistrements

NCommande est du type numrique entier


Montant est du type numrique rel
DateCommande est du type date

Quelques contraintes
Deux

tables dune mme base de donnes


ne peuvent pas avoir le mme nom

Deux

champs de la mme table ne peuvent


pas avoir le mme nom

Un

mme champ peut tre prsent dans


plusieurs tables

Exemple de base de donnes


Livre
NLivre TitreLivre
10

La monnaie

25

La finance

LivreAuteur
NLivre NAuteur
10

25

25

Auteur
NAuteur NomAuteur
1

Dupont

Durand

Martin

SGBD

Les logiciels qui permettent de grer des bases de donnes


sont appels Systmes de Gestion de Bases de
Donnes

Acces est un SGBD relationnel

MySQL, SQL Server, Postgres, Oracle, DB2,

Un SGBD permet de

Crer une BD
Modifier la structure des tables
Interroger la BD
Modifier la BD

Interrogation dune BD

PRINCIPES DINTERROGATION

Le rsultat dune requte a toujours la forme dune table

Rsultat dune requte sous


forme de table

BD=ensemble de tables

Algbre relationnelle

OPERATIONS ALGEBRIQUES APPLIQUEES AUX TABLES


UNAIRES (Un argument)
BINAIRES (Deux arguments)

5 OPERATIONS ALGEBRIQUES ELEMENTAIRES


RESTRICTION
PROJECTION
PRODUIT
DIFFERENCE
UNION
OPERATION COMPLEMENTAIRE (lune des plus utilises)
JOINTURE

RESTRICTION

R1 = RESTRICTION (R; <condition_de_restriction>)


condition_simple : oprande1 oprande2. est un oprateur prendre
parmi {=, , >, <, >=, <=}
condition_compose : conditions simples lies par les oprateurs
logiques et, ou, non
R1 contient les lignes de R qui vrifient la condition de restriction

R1 = condition (R)

R
R1

Exemple de restriction
Soit

la table Livre ( NLivre, Titre, Anne )

On veut savoir quels sont les livres qui sont sortis


en 2000
R1=Restriction(Livre; Anne=2000)
R1=

Anne=2000(Livre)

PROJECTION

R1 = PROJECTION (R; <liste_attributs_projection>)


<liste_attributs_projection> : Attributs Ai, avec Ai R
R1 est une table qui contient les lignes de R o on ne garde que
les champs spcifis dans ( liste_attributs_projection)
R1 = Liste des attributs (R)
R1

Exemple de projection
Soit

la table Livre(NLivre, Titre, Anne)

On veut savoir quels sont les titres des livres


Projection(Livre; Titre)

Titre

(Livre)

Exemple combinant Restriction et projection

Soit la table Livre(NLivre, Titre, Anne)


On veut les titres des livres sortis en 2000
R1= Restriction(Livre, Anne=2000)
R2= Projection(R1;Titre)
Ou Projection(Restriction(Livre;Anne=2000),Titre)
Noter que lon ne peut pas inverser lordre de ces 2
oprations

PRODUIT CARTESIEN

R = PRODUIT (R1;R2)
R contient le produit cartsien de R1 et R2, i.e toutes les
combinaisons des lignes de R1 avec les lignes de R2
Les colonnes de R sont celles de R1 AINSI que celles de R2
R =R1 * R2
R

R1
R2

(4 lignes)

(3 lignes)
(3x4 = 12 lignes)

Exemple de produit

Soient les tables:


Livre(NLivre, Titre, Anne) contient n lignes
Auteur(NAuteur, Nom, AnneNaissance) m lignes

On veut savoir quels sont les affectations possibles quon peut


raliser entre les livres et les auteurs
R1=Produit(Livre; Auteur)
R1(NLivre, Titre, Anne, NAuteur, Nom, AnneNaissance)
R1 contient n*m lignes

Exemple combinant produit, restriction et projection

Soient les tables:


Livre(NLivre, Titre, Anne)
Artiste(NAuteur, Nom, AnneNaissance)

On veut avoir les couples de la forme (NLivre, NAuteur) o


lanne de sortie du livre NLivre correspond lanne de
naissance de lauteur NAuteur
R1=Produit(Livre; Auteur)
R2=Restriction(R1; Anne=AnneNaissance)
R3=Projection(R2; NLivre, NAuteur)

Produit : Cas particulier


Que

se passe-t-il si les deux tables ont des


champs en commun ?
Ex: R(A, B) et S(B, C)
R * S donne une Table qui a 4 champs :
A, R.B, S.B, C

Les champs communs sont prcds du nom


de la table d'o ils proviennent

UNION

R = UNION ( R1 ; R2)
R contient les lignes de R1 et celles de R2
Les doublons sont limins.
R1 et R2 doivent avoir les mmes champs.
R = R1 R2

R1

R2

Exemple dunion

Soit les tables:


Etudiant(NSS, Nom, Adresse)
Employ(NSS, Nom, Adresse)

On veut avoir la liste des personnes qui accdent


luniversit (tudiants ou employs)

Union(Etudiant; Employ)

Intersection
R = Intersection(R1; R2)
R contient les lignes de R1 qui sont dans R2
R1 et R2 doivent avoir les mmes champs.
R

= R1 R2

R1

R2

Exemple dintersection
Soit

les tables:

Etudiant(NSS, Nom, Adresse)


Employ(NSS, Nom, Adresse)
On

veut avoir la liste des personnes qui sont


en mme temps tudiantes et employes
luniversit

Intersection(Etudiant

; Employ)

DIFFERENCE

R = DIFFERENCE (R1; R2)


R contient les lignes de R1 qui ne sont pas dans R2.
R1et R2 doivent avoir le mme schma.
R =R1 - R2

R1
R
R2

Exemple de diffrence
Soit

les tables:

Etudiant(NSS, Nom, Adresse)


Employ(NSS, Nom, Adresse)
On

veut avoir la liste des personnes qui sont


employes luniversit et qui ne sont pas
en mme temps des tudiants

Diffrence(Employ;

Etudiant)

JOINTURE

R = JOINTURE (R1; R2)


R contient les combinaisons des lignes de R1 avec les lignes de
R2 qui ont la mme valeur sur les champs communs
R =R1

R2

R1
=

R2

Exemple de jointure
Soit

les tables

Livre(NLivre, Titre, Anne, NAuteur)


Auteur(NAuteur, Nom, AnneNaissance)

On veut savoir pour chaque livre, lauteur qui la crit


(on suppose quil ny a quun auteur par livre)

Jointure(Album; Artiste)

Exemple de jointure (Suite)


Soit

les tables

Livre(NLivre, Titre, Anne, NumAuteur)


Artiste(NAuteur, Nom, AnneNaissance)
On

veut avoir le titre des livres crits par un


auteur qui sappelle Dupont

R1= Jointure (Livre ; Auteur)

R2= Restriction(R1; Nom=Dupont)


R3= Projection(R2 ; Titre)

Renommage
R = Renommer (R1; Champ Champ')
R contient les toutes les lignes et toutes les colonnes de R1.
Seul l'attribut Champ change de nom et devient Champ'
R =Champ Champ' (R1)
R

A
a1
a2

B
b1
b2

B C (R)

A
a1

C
b1

a2

b2

Renommage Exemple
Soient Employ (NSSE, NomE) et Etudiant(NSS, Nom)
Quels sont les tudiants qui sont en mme temps
employs ?
Il nest pas possible de faire lintersection car les deux
tables nont pas les mmes champs
R1 = Renommer(Employ; NSSE NSS)
R2 = Renommer(R1; NomE Nom)
R3 = Intersection( R2, Etudiant)

REQUETES SOUS ACCESS

QBE : INTERFACE GRAPHIQUE DE FORMULATION DES


REQUETES
TABLES UTILISEES

Conditions de restriction

Colonnes de la table rsultat

REQUETES SOUS ACCESS : Projection

Afficher le titre et lanne de sortie de tous les albums

Cliquer ici pour excuter

Cases cocher pour afficher ces champs

REQUETES SOUS ACCESS : Slection

Afficher les albums sortis aprs 1975

On affiche tous les champs

Critre ou condition de slection

REQUETES SOUS ACCESS : Slection


Afficher les albums sortis aprs 1975 (solution 2)

Album.* dsigne tous les champs de


la table Album

Case non coche sinon Anne sera affiche 2 fois

REQUETES SOUS ACCESS : Slection + Projection


Afficher les titres des albums sortis aprs 1975

Le titre est affich

Anne nest pas affich mais sert


exprimer le critre de slection

REQUETES SOUS ACCESS : slection complexe


Afficher les albums de lartiste 25 sortis aprs 1975

Deux conditions sur la mme ligne sont composes par un ET

REQUETES SOUS ACCESS : slection complexe


Afficher les albums sortis entre 1975 et 1980

REQUETES SOUS ACCESS : slection complexe


Afficher les albums sortis en 1975 ou en 1980

Ligne permettant dexprimer le OU

REQUETES SOUS ACCESS : Projection


Afficher les annes de sortie des albums

Une mme anne


peut apparaitre
plusieurs fois dans
le rsultat si
plusieurs albums
sont sortis durant
cette anne

REQUETES SOUS ACCESS : Projection


Afficher les annes de sortie des albums
Afficher les proprits avec un clic droit ici

Mettre OUI la proprit valeurs distinctes

REQUETES SOUS ACCESS : Projection


Afficher les titres des albums tris par ordre croissant

Permet de spcifier le
type de tri que lon veut

REQUETES SOUS ACCESS : Jointure


Pour chaque album, donner son titre et le nom de son auteur

Lien traduisant la jointure

REQUETES SOUS ACCESS : Jointure


Pour chaque album, donner son titre et le nom de son auteur

Solution quivalente avec


produit cartsien et slection

REQUETES SOUS ACCESS : Oprations


Afficher le nombre dalbums

Cliquer ici pour afficher la


ligne opration

On choisit de compter le
nombre de numros dalbums

REQUETES SOUS ACCESS : Oprations


Lanne du plus ancien album

Les oprations dACCESS


Les plus utilises :
Max : la valeur maximale
Min : la valeur minimale
Compte : compter le nombre de valeurs
Moyenne : la valeur moyenne
Somme : La somme des valeurs
Regroupement : permet de regrouper des enregistrements
O : permet de poser des conditions sur des enregistrements

Gestion des valeurs distinctes


Le nombre dannes diffrentes

Cette requte affiche le nombre


dannes. Une mme anne sera
compte autant de fois quelle
apparat dans la table Album

Gestion des valeurs distinctes


Le nombre dannes diffrentes (1)

Dabord une requte qui affiche les


annes distinctes et lenregistrer par
exemple sous le nom
AnnesDistinctes

Gestion des valeurs distinctes


Le nombre dannes diffrentes (2)
Compter le nombre
dannes quil y a dans
AnnesDistinctes

Noter que la table


quon a affiche est
en fait une requte

Oprations sous Access


Les albums les plus anciens :
Ce sont ceux dont lanne de sortie est gale lanne minimale
1.Requte qui affiche lanne minimale (Requte AnneMin )
2.Utiliser cette requte pour comparer lanne de sortie de
lalbum
1

Oprations sous Access


Les albums qui ne sont pas les plus anciens :
Ce sont ceux dont lanne de sortie est diffrente de lanne
minimale
1.Requte qui affiche lanne minimale (Requte AnneMin )
2.Utiliser cette requte pour comparer lanne de sortie de
lalbum
1

Le regroupement
Pour chaque artiste, afficher son numro ainsi que le
nombre de ses albums
On regroupe les lignes en fonction
du NumArtiste : Deux lignes qui ont
le mme NumArtiste seront dans le
mme groupe
Pour chaque groupe, on
compte le nombre de
NumAlbum

NumAlbum Titre
23 Hier

Anne NumArtiste
1960
123

27 Suzanne

1976

25

36 Demain

1974

123

67 Montreal 1974

25

137 Thriller
NumAlbum Titre

1983

22

Anne NumArtiste

23 Hier

1960

123

36 Demain

1974

123

27 Suzanne

1976

25

67 Montreal 1974

25

137 Thriller

1983

22

Aprs
regroupement
sur NumArtiste

Regroupements
A
1
1
2
1

B
2
1
2
3

Par B. On
obtient 3
groupes

C
1
2
1
2

Par A. On
obtient 2
groupes

A
1
1
2
1

B
1
2
2
3

C
2
1
1
2

A
1
1
1
2

B
2
1
3
2

C
1
2
2
1

Le regroupement
Pour chaque artiste, afficher son nom ainsi que le nombre de
ses albums
On regroupe les lignes en fonction
du Nom

Pour chaque groupe, on


compte le nombre de
NumAlbum

Le regroupement
Afficher le numro des artistes qui ont plus dun album

On regroupe les lignes en fonction


du NumArtiste

Pour chaque groupe, on


compte le nombre de
NumAlbum et on vrifie si
ce nombre est suprieur 1

Le regroupement
Afficher le numro des artistes qui ont au moins un album
dont le numro est suprieur 1
On regroupe les lignes en fonction
du NumArtiste

Toutes les lignes o


NumAlbum est 1 sont
dabord supprimes

Le regroupement
Les critres de slection

Quand on utilise le regroupement, il y a deux types de


conditions (critres) :
Condition sur les groupes : Utiliser une des fonctions de
calcul Min, Max, Moyenne, Somme, Compte,
Condition sur les lignes : utiliser lopration O

La diffrence sous Access

Quels sont les numros des artistes pour lesquels


on na pas enregistr dalbums ?

Projection(Artiste; NumArtiste) = R1
Projection (Album; NumArtiste) = R2
Diffrence(R1; R2) = rsultat

Sous Access, il nest pas possible dexprimer


directement la diffrence. Il faut passer par la
jointure externe

La jointure externe
jointureExterne(R1; R2) = R
R est obtenue en joignant les lignes de R1 avec les
lignes de R2
Les lignes de R1 qui ne sont pas joignables seront
aussi prsentes mais avec aucune valeur pour les
champs de R2 (valeur NULL)
R1

A B
a1 b
1
a2 b

R2

B C
b c
1 1
b c

R
A

R1.B

a1 b1
a2 b2

R2.B

b1

c1

La jointure externe
R1

A B
a1 b
1
a2 b
2

R2

B C
b c
1 1
b c
3 3

R
A

R1.B R2.B

a1

b1

a2

b2

Quels sont les B de R1 qui ne sont pas dans R2 ? Ce sont


ceux pour qui C=NULL dans R
Slection(R; C=NULL) = R
Projection(R; R1.B) = rsultat
Rsultat = projection(R1,B) projection(R2, B)

b1

C
c1

La diffrence
Quels

sont les numros des artistes pour


lesquels on na pas enregistr dalbums ?

Cliquer sur la jointure


avec le bouton droit afin
de changer ses proprits

La diffrence
Quels

sont les numros des artistes pour


lesquels on na pas enregistr dalbums ?

La diffrence
Quels

sont les numros des artistes pour


lesquels on na pas enregistr dalbums ?

Nous avons une flche


dirige de Artiste vers
Album

Lintersection

Quelles sont les personnes qui sont en mme


temps grantes et occupantes dun appart ?

Cest lintersection des champs NomGrant et


NomOccupant

Toute intersection peut tre exprime par une


jointure
Intersection(R1;R2)=jointure(R1;R2)

Linverse nest pas vrai. Certaines jointures ne


peuvent pas tre exprimes par une intersection

Lintersection
Quelles sont les personnes qui sont en mme temps grantes et
occupantes dun appart ?

Lunion
Il

nest pas possible dexprimer lunion en


utilisant le QBE dAccess
Il faut utiliser le langage SQL
Exemple : Le NSS de toutes les personnes:
SELECT NSS FROM tudiant
UNION
SELECT NSS FROM employ

Requte de mise jour


On

veut ajouter 1m2 la superficie de tous


les appartements.
On peut le faire la main (difficile sil y a des
centaines)
On peut le faire par une requte de mise jour

Requte de mise jour


Choisir le type Requte de
Mise jour
On met jour le champ
Superficie. Sa nouvelle valeur
est lancienne + 1

Requte ajout

On veut crer une table grandsApparts qui contient


ceux ayant une superficie > 100
Copier/Coller la table Appart pour obtenir une nouvelle
table ayant la mme structure

Cration dune base de donnes


1.

Lancer Access

2.

Demander la cration dune nouvelle base

3.

Donner un nom votre base

4.

a y est, votre BD est cre mais pour linstant


elle ne contient aucune information

5.

Noter quAccess aura cr un fichier dune taille


non ngligeable!

Cration dune table

1. Choisir longlet Tables


2. Crer une table

Cration dune table

La liste des champs


Le type de chaque champ

Commentaires sur le champ

Cration dune table


Une

fois quon a fini de taper tous les


champs composant la table,
Fermer la fentre de cration
Access demande alors le nom de la table
Access va demander aussi de prciser la cl
primaire. On reviendra plus tard sur cette notion
a y est, notre table Album est cre
Pour afficher son contenu, il suffit de cliquer deux
fois dessus
On peut ensuite saisir, supprimer, modifier des
enregistrements

Les types des champs

NumroAuto : numro incrment chaque insertion dun nouvel


enregistrement.

Numrique: Cest lutilisateur de taper sa valeur. Par dfaut, il sagit


dun entier mais on peut prciser si cest un rel

Texte : cest une chane de caractres. On peut prciser sa taille.

Oui/Non : a correspond aux champs qui ne peuvent prendre que


lune des deux valeurs OUI ou NON

Date/Heure : Type des champs qui indiquent une notion de temps.


Plusieurs formats sont disponibles

Dautres types encore mais rarement utiliss.

Proprits dun champ

Les proprits quon peut


prciser pour un champs

Proprits du type Texte

Les plus utilises :


Taille du texte : en nombre de caractres maximum
Valeur par dfaut : valeur prise par ce champs si
lutilisateur, lors de linsertion dun nouvel
enregistrement ne prcise pas de valeur
Null interdit : Est-ce que lutilisateur est oblig de donner
une valeur pour ce champ ou pas
Index : permet doptimiser la recherche sur ce champ.
On peut utiliser cette proprit pour exiger que les
valeurs du champ doivent tre uniques (sans doublons)
Liste de choix : permet de prciser lensemble des
valeurs correctes

Proprits du type numrique


Entier
Rel

Notion de cl primaire

Une cl primaire dans une table est


Un champ ou un ensemble de champs

Qui permet didentifier chaque ligne dans la table


Deux enregistrements ne doivent pas avoir la mme
valeur pour la cl

Par exemple: dans la table Album,


le champ NumAlbum est une cl primaire car deux
albums ne doivent pas avoir le mme numro.
Le champ Anne nest pas cl primaire car deux albums
peuvent avoir la mme anne de sortie

Consquences de la dclaration dune cl


primaire
Le

systme (Access) va refuser linsertion


dun nouvel enregistrement si cela viole
lunicit de valeur pour la cl primaire
Sil il y a dj un enregistrement avec la mme
valeur pour la cl primaire

Le

systme va refuser la modification de la


cl primaire si la nouvelle valeur existe dj

Dclaration dune cl primaire

2. Cliquer ici

1. Slectionner le ou les champs formant la cl

Notion de cl trangre

Un champs (ou ensemble de champs) est cl


trangre dans une table sil fait rfrence une
cl primaire dans une autre table.

Par exemple
le champ NumArtiste est cl primaire dans la table
Artiste
Ce champ est donc cl trangre dans la table Album

On parle dans ce cas dintgrit rfrentielle

Consquences de la dclaration dune cl


trangre

Le systme va refuser linsertion dun album si son


NumArtiste nexiste pas dans la table Artiste

Le systme va refuser la suppression dun artiste si il existe


dans la table Album des enregistrements qui lui sont associs

Le systme va refuser la modification dun NumArtiste dans


Album si la nouvelle valeur nest pas prsente dans Artiste

Le systme va refuser la modification dun NumArtiste dans


Artiste sil y a dj des albums qui sont associs lancienne
valeur

Cration des cls trangres (1)


1. Cliquer sur le
bouton Relations

Afficher les deux


tables Artiste et
Album

Cration des cls trangres (2)

En dplaant NumArtiste
dAlbum et en le dposant
sur NumArtiste dArtiste, on
obtient cette fentre
Cocher cette case

Cration des cls trangres (3)

Cette relation signifie quun artiste peut tre


associ plusieurs Albums et un album est
associ un seul artiste

Vous aimerez peut-être aussi