Vous êtes sur la page 1sur 106

INFORMATIQUE DE GESTION

Systmes dInformations
Bases de donnes

2me anne 2012/2013


Systme d'information (SI)
2

Un systme d'information (SI) est un ensemble organisaient de


ressources (matriels, logiciels, personnel, donnes et
procdures) qui permet de regrouper, de classifier, de traiter
et de diffuser de l'information sur un environnement donn.
L'utilisation de moyens informatiques, lectroniques et la
tlcommunication permettent d'automatiser et de
dmatrialiser les oprations telles que les procdures
d'entreprise surtout en matire logistique. Ils sont aujourd'hui
largement utiliss en lieu et place des moyens classiques tels
que les formulaires sur papier et le tlphone et cette
transformation est l'origine de la notion de systme
dinformation.
Document Microsoft
Word
Introduction
3

Le systme d'information est le vhicule de la communication


dans l'organisation. Sa structure est constitue de l'ensemble
des ressources (les hommes, le matriel, les logiciels)
organises pour : collecter, stocker, traiter et communiquer les
informations. Le systme d'information coordonne grce
l'information les activits de l'organisation et lui permet ainsi
d'atteindre ses objectifs.
Cette quantit d'informations (donnes) stocke dans un
ordinateur s'appelle une base de donnes.
Un logiciel permettant d'utiliser ces donnes est un systme de
gestion de base de donnes (SGBD).
Document Microsoft
Word
Introduction
SGBD:
4

Diffrents logiciels existent;


Un tableur (Excel) peut tre considr comme un SGBD.
Nous allons utiliser dans notre cours le logiciel Access
comme SGBD; Ce logiciel permet une conception aise
de bases de donnes de "petite" taille avec un nombre
restreint d'utilisateurs.
Il est noter que plusieurs autres SGBD plus
performants (mais galement plus complexes) existent
par ailleurs. On peut citer notamment Oracle, SQL
Server, Paradox, MySQL, PostgreSQL parmi beaucoup
d'autres.
Feuille de calcul
Microsoft Excel
Introduction
SGBD:
5

La plupart de ces systmes sont bass (dont Access)


sur le modle relationnel et fonctionnent sur les
mme principes;
Les informations sont stockes dans des tables qui
sont relies entre elles par des relations.
L'interrogation de la base de donnes se fait
l'aide de requtes, ces requtes tant crites
l'aide d'un langage commun la plupart des SGBD:
le SQL (Structured Query Language).
Introduction
SGBD:
6

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 requtes.
De plus, il intgre un systme de cration
d'applications claires et simples pour chaque base
de donnes.
Application
Microsoft Office Access
Plan du cours
7

Ce cours est compos de six parties :


Cette introduction,
Une partie consacre la mthode Merise, qui indique
comment concevoir une base de donnes,
Une partie consacre la cration de la base de
donnes dans le logiciel Access,
Une partie consacre aux diffrents types de requtes,
Et une dernire partie consacre la finalisation de la
base de donnes (notamment conception des
formulaires, des tats et des menus) qui permet d'avoir
un produit fini, utilisable par un utilisateur n'ayant pas de
connaissances particulire sur les SGBD,
I. Mthode Merise
Principes gnraux:
8

La mthode Merise a t cre en France dans les


annes 1970. Mthode dEtude et de Ralisation Informatique pour les
Systmes dEntreprises.

Cette mthode utilise le systme dit d'entits-


relations.
Un outil et une technique d'analyse permettant de
construire des schmas thoriques de
raisonnement sur des applications tournant avec
des bases de donnes dite relationnelles (comme
celles d'Access).
I. Mthode Merise
Principes gnraux:
9

A noter que nous ne prsenterons ici qu'une partie


de la mthode Merise, puisque la mthode Merise
gnrale traite de l'intgralit de la conception de
la base de donnes :
Elle ne s'intresse pas uniquement de la partie
correspondant au stockage des donnes, mais
galement leur traitement.
Merisecycle dabstraction

Systme dinformation
manuel
Recueil des informations
Dlimiter le systme.
Expression des Besoins

Construire les MCD et MCT


Modle Conceptuel

Construire les MOD et MOT


Modle Organisationnel

Construire (entre autres) les MLD,MPD


Modle Oprationnel

Systme dinformation
automatique 10
I. Mthode Merise
Les quartes phases de la mthode Merise:
11

1. La phase d'analyse :
Cette phase, qui ne sera pas tudi dans ce cours, est
une phase essentielle qui consiste :
tudier l'existant :
y-a-t'il un systme qui gre dj 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 stockes?
Quelles sont les informations stockes ?
Que manque t-il ?
Qu'est ce qui convient ou ne convient pas aux utilisateurs?
I. Mthode Merise
Les quartes phases de la mthode Merise:
12

Interroger les futurs utilisateurs :


Qu'attendent-ils du futur SGBD ?
Quelles sont les oprations qu'ils dsirent
automatiser ?
Recueillir les informations existantes, tudier les
divers liens qui peuvent exister entre ces
informations, mettre en vidence les rgles de
gestion employes, ...
I. Mthode Merise
Les quatres phases de la mthode Merise:
13

2. La phase conceptuelle :
Elle consiste reprsenter l'organisation des
donnes de manire gnrale.
Elle aboutit sur la cration du modle conceptuel
des donnes (MCD) dans lequel les donnes sont
reprsentes sous forme d'entits lies entre elles
par des relations.
I. Mthode Merise
Les quartes phases de la mthode Merise:
14
I. Mthode Merise
Les quartes phases de la mthode Merise:
15

3. La phase logique ou organisationnelle :


Dans cette phase, la base de donnes sont
reprsentes sous une forme logique plus proche
de leur reprsentation relle au sein du SGBD :
Les informations sont reprsentes uniquement sous
forme de tables au sein d'un modle logique des
donnes (MLD).
I. Mthode Merise
Les quartes phases de la mthode Merise:
16
I. Mthode Merise
Les quartes phases de la mthode Merise:
17

4. La phase physique ou oprationnelle :


Elle consiste construire rellement la base de
donnes au sein du SGBD (ici Access).
Cette partie ne sera pas dcrite dans cette
section, mais dans les suivantes.
I. Mthode Merise
A retenir :
18

Les quatre phases de la mthode Merise :


Analyse (tude de l'existant et enqute),
Conceptuel (cration du MCD),
Logique (cration du MLD),
Physique (conception de la base de donnes dans
Access).
I. Mthode Merise
19

Modle Conceptuel de donnes


Aprs la phase d'analyse, nous pouvons commencer
reprsenter les informations sous forme
conceptuelle.
Le Modle Conceptuel de Donnes (MCD) que nous
allons construire contient deux lments principaux :
les entits et les relations.
I. Mthode Merise
Modle Conceptuel de donnes
20

Une entit est un lment du problme.


Elle est dfinie par un ensemble de proprits.
Chacune des proprits est l'un des lments qui
caractrise l'entit.
Il faut distinguer une entit et une occurrence
d'entit (ou instance).
Une entit correspond au type gnral d'une
donne (ex : le type "employ") alors qu'une
occurrence d'une entit est un reprsentant
particulier de cette entit (l'employ "Jean Martin").
I. Mthode Merise
Modle Conceptuel de donnes
21

Une relation est un lien possible qui relie deux


entits.
Par exemple, si un employ peut tre affect un
entrept, il y aura une relation "affectation" entre
l'entit "entrept" et l'entit "employ". Cela ne
signifie pas ncessairement qu'il y aura affectation
pour chacun des employ, juste qu'il est possible
qu'un employ soit affect un entrept.
Une relation peut ventuellement tre relie plus
de deux entits et peut avoir certaines proprits.
I. Mthode Merise
Modle Conceptuel de donnes
22

Aprs avoir fait une analyse aussi complte que


possible du problme informatiser, la
construction du MCD se fait en quatre tapes :
a. Reprage des entits,
b. Construction des entits, choix des proprits,
c. Construction des relations,
d. Choix des cardinalits.
I. Mthode Merise
La construction du MCD
23

a. Reprage des entits:


Une entit est un composant du problme : une
personne, une facture, un livre, ...
C'est la reprsentation d'un objet matriel ou
immatriel pourvu d'une existence propre et
conforme aux choix de gestion de l'entreprise.
I. Mthode Merise
La construction du MCD
24

Comme dit plus haut, ce que l'on considre comme


entit est un type gnral (ex : l'entit personne
reprsente toutes les personnes) ne pas
confondre avec une occurrence d'entit (Jean
Martin tant une personne, on le considre comme
une occurrence de l'entit personne).
Une entit doit avoir une existence
indpendamment de toute autre entit.
I. Mthode Merise
La construction du MCD
25

Exemple : On considre le problme suivant :


Un libraire gre des uvres littraires. Une uvre
est une cration littraire.
Une uvre a au moins un auteur et est dans une
dition (un livre).
Une dition possde un ISBN unique et a un unique
diteur. Elle peut contenir plusieurs uvres.
On veut mmoriser pour chaque dition le nombre
d'exemplaires en stock et pour chaque exemplaire
son tat.
I. Mthode Merise
La construction du MCD: Exemple
26

Dans ce problme, les entits sont :


Lentit "uvre" : Une cration littraire, un rcit
Lentit "auteur" : une personne crateur d'uvre,
Lentit "dition" : un livre contenant une ou plusieurs
uvres littraires,
Lentit "diteur" : la socit qui va imprimer les livres,
Lentit "exemplaire" : un exemplaire physique de livre.
L'ISBN, par exemple, n'est pas une entit puisqu'il
s'agit d'un lment qui caractrise l'entit "dition".
I. Mthode Merise
La construction du MCD: Exemple
27

Exemple Liste des uvres

ISBN Titre Auteur Editeur Stocks

2.207.30089.7 Fondation 5 Denol 10

2.221.09973.7 L'incident Jsus 2 Laffont 7

2.070.42167.8 Chrono-Minets 5 Gallimard 8

2.290.03567.X Frankenstein 1 J'ai Lu 12

2.070.36822.X 1984 3 Gallimard 5

Liste des auteurs


Code Nom Prnom
1 Shelley Mary W.
2 Herbert Franck
3 Orwell Georges
4 Bradbury Ray
5 Asimov Isaac
I. Mthode Merise
La construction du MCD
28

b. Construction des entits


On commence par donner un nom chacune des
entits. Il faut ensuite rechercher les proprits de ces
entits.
On devra garder l'esprit les points suivants :
toute proprit est lmentaire (elle n'est pas la
composition d'ventuelles proprits plus petites),
une proprit ne doit pas tre "instable" ou "calculable" :
si une proprit peut tre obtenue par calcul partir
d'autres lments qui vont apparaitre dans la base de
donnes (notamment d'autres proprits), on ne doit pas la
considrer,
I. Mthode Merise
La construction du MCD
29

toute entit doit possder une proprit particulire


appele sa cl (ou identifiant).
Une cl doit caractriser de manire unique chaque
occurrence de l'entit. Par exemple, le nom de famille
d'une personne ne peut pas tre considr comme une
cl d'une entit "personne" puisque deux personnes
peuvent avoir le mme nom de famille. Le numro de
scurit sociale est par contre tout fait acceptable. Il
vaut mieux viter les identifiants trop longs (on
prfrera un code de quelques chiffres un intitul
d'une vingtaine de lettres par exemples),
I. Mthode Merise
La construction du MCD
30

si aucune des proprits "naturelles" ne peut servir


de cl, on en rajoute une artificiellement (Par
exemple "CodeLivre" ou "IdAnimal").
Chaque proprit ne doit dpendre que d'une
seule entit.
I. Mthode Merise
La construction du MCD
31

Une entit se reprsente ensuite graphiquement


sous la forme d'une boite dans laquelle on indique
en titre le nom de l'entit suivi de toutes ses
proprits. On indique d'une manire particulire
l'identifiant.
I. Mthode Merise
La construction du MCD
32

Exemple :
Dans l'exemple du libraire, on peut construire les
entits suivantes (les proprits sont indiques aprs
le nom de l'entit, l'identifiant est en gras) :
uvre : Iduvre, titre
Auteur : IdAuteur, nom, prnom
dition : ISBN, titre, nb pages
diteur : IdEditeur, nom
Exemplaire : IdExemplaire, tat
I. Mthode Merise
La construction du MCD
33

Notons que, dans le cas de l'dition, l'ISBN est un


identifiant tout fait acceptable.
Dans les autres cas, aucune des proprits ne
convenant comme identifiant, il a fallu crer une
proprit particulire pour cet effet (Id...).
I. Mthode Merise
La construction du MCD
34

uvres
Auteurs
Iduvre
Titre IdAuteur
Nom
Prnom

Editions
ISBN
Editeurs
Titre
Nb pages IdEditeur
Exemplaires
Nom
Id_livre
Etat
I. Mthode Merise
La construction du MCD
35

c. Construction des relations


L'tape suivante consiste numrer toutes les
relations possibles entre entits.
Si une relation a une chance d'apparaitre (et de
nous intresser), alors on doit la considrer dans le
MCD. On parle galement parfois d'association.
Une relation se reprsente de la manire suivante :
I. Mthode Merise
La construction du MCD
36

On notera les points suivants :


Une relation est en gnral entre deux entits. Il est
possible d'avoir des relations entre plus que deux
entits.
Par exemple, une relation Vente entre Acheteur,
Vendeur et Lieu pour une base de donnes de
transaction immobilire.
Il est nanmoins souvent possible (et prfrable!) de se
restreindre des relations entre deux entits.
Dans le cas ici, la relation Vente pourrait tre
remplace par une entit Acte de vente qui est en
relation avec l'acheteur, le vendeur et le lieu.
I. Mthode Merise
La construction du MCD
37

Il est tout fait possible d'avoir plusieurs relations entre


deux entits.
Il est galement possible d'avoir une relation dite
rflexive, c'est--dire entre une entit et elle-mme.
Par exemple, on peut avoir une relation Responsable
entre une table employ et elle mme.
Dans ce cas, il convient tout de mme de remarquer
que chacune des "pattes" de la relation a une
signification diffrente. Ici, l'une des "pattes"
signifiera est responsable de et l'autre signifiera a
comme responsable.
I. Mthode Merise
La construction du MCD
38

Une relation peut avoir des proprits.


Par exemple, si une relation Contient lie l'entit Facture
et l'entit Produit, elle possde certainement la
proprit "quantit" (une facture contient un produit x
en quantit y).
D'ailleurs, si une proprit dpend de plus d'une entit
(comme c'est le cas ici avec la quantit qui dpend la
fois de la facture et du produit), c'est certainement
qu'elle dpend d'une relation, et non pas d'une entit.
I. Mthode Merise
La construction du MCD
39

Il faut viter les relations que l'on peut dduire d'autres


relations par transitivit.
Par exemple, dans une base de donnes grant une
universit, si on dispose d'entits 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
systmatiquement inscrit tous les cours qui composent
la formation.
I. Mthode Merise
La construction du MCD
40

Exemple :
Dans l'exemple du libraire, on a les relations
suivantes:
I. Mthode Merise
La construction du MCD
41

d. Choix des cardinalits


Une fois les relations tablies, il convient ensuite de
caractriser le nombre de fois ou chacune de ces
relations peut apparaitre rellement. Ceci se fait
l'aide des cardinalits. Dans une relation classique
(i.e. entre deux entits), quatre cardinalits sont
dterminer.
I. Mthode Merise
La construction du MCD
42

minA est le nombre minimal de fois o une occurrence de l'entit A


participe une relation du type considr. Il s'agit en gnral de
0 ou 1.
maxA est le nombre maximal de fois o une occurrence de l'entit
B participe la relation. Il s'agit en gnral de 1 ou n (n pour
plusieurs fois, ou un nombre quelconque de fois).
minB et maxB fonctionnent de la mme manire, mais en
considrant l'entit B.
Notons qu'il est souvent difficile de choisir entre une cardinalit
de type 0: n et une cardinalit de type 1: n. Il est important de
noter que ce choix a souvent peu d'importance.
I. Mthode Merise
La construction du MCD
43

Exemple :
Dans l'exemple du libraire, considrons la relation dite
qui existe entre les entits diteur et dition.
Ainsi, dans l'exemple du libraire, une dition (un livre) a
toujours un et un seul diteur (soit un minimum de un
diteur, et un maximum de un diteur).
Un diteur par contre peut diter au minimum une
dition et au maximum plusieurs ditions (un nombre
quelconque de fois).
I. Mthode Merise
La construction du MCD
44

Ce qui nous donne :

Le MCD complet est donc :


I. Mthode Merise
La construction du MCD
45

e. Cas particuliers et piges :


Quelques points particuliers sont garder l'esprit
lors de la ralisation 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 reprsente plus d'une fois dans le MCD.
I. Mthode Merise
La construction du MCD
46

Evitez autant que possible les relations entre plus


de deux entits. Souvent, il est possible de
remplacer la relation par une entit.
Restez dans la mesure du possible avec des
cardinalits de valeurs 0, 1 ou n. Il est de toute
manire souvent possible de se ramener ce cas
dans les rares cas o des cardinalits d'un autre
type semblent plus naturelles. En pratique, il peut y
avoir dautre valeurs, mais cest trs rare (exemple
du tierc : un pari concerne exactement 3 chevaux
cardinalit 3:3)
I. Mthode Merise
47

Dans l'idal, il faut trouver un bon compromis entre niveau


de dtail et "taille" de la base de donnes.
Il est toujours possible de multiplier les entits, mais il vaut
mieux le faire que si cela a vraiment du sens et un intrt
dans le problme.
Par exemple, si on a une entit personne, on peut considrer
l'adresse comme une entit spare (relie personne par
une relation "habite ") ou comme une proprit de la
personne (ce qui est fait usuellement). En rgle gnrale, il
est plus conomique de dfinir l'adresse comme une
proprit, mais dans un cas ou il est courant que des
personnes habitent au mme endroit, la rgle de non-
redondance incite plutt utiliser une nouvelle entit
I. Mthode Merise
La construction du MCD: A retenir!
48

La mthode gnrale de construction du MCD :


Recherche des entits,
Recherche des proprits (dont la cl de chaque
entit),
Recherche des relations entre entits,
Recherche des cardinalits (0:1, 1:1, 0: n ou 1:n ?)
I. Mthode Merise
Exercice : ralisation de MCD (Banque)
49

Une banque dsire possder un SGBD pour


suivre ses clients. Elle dsire ainsi stocker les
coordonnes de chaque client (nom, prnom adresse),
et les comptes dont elle dispose ainsi que leur solde
(sachant par ailleurs que certains compte ont plusieurs
bnficiaires). On stockera galement les oprations
relatives ces comptes (retrait et dpt, avec leur
date et le montant).
I. Mthode Merise
Exercice : ralisation de MCD
50

Une banque dsire possder un SGBD pour


suivre ses clients. Elle dsire ainsi stocker les
coordonnes de chaque client (nom, prnom adresse),
et les comptes dont elle dispose ainsi que leur solde
(sachant par ailleurs que certains compte ont plusieurs
bnficiaires). On stockera galement les oprations
relatives ces comptes (retrait et dpt, avec leur
date et le montant).
I. Mthode Merise
Exercice : ralisation de MCD
51

1:n 1:n 0:n


bnficie Comptes
Clients
NoClient Id_Cpt
Nom
Solde
Prnom
Adresse

Oprations
Concerne
Id_op

Type
1:1
Date

montant
I. Mthode Merise
Exercice : MCD (gestion de commandes)
52

Les rgles de gestion :


Le magasin vend des produits a des clients.
Les produits possdent une rfrence (un code), un libelle et un prix
unitaire.
Les clients ont une identit (nom, prnom, adresse...).
Les clients passent des commandes de produits. On mmorise la date
de la commande.
Pour chaque commande, le client prcise une adresse de livraison.
La commande concerne un certain nombre de produits, en une quantit
spcifie pour chaque produit.
I. Mthode Merise
Exercice : MCD (gestion de commandes)
53
I. Mthode Merise
Exercice : MCD (agence immobilire)
54

Les rgles de gestion :


Une agence de location de maisons et dappartements dsire grer sa
liste de logements. Elle voudrait en effet connatre limplantation de
chaque logement (nom de la commune et du quartier) ainsi que les
personnes qui les occupent (les signataires uniquement).
Le loyer dpend dun logement, mais en fonction de son type (maison,
studio, T1, T2...) lagence facturera toujours en plus du loyer la mme
somme forfaitaire ses clients. Par exemple, le prix dun studio sera
toujours gal au prix du loyer + 30 DH de charges forfaitaires par
mois.
Pour chaque logement, on veut disposer galement de ladresse, de la
superficie ainsi que du loyer.
Quant aux individus qui occupent les logements (les signataires du
contrat uniquement), on se contentera de leurs noms, prnoms, date de
naissance et numro de tlphone.
I. Mthode Merise
Exercice : MCD (gestion de commandes)
55

Pour chaque commune, on dsire connatre le nombre dhabitants ainsi


que la distance sparant la commune de lagence.
Lagence dsire grer lhistorique de loccupation des logements par les
individus. On considrera de plus quun individu peut tre signataire de
plusieurs contrat de location.
On prcise aussi quun logement peut faire lobjet de plusieurs locations
disjointes dans le temps.
Lunit gographique retenue pour la gestion des logements est le
quartier et on considre que chaque commune possde au moins un
quartier.
I. Mthode Merise
Exercice : MCD (gestion de commandes)
56
1,N
Individus Communes 1,N
Effectuer
Id commune
1,1 Nom commune
Nidentit Distance agence
Nom Nombre d'habitants
Prnom Locations Situer Dans
DateNaissance 1,1
Ntlphone NLocation Concerner
DateDbut
DateFin 1,1
0,N
Quartiers
Logements
1,1 N logement Id quartier
TypeLogements Adresse Nom quartier
Superficie
Type logement Correspondre
Loyer
Charges forfaitaires

1,1 0,N
1,N Appartenir
I. Mthode Merise
MCD>>> MLD
57

L'tape de transformation du MCD en MLD est


assez simple et passe par trois tapes :
Transformation des entits en tables,
Transformation des relations du MCD,
Suppression des tables inutiles.
I. Mthode Merise
Modle logique des donnes
58

a. Construction des tables


La premire tape consiste transformer toutes les
entits du MCD en tables du MLD.
Cette transformation est directe : il suffit de recopier les
entits. Il s'agit essentiellement d'un changement de
vocabulaire :
une entit devient une table,
une proprit devient un champ,
un identifiant devient une cl primaire.
A noter toutefois qu'il est essentiel qu'il n'y ait pas deux
tables qui aient le mme nom.
I. Mthode Merise
Modle logique des donnes
59

Exemple:
la premire partie de la construction du MLD du
libraire est directe. Il suffit de recopier les entits.
I. Mthode Merise
Modle logique des donnes
60

b. Transformation des relations en liens


Pour les associations. Dpend des cardinalits. Deux
grand cas possibles :
Relation 1:1 ?:?

la relation est matrialise par lajout dune cl trangre

Relation ?:n ?:n

la relation donne lieu la cration dune table


I. Mthode Merise
Modle logique des donnes
61

Premier cas:
Dans le cas d'une relation ou l'une des branches a une
cardinalit de 1:1 ou 0:1, la transformation de la
relation se fait de la manire suivante :
On ramne dans la table correspondant l'entit "du ct
du 1:1" (ou du 0:1) la cl primaire de l'autre table ainsi que
toutes les ventuelles proprits de la relations.
On lie la cl primaire ainsi importe avec la cl primaire de
la deuxime table.
Si la relation contenait des proprits, celle-ci se retrouve
galement importe du ct du 1:1
I. Mthode Merise
Modle logique des donnes
62

Se transforme en:

A noter que la cl importe (ici IdB qui se retrouve dans


table A) ne devient pas une cl de la table : c'est une
proprit comme une autre. Notons aussi que le lien se
fait entre champs (on relie IdA IdB) et non pas, comme
dans le MCD, entre les tables.
I. Mthode Merise
Modle logique des donnes
63

EntitA EntitB
0:n relation 1:1
IdA IdB
propritR
PropritA1 propritB1

devient
TableA
TableB
PK_IdA PK_IdB
Champ A1 Champ B1
Champ IdA
Champ R
I. Mthode Merise
Modle logique des donnes
64

Deuxime cas
Dans tous les autres cas, la relation du MCD se
transforme en une table du MLD :
On cre une nouvelle table correspondant la relation.
Cette table contient toutes les ventuelles proprits de
la relation.

On intgre cette table les cls primaires des entits


impliques dans la relation.
I. Mthode Merise
Modle logique des donnes
65

On relie les cls primaires des tables avec les cls


importes dans la nouvelle table.

On choisit enfin la ou les cls primaires de la


nouvelle table. L'ide gnrale est que chaque
occurrence de cette entit doit pouvoir tre
identifie de manire unique par ses cls primaires.
I. Mthode Merise
Modle logique des donnes
66

Cela revient en gnral choisir comme cls


primaires l'ensemble de cls importes des autres
tables.

Se transforme en:
I. Mthode Merise
Modle logique des donnes
67

Cas particuliers
Quelques cas particuliers peuvent apparaitre.
Si la relation est de type 1:1 - 1:1, on fusionne les
deux entits en une. Ce type de relation rare est
souvent d un problme dans la conception du
MCD.
Si la relation est de type 0:1 - 1:1, on traite la
relation comme une relation de type 1:1 ?:?(en
ramenant la cl primaire du ct du 1:1)
I. Mthode Merise
Modle logique des donnes
68

Cas particuliers
Les relations rflexives (entre une entit et elle-
mme) se traitent comme les autres relations.
les relations ternaires (entre trois entits, ou plus), se
traitent comme d'habitude.
Si l'une des branches a une cardinalit de type 1:1,
on ramne les cls primaires des autres entits et les
proprits de la relation dans l'entit "du ct du
1:1".
Si ce n'est pas le cas, la relation se transforme en
table.
I. Mthode Merise
Modle logique des donnes
69

c. Suppression des tables inutiles


La dernire tape consiste simplement supprimer
les tables inutiles.
En gnral (mais pas toujours), une table qui ne
contient qu'un seul champ (sa cl) est inutile : elle ne
nous apporte aucune information.
L'exemple le plus classique est une entit de type
"date".
I. Mthode Merise
Modle logique des donnes
70

Exemple :
Le MLD correspondant l'exemple du libraire est le
suivant :
I. Mthode Merise
MCD>>MLD: A retenir
71

La mthode de transformation MCD-MLD :


les entits sont transformes en tables (sans modification)
les relations sont transformes en fonction de leurs
cardinalits
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 cls,
une relation autre (sans 1:1 - ?:?) se transforme en
table dans laquelle on retrouve les cls primaires de
A et B.
les tables inutiles sont supprimes : il s'agit essentiellement des
tables un seul champ (leur cl).
I. Mthode Merise
MCD>>MLD: Quelques cas particuliers
72

Relation binaire (0,1)-(1,1):


On duplique la cl de la table base sur l'objet cardinalit (0,1) dans la table
base sur l'objet cardinalit (1,1).
I. Mthode Merise
MCD>>MLD: Quelques cas particuliers
73

Plusieurs relations entre 2 objets


Les rgles gnrales s'appliquent.
I. Mthode Merise
MCD>>MLD: Quelques cas particuliers
74

Relation binaire (0,1)-(0,1):


On duplique la cl d'une des tables dans l'autre. Lorsque la relation contient
elle-mme des proprits, celles-ci deviennent galement attributs de la table
dans laquelle a t ajoute la cl trangre.
I. Mthode Merise
MCD>>MLD: Quelques cas particuliers
75

Relations rflexives:
Nous appliquons les rgles gnrales avec la seule diffrence que la relation
est 2 fois relie au mme objet.
I. Mthode Merise
MCD>>MLD: Quelques cas particuliers
76

Relations rflexives:
Nous appliquons les rgles gnrales avec la seule diffrence que la relation
est 2 fois relie au mme objet.
I. Mthode Merise
MCD>>MLD: Exercices
77

Exercice Gestion d'cole


Transformez le MCD suivant, qui reprsente la gestion d'une cole en un MLD
en respectant toutes les rgles du passage MCD MLD.
I. Mthode Merise
MCD>>MLD: Exercices
78
I. Mthode Merise
MCD>>MLD: Exercices
79
I. Mthode Merise
MCD>>MLD: Exercices
80
Rsum
81

La mthode Merise, comprend 4 niveaux avec


chacun un modle rfrent :
II. Cours SQL
Introduction au SQL
82

Requtes de consultation de tables


Projection, Slection, Jointure
Tri, Agrgation, Partitionnement
Requtes de Modification de tables
Ajout
Suppression
Manipulation de tables, de vues et de bases de
donnes
II. Cours SQL
Projection
83

Syntaxe SQL :
SELECT [UNIQUE1] liste_attributs2 FROM Table ;

1 Permet d'liminer les doublons (on trouvera aussi DISTINCT).


2 On peut mettre une toile * pour demander tous les attributs.
On peut renommer un attribut en ajoutant AS NomAttribut
II. Cours SQL
Projection
84

Soit la Table tudiants(#num, nom, prnom, ge, ville,


CodePostal).
Afficher toute la table tudiant.

SELECT * FROM tudiants;

Donner les noms, les prnoms et les ges de tous les


tudiants.
SELECT nom, prnom, ge FROM tudiants;
Donner les numros des tudiants dans une colonne
nomme Numro.

SELECT #num AS Numro FROM tudiants;


84
II. Cours SQL
Slection
85

Syntaxe SQL :
SELECT * FROM table WHERE condition;

La condition peut forme sur des noms d'attributs ou des constantes avec
des oprateurs de comparaison : =, >, <, <=, >=, <>1
des oprateurs logiques : AND, OR, NOT
des oprateurs : IN, BETWEEN+AND, LIKE, EXISTS, IS
_ qui remplace un caractre et % qui remplace une chane de caractres

1 La diffrence est parfois note !=


II. Cours SQL
Slection
86

Sur la table tudiants(#Num, Nom, Prnom, Age, Ville, CodePostal)

Quels sont tous les tudiants gs de 20 ans ou plus ?

SELECT * FROM tudiants WHERE (Age >= 20);

Quels sont tous les tudiants gs de 19 23 ans ?

SELECT * FROM tudiants WHERE Age IN (19, 20, 21, 22, 23);
SELECT * FROM tudiants WHERE Age BETWEEN 19 AND 23;

Quels sont tous les tudiants habitant dans les Vosges ?

SELECT * FROM tudiant WHERE CodePostal LIKE '88%' ;

Quels sont tous les tudiants dont la ville est inconnue/connue ?

SELECT * FROM tudiants WHERE Ville IS NULL ;


SELECT * FROM tudiants WHERE Ville IS NOT NULL ;

86
II. Cours SQL
Produit Cartsien
87

Syntaxe SQL :
SELECT * FROM table1 [Alias1], ..., tablen [Aliasn];

Syntaxe SQL :
SELECT * FROM table1 [Alias1], ..., tablen [Aliasn] WHERE condition;

Autre Syntaxe :

SELECT * FROM table1 INNER JOIN table2 ON condition;

87
II. Cours SQL
Produit Cartsien
88

Soient les tables :


Produit (#prod, nomProd, fournisseur, pu)
DtailCommande (#cmd, #prod, pu, qte, remise)
Quels sont les numros de commande correspondant l'achat d'une table ?

SELECT DtailCommande.#num FROM Produit, DtailCommande WHERE


Produit.#prod =DtailCommande.#prod AND nomProd LIKE "%table;

Mme requte, mais avec des alias pour les noms de relation :

SELECT dc.#num
FROM Produit p, DtailCommande dc
WHERE p.#prod = dc.#prod
AND nomProd LIKE "%table%";
88

88
II. Cours SQL
Jointures par requtes imbriques
89

Une jointure peut aussi tre effectue l'aide d'une sous-requte.


SELECT *
FROM Stock
WHERE #prod IN ( SELECT #prod
FROM Produit)
Principe : Le mot-clef "IN" permet ici de slectionner les tuples #prod
appartenant la sous-requte.
La sous-requte ne doit retourner qu'une colonne !
Les tables de sous-requtes ne sont pas visibles depuis l'extrieur

89

89
II. Cours SQL
Jointures par requtes imbriques
90

A partir des relations suivantes : Produit(#prod, libell, pu)


Stock(#prod, #dp, qt)
Dpt(#dp, adr, volume)
Quels sont les produits qui sont en rupture de stock et ladresse du dpt:

SELECT p.#prod, p.libell, d.#dp, d.Adr


FROM Produit p, Dpt d, Stock s
WHERE p.#prod = s.#prod
AND s.#dp = d.#dp
AND s.qte <= 0 90

90
II. Cours SQL
Tri
91

Syntaxe :
Cette clause se place derrire la clause WHERE
ORDER BY attribut [ordre] [, attribut [ordre] ...]
On peut prciser un ordre croissant ASC ou dcroissant DESC.

Exemple
Trier Stock par numro de produit croissant et par quantit dcroissante
SELECT *
FROM Stock
WHERE qte > 0
ORDER BY #prod ASC, qte DESC
91

91
II. Cours SQL
Agrgation des rsultats
92

Il est possible d'utiliser des fonctions f d'agrgation dans le rsultat d'une


slection.
Syntaxe :
SELECT f ( [ ALL | DISTINCT ] expression)
FROM ...
o f peut tre COUNT nombre de tuples
SUM somme des valeurs d'une colonne
AVG moyenne des valeurs d'une colonne
MAX maximum des valeurs d'une colonne
MIN minimum des valeurs d'une colonne
Pour COUNT, on peut aussi utiliser COUNT(*) 92
Seul COUNT prend en compte les valeurs NULL. 92
II. Cours SQL
Partitionnement des rsultats:
93

Syntaxe
GROUP BY liste_attributs
HAVING condition avec fonction
Cette clause regroupe les rsultats par valeur selon la condition

Dans l'ordre, on effectue


la slection SELECT
le partitionnement GROUP BY
on retient les partitions intressantes HAVING
on trie avec ORDER BY.

93
II. Cours SQL
Partitionnement des rsultats:
94

Rsultats (de Pierre)


Quelle est la note moyenne pour chaque coefficient
Matire Coef Note
?
SELECT coef, Avg(note) as Coef Moyenne
Maths 4 15
Moyenne 1 11
Sc Nat 3 9 FROM Rsultats 2 12
Sc Phy 3 12 GROUP BY coef; 3 10.5
4 15
Franais 2 13
Quels sont les coefficients auxquels participe une
Sc Hum 2 11 seule matire ?

Anglais 1 10 SELECT coef


Coef
FROM Rsultats GROUP BY 4
Sport 1 12
coef
HAVING count(*)=1;
94
II. Cours SQL
Plan
95

Requtes de consultation de tables


Projection, Slection, Jointure
Tri, Agrgation, Partitionnement
Requtes de Modification de tables
Ajout
Suppression
Manipulation de tables, de vues et de bases de donnes

95
II. Cours SQL
Insertion
96

Syntaxe :
Pour insrer un tuple compltement spcifi :
INSERT INTO Table VALUES (val1,..., valn);

Pour insrer un tuple incompltement spcifi :


INSERT INTO Table (liste_attributs)VALUES (val1,..., valn);

On peut insrer un tuple partir d'une relation ayant le mme schma.


INSERT INTO Table
SELECT *
FROM ...

96
II. Cours SQL
Insertion exemple
97

Sur les relations tudiants (#Num, Nom, Prnom, Age, Ville, CodePostal)
ClubThtre(#Num, Nom, Prnom)

Ajouter l'tudiant Sylvain HEBON, 21 ans, habitant Nancy avec le numro 634.

INSERT INTO tudiants


VALUES (634, 'HEBON', 'Sylvain', 'Nancy', '54000', 21);
Ajouter tous les tudiants Vosgiens dans le Club de Thtre
INSERT INTO ClubThtre
SELECT #Num, Nom, Prnom
FROM tudiants
WHERE CodePostal LIKE '88%';
97
II. Cours SQL
Mise jour
98

Syntaxe :
UPDATE Table
SET attribut1 = expr1, ..., attributn = exprn
FROM ...
WHERE ...

Les expressions peuvent tre


une constante
une valeur NULL
une clause SELECT

98
II. Cours SQL
Mise jour:
99

Sur la relation tudiants (#Num, Nom, Prnom, Age, Ville, CodePostal)

Augmenter d'un an l'age de tous les tudiants.


UPDATE tudiants
SET Age = Age + 1;
On a appris que tous les tudiants de Bar-le-Duc ont dmnag Nancy.

UPDATE tudiants
SET Ville = 'Nancy', CodePostal = '54000'
WHERE Ville = 'Bar-Le-Duc';
II. Cours SQL
Suppression
100

Syntaxe :
DELETE FROM Table
[WHERE condition]
Remarque :
Si on supprime tous les tuples d'une relation,
! le schma de relation existe toujours !
Exemple :
Retirer de la liste tous les tudiants de plus de 22 ans.

DELETE FROM tudiants


WHERE Age > 22;

100
II. Cours SQL
Cration de table
101

Syntaxe :
CREATE TABLE nomTable (
Attribut Domaine [Contraintes ...],
...
Attribut Domaine [Contraintes ...],
[Contraintes ... ] )

101
II. Cours SQL
Cration de table
102

Crer la table Stock1(Pice, NbP, Fournisseur)

CREATE TABLE Stock1 (


Pice VARCHAR(20) NOT NULL,
NbP INT,
Fournisseur CHAR(20) NOT NULL,
PRIMARY KEY (Pice, Fournisseur)

102
II. Cours SQL
Modification de table
103

Modification de Schma de la Table (Syntaxe variable !)

Exemple pour Oracle v6 :


ALTER TABLE Table
[ADD (dfinition_attribut | Contrainte), [dfinition_attribut |
Contrainte] ... )]
[MODIFY (dfinition_attribut [, dfinition_attribut ]... )]
[DROP CONSTRAINT contrainte]

Suppression complte d'une relation (et de son schma) :

DROP TABLE Table;

Attention, toutes les donnes de la table sont perdues


!

103
II. Cours SQL
Vue
104

Une vue est une Table non stocke dans la base de donnes mais
recalcule chaque utilisation.
Syntaxe :
CREATE VIEW NomVue AS
Requte_de_dfinition1

Exemple :
CREATE VIEW Personnes_ges AS
SELECT *
FROM Personnes
WHERE Age > 70;

La suppression s'effectue avec DROP VIEW NomVue;


1 La requte ne doit pas contenir de tris (ORDER BY).

104
II. Cours SQL
Base de donnes
105

Cration d'une base de donnes

Syntaxe :
CREATE DATABASE NomBdd;

Destruction totale d'une base de donnes

Syntaxe :
DROP DATABASE NomBdd;

105
106

Merci

Vous aimerez peut-être aussi