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


65 2 34 4 enregistrements 12/1/2008 10/06/2006 14/12/2007

Montant 120 34 27 1500

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 champs de la mme table ne peuvent pas avoir le mme nom mme champ peut tre prsent dans plusieurs tables

Deux

Un

Exemple de base de donnes


Livre NLivre TitreLivre 10 25 La monnaie La finance Auteur NAuteur NomAuteur 1 2 3 LivreAuteur NLivre NAuteur 10 25 25 1 1 3 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 R

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
(3x4 = 12 lignes) (4 lignes)

(3 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 ; Employ)

Intersection(Etudiant

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 Etudiant)

Diffrence(Employ;

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 a2

C b1 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 27 Suzanne 36 Demain 137 Thriller NumAlbum Titre 23 Hier 36 Demain 27 Suzanne 137 Thriller

Anne NumArtiste 1960 123 1976 1974 1983 25 123 25 22 Aprs regroupement sur NumArtiste

67 Montreal 1974

Anne NumArtiste 1960 1974 1976 1983 123 123 25 25 22

67 Montreal 1974

Regroupements
A 1 1 2 1 2 1 2 3
Par B. On obtient 3 groupes

B 1 2 1 2

Par A. On obtient 2 groupes

A 1 1 1 2 2 1 3 2

C 1 2 2 1

A 1 1 2 1

B 1 2 2 3

C 2 1 1 2

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 R2.B b1 C c1

a1 b1 a2 b2

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 a1 a2 R1.B R2.B b1 b2 b1 C c1

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)

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. 2. 3. 4.

Lancer Access Demander la cration dune nouvelle base Donner un nom votre base a y est, votre BD est cre mais pour linstant elle ne contient aucune information Noter quAccess aura cr un fichier dune taille non ngligeable!

5.

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