15/10/2020
Informatique Appliquée à la
Géologie : Base de données
Troisième bachelier géologie
Antoine Lumu 2020 1
Introduction
• Les activités humaines génèrent des données. Il
en a toujours été ainsi et, plus notre civilisation
se développe, plus le volume de ces données
croît.
• De nos jours, les données sont de plus en plus
souvent gérées par des moyens informatiques.
• Dans les entreprises, on manipule souvent des
données ayant la même structure.
Antoine Lumu 2020 2
1
15/10/2020
Introduction
L’utilisateur doit écrire un programme
souvent complexe pour une Quelles sont mes données ?
Comment les structurer?
meilleure gestion de données !!! ?
Comment y accéder ?
Comment créer un index ?
Comment les manipuler ?
?
Antoine Lumu 2020 3
Introduction
• Exemple1 : Liste des membres du personnel de
l'Université: pour chaque personne, on enregistre le
nom, le prénom, le sexe, la date de naissance,
l'adresse, la fonction dans l'entreprise, etc.
• Exemple2 : Liste des sondages de reconnaissance
d’un gisement : pour chaque sondage, on
enregistre le nom (code), l’azimut, la profondeur, la
localisation, l’inclinaison, la date de début, la date
de fin...
Antoine Lumu 2020 4
2
15/10/2020
Introduction
d’où la nécessité d’avoir un système de stockage
des données.
Différentes manières ont été développées pour le
stockage :
A- avant l’ère informatique :
Le tri manuellement : plus le volume des données
croît plus la gestion manuelle devient difficile vue la
masse et la complexité des données.
Antoine Lumu 2020 5
Introduction
B - L’ère informatique
Utilisation des fichiers informatiques pour stocker les
informations ;
Mais l’utilisation des fichiers impose :
• à l'utilisateur de connaître l’arborescence des
fichiers afin de pouvoir accéder aux données dont
il a besoin,
• d'écrire des programmes pour pouvoir
effectivement manipuler ces données.
Antoine Lumu 2020 6
3
15/10/2020
Introduction
• On a donc recherché des solutions
tenant compte à la fois des désirs des
utilisateurs et des progrès techniques.
Cette recherche a abouti au concept de
base de données.
• On utilise aussi le sigle BD, et le terme
anglais correspondant est DataBase !!!
Antoine Lumu 2020 7
Introduction
• Une base de données est donc un
ensemble structuré de données (1)
enregistrées sur des supports informatisés (2),
pouvant satisfaire simultanément plusieurs
utilisateurs (3) de façon sélective (4), en un
temps raisonnable (5).
(1) : Organisation et description de données (2) :
Stockage sur disque (3) : Partage des données (4) :
Confidentialité (5) : Performance
Antoine Lumu 2020 8
4
15/10/2020
Introduction
• Dans un sens plus strict, une base de données
est un ensemble de données, possédant les
caractéristiques suivantes :
Elles sont fortement structurées.
Elles sont persistantes.
Leur structure est définie dans un schéma.
Elles sont gérées par un logiciel appelé système
de gestion de bases de données qui en gère
aussi le schéma.
Antoine Lumu 2020 9
Introduction
Un schéma est simplement la
description des données contenues
dans la base.
Cette description est conforme à un
modèle de données qui propose des
outils de description (structures,
contraintes et opérations).
Antoine Lumu 2020 10
5
15/10/2020
Introduction
Bref : Une base de données BD, (database DB)
est un ensemble de données, stocké avec les
caractères suivants :
Exhaustif : la base contient toutes les informations
requises pour le service que l'on en attend ;
Non redondant : la même information n'est
présente qu'une seule fois (pas de doublons);
Structuré : les données ont des structures bien
définies.
Antoine Lumu 2020 11
Introduction
Utilité d’une base de donnée :
Elle permet de mettre des données à
la disposition des utilisateurs pour :
• une consultation,
• une saisie
• une mise à jour,
tout en s'assurant des droits accordés
aux utilisateurs.
Antoine Lumu 2020 12
6
15/10/2020
Introduction
Une base de données peut être :
Locale, c'est-à-dire utilisable sur une
machine par un utilisateur ;
Répartie, c'est-à-dire que les
informations sont stockées sur des
machines distantes et accessibles par
réseau et par plusieurs personnes.
Antoine Lumu 2020 13
Introduction
L'avantage majeur de l'utilisation de bases de données
est la possibilité de pouvoir être accédées par plusieurs
utilisateurs simultanément.
Il existe des bases de données de toutes tailles, depuis
les plus modestes :
une liste des numéros de téléphone utilisée par une
seule personne,
• jusqu'aux plus grandes :
la base des données commerciales d'une société à
activités multiples, avec des Géga octets de données.
Antoine Lumu 2020 14
7
15/10/2020
Introduction
• Une base de données relationnelle est une base de
données divisée en unités logiques appelées tables, en
relation les unes avec les autres au sein de la base ;
On rajoute parfois deux conditions supplémentaires à la
définition précédente :
Exhaustivité : la base contient toutes les informations
requises pour le service que l'on en attend ;
Unicité : la même information n'est présente qu'une
seule fois (pas de doublons).
Antoine Lumu 2020 15
Introduction
Bases de données relationnelles
Intérêt :
Un stockage facile, peu volumineux des données ;
Recherche facile et rapide d’un objet ;
Duplication et exportation aisée des données ;
Liens possibles entre différents types d’information ;
Contraintes :
Organisation stricte des données nécessaires ;
Les erreurs ne peuvent être admises.
Antoine Lumu 2020 16
8
15/10/2020
Introduction
Remarques :
Ces données doivent pouvoir être utilisées par des
utilisateurs différents. Ainsi, la notion de base de
données est généralement couplée à celle de
réseau.
On parle généralement de Système d'Information
pour désigner toute la structure regroupant les
moyens mis en place pour pouvoir partager des
données.
Antoine Lumu 2020 17
Introduction
La conception d’une base de
données n’est pas un domaine
Preuve…
réservé aux informaticiens !
Les logiciels de type SGBD sont intégrés
aux suites bureautiques les plus connues.
Ex: ACCESS du pack Office.
Cependant …
La maîtrise d’un SGBD est loin d ’être aussi
facile à acquérir que celle d ’un logiciel de
traitement de texte par ex.
Antoine Lumu 2020 18
9
15/10/2020
Système de gestion de base de
données : SGBD
• Un système de Gestion de Base de données
(SGBD) :
Ensemble des programmes et des langages de
commande qui permettent de :
Définir des "bases de données", et des relations
entre les éléments de chaque base ;
Spécifier le traitement de ces données :
interrogations, mises à jour, calculs, extractions...
Antoine Lumu 2020 19
Système de gestion de base de
données : SGBD
• Un système de Gestion de Base de données
(SGBD) : Logiciel qui permet d’interagir avec une
Base de Données
Antoine Lumu 2020 20
10
15/10/2020
Système de gestion de base de
données : SGBD
• Un système de Gestion de Base de données (SGBD) :
Pour pallier aux inconvénients des méthodes classiques
de gestion de fichiers, les SGBD visent quatre objectifs :
Ces objectifs exigent une distinction
Intégration et corrélation ;
nette entre les données et les
Flexibilité (indépendance) ; procédures de manipulation de ces
Disponibilité ; données : aux données, on
associera une fonction
Sécurité.
d'administration des données, aux
procédures de manipulation une
fonction de programmation.
Antoine Lumu 2020 21
Système de gestion de base de
données : SGBD
Intégration et corrélation :
• Dans les systèmes classiques, chaque application gère ses données
dans ses propres fichiers, d’où :
Un risque de redondance, et un danger d'incohérence des données ;
La même donnée peut appartenir à plusieurs applications, induisant
une déperdition de stockage ;
Toute modification de cette donnée est à enregistrer plusieurs fois : si
cette mise à jour multiple n'est pas effectuée correctement, les
données deviennent incohérentes ;
Le coût de la mise à jour augmente du fait de la multiplication des
entrées-sorties physiques.
Antoine Lumu 2020 22
11
15/10/2020
Système de gestion de base de
données : SGBD
Intégration et corrélation :
Une difficulté pour créer de nouveaux
traitements :
Les nouvelles applications entraînent des
duplications supplémentaires de données.
Leur intégration avec les applicatifs en
exploitation entraîne des modifications
importantes.
Antoine Lumu 2020 23
Système de gestion de base de
données : SGBD
Intégration et corrélation :
• Dans l'approche SGBD, un "réservoir" commun (intégration)
est constitué, représentant une modélisation (corrélation)
aussi fidèle que possible de l'organisation réelle de
l'entreprise :
Toutes les applications puisent dans ce réservoir, les
données qui les concernent, évitant ainsi les duplications ;
Mais le partage des données entre les utilisateurs pose le
problème de la synchronisation des accès concurrents.
Antoine Lumu 2020 24
12
15/10/2020
Système de gestion de base de
données : SGBD
Flexibilité ou indépendance
Dans les systèmes classiques, tout changement intervenant
dans le stockage des données (support, méthode d'accès
physique) entraîne des modifications lourdes des
applications correspondantes.
L'approche SGBD poursuit trois objectifs, pour assurer
l’indépendance des données par rapport aux traitements :
Indépendance physique: tout changement de support, de
méthode d'accès reste transparent au niveau de
l'utilisateur ;
Antoine Lumu 2020 25
Système de gestion de base de
données : SGBD
Flexibilité ou indépendance
Indépendance logique : les programmes d'application sont
rendus transparents à une modification dans l'organisation
logique globale, par la définition de sous-schémas couvrant
les besoins spécifiques en données ;
Indépendance vis-à-vis des stratégies d'accès : l'utilisateur n'a
plus à prendre en charge l'écriture des procédures d'accès
aux données. Il n'a donc pas à intégrer les modifications
tendant à optimiser les chemins d'accès (ex: création
d'index).
Antoine Lumu 2020 26
13
15/10/2020
Système de gestion de base de
données : SGBD
Sécurité
La sécurité des données recouvre deux aspects :
Intégrité, ou protection contre l'accès invalide (erreurs
ou pannes), et contre l'incohérence des données vis-à-
vis des contraintes de l'entreprise.
Confidentialité, ou protection contre l'accès non
autorisé ou la modification illégale des données.
Pour ne pas trop affecter les performances, la sécurité
doit également être prise en compte dès la phase de
conception. Antoine Lumu 2020 27
Système de gestion de base de
données : SGBD
Disponibilité :
Le choix d'une approche SGBD ne doit pas se traduire par des
temps de traitement plus longs que ceux des systèmes antérieurs ;
L’utilisateur doit ignorer l'existence d'utilisateurs concurrents ;
L'aspect performance est donc crucial dans la mise en œuvre
d'une base de données. Un tel objectif ne peut être atteint que si
la conception d'une base de données est menée de façon
rigoureuse avec un découpage fonctionnel adéquat. Les règles
et contraintes inhérentes sont évoquées lors de l'apprentissage
d'une méthodologie d'analyse (exemple MERISE).
Antoine Lumu 2020 28
14
15/10/2020
Système de gestion de base de
données : SGBD
Que doit-on savoir pour utiliser un SGBD ?
• L ’utilisation d’un SGBD suppose de comprendre (et donc de savoir
utiliser) les fonctionnalités suivantes :
• Définition du schéma de données en utilisant les modèles de
données du SGBD;
• Opérations sur les données : recherche, mises-à-jour, etc. ;
• Partager les données entre plusieurs utilisateurs (Mécanisme de
transaction) ;
• Optimiser les performances, par le réglage de l’organisation
physique des données. Cet aspect relève plutôt de l’administration
et ne sera évoqué dans ce cours.
Antoine Lumu 2020 29
Système de gestion de base de
données : SGBD
Quelques SGBD (relationnels du marché) :
Micro : ACCESS, Paradox, Dbase, PostSQL,
MySQL, …
Gros système : DB2, ORACLE, SYBASE, …
Dans le cadre de cours, nous allons étudié le
SGBD Access.
Antoine Lumu 2020 30
15
15/10/2020
Construction de base de
données
Définir précisément les
besoins (i.e. pourquoi
créer une base de
données?)
Antoine Lumu 2020 31
Construction de base de
données : Méthode Merise
La méthode Merise (créée en France dans les années 1970) : utilise le
système dit d'entités- relations. Il s'agit d'un outil et d'une technique
d'analyse permettant de construire des schémas théoriques de
raisonnement sur des applications tournant avec des bases de
données dite relationnelles (comme celles d'Access).
Dans ce cours nous ne présenterons qu'une partie de la méthode
Merise: la méthode Merise générale traite de l'intégralité de la
conception de la base de données (elle ne s'intéresse pas
uniquement de la partie correspondant au stockage des données,
mais également à leur traitement).
Antoine Lumu 2020 32
16
15/10/2020
Construction de base de
données : Méthode Merise
4 phases :
• Analyse : étude de l'existant et enquête;
• Conceptuelle : création du MCD;
• Logique : création du MLD;
• Physique : conception de la base de
données dans Access.
Antoine Lumu 2020 33
Construction de base de
données : Méthode Merise
La phase d'analyse qui est la phase essentielle qui
consiste à étudier l'existant :
• Y – a – t – il un système qui gère déjà tout ou partie
de l'information, qu'il s'agisse d'un logiciel ou d'un
ensemble de documents papiers ?
• Comment ces informations sont elles stockées ?
• Quelles sont les informations stockées ?
• Que manque – t – il ?
Antoine Lumu 2020 34
17
15/10/2020
Construction de base de
données : Méthode Merise
La phase d'analyse qui est la phase essentielle qui
consiste à étudier l'existant :
• Qu'est ce qui convient ou ne convient pas aux utilisateurs
: interroger les futurs utilisateurs : Qu'attendent-ils du futur
SGBD ? Quelles sont les opérations qu'ils désirent
automatiser ?
• Recueillir les informations existantes, étudier les divers liens
qui peuvent exister entre ces informations, mettre en
évidence les règles de gestion employées ;
Antoine Lumu 2020 35
Construction de base de
données : Méthode Merise
La phase conceptuelle qui consiste à représenter l'organisation des
données de manière générale. Elle aboutit sur la création du modèle
conceptuel des données (MCD) dans lequel les données sont
représentées sous forme d'entités liées entre elles par des relations.
• Une Entité est un élément du problème et elle est définie par un
ensemble de propriétés: chacune des propriétés est l'un des
éléments qui caractérise l'entité.
• Il faut distinguer une entité et une occurrence d'entité (ou instance).
• Une entité correspond au type général d'une donnée (ex : le type
« roche ») alors qu'une occurrence d'une entité est un représentant
particulier de cette entité (la roche magmatique).
Antoine Lumu 2020 36
18
15/10/2020
Construction de base de données :
Méthode Merise
• Après avoir fait une analyse aussi complète que possible du
problème à informatiser, la construction du MCD se fait en quatre
étapes :
Repérage des entités;
Construction des entités, choix des propriétés : On commence par
donner un nom à chacune des entités et il faut ensuite rechercher
les propriétés de ces entités;
Construction des relations;
Choix des cardinalités : une fois les relations établies, il convient
ensuite de caractériser le nombre de fois ou chacune de ces
relations peut apparaitre réellement. Ceci se fait à l'aide des
cardinalités ;
Antoine Lumu 2020 37
Construction de base de données :
Méthode Merise
• Après avoir fait une analyse aussi complète que
possible du problème à informatiser, la construction
du MCD se fait en quatre étapes :
Repérage des entités : Exemple :
Une société qui vend des produits de forage
(couronne, fluide de forage, tiges, trépan,…) veut
informatiser la gestion des commandes de ses
clients. Chaque commande d’un client peut
comporter plusieurs produits différents.
Antoine Lumu 2020 38
19
15/10/2020
Construction de base de
données : Méthode Merise
Repérage des entités : Exemple :
• Dans cet exercice, nous pouvons définir les entités
suivantes :
• Produits: un produit commercialisé par la société ;
• Clients: une personne qui achète des produits à la
société ;
• Commandes: une liste de produits commandés par
un client à la société.
Antoine Lumu 2020 39
Construction de base de
données : Méthode Merise
• Construction des entités
Après le repérage des entités, l’on doit donner un nom à
chacune des entités et ensuite rechercher les propriétés
(ou attributs) de ces entités.
Une propriété est une donnée élémentaire que l’on
perçoit sur une entité. Chacune des propriétés d’une
entité prend une valeur parmi une variété de valeurs
possibles (le domaine de l’attribut).
Une propriété peut être obligatoire ou facultative. On
devra garder à l’esprit les points suivants :
Antoine Lumu 2020 40
20
15/10/2020
Construction de base de
données : Méthode Merise
• Construction des entités
Toute propriété est élémentaire. Elle n’est pas la composition
d’éventuelles propriétés plus petites : plutôt qu’une propriété
unique « adresse », il est préférable d’avoir des propriétés rue,
code postal, ville, pays....
Une propriété ne doit pas être "instable" ou "calculable" : si une
propriété peut être obtenue par calcul à partir d’autres
éléments qui vont apparaître dans la base de donnée
(notamment d’autres propriétés), on ne doit pas la considérer : il
est inutile d’avoir une propriété montant de la commande si
celui-ci peut être calculé à partir d’autres propriétés.
Antoine Lumu 2020 41
Construction de base de données :
Méthode Merise
• Construction des entités
Toute entité doit posséder une propriété particulière appelée
sa clé (ou identifiant). Une clé doit caractériser de manière
unique chaque occurrence de l’entité. L’identifiant d’une
entité est une propriété de l’entité telle qu’à chaque valeur
de la propriété corresponde une et une seule occurrence de
l’entité.
Par exemple, le nom de famille d’une personne ne peut pas
être considéré comme une clé d’une entité "personne"
puisque deux personnes peuvent avoir le même nom de
famille.
Antoine Lumu 2020 42
21
15/10/2020
Construction de base de données :
Méthode Merise
• Construction des entités
Le numéro de sécurité sociale est par contre tout à fait
acceptable. Il vaut mieux éviter les identifiants trop longs (on
préférera un code de quelques chiffres à un intitulé d’une
vingtaine de lettres par exemples).
Une « bonne » clé ne doit pas comprendre un sous-ensemble
qui pourrait lui-même être une clé (notion de minimalité).
si aucune des propriétés "naturelles" ne peut servir de clé, on
en rajoute une artificiellement (par exemple "CodeProduit" ou
"IdClient").
Antoine Lumu 2020 43
Construction de base de données :
Méthode Merise
• Construction des entités
Une entité se représente ensuite graphiquement sous la forme
d’une boîte dans laquelle on indique en titre le nom de
l’entité suivi de toutes ses propriétés. On indique d’une
manière particulière l’identifiant.
Chaque propriété ne doit dépendre que d’une seule entité.
ENTITE
Identifiant
Propriété 1
Propriété 2
Antoine Lumu 2020 44
22
15/10/2020
Construction de base de données :
Méthode Merise
• Construction des entités
Dans l’exemple de la gestion des commandes de la
société, on peut construire les entités suivantes (les
propriétés sont indiquées après le nom de l’entité,
l’identifiant est en gras) :
Clients : IdClient, nom, prénom, rue, code postal, ville,
pays, tél, email....
Produits : CodeProduit, libellé, prixHT, quantité en stock...
Commandes : NumCommande, date, mode de
paiement.... Antoine Lumu 2020 45
Construction de base de données :
Méthode Merise
• Construction des entités
Il est également possible de transformer la propriété « ville »
de l’entité Clients, en une entité Villes dont l’identifiant
serait le code postal. On aurait dans ce cas quatre entités :
Clients : IdClient, nom, prénom, rue, code postal, pays, tél,
email....
Produits : CodeProduit, libellé, prixHT, quantité en stock...
Commandes : NumCommande, date, mode de paiement
Villes : CodePostal, Nom_ville
Antoine Lumu 2020 46
23
15/10/2020
Construction de base de données :
Méthode Merise
• Construction des relations
• Dans la description de la situation à informatiser les
relations correspondent souvent aux verbes.
• Une relation se représente de la manière suivante :
Entité A Entité B
Identifiant A Identifiant B
Propriété 1 Propriété 1
Relation
Propriété 2 Propriété 2
Antoine Lumu 2020 47
Construction de base de données :
Méthode Merise
• Construction des relations
On notera les points suivants :
Une relation est en général entre deux entités. Il est possible d’avoir
des relations entre plus que deux entités.
Par exemple, une relation Vente entre Acheteur, Vendeur et Lieu
pour une base de données de transactions immobilières. Il est
néanmoins souvent possible (et préférable!!!) de se restreindre à des
relations entre deux entités.
Dans le cas ici, la relation Vente pourrait être remplacée par une
entité Acte de vente qui est en relation avec l’acheteur, le vendeur
et le lieu. Il est tout à fait possible d’avoir plusieurs relations entre
deux entités.
Antoine Lumu 2020 48
24
15/10/2020
Construction de base de données :
Méthode Merise
• Construction des relations
• Il est également possible d’avoir une relation dite réflexif, c’est-à-dire
entre une entité et elle-même. Par exemple, on peut avoir une
relation Responsable entre une table employée et elle-même.
• Dans ce cas, il convient tout de même de remarquer que chacune
des "pattes" de la relation a une signification différente. Ici, l’une des
"pattes" signifiera est responsable de et l’autre signifiera a comme
responsable. A comme responsable …
EMPLOYES
IdEmployé
Responsable
Nom
Prénom Est responsable de …
Antoine Lumu 2020 49
Construction de base de données :
Méthode Merise
• Construction des relations
Une relation peut avoir des propriétés. Par exemple, si une relation
Comporte lie l’entité Commandes et l’entité Produit, elle possède
certainement la propriété "quantité" (une facture contient un produit
x en quantité y).
D’ailleurs, si une propriété dépend de plus d’une entité (comme
c’est le cas ici avec la quantité qui dépend à la fois de la facture et
du produit), c’est certainement qu’elle dépend d’une relation, et
non pas d’une entité.
Il faut éviter les relations que l’on peut déduire d’autres relations par
transitivité.
Antoine Lumu 2020 50
25
15/10/2020
Construction de base de données :
Méthode Merise
• Construction des relations
Par exemple, dans une base de données gérant une
université, si on dispose d’entités étudiant, formation et cours.
On a les relations fait partie entre formation et cours (un cours
fait partie d’une formation) et inscription entre étudiant et
formation.
Il est inutile d’avoir en plus une relation inscription entre
étudiant et cours : tout étudiant inscrit à une formation est
systématiquement inscrit à tous les cours qui composent la
formation.
Antoine Lumu 2020 51
Construction de base de
données : Méthode Merise
• Construction des relations
Dans l’exemple de la gestion des commandes de la société,
on a les relations suivantes. La relation « commande comporte
produits » a une propriété « quantité » qui correspond à la
quantité d’un produit qui a été commandé.
Antoine Lumu 2020 52
26
15/10/2020
Construction de base de données :
Méthode Merise
• Choix des cardinalités ou liens fonctionnels
• Une fois les relations établies, il convient ensuite de caractériser le nombre de
fois où chacune de ces relations peut apparaître réellement. Ceci se fait à
l’aide des cardinalités. Dans une relation classique (i.e. entre deux entités),
quatre cardinalités sont à déterminer.
les liens fonctionnels notés n : 1
• On a un lien fonctionnel n:1 de A vers B si toute occurrence de A détermine
au plus une occurrence de B, et si à toute occurrence de B, correspond un
nombre quelconque d’occurrences de A.
• Exemple : Dans une compagnie aérienne, connaissant le numéro d'un vol, on
en déduit d'une manière unique la destination, mais plusieurs vols peuvent
avoir la même destination.
Antoine Lumu 2020 53
Construction de base de
données : Méthode Merise
• Choix des cardinalités ou liens fonctionnels
• Les liens hiérarchiques notés 1 : n.
• On a un lien hiérarchique 1:n de A vers B si une occurrence de A
peut déterminer un nombre quelconque d’occurrences de B et si, à
une occurrence de B, correspond au plus une occurrence de A.
• Exemple : la polygamie est un lien 1 : n de "homme" vers "femme".
• les liens maillés notés n : m.
• On a un lien maillé de A vers B s'il n'existe aucune restriction sur le
nombre d'occurrences de A et B intervenant dans le lien.
Antoine Lumu 2020 54
27
15/10/2020
Construction de base de données :
Méthode Merise
• Choix des cardinalités ou liens fonctionnels
• Exemple : Dans une université donnée, un professeur peut dispenser des
cours dans plusieurs matières différentes; de la même façon, une matière
peut être dispensée par plusieurs Professeurs.
• min A est le nombre minimal de fois où une occurrence de l’entité A
participe à une relation du type considéré. Il s’agit en général de 0 ou 1.
• max A est le nombre maximal de fois où une occurrence de l’entité A
participe à la relation. Il s’agit en général de 1 ou n (n pour plusieurs fois,
ou un nombre quelconque de fois).
• min B et max B fonctionnent de la même manière, mais en considérant
l’entité B. Antoine Lumu 2020 55
Construction de base de données :
Méthode Merise
• Choix des cardinalités ou liens fonctionnels
• Notons qu’il est souvent difficile de choisir entre une cardinalité de type 0:n et une
cardinalité de type 1:n. Dans le premier cas, la participation à la relation est
facultative pour les occurrences de l’entité, alors qu’elle est obligatoire dans le
second cas : toute occurrence de l’entité participe à la relation. Il faut toutefois
souligner que ce choix a souvent peu d’importance.
• Pour illustrer la notion de cardinalité, prenons l’exemple d’une base de données
destinée à enregistrer les mariages entre les hommes et les femmes dans des
sociétés ayant des régimes matrimoniaux différents. Nous avons deux entités (les
hommes et les femmes) et une relation (« est marié à ») avec une propriété « date
du mariage ».
Antoine Lumu 2020 56
28
15/10/2020
Construction de base de données :
Méthode Merise
• Choix des cardinalités ou liens fonctionnels
• Les cardinalités minimales seront égales à 0 si l’on prend en compte tous les
hommes et toutes les femmes (y compris les célibataires) et à 1 si l’on ne prend en
compte que les hommes et les femmes mariés. Les cardinalités maximales seront
différentes selon le régime matrimonial en vigueur :
• 1 :dans une société interdisant la polygamie et la polyandrie
• Remarque : si seule la bigamie était autorisée, la cardinalité maximale pour l’entité
Hommes serait 2 (et non pas n).
Antoine Lumu 2020 57
Construction de base de données :
Méthode Merise
• Choix des cardinalités ou liens fonctionnels
• 2- dans une société autorisant la polygamie mais interdisant la polyandrie
• 3- dans une société autorisant la polyandrie mais interdisant la polygamie
Antoine Lumu 2020 58
29
15/10/2020
Construction de base de données :
Méthode Merise
• Choix des cardinalités ou liens fonctionnels
• 4. dans une société autorisant la polyandrie et la polygamie
• Autre exemple : la relation réflexive Responsable entre une table employés et elle -
même.
• Il faut distinguer le cas où un employé ne peut avoir qu’un seul supérieur
hiérarchique direct du cas où il peut en avoir plusieurs (par exemple le technicien
informatique du SRI (Service des Ressources Informatiques de l'Unilu) a deux
responsables hiérarchiques directs : le directeur du SRI et le directeur local de la
Coopération Universitaire de Développement CUD).
Antoine Lumu 2020 59
Construction de base de données :
Méthode Merise
• Choix des cardinalités ou liens fonctionnels
Le MCD complet est donc :
Antoine Lumu 2020 60
30
15/10/2020
Construction de base de données :
Méthode Merise
• Choix des cardinalités ou liens fonctionnels
• Cas particuliers et pièges
• Quelques points particuliers sont à garder à l’esprit lors de la réalisation d’un MCD.
• Un identifiant est obligatoire pour chaque entité.
• Il ne doit pas y avoir de redondance d’informations : une information quelconque
ne doit pas être représentée plus d’une fois dans le MCD.
• Évitez autant que possible les relations entre plus de deux entités. Souvent, il est
possible de remplacer la relation par une entité.
• Restez dans la mesure du possible avec des cardinalités de valeurs 0, 1 ou n. Il est
de toute manière souvent possible de se ramener à ce cas dans les rares cas où
des cardinalités d’un autre type semblent plus naturelles.
Antoine Lumu 2020 61
Construction de base de données :
Méthode Merise
• Choix des cardinalités ou liens fonctionnels
• Cas particuliers et pièges
• Dans l’idéal, il faut trouver un bon compromis entre niveau de détail et "taille" de
la base de données. Il est toujours possible de multiplier les entités, mais il vaut
mieux le faire que si cela a vraiment du sens et un intérêt dans le problème.
• Par exemple, si on a une entité personne, on peut considérer l’adresse comme une
entité séparée (reliée à personne par une relation "habite à") ou comme une
propriété de la personne (ce qui est fait usuellement).
• En règle générale, il est plus économique de définir l’adresse comme une
propriété, mais dans un cas où il est fréquent que des personnes habitent au
même endroit, la règle de non-redondance incite plutôt à utiliser une nouvelle
entité.
Antoine Lumu 2020 62
31
15/10/2020
Construction de base de données :
Méthode Merise
Le modèle logique de données, ou MLD montre l'organisation des
données sous forme de tables et est très proche de la manière dont
les données vont être effectivement organisées dans Access par
exemple. L'étape de transformation du MCD en MLD est assez
simple et passe par trois étapes :
• Transformation des entités en tables (sans modification);
• Transformation des relations en liens en fonction des cardinalités ;
• Suppression des tables inutiles: il s'agit essentiellement des tables à
un seul champ (leur clé) ;
Antoine Lumu 2020 63
I. Bases de données relationnelles
Modèle logique de données : MLD
les entités sont transformées en tables (sans modification);
les relations sont transformées en lien en fonction de leurs cardinalités:
pour une relation de type 1:1 entre une entité A et une entité B se traduit par
une importation de la clé primaire de l'entité B dans la table de A, et on ajoute
un lien entre les deux clés;
une relation autre (sans 1:1 se transforme en table dans laquelle on retrouve
les clés primaires de A et B.
les tables inutiles sont supprimées : il s'agit essentiellement des tables à un seul
champ (leur clé).
Antoine Lumu 2020 64
32
15/10/2020
I. Bases de données relationnelles
Modèle logique de données : MLD
Entités transformées en tables :
Cette transformation est directe : il suffit de recopier les entités. Il s’agit
essentiellement d’un changement de vocabulaire :
une entité : table;
une propriété : champ;
un identifiant : clé primaire;
une occurrence d’une entité : enregistrement de la table.
A noter toutefois qu’il est essentiel qu’il n’y ait pas deux tables qui aient le
même nom.
Antoine Lumu 2020 65
I. Bases de données relationnelles
Modèle logique de données : MLD : Transformation des relations du MCD en liens du MLD.
Deux grands cas peuvent se présenter :
le cas où l’une des branches de la relation a une cardinalité maximale de 1 (1:1 ou 0:1) ,
la transformation de la relation se fait de la manière suivante :
On ramène dans la table correspondant à l’entité "du côté du 1:1" (ou du 0:1) la clé
primaire de l’autre table ainsi que toutes les éventuelles propriétés de la relations;
On lie la clé primaire ainsi importée avec la clé primaire de la deuxième table;
Si la relation contenait des propriétés, celle-ci se retrouve également importées du côté
du 1:1.
Antoine Lumu 2020 66
33
15/10/2020
I. Bases de données relationnelles
Modèle logique de données : MLD : Transformation des relations
du MCD en liens du MLD.
A noter que la clé importée (ici Identifiant B qui se retrouve
dans table A) ne devient pas une clé de la table : c’est une
propriété comme une autre. Notons aussi que le lien se fait
entre champs (on relie IdentifiantA à IdentifiantB) et non pas,
comme dans le MCD, entre les tables.
Antoine Lumu 2020 67
I. Bases de données relationnelles
Modèle logique de données : MLD : Transformation des relations du
MCD en liens du MLD.
le cas où les deux branches de la relation ont une cardinalité maximale de n (1:n ou
0:n) : On crée une nouvelle table correspondant à la relation. Cette table contient toutes
les éventuelles propriétés de la relation.
On intègre à cette table les clés primaires des entités impliquées dans la relation;
On relie les clés primaires des tables avec les clés importées dans la nouvelle table;
On choisit enfin la ou les clés primaires de la nouvelle table. L’idée générale est que
chaque occurrence de cette entité doit pouvoir être identifiée de manière unique par ses
clés primaires. Cela revient en général à choisir comme clé primaire l’ensemble des
clés importées des autres tables.
Antoine Lumu 2020 68
34
15/10/2020
I. Bases de données relationnelles
Modèle logique de données : MLD : suppression de tables inutiles
supprimer simplement les tables inutiles : en général (mais pas
toujours), une table qui ne contient qu’un seul champ (sa clé) est
inutile : elle ne nous apporte aucune information.
Antoine Lumu 2020 69
I. Bases de données relationnelles
Modèle physique : Construction d’une base de données sous le SGBD
Access
Etape finale de la méthode Merise consiste à concevoir le Modèle
physique de nos données. Il s'agit ni plus ni moins que d'intégrer le MLD
au sein du SGBD (Access).
Cette opération comprend trois phases essentielles:
Création de la base de données : il s'agit simplement d'ouvrir Access et
de choisir Nouvelle base de données;
Antoine Lumu 2020 70
35
15/10/2020
I. Bases de données relationnelles
Modèle physique : Construction d’une base de données sous le SGBD
Access
Création des tables : toutes les tables du MLD doivent être créées. Les données
peuvent éventuellement provenir d'un logiciel extérieur (feuille Excel, document
textuel...). Il faut également spécifier le type de donnée que doit contenir chaque
champ de la table et préciser quelle est la ou les clé(s) de la table;
Création des liens : tous les liens qui apparaissent dans le MLD doivent
apparaitre dans la base de données.
Antoine Lumu 2020 71
I. Bases de données relationnelles
Modèle physique : le SGBD Access
Ce logiciel permet une conception aisée de bases de données de petite taille avec un nombre
restreint d'utilisateurs.
Access est basé sur le modèle relationnel et fonctionnent sur le même principe général (comme
les autres SGBD):
les informations sont stockées dans des tables qui sont reliées entre elles par des relations;
L'interrogation de la base de données se fait à l'aide de requêtes écrites à l'aide d'un
langage : le SQL (Structured Query Language).
Access a comme avantage par rapport à la plupart de ses concurrents:
de permettre une écriture en mode graphique des tables, de leurs relations et de la plupart
des requêtes.
Antoine Lumu 2020 72
36
15/10/2020
I. Bases de données relationnelles
Modèle physique : le SGBD Access
L’interface graphique du SGBD Access:
Tables, pour stocker les données ;
Requêtes, pour retrouver les données ;
Formulaires, pour saisir les données ou les visualiser à l'écran ;
Etats, pour imprimer les données ;
Pages, pour communiquer avec la BDD via un navigateur (Internet Explorer
uniquement) ;
Macros, pour automatiser des opérations répétitives effectuées sur la base ;
Modules, pour rajouter des fonctionnalités grâce à de la programmation en VBA
(Visual Basic for Applications).
Antoine Lumu 2020 73
I. Bases de données relationnelles
Modèle physique :
le SGBD Access
Antoine Lumu 2020 74
37
15/10/2020
I. Bases de données relationnelles : création d’une base de données sous
Access
Antoine Lumu 2020 75
I. Bases de données relationnelles : création d’une base de données sous
Access
Antoine Lumu 2020 76
38
15/10/2020
I. Bases de données relationnelles : création d’une base de données sous
Access
Antoine Lumu 2020 77
I. Bases de données relationnelles
Modèle physique : Création de tables sous le SGBD Access
Deux principales méthodes pour créer une table dans Access:
Soit la table est créée directement dans Access (avec ou sans
aide);
Soit elle provient d'un logiciel extérieur (importation de la table).
Quels sont les types de données d’une table?
Antoine Lumu 2020 78
39
15/10/2020
I. Bases de données relationnelles
Création de tables sous le SGBD Access : type de données
Type Propriétés Taille
Texte Ce champ peut contenir n'importe quel caractère < 256
caractères
alphanumérique (chiffre, lettre, signe de ponctuation). Ce
type de données est utilisé pour le texte, mais aussi pour
les nombres sur lesquels on n'effectue pas de calculs
(code postal, numéro de téléphone
Numérique Données numériques (non monétaires) susceptibles 1 à 16 octets
d'être utilisées dans des opérations mathématiques
Date/Heure Données de date et/ou d'heure (pour les années 8 octets
comprises entre 100 et 9999)
Antoine Lumu 2020 79
I. Bases de données relationnelles
Création de tables sous le SGBD Access : type de données
Type Propriétés Taille
Monétaire Données monétaires, présentées avec deux chiffres 8 octets
après la virgule, et le symbole monétaire du pays (€ pour
la France)
NuméroAuto Numérotation automatique, séquentielle (commençant à 4 octets (entier long)
1) ou aléatoire. Souvent utilisée pour générer le code des
enregistrements
Oui/Non Variable booléenne (deux valeurs possibles uniquement) 1 bit
Antoine Lumu 2020 80
40
15/10/2020
I. Bases de données relationnelles
Création de tables sous le SGBD Access : type de données
Type Propriétés Taille
Objet OLE Pour lier un objet extérieur, ou incorporer un objet < 1 Go
dans la base. Souvent utilisé pour les données
multimédia. Peut servir pour tout fichier binaire
(document Word, feuille de calcul Excel, etc.)
Mémo Le champ peut contenir n'importe quel caractère < 65.536 caractères
alphanumérique. Le type mémo est réservé aux
champs de type texte susceptibles de contenir plus de
255 caractères
Lien Permet d'enregistrer des URL de sites web et des < 2049 caractères
hypertexte
adresses de courrier électronique
Antoine Lumu 2020 81
I. Bases de données relationnelles
Création de tables sous le SGBD Access : type de données
Antoine Lumu 2020 82
41
15/10/2020
I. Bases de données relationnelles
Création de tables sous le SGBD Access : propriétés de champs
Taille du champ ;
Format : définit la manière dont les informations s'affichent. Exemple : le format monétaire
affiche deux chiffres après la virgule, puis un espace et le symbole de l'euro ;
Masque de saisie : guide la saisie des données et exerce un contrôle: le code postal français
est composé de cinq chiffres ;
Légende : définit le nom de l'étiquette dans le formulaire associé à la table. Il est préférable
d'implémenter cette propriété au niveau du formulaire lui-même ; d'implémenter cette
propriété au niveau du formulaire lui-même ;
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 ;
Antoine Lumu 2020 83
I. Bases de données relationnelles
Création de tables sous le SGBD Access : propriétés de champs
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 : un octet suffit pour saisir un caractère (pour les
alphabets utilisés dans l'Europe de l'ouest et dans le monde anglophone).
Antoine Lumu 2020 84
42
15/10/2020
I. Bases de données relationnelles
Création de tables sous le SGBD Access : propriétés de champs
Antoine Lumu 2020 85
I. Bases de données relationnelles
Création et suppression de tables sous le SGBD Access : sous SQL
Création de table : clause CREATE TABLE
Syntaxe:
CREATE TABLE NOM_TABLE (CHAMP1 TYPE DONNEES [NOTNULL],
CHAMP2 TYPE DONNEES [NOT NULL], CHAMP3 TYPE DONNEES [NOT
NULL], CHAMP4 TYPE DONNEES [NOT NULL], CHAMP5 TYPE DONNEES
[NOT NULL]);
Exemple :
CREATE TABLE Sondages (DH_ID CHAR (15), Azimuth INTEGER (15);
Antoine Lumu 2020 86
43
15/10/2020
I. Bases de données relationnelles
Création et suppression de tables sous le SGBD Access : sous SQL
Suppression de table : clause DROPTABLE
Syntaxe:
DROP TABLE Sondages;
La table sondages est supprimée.
Pour modifier une table existante, en ajoutant une colonne ou en
supprimant une colonne existante, on utilise la commande suivante :
ALTER TABLE Sondages ADD Drill DATE;
ALTER TABLESondages ADD COLUMN DRILL DATE;
Antoine Lumu 2020 87
I. Bases de données relationnelles
Création et suppression de tables sous le SGBD Access : sous SQL
Pour supprimer la colonne que nous venons de créer, nous utilisons la commande
suivante :
ALTER TABLE Sondages DROP DRILL
Pour empêcher un champ de rester vide, nous utilisons la clause NOT NULL :
CREATE TABLE Sondages (DH_ID CHAR(15) NOT NULL, Azimuth CREATE TABLE
Sondages (DH_ID CHAR(15) NOT NULL, Azimuth INTEGER(15) ;
Pour qu'un champ soit indexé sans doublons, nous utilisons la clause UNIQUE:
CREATE TABLE Sondages (DH_ID CHAR (15) UNIQUE, Azimuth INTEGER (15);
Antoine Lumu 2020 88
44
15/10/2020
I. Bases de données relationnelles
Création et suppression de tables sous le SGBD Access : sous SQL
Pour poser une clé primaire sur un champ, nous utilisons la clause
PRIMARY KEY:
CREATE TABLE Sondages (DH_ID CHAR (15) PRIMARY KEY, Azimuth
INTEGER (15);
Pour appliquer la clé à deux champs, nous utilisons la syntaxe suivante :
CREATE TABLE Sondages (DH_ID CHAR (15), Azimuth INTEGER (15),
CONSTRAINT essai_index PRIMARY KEY (DH_ID, Azimuth)
Antoine Lumu 2020 89
I. Bases de données relationnelles
Création des index
Un index est un ensemble de pointeurs vers les données d’une table.
Avantages :
il accélère les recherches d'information. En effet, l'index est une
représentation de la table, triée sur un champ donné. On peut donc lui
appliquer les méthodes connues de recherche rapide sur un ensemble
ordonné (c'est le SGBD qui se charge de l'opération, laquelle est transparente
pour l'opérateur) ;
il est de taille très inférieure à celle de la table : on peut le remettre à jour en
temps réel à chaque modification de cette dernière ;
il peut servir à empêcher l'opérateur de créer des enregistrements dupliquées
en saisissant deux fois, par erreur, les mêmes données.
Antoine Lumu 2020 90
45
15/10/2020
I. Bases de données relationnelles
Création des index
Inconvénients :
chaque fois que nous demandons au système de créer (et de maintenir) un
index, nous augmentons sa charge de travail, et par conséquent nous le
freinons. Ainsi, les opérations de saisie et de maintenance sont ralenties par la
présence d'index, car ces derniers doivent être mis à jour immédiatement ;
un index occupe de la place en mémoire sur le disque. En fait, ce dernier
argument a beaucoup perdu de sa valeur avec le temps, parce que la mémoire
de masse des ordinateurs ne cesse de croître rapidement, et qu'elle est
devenue si bon marché (son coût à l'octet est divisé par deux tous les deux ans
environ) qu'on la gaspille allégrement.
Antoine Lumu 2020 91
I. Bases de données relationnelles
Création des index
Pour créer un index multichamps, il faut se trouver en mode création de la table,
et cliquer sur l'icône
dans la colonne de gauche, on donne un nom à l'index multi-champ ;
dans la colonne médiane, on écrit les uns sous les autres les noms des champs
constitutifs de l'index ; constitutifs de l'index ;
dans la colonne de droite, on précise l'ordre de tri. Par défaut, on conserve
"Croissant" ;
on clique sur le nom de l'index puis, dans la moitié inférieure de la boîte,
intitulée "Propriétés de l'index", on fixe à "Oui" la propriété "Unique" si l'on
désire interdire les doublons.
Antoine Lumu 2020 92
46
15/10/2020
I. Bases de données relationnelles
Création des index
Antoine Lumu 2020 93
I. Bases de données relationnelles
Création des index
Antoine Lumu 2020 94
47
15/10/2020
I. Bases de données relationnelles
Création des index
Antoine Lumu 2020 95
I. Bases de données relationnelles
Création des index en SQL
Syntaxe de l’instruction CREATE INDEX
CREATE INDEX NOM_INDEX ON NOM_TABLE
Sur une colonne : CREATE INDEX NOM_INDEX ON NOM_TABLE
(NOM_COLONNE)
Index unique: CREATE UNIQUE INDEX NOM_INDEX ON
NOM_TABLE (NOM_COLONNE)
Index composés: CREATE INDEX NOM_INDEX ON NOM_TABLE
(COLONNE1, COLONNE2)
Antoine Lumu 2020 96
48
15/10/2020
I. Bases de données relationnelles
Création des index : Quand éviter les index ?
N’indexez pas les tables de petite taille;
N’indexez pas les colonnes qui retournent un pourcentage élevé
de lignes de données lorsqu’elles sont exploitées comme
condition de filtrage dans la clause WHERE d’une requête;
N’indexez pas les colonnes contenant un grand nombre de
valeurs NULL;
N’indexez pas les colonnes dont vous modifiez souvent les
entrées.
Antoine Lumu 2020 97
I. Bases de données relationnelles : Les requêtes
Les requêtes servent à afficher uniquement certaines données contenues
dans les tables selon certains critères.
Elles peuvent aussi :
faire des calculs sur vos données;
créer des sources de données pour les formulaires, les états ou même
d'autres requêtes (on peut faire une requête sur le résultat d'une autre
requête);
modifier des tables existantes ou à en créer des nouvelles.
Antoine Lumu 2020 98
49
15/10/2020
I. Bases de données relationnelles : Les requêtes
Types de requêtes:
La requête sélection : permet de sélectionner des enregistrements, 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 : présente ses résultats sous forme de tableau (de type Excel).
Utilisée pour comparer des valeurs, dégager des tendances;
La requête de Création de table crée une table à partir des données qu'elle a extraites dans une
ou plusieurs autres tables;
La requête Mise à Jour: 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;
Antoine Lumu 2020 99
I. Bases de données relationnelles : Les requêtes
Types de requête:
La requête Ajout : ajoute les données qu'elle a extraites à la fin d'une
table déjà existante;
La requête Suppression : supprime un ou plusieurs enregistrements
dans une ou plusieurs tables.
La requête SQL direct;
La requête de définition de données ;
La requête UNION : combine les résultats de deux ou plusieurs
requêtes ou tables indépendantes.
Antoine Lumu 2020 100
50
15/10/2020
I. Bases de données relationnelles : Les requêtes
Création de requêtes
Access nous propose 5 façons de créer une requête :
Mode création: nous allons créer la requête de A à Z par nous-mêmes ;
Assistant de Requête simple : crée une requête simple sur une ou plusieurs tables,
on pourra, dans cette requête simple, faire des calculs, des regroupements ;
Assistant de Requête d'analyse croisée : aide à la création d'une requête d'analyse
croisée ;
Assistant de Requête trouver les doublons : Localise les enregistrements doublons
dans une table ou une requête ;
Assistant de Requête de non - correspondance : localise les enregistrements d'une
table auxquels ne correspond aucun autre enregistrement d'une autre table.
Antoine Lumu 2020 101
I. Bases de données relationnelles : Les requêtes
Types de requête
Antoine Lumu 2020 102
51
15/10/2020
I. Bases de données relationnelles : Les requêtes
Requête en mode
création
Antoine Lumu 2020 103
I. Bases de données relationnelles : Les requêtes
Dans la partie supérieure de la fenêtre
se trouvent la ou les tables avec la listes
de leur champs, c'est sur ces tables que
vont porter les requêtes.
Dans la partie inférieure, se trouve la
description de la requête.
Antoine Lumu 2020 104
52
15/10/2020
I. Bases de données relationnelles : Les requêtes
Pour ajouter un champ, on peut:
soit le sélectionner dans la table et l'amener avec la souris sur une colonne;
soit on clique sur la ligne "Champ", la liste de tous les champs s'affiche alors et on en
sélectionne un dans la liste.
Un des champs proposé s’appelle '*', ce champ signifie "tous les champs de la table", si
on choisi ce champ, tous les champs de la table apparaitront dans le résultat de la
requête, en plus des autres champs que vous aurez choisis.
Antoine Lumu 2020 105
I. Bases de données relationnelles : Les requêtes
Création de requêtes
La ligne "Table" sert à sélectionner la table à laquelle appartient le
champ sélectionné;
La colonne "Tri" indique de quelle façon vont être triés les champs dans
le résultat de la requête : il y a trois sortes de tri : Croissant (de A à Z),
Décroissant (de Z à A) et non trié.
La colonne "Afficher" indique si le champ doit être affiché ou non ;
La colonne "Critères " va indiquer le critère de la requête.
Antoine Lumu 2020 106
53
15/10/2020
I. Bases de données relationnelles : Les requêtes
Exécuter la requête
Antoine Lumu 2020 107
I. Bases de données relationnelles : Les requêtes
Création de requêtes
Le résultat de la requête s'affiche sous la forme d'une table que
l'on peut modifier comme si il s'agissait d'une table normale, on
peut ajouter des enregistrements, les modifier, faire des filtres,
des tris, etc.
Antoine Lumu 2020 108
54
15/10/2020
I. Bases de données relationnelles : Les requêtes
Antoine Lumu 2020 109
I. Bases de données relationnelles : Les requêtes
Création de requêtes
Les résultats des requêtes, même s’ils sont présentés sous forme de
tables ne sont pas de véritables tables qu’aurait généré la requête.
Ils ne sont qu'une "vue" faite à partir des tables qui ont servi à faire
la requête.
Autrement dit, si vous modifiez quelque chose dans le résultat de la
requête, la modification se répercutera dans la table qui a servi à
faire la requête.
Antoine Lumu 2020 110
55
15/10/2020
I. Bases de données relationnelles : Les requêtes
Type de requêtes : 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.
Entête Qui Qui
Quoi Combien Combien
Quoi Combien Combien
Antoine Lumu 2020 111
I. Bases de données relationnelles : Les requêtes
Type de requêtes : Analyse croisée
D'abord on crée une requête standard (de sélection) ;
On transforme la requête de sélection en requête d'analyse croisée en allant
dans le menu "Requête" et en choisissant « Analyse croisée » ;
Une nouvelle ligne apparaît dans la requête : la ligne « Analyse » ;
Dans cette ligne, on va indiquer si le champ qu'on a choisi va être l'entête des
colonnes, l'entête des lignes ou la valeur contenue dans les cases du tableau;
L'Opération pour les entêtes est toujours « Regroupement » ;
L'Opération pour les valeurs des cases dépend de ce qu'on cherche (i.e.:
Somme ).
Antoine Lumu 2020 112
56
15/10/2020
I. Bases de données relationnelles : Les requêtes
Antoine Lumu 2020 113
I. Bases de données relationnelles : Les requêtes
Type de requêtes : Analyse croisée
D'abord on crée une requête standard (de sélection) ;
On transforme la requête de sélection en requête d'analyse croisée en allant
dans le menu "Requête" et en choisissant « Analyse croisée » ;
Une nouvelle ligne apparaît dans la requête : la ligne « Analyse » ;
Dans cette ligne, on va indiquer si le champ qu'on a choisi va être l'entête des
colonnes, l'entête des lignes ou la valeur contenue dans les cases du tableau;
L'Opération pour les entêtes est toujours « Regroupement » ;
L'Opération pour les valeurs des cases dépend de ce qu'on cherche (i.e.:
Somme ).
Antoine Lumu 2020 114
57
15/10/2020
I. Bases de données relationnelles : Les requêtes
Type 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 ;
Ajout 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 ;
Antoine Lumu 2020 115
I. Bases de données relationnelles : Les requêtes
Type de requêtes : requêtes création
Elle crée une table à partir des résultats qu'elle produit à partir
d'une table existante.
Créer la requête normalement (de sélection);
On la transforme en requête Création (Menu Requête / Requête Création de table) ;
Access nous demande le nom de la table à créer ;
Exécutez la requête avec l 'icône point d'exclamation : la table va être créée avec le résultat de la requête
;
Si vous vous voulez vérifier avant de créer la table quel sera le résultat de la requête, cliquez sur l'icône:
Une fois que le résultat sera conforme à vos attentes, vous pourrez cliquer sur l'icône point
d'exclamation.
Antoine Lumu 2020 116
58
15/10/2020
I. Bases de données relationnelles : Les requêtes
Antoine Lumu 2020 117
I. Bases de données relationnelles : Les requêtes
Type de requêtes : requêtes d’ajout
Elle copie tout ou partie des enregistrements d'une table (la table
source) à la fin d'une autre table (la table cible).
Création de la requête normale (de sélection);
On la transforme en requête Ajout (Menu Requête / Requête Ajout)
Access nous demande le nom de la table à laquelle il faut ajouter le résultat de
la requête ;
Comme précédemment, avec les icônes Affichage et point d'exclamation, vérifiez
et validez votre requête.
Antoine Lumu 2020 118
59
15/10/2020
I. Bases de données relationnelles : Les requêtes
Antoine Lumu 2020 119
I. Bases de données relationnelles : Les requêtes
Type de requêtes : requêtes d’ajout
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
*). Antoine Lumu 2020 120
60
15/10/2020
I. Bases de données relationnelles : Les requêtes
Type de requêtes : requêtes de mise à jour
Les requêtes mise à jour permettent de modifier rapidement tous
les enregistrements d'une table ou un groupe d'entre eux.
On crée une requête de sélection, et dans le menu Requête, on
clique sur « Requête Mise à Jour » ;
Un champ "Mise à jour" apparaît dans la requête, c'est là qu'on
va indiquer la modification qui va avoir lieu.
Antoine Lumu 2020 121
I. Bases de données relationnelles : Les requêtes
Antoine Lumu 2020 122
61
15/10/2020
I. Bases de données relationnelles : Les requêtes
Type de requêtes : requêtes de suppression
Les requêtes suppression vous permettent de supprimer un groupe
d'enregistrements qui répondent à un critère donné.
On crée une requête standard, puis dans le menu Requête, on clique sur
Requête Suppression;
On exécute la requête ou on vérifie avant que le résultat est conforme à ce
que l'on attend.
Attention:
Vérifiez bien le résultat avant d'exécuter la requête, il n'est pas possible de
revenir en arrière après avoir effacé des enregistrements.
Antoine Lumu 2020 123
I. Bases de données relationnelles : Les requêtes
Antoine Lumu 2020 124
62
15/10/2020
I. Bases de données relationnelles : Les requêtes
Type de requêtes : requêtes multitables
Il est possible de faire des requêtes qui portent sur plusieurs tables
simultanément. Dans ce cas, les requêtes peuvent être très complexes;
Toutes les tables intervenant dans la requêtes doivent être reliées entre elles, il
ne doit pas y avoir de tables isolées, sinon, Access va essayer de trouver lui -
même les relations entre ces tables isolées et parfois le résultat peut être
erroné;
Il ne doit pas y avoir de tables n'ayant rien à faire dans la requête, sinon, Access
va se baser sur les relations entre ces tables n'ayant rien à voir avec la
choucroute et celles ayant à voir et va donner des résultats erronés.
Antoine Lumu 2020 125
I. Bases de données relationnelles : Les requêtes
Type de requêtes : Définition des critères de sélection
On peut utiliser dans les requêtes les opérateurs suivants :
Antoine Lumu 2020 126
63
15/10/2020
I. Bases de données relationnelles : Les requêtes
Type de requêtes : Définition des critères de sélection
Access met à notre disposition d'autres opérateurs :
Antoine Lumu 2020 127
I. Bases de données relationnelles : Les requêtes
Type de requêtes : Définition des critères de sélection
Les fonctions :
On peut intégrer des fonctions dans les critères de sélection.
Access met à notre disposition un très grand nombre de fonctions (pour en avoir la liste
complète, consultez l'aide intégrée à Access). Ce sont les mêmes fonctions que celles
qui sont utilisé s dans les contrôles des formulaires (et d’ailleurs dans tous les logiciels
de la gamme Microsoft Office) .
Notes:
On peut avoir plusieurs critères de sélection, ces critères étant séparés entre eux par des
OU ou des ET.
Si deux critères sont séparés par des ET, on les place sur la même ligne;
Si deux critères sont s éparés par desAntoine
OU, Lumu
on les place sur des lignes différentes.
2020 128
64
15/10/2020
I. Bases de données relationnelles : Les requêtes
Type de requêtes : Requête paramétrée
Les critères de chaque requête que nous avons fait étaient indiqués explicitement dans la
requête.
Supposons maintenant que nous voulions faire une requête du type : « On cherche les
essais géomécaniques qui ont été fait sur tel type de roche ».
On ne connaît pas par avance le nom de la roche, et on ne va pas préparer autant de
requêtes qu'il peut y avoir de roches, la solution la plus simple est alors de demander à
l'utilisateur d'entrer le nom de la roche, et de faire la requête en fonction de ce qu'il a
entré.
Antoine Lumu 2020 129
I. Bases de données relationnelles : Les requêtes
Antoine Lumu 2020 130
65
15/10/2020
I. Bases de données relationnelles : Les requêtes
Antoine Lumu 2020 131
66