Vous êtes sur la page 1sur 54

Université Hassan II- Mohammedia

Faculté des Sciences, Juridiques, Économiques et Sociales

Introduction aux Base de Données


Systèmes de Gestion de Base de Données (ACCESS)

Professeur
Amal ELMZABI

A. ELMZABI
Objectifs

 Les activités humaines génèrent de plus en


plus de données
 Les données ont souvent la même structure

 On veut un accès facile à ces données

 Tout le monde veut y accéder

2
A. ELMZABI
Définition d’une base de
données BD
Structure de données (fichier) permettant de stocker, et de
fournir à la demande, des données structurées relatives à un
sujet.

Les données d’une base de données peuvent être structurées


selon différents modèles (hiérarchique et relationnel, …)

Exemple 1 :
Organisation : une université
Données : les étudiants, les enseignants, les cours, etc.
Exemple 2 :
Organisation : une entreprise
Données : les produits commercialisés, les fournisseurs de
ces produits, les commandes, etc. 3
A. ELMZABI
Base de données relationnelle

Une base de données relationnelle est un ensemble d’informations


structurées sous forme de tables.

4
A. ELMZABI
Système de Gestion de Base
de Données
Un Système de Gestion de Bases de Données (S.G.B.D.) est une collection
de logiciels (un programme)
– Il permet de décrire, traiter, interroger les ensembles de données
formant la base.
– Il doit également assurer la sécurité et la confidentialité des données
dans un environnement où de nombreux utilisateurs ayant des besoins
variés peuvent interagir simultanément sur ces données.

Exemple de SGBDR:
ACCESS pour gérer des petites bases de données.
ORACLE, très performant pour les grandes BD mais coute très cher
SQLSERVER, outils de Microsoft concurrent de orale (coute cher)
MYSQL, performant et gratuit
5
A. ELMZABI
Création de tables d’une base de données

Exemple de base de données pour la gestion des produits

Règles de gestion

Chaque produit est fourni par un seul fournisseur, et un fournisseur peut


fournir plusieurs produits.
Un fournisseur est défini par un code, un nom, l’adresse et le téléphone.
Chaque produit est défini par une référence, une désignation, le prix
unitaire , la disponibilité et la quantité en stock.

6
A. ELMZABI
Tables de la base de données

7
A. ELMZABI
Les données ayant même structure peuvent être rangées
dans une même table
La table : c’est un ensemble de données organisées en
lignes et en colonnes
Le champ (colonne) : c’est l’unité d’information dans une
table, une table est constituée de différents champs
L’enregistrement (ligne) : C’est l’ensemble des données
relatif à la même information

8
A. ELMZABI
SGBDR: ACCESS

9
A. ELMZABI
Les objets (ACCESS)

• Les tables, pour stocker les données ;  


• Les requêtes, pour retrouver les données ;  
• Les formulaires, pour saisir les données ou les visualiser à
l'écran ;  
• Les états, pour imprimer les données ;  
• Les pages, pour communiquer avec la BDD via un navigateur
(Internet Explorer uniquement) ;   
• Les macros, pour automatiser des opérations répétitives
effectuées sur la base ;   
• Les modules, pour rajouter des fonctionnalités grâce à la
programmation en VBA (Visual Basic for Applications).

10
A. ELMZABI
Création d’une table
Mode création

En mode création, une fenêtre s'ouvre qui permet de définir la


table champ par champ, en précisant le nom du champ et le type
de données qu'il contient. Chaque champ a un type de données

11
A. ELMZABI
Type et taille d’un champ

12
A. ELMZABI
13
A. ELMZABI
Créer une liste de choix
Pour entrer des valeurs prédéfinies d’un champ, choisir Assistant liste
de choix dans la liste des types de données. Cocher Je taperai les
valeurs souhaitées.

Par exemple pour le champ « Réf_Produit" de la table PRODUITS:

Une fois cliqué sur suivant, saisissez les choix dans une colonne
(Pdt01, Pdt02, Pdt03, Pdt04, Pdt05), et cliquez enfin sur Terminer.
14
A. ELMZABI
Pour entrer des valeurs d’un champ à partir d’une liste prédéfinie dans
une table ou requête:

Par exemple pour le champs Code_Four de la table produits, nous


allons choisir ses valeurs parmi celles du champs Code_Fournisseur de
la table Fournisseur pour éviter l’incohérence.

Choisir Assistant liste de choix dans la liste des types de données.


Cochez Je veux que la liste de choix recherche les valeurs dans
une table ou requête.

15
A. ELMZABI
Sélectionner la table Fournisseurs, ensuite Suivant

Suivre les instruction s de


l’assistant jusqu’à la fin.

16
A. ELMZABI
Propriétés

Taille du champ : définit le nombre de caractères ; 

Format : définit la manière dont les informations s'affichent.  

Masque de saisie : guide la saisie des données en déterminant la


manière dont les données doivent être saisies. 17
A. ELMZABI
Légende : définit l'étiquette qui remplacera le nom du champ dans les
feuilles de données ou les formulaires; 
Valeur par défaut : valeur qui s'affiche dans le champ avant saisie par
l'utilisateur ; 
Valide si : condition de validité du champ. Exemple : une notation sur 20
doit être comprise entre 0 et 20 ; 
Message si erreur : ce message s'affiche si la condition de validité
précédente n'est pas satisfaite ; 
Null interdit : le champ correspondant ne peut rester vide lors de la saisie
d'un enregistrement ; 
Chaîne vide autorisée : le champ peut contenir une chaîne ne comportant
aucun caractère ; 
Indexé : un fichier index est associé au champ de telle sorte que les
recherches d'information s'effectuent plus rapidement.
Compression unicode : (champs texte et Memo), détermine si le contenu
doit être enregistré en format compressé.

18
A. ELMZABI
Créer un masque de saisie
Pour les champs de type Texte et Date/heure, on peut utiliser un
assistant masque de saisie.

Cliquer dans le nom du champ, Cliquer dans la zone blanche de Masque


de saisie, puis sur le bouton . Une boîte de dialogue s’ouvre :

19
A. ELMZABI
Valide si et message si erreur

Propriété Valide Si Message Si Erreur

L'entrée doit avoir une valeur


<> 0
différente de zéro.

L'entrée doit être vide ou


> 1000 Ou Est Null
supérieure à 1000.

L'entrée doit comporter 5


Comme "A????" caractères et commencer par
la lettre « A ».

>= #1/1/12# Et
L'entrée doit dater de 2012.
<#1/1/13#

A. ELMZABI
Passage de mode Création en mode Feuille de données
pour saisir les données

A. ELMZABI
Clé primaire ou étrangère

Une clé est une combinaison minimale de propriétés qui permet


d’identifier d’une manière unique un enregistrement

Une clé peut être simple (un seul champ) ou composée (plusieurs
champs)

Il y a deux types de clés :

Clé primaire (table principale)

Clé étrangère (table secondaire)

Exemple: la clé primaire de la table clients est le champ:


Code_Client

22
A. ELMZABI
Remarque : Si aucune clé primaire n’a été définie, le message suivant
apparaît :

Si vous cliquez Oui, Access va créer un champ Numéro Auto qu’il va


appeler N°.
Vous pouvez cliquer Non et définir la clé primaire plus tard. 

23
A. ELMZABI
Relations entre les tables

 Une relation est un lien entre deux tables, associant des données
de la première (table source) avec celles de la deuxième (table
destination).
 Relation : la relation entre deux tables est basée sur un champ
commun aux deux tables. Elle est matérialisée par une ligne
appelée « ligne de jointure ».
 Une relation a pour principe la correspondance des données des
champs clés de deux tables :

– Ces champs sont la clé primaire et la clé étrangère.

24
A. ELMZABI
On peut agrandir les tables et les bouger
 

Remarque : Les deux champs qui relient deux tables doivent être de type
et de taille identiques.
Dans le cas où le champ commun est de type texte dans la table source, par
exemple ici "Code_Fournisseur" de la table « Fournisseurs", il doit être de
type texte dans la table destination, comme « Code_Four" dans la table «
Produits".

25
A. ELMZABI
Relation « un à plusieurs»
Un enregistrement de la table 1 est en relation avec plusieurs
enregistrements de la table 2 .

• Un Fournisseur peut fournir un ou plusieurs produits.


• Chaque produit est fourni qu’avec un seul fournisseur.
26
A. ELMZABI
Relation Plusieurs à Plusieurs (n:m)

Comment définir une relation Plusieurs à Plusieurs dans Access ?


Solution

Il est impossible de lier directement 2 tables par une relation de Plusieurs à


Plusieurs. Il faut systématiquement passer par une troisième table.
On suppose que nous avons déjà 2 tables construites correctement
(notamment avec une clé primaire chacune). Dans ce cas :
1. Créez une troisième table, qu'on appellera "table de jonction".
2. Dans cette table, reprenez la clé primaire des tables 1 et 2.
3. La clef primaire de la table 3 sera au minimum la combinaison des 2
autres clefs.
4. Dans la fenêtre Relations, tracez maintenant une relation classique "1
à Plusieurs" entre les tables 1 et 3, et faites de même entre les tables 2
et 3. 
27
A. ELMZABI
Exemple

 Un client achète un ou plusieurs produits


 Un produit peut être vendu plusieurs fois, Autrement dit,
un produit peut être présent sur plusieurs ventes

A. ELMZABI
Relation un-à-un

• Dans une relation un-à-un:


– Chaque enregistrement de la table A ne peut correspondre
qu'à un enregistrement de la table B,
– Et inversement, chaque enregistrement de la table B ne peut
correspondre qu'à un enregistrement de la table A.

• Vous pouvez utiliser une relation un-à-un :


– Pour diviser une table qui a de nombreux champs,
– Pour isoler une partie d'une table pour des raisons de sécurité,

29
A. ELMZABI
Pour établir ces relations:

1.Fermez tous les objets, ne gardez que la fenêtre « Base de


données » et cliquez sur Relations

dans l’onglet Outils de base de données.

1.Activez la commande « Afficher la table » dans le menu «


Relations », sélectionnez ensuite la table et cliquez sur
«Ajouter».

2.Faites glisser le champ comportant la clé primaire sur le


champ homologue de l’autre table
30
A. ELMZABI
L’intégrité référentielle

Un ensemble de règles suivies par Access pour gérer les relations entre
tables et éviter des incohérences dans une base de données. Elle empêche
de supprimer accidentellement des enregistrements dans une table mère
quand il existe des enregistrements correspondants dans la table Fille.

31
A. ELMZABI
L’intégrité référentielle

Prenons l'exemple de gestion Fournisseurs/Produits : un fournisseur


fournit plusieurs produits.
Lorsque vous définissez la relation entre la table Fournisseurs et la table
Produits, vous devez activer l'intégrité référentielle. De cette façon,
Access interdira la création d'un produit si le fournisseur n'existe pas au
préalable. 

D'une manière générale, l'intégrité référentielle implique de renseigner


la table du côté "1" avant la table du côté "Plusieurs".

Les deux tables doivent appartenir à la même base de données.


32
A. ELMZABI
Mises à jour et suppressions
en cascade

Mettre à jour en cascade


Si cette option est cochée et que vous changez le code du fournisseur (dans la
table Fournisseurs), tous les produits correspondants verront aussi leur Code
modifié. Inversement, si la case n'est pas cochée, il sera impossible de
modifier un Code_Fournisseur si des produits lui sont attribuées.

Effacer en cascade
Si cette option est cochée et que vous supprimez un fournisseur, tous ses
produits seront automatiquement détruites.
Inversement, si la case n'est pas cochée, il sera impossible de supprimer un
fournisseur tant que tous ses produits n'ont pas été détruites.

33
A. ELMZABI
Les requêtes

La requête est une action qui porte sur plusieurs


enregistrements. Elle sert à exploiter les données contenues
dans les tables.

Elle permet de:


 Trier des données

 Extraire des données par critères

 Produire des calculs

Créer, Modifier des tables

Le SGBD Access permet de créer des requêtes en utilisant soit


une interface graphique QBE, soit le langage SQL
34
A. ELMZABI
Types de requêtes

 La requête sélection : Elle permet de sélectionner des


enregistrements qui répondent aux critères demandés, de faire des
calculs et des regroupements. Elles ressemblent beaucoup aux filtres,
mais permettent, en plus, de travailler sur plusieurs tables simultanément.
 La requête d'Analyse croisée : Cette requête présente ses résultats
sous forme de tableau (de type Excel). On l'utilisera pour comparer des
valeurs, dégager des tendances.
 La requête de Création de table : Cette requête crée une table à
partir des données qu'elle a extraites dans une ou plusieurs autres tables.
 La requête Mise à Jour : Elle modifie le contenu d'un ou plusieurs
champs d'une ou plusieurs tables. C'est le moyen le plus efficace pour
mettre à jour un grand nombre d'enregistrements en une seule opération.
 La requête Ajout : Cette requête ajoute les données qu'elle a
extraites à la fin d'une table déjà existante.
 La requête Suppression : Cette requête supprime un ou plusieurs
enregistrements dans une ou plusieurs tables.
35
A. ELMZABI
Création et exécution de requêtes
Dans la barre Objets de l’onglet Créer, les options Créer une requête
en mode Création et Créer une requête à l'aide de l'Assistant
apparaissent dans le groupe Autre..

36
A. ELMZABI
Requête de sélection en mode
Création

 Une donnée de type texte doit être écrite entre guillemets ("...")
 Les nombres sont écrits tels quels
 La date et / ou l'heure doivent être placées entre dièses
37
A. ELMZABI
Requête de sélection en mode
Création
Pour ajouter un champ, soit le sélectionner dans la table et l'amener avec la
souris, soit on clique sur la ligne "Champ", la liste de tous les champs
s'affiche alors et on en sélectionne un. Un des champ proposé s’appelle '*',
ce champ signifie "tous les champs de la table",
La ligne "Table" sert à sélectionner la table à exploiter.
La colonne "Tri" indique de quelle façon vont être triés les champs dans le
résultat de la requête.
La colonne "Afficher" indique si le champ doit être affiché ou non
La colonne "Critères" va indiquer le critère de recherche pour la requête,

Si vous avez deux conditions regroupées par ou, la deuxième condition est
spécifiée dans la ligne OU.

Si les conditions sont regroupées par l’opérateur ET alors elles sont


spécifiées dans la même ligne CRITERES. 38
A. ELMZABI
Access met à notre disposition en plus des opérateurs (=, <>, <, >, <=, >=),
les opérateurs suivants:
Opérateur Signification Exemple
Sélectionne les enregistrements pour Entre "A" et "C"
Entre lesquels la valeur d'un champ est Entre 10 et 20
comprise dans un intervalle de valeurs Entre #01/01/99# et
#31/12/99#

Sélectionne les enregistrements pour


Dans, In lesquels la valeur d'un champ est Dans("Lyon"; "St Priest")
comprise dans une liste.
Est NULL Sélectionne les enregistrements pour Est NULL
Est pas lesquels un champ est vide ou non Est pas NULL
NULL
Comme Sélectionne les enregistrements Comme "rue*"
contenant une donnée approximative.
Pas Sélectionne les enregistrements ne Pas Entre "A" et "C"
correspondant pas au critère

39
A. ELMZABI
Exemple de requête de
sélection

40
A. ELMZABI
Affichez le Code_Founisseur, et le nom de tous les fournisseurs dont le
nom commence par la lettre " A ".

Cette requête sert à voir les caractères spéciaux tel que " * " et "? ". Le
caractère "?" est utile pour remplacer un caractère dans la requête. Par
exemple, une recherche sur b?lle pourrait donner les résultats suivants:
balle, belle, bille, bulle. En plus d'être utile pour les champs de type texte, il
peut aussi être utilise avec les champs de type Date/Heure. Par exemple,
#O9-??-01# pourrait afficher tous les enregistrements du premier jour de
chaque mois.

Le caractère "*" sert à remplacer une série indéterminée de caractères. On


connaît le début mais pas la fin. Par exemple, une recherche en utilisant bal*
pourrait donner le résultat suivant: balade, balai, balance, balcon, baleine,
balise, balle, ballerine, ballet ...

Pour le critère du champ « Nom_Fournisseur", écrivez seulement A*.


Access se chargera d'écrire Comme pour indiquer que les enregistrements
recherchés commencent par la lettre « A ».
41
A. ELMZABI
Requête de sélection paramétrée

Supposons maintenant que nous voulions faire une requête du type


« Liste de tous les fournisseurs qui habitent dans une ville » mais qu’on
veuille entrer nous même la ville.

Pour définir un paramètre dans une requête :

1. Créez une requête, ou ouvrez une requête existante.

2.Sélectionner les champs qui vous intéressent, de façon à les faire


apparaître sur la grille du bas.

3.Dans la zone Critères de la requête, remplacez les valeurs fixes par


des paramètres entre crochets.

4.Exécuter la requête pour voir le résultat produit

42
A. ELMZABI
Exemple

43
A. ELMZABI
Construction d’une requête SQL simple
1. La construction d'une requête commence par l'identification
des informations à afficher (Clause SELECT)
2. On détermine ensuite les restrictions nécessaires à
l'obtention du résultat (clause WHERE)
3. On repère ensuite dans le modèle relationnel les tables
concernées par l'ensemble des champs mis en ouvre dans les
points 1 et 2 : on en déduit les tables nécessaires à la clause
FROM
4. On retrace sur le modèle relationnel l'ensemble des liens
permettant de joindre les tables retenues au 3. Si nécessaire,
on ajoutera à la clause FROM les tables traversées et non
présentes au 3.
5. Enfin, on indique les jointures (égalités entre champs clé
étrangère et la clé primaire référencée, pour reconstituer la
contrainte d’intégrité) dans la clause WHERE.
6. On triera enfin grâce à la clause ORDER BY éventuelle.
44
A. ELMZABI
Construction d’une requête SQL avec calcul

On appliquera le déroulement ci-dessus, en ajoutant les étapes


suivantes :
A.Identifier le calcul à réaliser et les champs sur lesquels il porte:
moyenne (AVG), somme de valeurs numériques (SUM), comptage de
lignes (COUNT), plus grande valeur (MAX), plus petite valeur (MIN),
etc. Ajouter ce calcul à la clause SELECT, en ajoutant éventuellement
les tables à la clause FROM et les jointures à la clause WHERE
B.Identifier les éventuels champs sur lesquels réaliser des
regroupements à la clause GROUP BY
C.Ajouter les champs de la clause GROUP BY à la clause SELECT (pas
toujours obligatoire, mais plus pertinent d'un point de vue affichage)
D.Ajouter tout champ complémentaire de la clause SELECT à la clause
GROUP BY
E.Traiter les restrictions éventuelles sur les calculs (clause HAVING)
F.Il n'y a pas d’ORDER BY, la clause GROUP BY réalisant un tri.
45
A. ELMZABI
CLAUSE Explication

SELECT Liste les champs ou calculs à afficher ou


restituer
FROM Liste les tables nécessaires à
l'interrogation
WHERE Liste des conditions limitant la
recherche d'information. N'apparaît
qu'une fois
AND Précise que les conditions se cumulent

OR Précise des conditions alternatives

NOT Exprime le contraire d'une condition

ORDER BY Effectue un tri croissant (ASC) ou


décroissant (DESC) sur certains champs
GROUP BY Effectue un tri puis réalise des calculs
par sous catégories.
Inclut donc la notion d'ORDER BY.
HAVING Précise des conditions sur les résultats
des calculs
46
A. ELMZABI
Les fonctions de regroupement
Jusqu'à présent, nos requêtes nous permettaient de répondre à
des questions du type : « Liste des fournisseurs habitant Casa »,
« La liste des produits ». Grâce aux fonctions de regroupement,
nous allons pouvoir répondre à des questions du type : « Combien
de fournisseurs habitent Mohammedia ? » , ou « Le total des
produits fournis ? »

Pour cela, cliquez sur le bouton :

Une nouvelle ligne "Opération" apparaît dans la requête, c'est


grâce à elle que nous allons faire nos opérations.

47
A. ELMZABI
1- Combien de fournisseurs habitent Mohammedia

Nous avons deux champs : nous allons compter le nombre de


fournisseurs, on insère donc dans la requête le Code_Fournisseur,
c'est le nombre de ces codes que nous allons compter, il faut qu'on
compte les fournisseurs habitant Mohammedia, d'où le deuxième
champ Adresse.
La différence est sur la ligne Opération :
Elle indique comment va se faire l'opération, si nous voulons
compter, on va choisir l'opération "compte".
Dans tous les champs où il y a un critère de sélection (ici Adresse=
"Mohammedia"), on choisira l'opération où. 48
A. ELMZABI
2- Les opérations

En plus de la somme et de compte, il existe d'autres opérations


possibles :

Opération Signification
Compte le nombre de valeurs
Dernier Valeur du dernier enregistrement
Ecartype Ecart type
Max Valeur la plus élevée
Min Valeur la plus faible
Moyenne Moyenne
Premier Valeur du premier enregistrement
Somme Total
Var Variance

49
A. ELMZABI
Les requêtes ACTION

Les requêtes faites jusqu'à présent se contentent de retourner


le résultat d'une sélection sous forme de table, cette table,
étant, selon le type de requête, modifiable. Il existe cependant
d'autres types de requêtes, les requêtes action, ces requêtes
vont permettre de :
 Créer une table à partir du résultat d'une requête

Ajouter des enregistrements à une table à partir des résultats


de la requête
 Mettre à Jour une table en fonction de certains critères

 Supprimer des enregistrements répondant aux critères de la


requête 50
A. ELMZABI
1. Les requêtes Création

Une requête création crée une table à partir des


résultats qu'elle produit à partir d'une table
existante.

2. Les requêtes Ajout

Une requête Ajout copie tout ou partie des


enregistrements d'une table (la table source) à la fin
d'une autre table (la table cible).

51
A. ELMZABI
Attention

Les enregistrements sont COPIES de la table source vers la table


cible et non pas déplacés.
Les deux tables doivent avoir des noms de champs identiques (et
les mêmes types de données), les deux structures ne doivent pas
nécessairement être identiques.
Si la table source comporte plus de champs que la table cible, les
champs supplémentaires sont ignorés
Si la table source comporte moins de champs que la table cible,
les champs dont les noms sont identiques sont copiés, les autres
sont laissés vides.
Access ne copie QUE les champs que vous avez déclarés dans la
requête (d'ou le champ *)

52
A. ELMZABI
3. Les requêtes Mise à Jour

Les requêtes mise à jour permettent de modifier


rapidement tous les enregistrements d'une table ou un
groupe d'entre eux :

4. Les requêtes Suppression

Les requêtes suppression vous permettent de


supprimer un groupe d'enregistrements qui répondent
à un critère donné.

53
A. ELMZABI
Les requêtes d'analyse croisée

Les requêtes d'analyse croisée permettent de répondre à des


questions du type "qui à commandé combien de quoi?". Elles
retournent le résultat sous forme d'un tableau comportant des
champs en abscisse et en ordonnée, avec, dans chaque case la
réponse à notre question.
Exemple : Qui a commandé combien de quoi ?

Qui Qui
Quoi Combien Combien
Quoi Combien Combien

L'en-tête "Qui" va contenir le nom des clients


L'en-tête "Quoi" va contenir la liste des produits
Et combien va donner, pour chaque client, le nombre de produits
qu'il a commandé. 54
A. ELMZABI

Vous aimerez peut-être aussi