You are on page 1of 174

Chapitre 1:

Introduction au Gnie Logiciel

1 - Le Systme dinformation
dentreprise

PARTIE 1 : ANALYSE ET CONCEPTION


DES SYSTEMES D INFORMATION
( A.C.S.I )

PLACE DU SYSTEME D INFORMATION DANS UNE ORGANISATION


Lapproche Systmique permet de reprsenter une Organisation ou Entreprise ( Systme ) en
3 Sous-systmes interdpendants :

S/SYSTEME DE PILOTAGE
Les Membres de Direction
Information :
Dcision mmoriser

Information
mmorise

Il permet d assigner des


objectifs lentreprise en
transmettant des ordres au S.I .
Il analyse l environnement
interne et externe du Systme
pour produire des dcisions .

S/SYSTEME D INFORMATION
COLLECTE les donnes
ENVIRONNEMENT
EXTERIEUR

MEMORISE les donnes manipules


TRAITE les donnes stockes

Il alimente le Systme en
informations d origine interne
ou externe , les mmorise , les
traite puis les communique aux
autres sous-systmes .

TRANSMET les donnes vers lextrieur et


lintrieur du systme
Information
mmorise

Information :
Reprsentation mmoriser

S/SYSTEME OPERANT
Lensemble du Personnel excutant

Il assure la production des biens


et des services internes et
externes au systme .

Exemple : SYSTEME D INFORMATION dune Entreprise Commerciale

S/SYSTEME DE PILOTAGE = Direction


Commande au Fournisseur
Rglement au fournisseur

Statistiques sur
les Ventes

Dcision : Nouveaux Produits


commercialiser

S/SYSTEME D INFORMATION
Fournisseur

Employs du Service Commercial


Employs du Service comptable
Secrtaires

Bon de livraison
Marchandise
Facture Fournisseur

Ordinateurs + imprimantes
Bon de Commande
Client

Marchandise + Bon de livraison


+ Facture Client

S/SYSTEME OPERANT
Reprsentants commerciaux
Commande Client
Rglement

Marchandise + Bon de livraison


+ Facture Client

Client

Structure dun Systme dInformation


au Niveau des Ressources Humaines
Utilisateurs
Cadres suprieurs
Gestionnaires doprations
( Cadres intermdiaires et
contrleurs de gestion )

Excutants et
Oprateurs de Saisie

Rle du Systme d information


S/S
Stratgie
S/S
Gestion et Contrle
des Oprations

S/S
Transactionnel

Production dinformations la demande


pour assister des dcisions complexes
- Dcisions rptitives pour la conduite
des oprations courantes
- Traitement des donnes mmorises et
dition de documents de liaison
- Communication interne et externe
des informations
Enregistrement des transactions
lmentaires ( saisie des faits
lmentaires et mmorisation )

Distinction entre SYSTEME DINFORMATION et SYSTEME INFORMATIQUE


Organisation = SYSTEME
S/Systme
de Dcision

Dcisions programmables (obtenues grce au S/S dinformation )


Dcisions non programmables

S/Systme
dinformation

Tches de gestion manuelles


Tches de gestion automatises
Aide la prise de dcision

Informatique de gestion
Informatique dcisionnelle

S/Systme
Opratoire

Intervention de lhomme
Intervention de la machine

Informatique industrielle

Le Systme informatique reprsente lensemble du matriel et du logiciel informatiques


utiliss dans l organisation ( Informatique dcisionnelle + Informatique de gestion
+ Informatique industrielle )

Conduite dun Projet de Systme Automatis dInformation ( S.A.I )


Plan
Stratgique

- Etude dopportunit : Le Projet rpond-il aux objectifs du Systme de Dcision ?


- Etude de faisabilit
- Evaluation conomique

Plan
Stratgique

- Dterminer les besoins en quipement matriel et logiciel


- Dsigner une Equipe de Dveloppement (Chef de Projet + Analystes Programmeurs ou SSII)
- Engagement financier

Plan
dAction

- Spcification dtaille du Projet


- Etapes , Phases et Calendrier de ralisation
- Contraintes

Conception
et Mise en
oeuvre

- Etude Conceptuelle ( Fonctionnelle )


- Etude Logique ( Organique )
- Etude Physique ( Oprationnelle )
- Installation et Tests

Schma Directeur de Projet = Plan Startgique + Plan Tactique + Plan dAction )

Identifiant dune Association


Il est obtenu par concatnation des identifiants des entits relies par lassociation
Employ

Exemple :

Mdecin

N Employ
Nom Employ
Nom Employ
Adresse Client

0,N

Visiter
Date Visite

0,N

N Mdecin
Nom Mdecin
Spcialit
Tlphone

Identifiant = ( N Employ , N Mdecin )


Occurrences de Visiter
N Employ
23
12
39
42
42
42

N Mdecin
1
3
2
1
4
4

Date Visite
26/06/01
05/07/01
10/08/01
15/08/01
22/08/01
05/09/01

La dernire occurrence de lassociation Visiter nest


pas permise en raison de la discriminance de lidentifiant .
La duplication de loccurrence ( 42 , 4 ) nest pas possible !
!!

Question : Un employ peut-il effectuer plusieurs visites chez le mme mdecin des dates diffrentes ?
Rponse : Ce modle ne le permet pas mme si la proprit Date Visite est porte par lassociation Visiter

Comment doit-on interprter les cardinalits dune association ternaire ?


( i2 , j2 )

Exemple : Association ternaire


Employ

( i1 , j1 )

Visiter

( i3 , j3 )

Identification de ( i1 , j1 )
Pour un employ fix ( occurrence E ) , le couple de
cardinalits ( i1 , j1 ) traduit le nombre minimal
et maximal doccurrences du couple dentits
( Mdecin , Calendrier ) qui sont associes
loccurrence E .
Ici : ( i1 , j1 ) = ( 0 , 3 )

Identification de ( i2 , j2 )
Pour un mdecin fix ( occurrence M ) , le couple de
cardinalits ( i2 , j2 ) traduit le nombre minimal
et maximal doccurrences du couple dentits
( Employ , Calendrier ) qui sont associes
loccurrence M .
Ici : ( i2 , j2 ) = ( 0 , 4 )

Identification de ( i3 , j3 )

Mdecin
Calendrier

N Employ ( N Mdecin , Date Visite )


1
1
1
3
4
4
5

( 12 , 08/05/01 )
( 10 , 15/06/01 )
( 6 , 09/06/01 )
( 10 , 02/06/01 )
( 12 , 14/06/01 )
( 10 , 14/06/01 )
( 10 , 02/06/01 )

N Mdecin ( N Employ , Date Visite )


12
10
6
10
12
10
10

En raisonnant de mme pour ( i3 , j3 ) on trouve : ( i3 , j3 ) = ( 0 , 2 )

( 1 , 08/05/01 )
( 1 , 15/06/01 )
( 1 , 09/06/01 )
( 3 , 02/06/01 )
( 4 , 14/06/01 )
( 4 , 14/06/01 )
( 5 , 02/06/01 )

Occurrences
de Visiter

Exemple : Entreprise Les Grands Garages du Sud ( Suite )


On identifie dans chaque fonction de gestion , les domaines qui feront lobjet
dune informatisation .
Grer les Stocks

Cas de la Fonction Magasin


Dcomposition des Activits

Grer les Entres

Commander

Grer les Sorties

Rceptionner
Contrler

Mettre jour

On retiendra les domaines suivants :


DOMAINE

Informations utilises

Informations cres

Commander les pices

Catalogue fournisseurs
Etat du Stock

Bon de commande

Rceptionner

Bon de commande
Bon de livraison

Fiche de stock

Dlivrer les pices

Bon de pices
Demande client

Bon de sortie
Facture pices

Mettre jour le Stock

Fiche de stock
Bon de livraison
Bon de sortie

Fiche de stock jour

Dlivrer
les Pices

Mettre jour
le stock

Identifiant dune Association ( Suite )


Solution du Problme : Association ternaire
Employ
Identifiant de lassociation
Visiter :

N Employ
Nom Employ
Nom Employ
Adresse Client

( N Employ , N Mdecin , Date )

Mdecin
0,N

Visiter

0,N

0,N

N Mdecin
Nom Mdecin
Spcialit
Tlphone

Calendrier
Date

Les triplets ( 42 , 4 , 22/08/01 ) et ( 42 , 4 , 05/09/01 ) sont maintenant des occurrences possibles de


lassociation Visiter car elles reprsentent des valeurs distinctes de son identifiant .
Ce modle permet , linverse du prcdent , de reprsenter le fait quun employ peut visiter le mme
mdecin plusieurs fois des dates diffrentes .
Gnralisation : Une association N-aire ( de dimension N ) possde un identifiant sous forme de
N-uplet dont les valeurs sont distinctes .

Lentreprise / organisation des annes 1950 / 60


Rglements aux
fournisseurs

Rglements des
clients
Flux financiers

SYSTEME OPERANT
Flux de matires
et produits
Produits
achets

Produits
vendus

Systmes dinformation ( S.I )


Mthodes
* Gestion de projets ( valuation , Conduite )
* Analyse , Conception des S.I
( Merise, Axial, OMT, UML,etc )
* Rtro-Conception des S.I

Outils
Logiciel de gestion de projet
Atelier de Gnie Logiciel

Bases de donnes
Mthodes
* Techniques de Gestion de fichiers
* Modles de bases de donnes ( hirarchique,
rseau, relationnel, objet )
* Architectures ( centralise, distribue, rpartie )

Outils
* Systmes de Gestion de fichiers
* Systme de gestion de base de donnes
( Mode : Serveur de fichier
Client / Serveur , Transactionnel )

Systmes logiciels
Mthodes
* Maquettage dapplications informatiques
* Techniques de programmation structure
( langage procdural , objets , vnementiel )
* Assurance, Qualit, Test et Maintenance du logiciel

Outils
* Environnement de dveloppement
( diteur, compilateur, dbogueur,)
* Bibliothque de fonctions
* Gnrateur dcran et dtat

La Gestion de projet informatique


Etape 1 :

Identification des Objectifs de l Entreprise


Systme de dcision

Fonction de
gestion
de lentreprise

Niveau
Stratgique

Niveau
Administratif

Niveau
Oprationnel

F1

Obj.

Obj.

Obj.

F2

Obj.

Obj.

Obj.

Exemple
Etape 1:
Fonction
Direction
Commercial

Rparation
Magasin

Comptabilit

Entreprise Les grands garages du Sud


Activits : Vente & rparation de vhicules neufs et d occasion

Niveau
Stratgique
Amlioration
des ventes (C.A)

Niveau Administratif

Amliorer le contact client


( fichier des prix jour )
Amliorer le contact client
( Suivi des rparations et de
lactivit des ouvriers )
Amliorer :
le contrle des
mouvements de stock
la scurit du stock
Suivi trimestriel de la
comptabilit
Acclrer la paie du
personnel

Niveau Oprationnel

* Calcul des cots dachat e


de vente des V.O et V.N
* Facturation V.O et V.N
Support administratif de la
rparation ( Accueil, Suivi
Client, Facturation )
Connaissance
permanente du stock
Assistance au cours des
rapprovisionnements
* Production dtats
trimestriels
* Automatiser la paie du
personnel

Exemple : Entreprise Les Grands Garages du Sud ( Suite )


On identifie dans chaque fonction de gestion , les domaines qui feront lobjet
dune informatisation .
Grer les Stocks

Cas de la Fonction Magasin


Dcomposition des Activits

Grer les Entres

Commander

Grer les Sorties

Rceptionner
Contrler

Mettre jour

On retiendra les domaines suivants :


DOMAINE

Informations utilises

Informations cres

Commander les pices

Catalogue fournisseurs
Etat du Stock

Bon de commande

Rceptionner

Bon de commande
Bon de livraison

Fiche de stock

Dlivrer les pices

Bon de pices
Demande client

Bon de sortie
Facture pices

Mettre jour le Stock

Fiche de stock
Bon de livraison
Bon de sortie

Fiche de stock jour

Dlivrer
les Pices

Mettre jour
le stock

Etape 2 :

Analyse des Projets


Comit danalyse = Gestionnaires

Identifier les fonctions et domaines de gestion du S.I


Dvelopper les processus de traitement dans chaque
processus en tenant compte des objectifs tracs
Dfinir les classes de donnes utilises ou cres dans
chaque processus
Identifier les projets comme un ensemble de processus
importants informatiser et rpondant aux objectifs

Portefeuille des projets raliser

Etape 3 :

Evaluation des Projets

Comit dvaluation = Gestionnaires + Analystes de systmes

Etude d opportunit des projets

Le projet rpond-il aux objectifs du Systme de dcision


Impact du projet sur le fonctionnement de lentreprise
( analyse de la valeur ajoute )

Etude de faisabilit
Ressources humaines et matrielle
Cot et dure de dveloppement du projet

Spcification des projets

Dfinition des projets


Dtails de mise en uvre (ordonnancement, tapes, dure
documents de spcification
Cahier des charges informatique

Rapport
prliminaire

Rapport de
faisabilit
( projets les
plus adapts )

Etape 4 :

Planification des projets : Schma directeur

Comit dvaluation = Gestionnaires + Analystes de systmes

Plan
Stratgique
Plan
Tactique

Plan daction
par projet

Portefeuille de projets raliser classs par priorit


Dterminer les besoins en quipements matriel et logiciel
Dsigner une quipe de dveloppement ( Chef de projet,
Analystes programmeurs ou SSII )
Engagement financier par projet

Objectifs
Etapes , phases
Calendrier de ralisation
Contraintes

Etape 5 : Conduite de projet = Conception & Ralisation


Equipe technique = ( Chef de projet + Analystes progr.) ou SSII

Le projet entre dans un cycle de vie permanent son dmarrage

Reengineering ( Rtro-conception )

Analyse de
besoins
Etude
Conceptuelle

Etude
Logique

Etude
Physique

Maintenance

But : Collecte des documents de lentreprise en relation avec


le projet
But : Produire des documents de conception ( graphes et
diagrammes de modlisation des donnes et traitements )
But : Affiner ltude conceptuelle en prcisant :
lorganisation des ressources informatiques
le choix des outils de dveloppement ( SGBD, Environnement
de programmation, etc )
Adaptation des modles conceptuels ces outils
But : Traduire les modles logiques en solution informatique :
Modle de donnes => Base de donnes
Modle de traitement => Application informatique
But : Adaptation du matriel et du logiciel informatique
suite une volution du S.I

Analyse et Conception des Systmes d information


But :

* Analyser la ralit du S.I en vue d une informatisation


de son activit
* Formaliser son activit laide de modles
Techniques de modlisation => Domaine en pleine volution

Quelques mthodes de modlisation


Approche relationnelle
MERISE ( 1re gnration/79 ; 2me gnration/88 ) de H.Tardieu et A.Rochfeld
SSADM ( Structured System Analysis And Design Method ) Royaume Uni /1987
AXIAL
Approche oriente objet
OOD ( Object Oriented Design ) de G.Booch / 1986
OOA ( Object Oriented Analysis ) de P.Coad et E.Yourdon / 1991
OOM ( Orientations Objet dans Merise ) de A. Rochfeld / 1992
OMT ( Object Modeling Technique ) de J.Rumbaugh / 1991

Le Modle Conceptuel de Communication ( MCC )


Il permet de reprsenter laide de diagrammes , les flux
dinformation entre les domaines ( centres d activit ) du S.I et entre
ceux-ci et lenvironnement ( acteurs externes )
Elaboration du MCC
* Diffrents niveaux d abstraction sont possibles : 0 , 1 , 2 , 3 .., N
* Niveau 0 = Modle ou diagramme de contexte
Il permet de cerner le domaine d tude par rapport aux autres
domaines connexes et l environnement
* Niveau i = 1, 2, ..., n = Modle ou diagramme de flux de donnes de niveau i
Not : DFD i
* Le passage d un modle de niveau i un modle de niveau i+1 est
obtenue par dcomposition d activits de niveau i

DFD (i+1) = ZOOM sur une activit du DFD(i)

Le Modle de Contexte ( MC )
MC = diagramme de flux de niveau 0
Il reprsente les changes d information entre le domaine d tude
( ex: Gestion des ventes ) , des domaines connexes
( ex : Gestion
du personnel , stock, comptabilit ) et l environnement ( ex : Client )

Diagrammes de flux de donnes ( Exemples )


DFD 1 = Zoom sur le domaine
principal de Gestion
des ventes

DFD 2 = Zoom sur le sous-domaine


Gestion des factures du
domaine Gestion des ventes

Le Modle Conceptuel de donnes ( MCD )


Formalisme = Modle Entit-Association
dvelopp par CHEN aux U.S.A ( 1976 )
puis TARDIEU en France ( 1979 )
Exemple :

0,N

COMMANDE

1,N

Commander
Qt commande

N Commande
Date Commande
1,1

PRODUIT
Ref-Produit
Dsignation
Prix-unitaire

Passer
commande

1,N

CLIENT
Code-Client
Nom-Client

Notion dENTITE
Entit = Reprsentation dun objet concret ou abstrait
du S.I caractris par :
* des proprits ( attributs ) : P1, P2, P3, ..Pn
* un identifiant = Proprit ( P1 ) dont les valeurs
sont discriminantes
* des occurrences ( instances ) multiples
( au moins 2 )
Exemple

Etudiant

Etudiant

Etudiant
125

918

ALAMI

N Inscription

DAOUDI

DRISS

Nom

MOUNIR

MAROCAINE

Prnom

MAROCAINE

Nationalit

Nom Entit
P1
P2
Pn

Etudiant
235
SEBASTIEN
ALBERT
FRANCAISE

Une occurrence d entit = 1 jeu de valeurs prises par les


proprits de lentit

Notion dASSOCIATION
Une Association traduit les liens smantiques existant entre 2 ou
plusieurs entits du S.I et de son environnement
Elle est caractrise par :

Exemple

* Absence d existence intrinsque


* des occurrences ( au moins une )
* des proprits portes ( nombre M ) M = 0, 1, 2, 3,
* une dimension N ( N = nombre d entits rattaches )
* un identifiant obtenu par concatnation des identifiants
des entits rattaches

Vhicule
N Immatr.
Date mise en service
Kilomtrage

Salari
Matricule
Nom

Lou par

Client
N Client
Nom

Association binaire non


porteuse didentifiant
( NImmatr.+N Client )

Affect
Date affect.

Adresse

Service
N Service
Dsignation

Association binaire porteuse d 1 proprit ( Date Affect ) et didentifiant ( Matricule.+ N Service )

Occurrences dassociation
SALARIE

SERVICE

A01
IDRISSI
SALARIE
A12
ALAMI
SALARIE
A05
RAMI
SALARIE
A09
DAOUDI

18/05/92

125
Comptabilit
SERVICE

11/10/91
04/03/93

124
Commercial
SERVICE
106
Magasin

* A01-125 , A12-125 et A05-106 sont des instances


de l association Affect
* Les instances A09 ( entit Salari ) et 124 ( entit Service )
ne participent pas lassociation Affect

Cardinalits d une ASSOCIATION


Cardinalits = Couple de valeurs reprsentant la frquence
mini et maxi ) de participation dune occurrence d entit une
association )
Entit 1

i1 , j1

Association

Entit 2
i2 , j2

i1 , i2 = cardinalits mini
j1 , j2 = cardinalits maxi

Exemple
Salari
Matricule
Nom

Rgles de gestion :

Service
1,1

Affect

1,N

Date affect.

N Service
Dsignation

RG1 - Un salari est affect un et un seul service


RG2 - A un service , on peut affecter un plusieurs salaris

Cardinalits d une Association ( Interprtations )

Cardinalits mini :
0 : Certaines occurrences de lentit peuvent ne pas participer lassoc.
1 : Toute occurrence de lentit participe obligatoirement lassociation
Cardinalits maxi :
1 : Toute occurrence de lentit participe au plus une fois lassociation
N : Toute occurrence de lentit peut participer plusieurs fois lassoc.

Conclusion
* La cardinalit mini traduit la capacit d une occurrence exister
indpendamment ou non des occurrences de lassociation .
* La cardinalit maxi traduit la capacit associative de lassociation pour
lentit considre

Rles dans une Association


Rle = Notion prcisant le rle particulier jou par un ensemble
doccurrences relatives une entit dans une association .
Les rles sont ports sur le schma Entit-Association .
Exemple 1
0,N

CLIENT
Code Client
Nom client
Adresse client

Dpt
expditeur
Dpt
destinataire

Dpt
D1
D3
D1
D2
D4

Livrer
Nbre colis livrs

Recevoir

Dpt expditeur
0,N
Dpt destinataire

Nbre colis reus

DEPOT
Code dpt
Adresse dpt

0,N

0,N

Client Nbre colis livrs Nbre colis reus


C6
1
C2
2
C9
2
C2
5
C6
4

Occurrences de lassociation
Livrer
Occurrences de lassociation
Recevoir

Rles dans une Association ( suite )


Exemple 2 : Cas d une entit rflexive
0,1

SALARIE

Encadrer

N Salari
Nom
Prnom
Fonction
Salari
1
2
3
4
5
6

A pour chef

Est chef de
0,N

N Subalterne
1
5
2
6

N Chef
2
2
4
1

Occurrences de
lassociation

* Les salaris N 1 et 2 participent aux 2 rles de lassociation .


* Le salari N 3 ne participe aucun des rles de l association .
* Les salaris N 4 et 5 participent un seul des rles de l association.

DEPENDANCES FONCTIONNELLES
1 - Cas dune Entit

CLIENT

Code Client

Nom
Prnom

Code Client

Adresse

Nom

Tlphone

Prnom
Adresse

Code Client

( Nom , Prnom , Adresse , Tlphone )

Tlphone

Toutes les Proprits dune Entit sont en dpendance fonctionnelle directe


avec la proprit identifiante de cette Entit

DEPENDANCES FONCTIONNELLES
2 - Cas dune Association hirarchique ( monovalue )
CLIENT

COMMANDE
1,1

N Commande

PASSER

0,N

Code Client
Nom

Date Commande

Adresse

Montant

DF reprsentant lassoc.

N Commande

Code Client

Nom
Adresse

Montant

Date Commande
Occurrences de PASSER
N Commande

1
2
3
4
5
6

Code Client

4
9
4
6
2
4

Tlphone

Une Association Hirarchique est une association binaire (dimension = 2)


dont lune des pattes possde une Cardinalit Maxi gale 1 .
Ce type dassociation est toujours orient suivant le sens de la
dpendance fonctionnelle qui relie les identifiants de ses Entits .
Remarque : La dpendance fonctionnelle Code Client ---> NCommande
nexiste pas car un Client peut passer plusieurs commandes
( exemple du Client N 4 )

DEPENDANCES FONCTIONNELLES
3 - Cas dune Association N-aire multivalue non porteuse de proprits
* Exemple 1 : Association binaire non porteuse

ACTEUR
N Acteur

Une Association multivalue


est une association dont toutes les
pattes possdent une Cardinalit
Maxi gale N ( N >= 2 ) .

FILM
0,N

JOUER

1,N

N Film

Nom

Titre

Prnom

Date
Production

( NActeur , N Film )

DF reprsentant lassoc. ( sans but )

NEmploy
NMdecin

( Nom , Prnom )

NActeur

(Titre , Date Product. )

0,N
0,N

Date

VISITER

Mdecin

N Employ

( Nom Mdecin , Spc. )

Nom
Prnom

( N Employ , N Mdecin , Date )

( Nom , Prnom )

Calendrier

* Exemple 2 : Association ternaire non porteuse

Employ

N Film

DF reprsentant lassoc. (sans but)

N Mdecin

0,N

Nom Mdecin
Spcialit

DEPENDANCES FONCTIONNELLES
3 - Cas dune Association N-aire multivalue porteuse de proprits
* Exemple 1 : Association binaire porteuse

FACTURE

PRODUIT
0,N

COMPORTER

1,N
Rf. Produit

N Facture

Quantit Produit c

Date Facture

Dsignation
Prix Unitaire

Montant

( N Facture , Rf. Produit )

DF reprsentant lassoc.

Quantit Produitc

* Exemple 2 : Association ternaire porteuse

VILLE
N Ville

0,N
Ville dpart

Nbre Habitants

1,N

Route
N Route

0,N

Nom Ville

TRAJET

Distance

Type Route

Ville arrive

( N Ville Dpart , N Ville Arrive , N Route )

Etat route

DF reprsentant lassoc.

Distance

DEPENDANCES FONCTIONNELLES
3 - Cas dune Association Hirarchique Rflexive
EMPLOYE

1,1

N Employ

Subalterne

N Employ

( Nom , Prnom , Date Emb. )

A pour Chef

Nom

1,N

Prnom

DF reprsentant lassociation

Chef

Date Embauche

4 - Cas dune Association Multivalue Rflexive


PERSONNE
N CIN
Nom
Prnom

0,N
Parent

PARENTE

N CIN

( Nom , Prnom )

Enfant
0,2
DF reprsentant lassoc.
( N CIN Parent , N CIN Enfant )

DEPENDANCES FONCTIONNELLES
5 - Cas dune Association de Cardinalits Maxi gales 1
Exemple :
REGLEMENT

FACTURE

0,1

N Facture

1,1

PAYER

Date Rglement

Date Facture

Montant Rglement

Montant Facture

Rgles de gestion:
RG1 - Une facture fait lobjet d un seul rglement
RG2 - Un rglement compense toujours une seule facture
RG3 - A un instant donn , certaines factures peuvent tre impayes .
N Facture

Date
Facture

N Rglement

Ce type dassociation est orient


dans les 2 sens pour indiquer
lexistence de 2 dpendances
fonctionnelles entre les identifiants
des entits de lassociation .

N Rglement

Montant
Facture

Date
Rglement

Montant
Rglement

Notion dentit faible et didentification relative


Une entit faible possde un identifiant relatif qui se rapporte toujours
celui dune entit classique . Lidentifiant absolu de lentit faible est
obtenu en concatnant les identifiants des 2 entits.
Formalisme MERISE 2:

(1,1)

E1

-,N

E2

Exemple :

CHAMBRE
N Chambre
Surface

ETAGE

1,N

N Etage
Nbre de toilettes

( 1,1 )

( 1,1 )

HOTEL
1,N

N Hotel
Adresse Hotel

Entit
HOTEL

Identifiant relatif
-

Identifiant absolu
Code Hotel

ETAGE
CHAMBRE

N Etage
N Chambre

Code Hotel + N Etage


Code Hotel + N Etage + N Chambre

Dpendance Fonctionnelle inter-entits


incluant une Entit faible
Exemple :

CHAMBRE
N Chambre
Surface

( 1,1 )

ETAGE

1,N

N Etage
Nbre de toilettes

Rserver
Dure

1,N

( 1,1 )

HOTEL
1,N

N Hotel
Adresse Hotel

RESERVATION

0,N

Code Hotel + N Etage + N Chambre

N Rservation
Date Rservation
Avance en DH

N Rservation

Rgles de gestion:
RG1 - Une rservation est effectue sur une ou plusieurs chambres
RG2 - Une rservation de client lhtel prcise le nombre de nuits relatif chaque chambre ( dure )
RG3 - Une chambre est identifie relativement un tage et un htel particuliers

Dure

Agrgation sur les Associations ( Associations dassociations )


Le Concept dAgrgation sur les Associations permet de considrer dans certaines situations
une Association-type comme un agrgat ( amalgame ou objet indpendant ) .
Cet objet , considr comme un tout , peut participer dautres associations le liant avec
des entits voire dautres associations .
Exemple :
Le schma entit-association suivant
est correct .
Il ne permet cependant pas de
reprsenter qu'un seul reprsentant
puisse tre responsable d'un type de
produit sur un secteur.
Il est donc porteur d'incohrences par
rapport la ralit.
Le modle entit-association a fait
l'objet d'extension pour pouvoir
exprimer cette contrainte ( mthode
MERISE 2me gnration ) .

SECTEUR

TYPE PRODUIT
type de produit

nom rgion
numro secteur
0,n

0,n

AVOIR POUR RESPONSABLE

0,n

REPRESENTANT
code reprsentant
nom reprsentant
date d'entre
taux de commission

Agrgation sur les Associations ( Suite 1 )


Reprsentations possibles de la contrainte :

( Type Produit , Nom Rgion )


TYPE PRODUIT
type de produit

TYPE PRODUIT
type de produit

0,n

COMMERCIALISER SUR

0,n

SECTEUR
nom rgion
numro secteur

DF

COMMERCIALISER SUR
0,n

Code Reprsentant

0,n

SECTEUR
nom rgion
numro secteur

0,1

AVOIR POUR RESPONSABLE

0,n

DF

REPRESENTANT
code reprsentant
nom reprsentant
date d'entre
taux de commission

Expression de la Contrainte sous forme dune


dpendance fonctionnelle reprsente sur
le schma conceptuel initial .

0,n

REPRESENTANT
code reprsentant
nom reprsentant
date d'entre
taux de commission

Reprsentation de la Contrainte sous forme dune


association dassociation

Agrgation sur les Associations ( Suite 2 )


Notion de Pseudo-Entit :
Lorsque les occurrences dune Association-type sont appeles participer une autre Association ,
on peut considrer que ces occurrences sont celles dune pseudo-entit forme par lagrgat de cette
association-type .
Lidentifiant de la Pseudo-Entit est alors celui de lassociation-type .
TYPE PRODUIT
type de produit

COMMERCIALISER SUR
0,n

0,1

AVOIR POUR RESPONSABLE

0,n

REPRESENTANT
code reprsentant
nom reprsentant
date d'entre
taux de commission

SECTEUR
0,n

nom rgion
numro secteur

Reprsentation
dune Pseudo-Entit :
On utilise un cadre pour
reprsenter la frontire de la
pseudo-entit ( agrgat
dassociation ) .
Le couple de cardinalits
reprsent du ct de la
pseudo-entit se rfre aux
occurrences de lassociation
Commercialiser sur .

Exemple de Modlisation avec les Pseudo-Entits


On veut modliser lorganisation pdagogique dun tablissement scolaire dont les rgles de
gestion sont les suivantes :
RG1 - Chaque anne , des modules de cours sont dfinis en prcisant la filire de formation et
la matire ( exemple : Module d Anglais de la filire Informatique pour lanne 2002 )
RG2 - Un module de cours est toujours enseign dans la mme salle . Une salle peut accueillir
plusieurs modules de cours suivant sa disponibilit .
RG3 - On veut mmoriser dans le modle le volume horaire total de chaque module de cours .

MCD n 1
Matire

Filire
1,N

1,1
Module de Cours

1,N

ENSEIGNER

1,N

DANS

Salle

Vol. Horaire Total

1,N

Question : Dterminer le Graphe des


dpendances fonctionnelles associ ce modle .

Anne
Les entits Filire , Matire , Anne et Salle possdent chacune un identifiant sous forme de numro et des
proprits spcifiques . Ces proprits ne sont pas reprsentes sur le schma pour un besoin de clart .

Exemple de Modlisation avec les Pseudo-Entits ( Suite 1 )


Modifier ou complter le MCD n 1 pour tenir compte de la rgle de gestion suivante :
RG4 - Un module de cours est assur par un ou plusieurs enseignants ( professeurs de cours , de
TD ou de TP ) et on veut mmoriser le volume horaire partiel du module associ chaque
professeur .

MCD n 2
Matire

Filire

1,1

ENSEIGNER

1,N

DANS

1,N

Salle

1,N
Module de Cours
Vol. Horaire Total

1,N

Anne

1,N

ASSURER

1,N

Vol. Hor. Partiel

Professeur

1,N

Question : Dterminer le Graphe des dpendances fonctionnelles associ ce modle .

Type Cours

Exemple de Modlisation avec les Pseudo-Entits ( Suite 2 )


Modifier ou complter le MCD n 2 pour tenir compte de la rgle de gestion suivante :
RG5 - Les tudiants obtiennent chaque trimestre , une note partielle avec chacun des enseignants
dun module ( prof. de cours , de TD , de TP , etc.. ) . On calcule ensuite une note moyenne
de module pour le trimestre . On veut mmoriser dans le modle les notes partielles ainsi que
la note moyenne .
Pseudo-Entit Partie de Module

MCD n 3

Pseudo-Entit Module

Filire

Professeur

Matire

1,N

1,N
Module de Cours

1,N
1,N

Note partielle

ASSURER

Vol. Hor. Partiel

Vol. Horaire Total

1,N

1,N
Etudiant

1,N

Anne

Notation
Partielle

1,N

Type Cours

1,N
Trimestre

1,N
1,N

1,1
ENSEIGNER
DANS

1,N
1,N

Salle

NOTATION

Note Moyenne

Question : Dterminer le Graphe des dpendances fonctionnelles associ ce modle .

Dpendances Fonctionnelles particulires


et Reprsentations MERISE 2
E1

1,1

DF

-, -

E2

DF forte inter-entits

E1

0,1

DF

-, -

E2

DF faible inter-entits

E1

1,1

-, -

E2

CIF

CIF = Contrainte dintgrit fonctionnelle


= DF forte traduisant un lien trs stable

E1
-,1

E2

-, DF

DF Entit - Association

Cette classe de DF peut tre faible ou forte ou une CIF


de la mme faon quune DF inter-entits

Pseudo-entit

Remarque :

les DF particulires prsentes sont toujours orientes

Dpendances Fonctionnelles particulires


( Exemples )
Suivre

1,1

CLIENT

REPRESENTANT

0,N

N Reprsentant

N Client

1,1

Nom Client

Nom Reprsentant

0,N

Taux de commision

Passer

Adresse Client

SUIVRE reprsente une DF forte mais instable


PASSER reprsente une CIF : c est une DF forte et stable

DEPARTEMENT
N Dpartement

1,N
Grer

1,N

TYPE DE CLIENT
Code Type Client
Libell Type Client

REPRESENTANT
0,1

Affecter

1,N

N Reprsentant
Nom Reprsentant
Taux de commision

AFFECTER reprsente une DF faible entre l association


GERER et l entit Reprsentant

Notion de Dpendance Fonctionnelle


Dfinition : 2 proprits A et B sont en DF si la connaissance dune
valeur de A dtermine une et une seule valeur de B .
On dit que A
dtermine fonctionnellement B .
Formalisme :

A
( A, B, )
A

Exemples :

: 1 source , 1 but

: plusieurs sources , 1 but

( X, Y, )

: 1 source , plusieurs buts

N Client

Nom Client

Nom Client

N Client

Prnom Client

N Client

( Rf-prod , N Commande )
Rf-prod

( pas de DF )
( pas de DF )
Qt prod. commande

( Libell prod. , Prix unit. Prod. )

AXIOMES ET PROPRIETES DES


DEPENDANCES FONCTIONNELLES
AXIOMES
1 - Rflexivit :

2 - Augmentation :

Y =>

{X

Y et X

3 - Additivit :

Y,Z

X,Z

4 - Projectivit :

5 - Transitivit :

{X

Y et Y

6 - Pseudo-transitivit :

{X

Y et Y, Z

Z } => X

=> { X

Y et

Y,Z
X

Z } => X

Z }
Z

W } => X, Z

PROPRIETES
* DF lmentaire : X
* DF directe :

Y lmentaire si il

Z X tel que Z
Y directe si il Z tel que X
Z et Z

Y
Y

Graphe de Dpendances Fonctionnelles


GDF = Reprsentation graphique de lensemble des DF unissant les
proprits dans un domaine dactivit du systme dinformation . Ces
proprits sont obtenues partir du dictionnaire de donnes du domaine .
Exemple :

GDF du domaine Gestion commerciale dans une entreprise


Date

N Client
Nom
Client

Adresse
Client

Tl.
Client

N Produit

Libell
produit

N Catgorie
Libell
catgorie

Qt prod.commande,
Mont. ligne commande

N fournisseur
Nom
fournisseur

Adresse
fournisseur

Prix achat
produit

REGLES DE NORMALISATION
Dfinition : Ce sont des rgles permettant dobtenir une reprsentation
des donnes du S.I ( GDF et MCD ) normalise . La normalisation
limine toute redondance dinformation et conduit un modle de
donnes cohrent et optimis .
1re Forme Normale ( 1FN )
Une entit ou association est dite en 1FN si elle possde un identifiant fiable et
si toutes ses proprits sont atomiques ( limination des proprits multivalues )
Exemples doccurences

Exemple :

PERSONNE

N CIN

Nom

Mont. Salaires

N CIN

J201816 ALAMI
8000 ; 8000 ; 9000
M4123
FAOUZI
7500 ; 7500 ; 8000
S1827
SABIR
4000 ; 4500 ; 5000
Mont. Salaires
Montants salaires est une proprit multivalue ( non atomique )
Nom Personne

Modle
normalis
en 1FN

PERSONNE
N CIN
Nom Personne

0,N

Affecter
Mont. salaire

0,N

MOIS
N Mois
Libell Mois

2me Forme Normale ( 2FN )


Une association est dite en 2FN si elle est en 1FN et si toutes les DF entre ses proprits sont lmentaires

Exemple :

PRODUIT
1,1

N Produit

Fournir

1,N

N Fournisseur

Prix dAchat Prod.

Libell Produit

FOURNISSEUR
Nom fournisseur
Adresse fournisseur

2 DF dcoulent du modle :

1 Prix d Achat Produit

( N Produit , N fournisseur )
N Produit

2 N Fournisseur
3 Prix d Achat Produit

Or on a aussi :
N Produit
La DF N 1 nest donc pas lmentaire => Le modle doit tre normalis .

PRODUIT
N Produit

1,1

Fournir

N Fournisseur
Nom fournisseur

Libell Produit
Prix dAchat Prod.

1,N

FOURNISSEUR

MCD normalis en 2FN

Adresse fournisseur

3me Forme Normale ( 3FN )


Une entit ou une association est en 3FN si elle est en 2FN et si toutes les DF entre ses proprits sont
directes ( limination des dpendances fonctionnelles transitives )

Exemple :

3 DF dcoulent du modle :
1
N Produit

PRODUIT
N Produit

2
3

N Produit
N Produit

Libell Produit
Code Famille

Libell Produit
Code Famille
Libell Famille

Il existe de plus la DF suivante :


4
Code Famille
Libell Famille

Libell Famille

La DF N 3 n est pas directe car transitive par rapport aux DF N 2 et 4


=> Le modle doit tre normalis

PRODUIT
N Produit

1,1

Appartenir

Libell Produit

1,N

FAMILLE
Code Famille
Libell Famille

MCD normalis en 3FN

PERSONNALISATION DASSOCIATIONS
BUT : Transformer une association en entit lorsquil y a une perte smantique dans le MCD par
rapport aux rgles de gestion du S.I .

Exemple :

ASSUREUR
N Assureur

CLIENT
1,N

Fournir

1,N

Date signature
Date chance
Mont. Prime

Nom Assureur

N Client
Nom Client
Adresse Client

1,N

Adresse Assureur

VEHICULE

Selon le modle , le client ne peut signer quun seul contrat


dassurance pour un vhicule donn avec le mme assureur
daprs la structure de lidentifiant de lassociation .

N Immatr.
Modle
Date mise en service

Solution : Personnaliser lassociation Assurer en entit

CLIENT

ASSUREUR
N Assureur
Nom Assureur

1,N

1,1

CIF

Adresse Assureur

Un client peut signer plusieurs contrats


dassurance relatifs au mme vhicule
chez le mme assureur .

CONTRAT
N Contrat
Date Signature
Date chance

CIF

1,N

1,1

N Client
Nom Client
Adresse Client

VEHICULE

1,1
1,N

Mont. Prime

CIF

N Immatric.
Modle
Date mise en service

PERSONNALISATION DE PSEUDO-ENTITES
BUT : Transformer une pseudo-entit en entit lorsquil y a participation de lassociation formant
la pseudo-entit une ou plusieurs autres associations dans le but de simplifier le modle
conceptuel des donnes .

Exemple :

EMPLOYE
N Employ
Nom Employ

1,N

Libell Tche

Date Attribution

0,N

ANNEE

N Tche

Attribuer

Prnom Employ

ANNEE

TACHE

0,N

Affecter
1,N

1,N
FONCTION
N Fonction
Libell Fonction

Anne
Fonction
Employ

1,N
1,N
1,N

CIF
CIF

1,1
1,1

Code Employ Op.

1,1

CIF

Employ
Oprationnel

Personnalisation de la
pseudo-entit en entit
Employ Oprationnel

1,N

Attribuer
Date Attribution

0,N
TACHE
N Tche
Libell Tche

FORME NORMALE DE BOYCE-CODD ( BCNF )


Une association est en BCNF si elle est en 3FN et si une entit relie par une DF l association ( ou toute
proprit non identifiante de l association ) nest pas source de DF vers une partie de lassociation .

Schma suppos en 3FN mais non en BCNF


E1
Pseudo
Entit

ASSOC.

-,1
- , -

E2

DF

F
- , 1

DF

Schma normalis en BCNF

E1
ASSOC.

- , -

- , -

ASSOC.

- , F

-,1

DF

- , E2

FORME NORMALE DE BOYCE-CODD ( suite )


Exemple
MATIERE

1,N

N Matire
Intitul Matire

Pseudo-entit
COURS
ANNEE

1,N

ANNEE

SALLE

Enseigner

1,N

1,1

Nom Professeur

N Professeur

0,N
1,N

Nom Professeur
Enseigner

ANNEE

1,N

N Salle
Libell Sallle

* Un cours ( Prof + Matire + Anne ) est enseign dans une


mme salle le long de l anne
* Dans une salle , on enseigne la mme matire chaque anne
* Un enseignant peut enseigner une plusieurs matires
chaque anne

N Professeur

PROFESSEUR

DF

0,N
PROFESSEUR

ANNEE

1,1

DF

1,N

Affecter

N Salle
Libell Sallle

MATIERE
N Matire
Intitul Matire

Pseudo-entit Prof. Oprationnel

SALLE

1,N

Schma normalis en BCNF

1,1
1,N

DF
Rserver

4me Forme Normale ( 4FN )


Une association est dite en 4FN si elle est en BCNF et si :
- elle ne cache pas de DF ou de CIF de degr infrieur
ou
- elle est dcompose pour montrer les DF ou CIF quelle comporte

Exemple 1 :

0,N

Classe

0,N

Enseigner

0,N

Rgles de gestion
RG1 - Un professeur peut enseigner une matire dans
plusieurs classes et plusieurs matires dans
une mme classe
RG2 - Dans une classe, une matire ne peut tre
enseigne que par un seul professeur
Ce modle est incorrect car il ne tient pas compte de la rgle
RG2 qui indique lexistence dune CIF de degr infrieur .

Classe
0,N

Est enseigne

1,1

CIF

1,N

0,N

Matire

Prof.

Modle normalis en 4FN

Prof.

Matire

Exemples doccurrences de Enseigner


N Classe

NMatire

C1
C1
C2
C4
C1

M1
M1
M3
M3
M8

N Prof
P1 !
P2 !
P3
P3
P1

Occur. de Est enseigne

Occur. de la CIF

N Classe N Mat.
C1
M1
C2
M3
C4
M3
C1
M8

NCl.+NMat. NProf.
C1+M1
P1
C2+M3
P3
C4+M3
P3
C1+M8
P1

4me Forme Normale ( 4FN ) (suite)


Exemple 2 :

0,N

Classe

0,N

Prof.

Enseigner

0,N

Matire

Rgles de gestion
RG1 - Un professeur peut enseigner une matire dans
plusieurs classes et plusieurs matires dans
une mme classe
RG2 - Dans une classe, une matire peut tre
enseigne par plusieurs professeurs
( prof. de cours, TD et TP )

Exemples doccurrences de Enseigner


N Classe
C1
C1
C2
C4
C1

NMatire

N Prof

M1
M1
M3
M3
M8

Pour les nouvelles rgles de gestion , le modle d association ternaire ne


cache aucune DF ou CIF de degr infrieur
=> Il ne doit pas tre dcompos et se trouve dj en 4 me forme normale

P1
P2
P3
P3
P1

Quelques rgles de construction du MCD dduites


de lapplication des rgles de normalisation
* Une entit ou association est dcrite l aide de proprits atomiques ( proprits non multivalues )
* Une proprit ne doit figurer quune seule fois dans le Modle Conceptuel de Donnes ( MCD )
* Une entit ou association doit tre pleinement identifie . Son identifiant doit tre discriminant et
prendre des valeurs toujours distinctes
* Une association ayant au moins une cardinalit maxi gale 1 ne porte jamais de proprit
( cas d une DF faible , forte ou CIF )
* Une association de dimension N >= 3 n a pas de cardinalits maximum gales 1 .
* Une squence d associations formant une boucle oriente doit tre dcompose et normalise
en BCNF
* Une association doit tre dcompose chaque fois quil existe une DF ou une CIF de degr
infrieur impliquant une ou plusieurs des entits qui lui sont rattaches ( qui forment sa collection )

LES CONTRAINTES SEMANTIQUES


Dfinition : Ce sont des contraintes particulires du S.I
exprimes sous forme de rgles de gestion additionnelles .
Certaines de ces rgles sont dj prises en compte par la
structure mme du modle Entit-Association .
Dautres doivent tre reprsentes sur ce modle par ajout
doprateurs ou de conditions logiques entre les entits ,
les associations ou les proprits .
Types de contraintes Smantiques
1 - Les contraintes structurelles
2 - Les contraintes logiques
3 - Les contraintes entre valeurs de proprits
4 - Les contraintes de stabilit

LES CONTRAINTES SEMANTIQUES


1 - Les contraintes structurelles
Elles sont dj exprimes travers les rgles de construction du modle Entit-Association .
* Intgrit dentit et dassociation
- 2 occurrences d entit ou d association ne peuvent avoir la mme valeur de l identifiant .
- A chaque occurrence d entit ou d association , on attribue une valeur unique et non nulle de
l identifiant .
* Intgrit rfrentielle
- Une occurrence d association ne peut exister que si les occurrences correspondantes des entits
rattaches lassociation sont dfinies chacune dans son entit respective .
- On ne peut supprimer une occurrence d entit si cette occurrence est engage dans une occurrence
d association .
- On doit mettre jour la valeur de lidentifiant d une association chaque fois que la valeur
correspondante de lidentifiant dune entit participante lassociation est modifie .
- Cas dune DF faible : on peut crer une occurrence de lobjet rfrenant ( entit ou association
source ) sans crer l occurrence correspondante de lobjet rfrenc ( entit ou association but )
- Cas dune DF forte ou CIF : il est interdit de crer une occurrence de lobjet rfrenant qui ne
dsigne aucune occurrence ou bien une occurrence non encore dfinie de lobjet rfrenc .
- Cas dune CIF : les occurrences dune association de type CIF ne peuvent pas tre mis jour une
fois quelles sont cres .

LES CONTRAINTES SEMANTIQUES


2 - Les contraintes logiques
2.1 - Les contraintes ensemblistes entre associations
Ce sont des contraintes qui s expriment sous forme de clauses d inclusion , d exclusion , de
partition , d galit ou de composition des occurrences d une association par rapport celles
d une autre association .

Matire

A ) Contraintes dinclusion

0,N

Sait enseigner

0,N

Exemple :

Classe

0,N

Enseigne

0,N
0,N

Prof.

Occurrences de Enseigne
N Prof.
P1
P2
P1
P5
P3

NMatire
M1
M3
M8
M1
M4

N Classe
C1
C2
C1 !
C3 !
C5 !

Occurrences de Sait enseigner


N Prof.

NMatire

P1

M1

P2

M3

M4 la contrainte d inclusion
Les occurrences N 3 , 4 et 5 de l association Enseigne P5
sont impossibles avec
car : P1 ne sait pas enseigner M8
P5 ne sait pas enseigner M1
P3 ne sait pas enseigner M4

A ) Contraintes dinclusion ( suite )


Les contraintes dinclusion reprsentent gnralement des DF entre 2 associations ( associations dassociations )
ou encore des DF entre une entit et une association .
0,N

Exemple

Classe

0,N

0,N

Enseigner

On doit orienter la DF pour indiquer la prsence et le sens de la


contrainte dinclusion si celle-ci nest pas explicitement reprsente .

Autre exemple

0,N

0,N

0,N

0,N

Employ

0,N

Produit

0,N

0,N

0,N

0,N

0,N

Service

Est affect

Est autoris

Employ

Est gr

Produit
0,N

Sait Enseigner

Matire

0,N

Est affect
I

Est autoris

Prof.

Est gr

0,N

Service

Laffectation dun employ un


produit dans un service nest possible
que si cet employ est autoris grer
ce produit et si le produit est gr dans
ce service .

La DF est affect reprsente une


association dassociations . Elle est
doublement oriente pour indiquer
lexistence de 2 contraintes
dinclusion .

B ) Contraintes dexclusion
Exemple 1 : Contrainte dexclusion sur association
Elve

0,N

Personne

0,N

0,N

Cours

0,N

Enseignant

Une personne peut tre un lve ou un enseignant ou autre chose .


Une mme personne ne peut tre simultanment un lve et un enseignant dans le mme cours :
on ne peut pas avoir la mme occurrence ( personne , cours ) qui participe simultanment aux associations
Elve et Enseignant .

Exemple 2 : Contrainte dexclusion sur rle


0,N

Une mme personne ne peut


tre la fois lve et
enseignant mme dans
des cours diffrents .

Personne

Elve
0,N

0,N

Enseignant
0,N

Cours

C ) Contraintes de totalit ou de couverture ( OU inclusif )


CHEQUE
COTISATION

0,1

CIF

1,N

N Cotisation

Date Chque

Date chance
Mont. Cotisation

N Chque

0,1

Une cotisation peut tre rgle par chque ou la caisse ou


encore par les 2 modes de paiement .
La contrainte indique que la cotisation ne peut pas
tre rgle par un mode de paiement en dehors des
2 modes prvus .

Mont. Chque

V
1,N

CIF

BON DE CAISSE
N Bon de caisse
Date Bon de caisse
Mont. Bon de caisse

D ) Contraintes de partition ( OU exclusif )


CHEQUE
COTISATION

0,1

CIF

1,N

N Cotisation

Date Chque

Date chance
Mont. Cotisation

N Chque

0,1

Une cotisation est rgle terme


obligatoirement par un seul des 2 modes de paiement .
Contrairement au cas de lexclusion , il y a ncessairement
cration dune occurrence terme dans lune ou lautre des
associations partitionnes .

Mont. Chque

CIF

1,N

BON DE CAISSE
N Bon de caisse
Date Bon de caisse
Mont. Bon de caisse

E ) Contraintes de simultanit ou dgalit


CHEQUE

Exemple 1

COTISATION

CIF

0,1

1,N

N Cotisation

Date Chque

Date chance
Mont. Cotisation

0,1

1,1

Commande

1,N

Mont. Chque

CIF

Une cotisation doit tre obligatoirement rgle terme en


utilisant les 2 modes de paiement ( une partie par chque et
le complment par bon de caisse ) .
Pour rgler une cotisation , il y a cration simultane dune
occurrence dans chacune des 2 CIF .
Exemple 2

N Chque

1,N

BON DE CAISSE
N Bon de caisse
Date Bon de caisse
Mont. Bon de caisse

Passer

1,N

Client

=
Porter sur

0,N

Article

Quantit

Une commande portant sur des articles est obligatoirement passe par un client et rciproquement .
Si une commande client comporte M articles , il faut crer simultanment :
* 1 occurrence dans lassociation Passer
* M occurrences dans lassociation Porter sur

3 - Les Contraintes entre valeurs de proprits


Ces contraintes napparaissent pas dans la reprsentation graphique du MCD .
Elles correspondent des rgles smantiques exprimes comme des conditions vrifier sur les proprits du
MCD .
Classification des contraintes
Type
Simples
Ensemblistes

Exemple 1 :

Statiques
Le salaire dun employ doit
tre > = au SMIC

Dynamiques
Le nouveau salaire d un
employ doit tre > lancien

La moyenne des salaires des


employs doit tre < = 5000 DH

La moyenne des salaires des


employs ne doit pas dpasser
de plus de 5 % la moyenne des
anciens salaires .

Contrainte statique simple

EMPLOYE

SMIC

N CIN
Nom Employ
Prnom Employ
Salaire Employ

x Employ
Alors Salaire Employ ( x ) > = SMIC
Sinon Ecrire Salaire Employ incorrect

Exemple 2 :

Contrainte statique simple

PERSONNE

Epoux

0,N

Mariage
N CIN

Date mariage

Nom Personne
Prnom Personne

Epouse

Sexe Personne

0,N

x Personne et y Personne
Si Mariage ( x ) = y
Alors Sexe Personne ( x ) = Sexe Personne ( y )
Sinon Ecrire Mariage impossible car sexes identiques
Exemple 3 :
EMPLOYE

Contrainte statique ensembliste


1,1

DF

0,N

SERVICE
N Service
Nom Service

N CIN
Nom Employ
Prnom Employ
Salaire Employ

Pour tout x Employ


Si Nom Service ( x ) = ACHATS
Alors MOY ( Salaire Employ ( x ) ) <= 5000 DH
Sinon Ecrire Moyenne des salaires du service ACHATS > 5000 DH

Exemple 4 :

Contrainte de transition simple

EMPLOYE

x Employ
Alors Salaire Employ ( x ) >= A ( Salaire Employ ( x ) )
Sinon Ecrire Le salaire dun employ ne peut pas dcrotre

N CIN
Nom Employ
Prnom Employ
Salaire Employ

Loprateur A permet de rfrencer lancienne valeur dune proprit


Exemple 5 :

Contrainte de transition ensembliste

EMPLOYE
N CIN
Nom Employ
Prnom Employ

1,1

DF

0,N

SERVICE
N Service
Nom Service

Salaire Employ

Pour tout x Employ


Si Nom Service ( x ) = ACHATS
Alors MOY(Salaire Employ (x) ) <= MOY( A ( Salaire Employ(x) ) ) * 1.05
Sinon Ecrire Augmentation de moyenne des salaires trop importante

4 - Les Contraintes de Stabilit


Ce type de contraintes permet de traduire le caractre plus ou moins stable de chacun des
lments utiliss dans la modlisation des donnes : associations , entits , proprits .
a ) Association dfinitive ( D )
Une association peut tre dfinitive ou non par rapport une entit faisant partie de sa collection dentits .
=> Une occurrence de lassociation ne peut tre dtruite que si loccurrence de lentit
par rapport laquelle elle est dfinitive nest pas elle-mme dtruite .
ADHERENT

(D)

CLUB SPORTIF

Adhsion

N Adhrent
Nom Adhrent
Adresse Adhrent

1,N

N CLUB

0,N

Nom CLUB

Une adhsion effective


ne peut tre annule
que si ladhrent associ
est lui-mme dtruit .

b ) Patte dassociation verouille ( V )


Lorsquune occurrence de lentit associe une patte verouille est cre , toutes les occurrences
de lassociation o elle participe sont simultanment cres . On ne tolre ensuite aucun ajout ou
suppression par rapport ces occurrences dassociation .
La notion dassociation avec patte verouille inclut la notion dassociation dfinitive .
Exemple :

TYPE DE SINISTRE
N Type Sinistre
Libell Type

(V)

1,N

Concerner

0,N

GARANTIE GEN.
N Garantie Gn.
Libell Garantie

c ) Proprits stables , non stables , calcules et non calcules


Une proprit est stable lorsque sa valeur nest pas sujette modification .
Une proprit est calcule lorsque sa valeur est obtenue par application dune rgle de calcul
( arithmtique , logique ou mixte ) .
Elle est non calcule lorsque sa valeur est obtenue par collecte ou saisie .
Exemples
Proprit

Stables ( S )

Non stables ( NS )

Calcule ( C)

Montant Cotisation

Chiffre daffaire annuel

Non calcule ( NC )

Date de Naissance

Adresse Personne

Reprsentation dans un MCD


ASSURE

Adhrer
1,N

Adresse
Age ( C )
Date Naissance ( S )

N Appel ( S )

Taux Cotis. ( S )
Mont. Cotis. ( S, C )

N Matricule ( S )
Nom Assur

APPEL COTISATION

0,N

Date Appel ( S )

0,N

Total Cotis. ( S , C )

1,1

GARANTIE GEN.

CONTRAT

N Garantie ( S )

N Contrat ( S )

Libell Garantie

Date Souscription ( S )

CIF
0,N

Le Modle Conceptuel de Traitement Analytique ( MCTA )


But : Reprsentation formelle des activits qui sexercent dans un domaine
d tude du S.I .
Ces activits sont regroupes sous forme d un ou plusieurs processus de
traitement comportant chacun une ou plusieurs oprations lmentaires .
EV1

Processus 1

EV2
EV3

EV4

EV5

EV9

Processus 2
Oprations lmentaires

Domaine du S.I

EV8
EV6

EV7

EV10

EV1 , EV2 : Evnements reus (externes)


EV6, EV7, EV10 : Evnement produits (externes)
EV8 : Evnement produit ( interne )
EV4, EV5, EV9 : Evnements de transition (internes)
EV3 : Evnement temporel ( interne )

Notion de Processus de Traitement


Un processus reprsente un ensemble dvnements et doprations conscutifs
concourant un mme but .
Les vnements finaux produits par un processus sont stables ( ils nentranent
pas de raction immdiate du S.I )
Evnements reus
ou contributifs
( externes , internes
ou temporels )

EV1
EV2
EV3

Processus

EV4
EV5

Evnements
produits ou mis
( internes ou externes )
= Evnements stables

Exemple : Dans le domaine Assurance Auto d une Compagnie dassurance , on distingue


3 processus de traitement :
P1 - La prospection
P2 - La Gestion des Contrats
P3 - La Gestion des Sinistres

Notification lexpert
Honoraires Expert
Avis de rejet au client

Dclaration
Accident

Gestion des
Sinistres

Avis d accord au client


Chque dindemnisation au client

Exemple dvnements contributifs et mis dans un processus

Notion dvnement
Un Evnement peut reprsenter par rapport au domaine dtude du S.I :
- un stimuli ou excitation : vnement reu partir dun acteur externe
- une raction du domaine : vnement produit ou mis au niveau dun
processus . Cet vnement peut tre :
* un vnement interne de transition au sein du processus
* un vnement interne final produit par le processus
* un vnement externe final produit par le processus vers
un acteur externe
- une contrainte de temps : vnement temporel
Remarque : Tous les vnements externes reus et produits par un processus doivent correspondre
des flux externes dans le modle conceptuel de communication ( MCC) du domaine tudi.
Exemple : Flux externes reliant le domaine Assurance Auto et lacteur externe Assur
Dclaration d accident

Assur

Evn. reu
Chque d indemnisation
Evn. produit

Compagnie dassurance :
Domaine
Assurance Auto

Notion dopration
Une opration est dfinie comme un ensemble dactions excuter sans attente et dun seul trait au niveau
dun processus . Elle est dclenche par la survenance dun seul vnement ou de plusieurs vnement
synchroniss.
Une opration ne peut pas comporter des actions intermdiaires conditionnes par la ralisation dun
vnement ( attente ) . Dans un tel cas , il faut crer une autre opration et reprsenter lvnement dattente
entre les 2 oprations .
Une opration traduit des dcisions et des rgles de gestion exprimant des traitements dans le S.I.
Une opration peut interagir avec les objets du MCD ( entits et associations ) lorsquelle effectue
un traitement sur les donnes ( ajout , mise jour ou suppression doccurrence dans les entits et les
associations ) .
Nom de lacteur

Evn. reu

Evn. reu

Expression logique
Nom de l opration
Traitement

- Action 1
- Action 2
- Action N
Condition
dmission R1
Nom de lacteur

Evn. produit

Condition
dmission R2

Evn. produit

Donnes
mmorises
dans les objets
du MCD
( entits et
associations )

Evn. produit

Exemple de schma conceptuel de traitement

Domaine
Assurance Auto
Processus P3 :
Gestion des Sinistres

Remarque : Linteraction avec les donnes na pas t reprsente sur le schma de processus .

Interaction Traitements - Donnes


Reprsentation et conventions MERISE 2
Interrogation
( lecture seule )

Objet A
C1

Opration
dans un
processus
du MCTA

Etat actuel

C2

C3

Cration
doccurrence

Objet A
Cr

Objet A
Etat initial 1
Etat initial 2

Mise jour
doccurrence

Etat final

Objet A
Lobjet A dsigne une entit
ou une association du MCD
C1,C2,C3,C4,C5 sont des conditions
logiques vrifier sur les donnes
du MCD

C1

Etat initial

Etat final 1
Etat final 2

Objet A
Etat actuel

Supprim

C4
C5

Mise jour
doccurrence
Suppression
doccurence

Exemple de MCTA avec reprsentation des interactions


Traitements - Donnes
Schmas de 2 processus lmentaires dans une gestion commerciale
Processus Commande

Client

Arrive
commande

Prospect
Portefeuille

Portefeuille

Produit
En stock

C1

Enregistrer commande
Commande

- Saisie ordinateur
Stock suffisant

Stock insuffisant

En attente
En livraison

C1
C1

C1

Bon livraison
Commande
en livraison

Commande
en attente

Cr

C1 : Si la quantit en stock est suffisante pour assurer la livraison ( la quantit en stock est mise jour )

Processus Facturation
Bon livraison
Livraison
en cours

Cr

Factur

Commande
En attente
En livraison

En livraison

Facturer les produits


Facture

- Saisie ordinateur
- Impression facture
Facture
imprime

En attente
rglement

Livraison
effectue

ET

Facture

Enregistrer Rglement
- Saisie ordinateur
Facture
rgle

En attente
rglement

Facture
rgle

Autre exemple
Service
Demande
de promotion
employ

C1

Responsable

Affecter responsabilit
- Saisie ordinateur

Employ
responsable
de service

Employ

La dcision de promotion dun employ en tant que chef de service est


soumise la condition C1 :
Lemploy doit avoir : - au moins 4 ans danciennet dans le service
- lchelle 11
- gr au moins 10 grands projets

Linteraction de lopration conceptuelle avec les donnes se traduit par


la lecture dune occurrence dans chacune des entits Service et Employ
et la cration dune occurrence correspondante dans l association responsable

Graphe dOrdonnancement des Evnements ( GOE )


Le dveloppement du MCTA est difficile lorsque lordre d enchanement des
vnements et leur synchronisation nest pas tabli au pralable .
Le GOE est un graphe intermdiaire permettant de faciliter la construction dun
modle de traitement . Il affiche tous les vnements intervenant dans un
domaine en indiquant leur succession laide de flches et leur synchronisation
laide d un segment vertical .
Exemple de GOE dun domaine
EV4

EV2
EV1

Existence dune synchronisation


et d une opration dans le MCTA

EV5

EV3

EV6
EV7

EV8
EV10
EV9

Tableau des synchronisations du GOE exemple


Opration
Op. 1
Op. 2
Op. 3
Op. 4

Synchronisation
Nant
EV1 ou EV2
EV5 et ( EV6 ou EV7 )
EV8 et EV9

Remarque
Les oprations identifies dans
le GOE dun domaine doivent tre
affectes aux processus de traitement
de ce domaine puis libelles et
analyses au niveau du MCTA

Le Cycle de Vie des Objets ( CVO )


Dfinition : Le cycle de vie dun objet dcrit lensemble des tats que peut
prendre un objet au cours de son cycle de vie ainsi que les
vnements qui font passer cet objet d un tat dans un autre tat
( vnements de transition ) .
Objectifs :

- Synthtiser le cycle de vie de chacun des objets du S.I


- Aider la construction du MCTA au niveau de l interaction
traitements - donnes en connaissant les tats de transition des objets .
- Complter le MCD en mettant en vidence des proprits spcifiques aux tats
pris par les objets au cours de leur cycle de vie .

MCTA et MCD

Notions principales
Objet
Etat dobjet
Evnement de CVO
Transition

Processus denrichissement

CVO

Dfinitions
Entit dynamique du MCD ( susceptible de changer d tat au cours de son cycle de vie )
Ltat dun objet est un stade transitoire par lequel passe un objet durant son cycle de vie
Un vnement dclenche la transition d un tat un autre par lintermdiaire dune
opration . Un mme vnement peut dclencher plusieurs transitions .
Une transition d un objet correspond au passage d un objet d un tat un autre tat .
Une transition peut tre conditionnelle .

Rgles de construction dun CVO


* Cration ( Etat initial dun objet )
Objet A
Etat initial

EV

* Suppression ( mort de lobjet = occurrence dune entit dynamique du MCD )


Objet A
Etat final

EV

* Squence avec transition simple


Objet A
Etat 1
Objet A
Etat 1

EV

EV

C1

Objet A
Etat 2

Sans condition

Objet A
Etat 2

Avec condition

Rgles de construction dun CVO ( suite )


* Squence avec transition simultane sur plusieurs variables dtat
Objet A
Etat 1 / var1
Etat 1 / var2

Objet A

EV

Etat 2 / var1
Etat 2 / var2

* Alternative
Objet A
Etat 1

C1

EV
C2

Objet A
Etat 2
Objet A
Etat 3

* Itration

Objet A
Etat 1

EV

Objet A
Etat 2

Rgles de construction dun CVO ( suite )


Interaction entre plusieurs CVO
* Evnement dpendant de
ltat de plusieurs objets
Objet A
Etat 1

* Evnement avec transition dtat


sur plusieurs objets
EV

EV

Objet B
Etat 2

Objet B
Etat 2
* Transition dtat dun objet conditionnelle ltat dun autre objet
Objet A
Etat 1
Objet B
Etat 3

Objet A
Etat 1

EV

Objet A
Etat 2

Exemple 1 : Cycle de vie dun objet Reprsentant


Recrutement
reprsentant

Reprsentant

Reprsentant

Affectation
Secteur-Produit

En formation

Affect

Dpart

Prise en compte des tats du CVO dans le MCD


Produit

0,N

Commercialiser sur

0,N

Code Produit
0,N
1,1

1,N
Type Produit
Type Produit

0,N

Affectation

Classer
0,N

Dbut formation

1,1

Reprsentant
N_Reprsentant
Nom reprsentant
taux Commission

Secteur
N_Secteur
Nom Secteur

1,1

0,N

Calendrier
Date

0,N
Fin formation

0,1

0,N
Dpart

Exemple 2 : Cycle de vie dun objet Personne dans le S.I dune


agence matrimoniale
Entretien

Personne
Slection

Personne

Rglement
des frais

Rencontre

Personne
En rgle

Personne
Insatisfait

Satisfait

Retrait
dossier
Mariage

Personne

Divorce

Mari

Divorc
Mort
Conjoint

Rgles de gesion

Personne

Personne
Veuf

- Une personne nest considre comme client de lagence que dans le cas o elle a russi un entretien.
- Le client rgle le montant des frais de dossier lagence qui lui organise alors des rencontres .
- Le client peut retirer son dossier nimporte quel moment s il n est pas satisfait du service .
- Lagence ne traite pas les dossiers de sujets maris , mais elle peut traiter plusieurs fois le dossier
d une personne dans le cas dun divorce ou de la mort du conjoint moyennant de nouveaux frais .

Exemple 2 : Prise en compte des tats du CVO dans le MCD

Rglement frais

0,N

Calendrier

0,N

N_CIN
Nom
Prnom
Age
Situation familiale

Montant

Date

0,N

0,N

0,N

0,N

Est Divorc

Rencontre
Rsultat

0,N

Mariage

0,N

0,1
0,N

0,N

Retrait dossier

0,N

Est Veuf
Date Veuf

0,1

Personne

0,N

Exemple 2 :

MCD aprs personnalisation des associations

Personne slectionne

N_CIN
Nom
Prnom
Age
Situation familiale

Retrait dossier

0,1

Date
CIF

1,1
Client en rgle

0,N

Rencontre couple

1,1

Code Rencontre
Rsultat

CIF

0,N

1,1

0,N

CIF

0,N
1,1

CIF

0,N

0,N
CIF

Est Veuf
Date Veuf

CIF

Code_Client
Montant frais

1,1

0,N

Calendrier

0,N

CIF

0,N

0,N

1,1

0,1
Divorc

Mariage
Code Mariage

0,N

0,N

1,1

Exemple 2 : Prise en compte des tats du CVO dans le MCTA


Processus P1 : Inscription initiale pour le mariage
Demande
dinscription

Personne slectionne

Slection des candidats

- Entretien
- Contrle des pices
- Examen situation familiale initiale

Cas 1

Divorc
Clibataire
Veuf

Cas 2
Candidat
refus

Candidat
slectionn

Rglement
frais

Calendrier

ET

Client en rgle

Inscription du Candidat
- Cration et ouverture dossier
- Saisie ordinateur

Cre

Personne slect.
Client
inscrit

Processus P2 : Prospection

Client
inscrit

Dbut de
semaine

a
P

Client
rinscrit

c
P = a et ( b ou c )

( Prdicat de synchronisation )

Prospection
- Information des autres clients

Client en
attente

Remarque : pas d interaction avec le CVO


ou le MCD pour ce processus
( processus utilisant une opration
non informatise )

Processus P3 : Suivi des dossiers de mariage / remariage potentiels


Client en
attente

a
P

Rponse dun
autre client
en attente

Calendrier

P = ( a ou b ) et c

Rencontre

Organisation rencontre

- Choix d un rendez-vous
- Convocation des clients intresss
- Entretien

Cas 1

Cre

Client en rgle
Calendrier

Cas 2
Client
satisfait

Client
insatisfait

Rencontre
Mariage

Mariage / Remariage

- Enregistrement Client mari ou remari


- Saisie date mariage ou remariage

Retrait de dossier

Calendrier

Client mari
Retrait
dossier

- Enregistrement dpart client


- Saisie date dpart
Dossier retir

Cre

0,N
0,1

Personne slect.

Processus P4 : Rinscription pour le remariage


Rglement
frais

Client
mari

Mort
conjoint

Sparation
avec conjoint

Calendrier

a
P

Client en rgle

P = a et b et ( c ou d )

Rinscription client

Cre

Personne slect.

- Rouverture dossier client


- Enregistrement client
veuf ou divorc

Est Veuf

0,1
0,N

Mariage

Personne
slectionne

Mariage
Client
rinscrit

Divorc

0,N

0,N
0,N

Calendrier
Personne
slectionne

Synthse du Niveau Conceptuel


Mise en uvre du MCC , MCD , CVO et MCTA
1 - Dterminer le champ de ltude conceptuelle ( dfinir le domaine ou sous-domaine )
2 - Identifier les acteurs du S.I extrieurs au domaine
3 - Etablir les rgles de gestion du domaine concernant les communications
4 - Construire le Modle Conceptuel de Communication ( MCC )
5 - Etablir les rgles de gestion concernant les donnes
6 - Etablir le dictionnaire des donnes du domaine
7 - Construire le Graphe des Dpendances Fonctionnelles ( GDF )
8 - Construire le Modle Conceptuel de Donnes ( MCD )
9 - Construire un CVO pour chaque entit dynamique du MCD
10- Etablir les rgles de gestion concernant les traitements
11- Etablir le dictionnaire des vnements internes , externes et temporels du domaine
12- Reprsenter le Graphe dOrdonnancement des Evnements ( GOE ) du domaine
13- Identifier les processus de traitement du domaine
14- Construire le Modle Conceptuel de Traitement Analytique ( MCTA )
( 1 schma de traitement pour chaque processus )
15- Valider le niveau conceptuel ( Prise en compte des tats du CVO d un objet
dans le MCD et le MCTA )

Le Modle Organisationnel des Traitements


But : Le MOT ( ou MOTA ) dcrit comment les activits de traitement du MCT
( ou MCTA ) doivent tre mises en uvre et organises en spcifiant les
ressources humaines et techniques ncessaires au fonctionnement de ces
activits ainsi que le moment et la dure de leur excution .
Les paramtres organisationnels
* Le poste de travail :

Cest une cellule dactivit autonome comprenant les moyens humains et


matriels ncessaires la ralisation de cette activit . Cette cellule exerce
son travail dans un lieu dtermin .

* Le type du traitement : Il dfinit le degr dautomatisation dun traitement


3 types possibles :
Manuel : aucune utilisation de linformatique
Interactif ( ou conversationnel ) : succession de tches manuelles et de
traitements informatiques
Automatique : traitement entirement automatis
* La priode :

Elle indique les conditions temporelles dactivit dune procdure


fonctionnelle ( unit de traitement lmentaire du MOT ou MOTA )

* La procdure fonctionnelle : Une PF reprsente un ensemble de traitements excuts sans


interruption par un mme poste de travail utilisant des moyens de
traitement dun type dtermin pendant une priode dactivit dtermine .

Exemple : Dcomposition de lopration Ouverture Dossier dans le


processus Gestion des sinistres du domaine Assurance Auto
Dclaration accident

MCT

OUVERTURE DOSSIER

MOT

VERIFIER

CONTROLER

ANALYSER

OUVRIR

Incomplet
Demande infos

Non couvert
Non couvert

Accept
Notification expert

Trop grave
Dossier transmis

Reprsentation graphique dun MOT : Opration Ouverture dossier du processus Gestion des sinistres
Temps / Dure

EXTERIEUR

INSPECTEUR

Ressources

PF1 VERIFIER

ASSURE

15 min.

SECRETARIAT

Dclaration accident

1 secrtaire
1 micro
1 imprimante

Vrifier le constat
Identifier les parties
Envoi courrier demande infos
Incompletc

Correct

Demande infos
complmentaires

1 secrtaire
1 micro
1 imprimante

PF2 CONTROLER

30 min.

Contrler situation
Courrier rejet

Avis de rejet

15 min.

Anormale

PF3 ANALYSER
En rgle

Dossier contrl
Dossier transmis

15 min.

Analyser le sinistre
Trop grave

Normal

PF4 OUVRIR
Ouvrir le dossier

SIEGE

Constat police
Rapport accident

Formulaire
Pices dossier

Toujours

Dossier ouvert
EXPERT

PF5

30 min.

INFORMER

Editer courriers

Notification Expert
Accord

Dgts

Toujours

1 micro
1 imprimante

Le Modle Organisationnel des Donnes ( MOD )


But :

Le MOD vient complter le MCD en apportant des prcisions sur les


choix organisationnels , conomiques et techniques effectus au
niveau de la mmorisation des donnes .
Le MOD permet deffectuer :
* la distinction entre les informations mmoriser informatiquement
et les informations mmoriser sur dautres supports ( papier , etc )
* la quantification des donnes mmoriser ( estimation du volume de
donnes par objet et global )
* la rpartition organisationnelle des donnes informatises par poste de
travail , cest dire par procdure fonctionnelle du MOT
* la scurisation des donnes en dfinissant pour chaque poste de travail
et chaque utilisateur dans ce poste , les droits daccs aux donnes
informatises .

Le MOD reprsente la mmoire informatise du S.I


Mmoire
immdiate
MCD =
Mmoire
globale
du S.I

Archivage

Mmoire
long terme

MOD =
Mmoire
informatise
du S.I

* Mmoire long terme :


Elle est compose des archives intgrales ou
condenses des donnes anciennement
prsentes dans la mmoire immdiate .
La disponibilit de ces donnes nest
gnralement pas immdiate ( chargement
partir d une mmoire auxiliaire : disquette ,
disque amovible , etc )

Autres mmoires
( support papier )

Exemple
CLIENT
N Client
Nom
Adresse

1,N

1,1

Facturer
Mmoire immdiate
( dure de vie = une anne
Mmoire
non
informatise

* Mmoire immdiate :
Elle contient l ensemble des donnes
immdiatement accessibles ( en ligne ) par les
units de traitement du S.I sur les mmoires
du S.I ( disque magntique fixe , disque
optique numrique , etc )

FACTURE
N Facture
Date Facture
Montant TTC

Factures relles
Support papier

Archivage
de fin danne

Mmoire
long
terme
Classer

FACTURE ARCHIVE

N Facture
Date Facture
Date Archivage
Montant TTC
ANNEE
Anne

Quantification des donnes du MOD


1 ) Quantification des cardinalits
* Evaluation des cardinalits moyennes des associations
* Evaluation du taux de participation
Exemple
CLIENT
N Client
Nom
Adresse

M = 13.4
P = 0.8

Passer

0,N

Cardinalit moyenne :
M=

Nbre occurrences de Passer


Nbre occurrences de Client

Taux de participation :
T = Nbre Clients ayant pass au moins 1 commande
Nbre total de clients

M=1
P= 1

COMMANDE
N Commande
Date Commande
Montant TTC

1,1

N Client
13
27
33
7
82

Nbre occurrences
de Passer
28
0
17
3
19

M = ( 28 + 0 + 17 + 3 + 19 ) / 5 = 13.4
T = 4 / 5 = 0.8

Remarque : T et M sont gnralement calculs sur une priode o lentreprise possde


des donnes fiables . A dfaut , T et M doivent tre estims .

Quantification des donnes du MOD


2 ) Quantification des occurrences et du volume global de donnes
* Evaluation du nombre total doccurrences des entits et associations
* Evaluation de lespace disque ncessaire la mmorisation des donnes du MOD
Exemple

E = 10 000
PERSONNE
Nom
Prnom
Age

M = 1.2
P = 0.8

E = 12 000

0,N

Date
autorisation

M = 1.5
P= 1

Conduire

Personne : Effectif = 10 000 occurrences ; M = 1.2 ; P = 0.8 ;

1,N

E = 8000
VOITURE
N Immatriculation
Marque
Modle

Voiture : Effectif = 8000 occurrences ; M = 1.5

Conduire : Effectif = 10 000 x 1.2 = 12000 occurrences


Objet

Taille d une occurrence ( caract.)

PERSONNE

Nom : 30
Prnom : 30
Age : 3

VOITURE

CONDUIRE

N Immatric.: 15
Marque : 20

Total = 63

Total = 45

Volume ( caract. )
63 x 10 000 =
630 000
45 x 8000 =

Modle : 10

360 000

Date autorisation : 10 Total = 10

10 x 12 000 =
120 000

Volume global du MOD


V = 630 000 + 360 000 + 120 000
= 1 110 000 caractres
Espace disque ncessaire
1 110 000 octets = 1 110 000 / 1024 Ko
= 1084 Ko
= 1084 / 1024 Mo
= 1.06 Mo

Rpartition Organisationnelle des Donnes


MOD global = Union de MOD locaux
Exemple dorganisation des donnes dans un domaine du S.I
Processus

Proc. Fonctionnelle

MOD local

P1

PF1
PF2
PF3

MOD1
MOD2
MOD1

P2

PF4

MOD3

P3

PF5
PF6

MOD1
MOD4

* Certaines PF du MOT peuvent utiliser le mme


MOD local
* Les objets ( entits et associations ) utiliss dans
les MOD locaux sont ceux dfinis dans le MCD
* Certaines donnes peuvent tre partages entre
plusieurs MOD locaux ( entits ou associations
communes )

Exemple de partage des donnes entre 2 PF


PF1 / MOD1
Donnes
prives
D1

Lecture

Cration , MAJ
Suppression

Da
MAJ

Db

Lecture

PF2 / MOD2
Donnes
prives
D2

MOD1 = D1 +
(Da + Db) profil daccs 1
MOD2 = D2 +
(Da + Db) profil daccs 2

Types daccs dans un MOD et Scurit des donnes


Chaque PF du MOT interagit avec les donnes en effectuant des accs de type diffrents sur les
entits et associations du MCD :
* Lecture d occurrence ( L )
* Cration d occurrence ( C )
* Suppression d occurrence ( S )
* Mise jour d occurrence ( M )
Le MOD local dune PF doit prciser ces types d accs .

Exemple
CLIENT
N Client
Nom Client
CA Annuel

0,N
L
M
C
S

Bnficier
% Remise

L
M
C
S

0,N

ARTICLE
N Article
Dsignation
Prix unitaire
Qt en stock

Remarque :

2 PF peuvent utiliser le mme jeu dentits et associations , mais on dfinira un


MOD local diffrent pour chaque PF si le type daccs aux donnes est diffrent .

Scurit des donnes / type dutilisateur


Exemple de tableau des privilges dun
utilisateur : Vendeur point de vente client

Entit Assoc. Proprit


Client
CA annuel
Article
Bnficier

Condition

N Client
Nom Client
< 10 000 DH

N Article
Dsignation
Prix unitaire
Qt en stock
% Remise

Accs autoriss

LMCS
LMCS
L
L
L
L
L
LMCS

Exemple :

PF2

MOD local de la PF Contrler dans le processus


Gestion des sinistres du domaine Assurance Auto
MOD local

CONTROLER

E = 4600

- Contrler situation abonn


- Editer courrier rejet
Anormale
En rgle

E = 4600

Transmis

M = 1.53
P = 0.6

ASSURE
Code Assur
Nom Assur
Prnom Assur
Adresse

L
M
C
S

0,N

E = 3000

1,1

L
M
C
S

COURRIER
N Courrier
Date Courrier
Texte Courrier
E = 3650
CALENDRIER
Date

1,N

M = 4.17
P= 1

Concerner

E = 30000
E = 12500

E = 12500

CONTRAT
N Police
Date souscript.
Bonus

E = 35
Type Garantie
Code Garantie
Libell Garantie
Montant franchise
Montant plafond

1,1

M = 3035.7
P = 0.5
Comporter

M = 8.5
P =1

1,N

0,N
E = 106 250

Echance
Montant
chance

1,N

0,N
L

M = 8.2
P = 0.9

M = 2.4
P =1
E = 4850

1,1
Couvrir
E = 12500

1,N
M = 2.58
P =1

VEHICULE
N Immatric.
Marque vhicule
Modle vhicule

Le Systme dInformation vu selon la mthode MERISE


MODELES

Systme Modlis

MCC
+ MCD
+ MCTA
+ CVO

Systme dinformation
Conceptuel ( SIC )

Description des fonctions majeures du S.I en rponse aux stimuli provenant de


lenvironnement extrieur ( acteurs externes ) sans
rfrence aux ressources ncessaires sa mise en uvre
( Concentration sur le Quoi )

MOD
+ MOTA

Systme dinformation
Organisationnel ( SIO )

Description des ressources ncessaires la mise en uvre des activits


du SIC du point de vue du gestionnaire ( moyens techniques et humains ,
espace , temps , donnes ) et choix d une organisation pour ces ressources
( Concentration sur le Comment du gestionnaire )

MLD
+ MLT

MPD
+ MPT

Systme dinformation
Informatis ( SII )

Systme d information
Oprationnel ( SIOp )

Description

Description dune soulution informatique permettant dassurer le


fonctionnement du SIO :
- Choix techniques concernant les outils de gestion de donnes
( SGBD ) et les outils de dveloppement informatiques .
- Reprsentation de la structure logique des donnes ( base de donnes )
et des traitements ( interaction homme-machine au niveau des postes de
travail )
- Description de larchitecture informatique ( rpartition des
traitements et des donnes )
( Concentration sur le comment de linformaticien )
Mise en uvre oprationnelle dune solution informatique
- Description de la base de donnes dans la syntaxe du SGBD choisi
- Codage des procdures logiques de traitement en langage informatique
volu ( programmation )
- Mise en place dune architecture de fonctionnement en rseau
( architecture centralise , distribue ou rpartie )

Le Modle Logique des Donnes ( MLD )


But :

Reprsentation de la structure logique des donnes du S.I sous une forme


adapte lutilisation dun Systme de Gestion de Base de Donnes
( SGBD ) ou dun Systme de Gestion de Fichiers ( SGF ) .

Diffrents types de modles logiques ( machinables ) sont exploits dans le march des SGF et SGBD :
* Le Modle Hirarchique ( annes 60 )
Il permet de grer des donnes dans un ensemble de fichiers sous forme dun ensemble darbres ou de
hirarchies . Seuls les liens 1 N entre enregistrements sont permis ( liens pre-fils ) .
Les liens multivalues ( N N ) doivent tre transforms sous forme de liens 1 N .
La recherche denregistrements se fait en parcourant larbre gnral par une gestion de pointeurs :
du pre vers le 1er fils , puis de celui-ci vers le 2me ou du pre vers le grand-pre , etc
Les utilisateurs ne peuvent accder aux donnes que par lintermdiaire de programmes de gestion
de fichiers ( SGF ) crits spcifiquement pour eux ( Niveau de rutilisation faible ) .
Exemples de SGF : IMS ( IBM )
* Le Modle Rseau ou CODASYL ( 1971 )
Son but est de lever certaines des contraintes du modle hirarchique . Il fonctionne selon le mme
principe navigationnel , cest dire par pointeurs . Il permet de reprsenter les liens N N entre
enregistrements par liaison dun enregistrement un ou plusieurs pres et / ou un ou plusieurs fils.
Il est bas sur les notions de RECORD ( enregistrement ) et de SET ( lien entre 2 enregistrements ) .
Les premiers SGF et SGBD supportant ce modle sont apparus en 1978 :
Exemples : IDS2 ( Bull ), DBMS ( DEC ), IDMS (Culliname ), ADABAS ( Software AG ), etc...

Le Modle Logique des Donnes ( suite )


* Le Modle Relationnel ( Codd - 1970 )
Cest le modle de plus rpandu actuellement sur le march des SGBD ( 85 % en 1995 ).
Il lve toutes les contraintes des modles prcdents ( hirarchiques et rseau ).
Il a t cre par des mathmaticiens . Il permet de grer les donnes sous forme de tables
denregistrements . En reliant ces tables laide d un systme de cls , il est possible de
rechercher des donnes dans une table ou de collectionner des donnes partir de plusieurs tables
( requtes ) satisfaisant un critre fix .
Exemples de SGBDR ( SGBD Relationnels ) :
INGRES et INFORMIX ( sur UNIX et DEC/VMS )
ORACLE ( sur tous les systmes )
DB400 ( sur IBM/AS400 )
DB2 et SQL/DS ( sur gros systmes IBM )
MS-SQL Server ( sur Windows NT/Server )
MS-ACCESS et Borland PARADOX ( sur MS-DOS et Windows )
* Le Modle Objet ( Annes 1990 )
Cest le successeur potentiel du modle relationnel . Il repose sur la thorie des objets .
Dans cette thorie , le systme dinformations peut tre reprsent comme un ensemble dobjets
possdant des proprits et des mthodes et communiquant entre eux par change de messages .
Il sappuie en amont sur des mthodes de conception de S.I orientes objet comme O.M.T
( Object Modeling Technique ) ou U.M.L ( Unified Modeling Language ) ou O.O.M ( Orientations
objet dans Merise ) , etcCe modle est encore peu utilis dans le march commercial mais est appel
remplacer le modle relationnel dans quelques annes pour sa puissance et sa smantique intuitive .
Exemples de S.G.B.D.O ( SGBD Objets ) : O2 ( IBM )

Le Modle Logique de Donnes Relationnel ( MLDR )


Ce modle permet de constituer une base de donnes au sens logique au moyen de
tables dsignes aussi sous le terme de relations .
Les Concepts du MLDR
1 ) Lattribut : Cest le plus petit lment dinformation enregistr dans une base de donnes .
Il possde un nom et prend des valeurs dans un domaine de valeurs bien dtermin .
Exemples :
Attribut
Domaine de valeurs
N Client
Adresse Client
Mode de paiement

Entier naturel
Alphanumrique
Liste alphabtique (Espces,Chque ,Traite)

2 ) La Relation : Une relation ( appele aussi table ) est un ensemble dattributs significativement
associs ( dont lassociation a un sens au niveau du S.I ) .
Reprsentation dune relation :

R ( A1, A2 , A3, .., An ) Reprsentation en intention


ou Schma de la relation

R
tuple 1
tuple 2
.
tuple n

A1
A2
A3
..
An
.. .. ..
valeur valeur valeur .. Valeur
.. .. .. .. ..
.. .. .. ..

Reprsentation en extension
( montrant les tuples de la relation )
R : Nom de la relation
A1, A2 , ., An : Attributs de la relation

Le Modle Logique de Donnes Relationnel ( suite 1 )


Une relation est un sous-ensemble du produit cartsien des domaines de valeurs associs ses attributs.
Exemple : Soient 2 attributs dont les domaines de valeurs sont :
D1 = ( Ahmed , Brahim , Ali ) et D2 = ( Mineur , Majeur )
D1 x D2

Nom

Statut

Ahmed
Brahim
Ali
Ahmed
Brahim
Ali

Mineur
Mineur
Mineur
Majeur
Majeur
Majeur

Le produit cartsien D1 x D2 reprsente la


relation dont le nombre de tuples est le plus grand

Nom

Statut

Ahmed
Brahim
Ali
Ahmed

Mineur
Majeur
Mineur
Majeur

R est un exemple de relation incluse dans D1 x D2 .


( Toutes les relations quil est possible de crer partir
des attributs Nom et Statut sont incluses dans D1 x D2 )

3 ) Les cls dune relation : soient 3 relations comportant certains attributs communs :
R1 ( A1# , A2 , A3, .., An )
R2 ( B1# , B2 , B3 , .., Bn , A1# )
R3 ( A1# , B1# , C1, C2 , C3 , .., Cn )
Les attributs suivants jouent un rle particulier :
- A1# dans R1 et B1# dans R2 sont appels cls primaires : Chacun de ces attributs a t choisi pour
identifier de manire discriminante
les tuples de sa relation .

Le Modle Logique de Donnes Relationnel ( suite 2 )


- A2 est une cl candidate pour R1

condition que A2 soit un attribut discriminant pour les tuples


de R1 comme cest le cas de A1#. Une cl candidate est un
attribut ou un groupe dattributs qui aurait pu servir de cl
primaire mais qui na pas t retenu .

- A1# dans R2 est une cl trangre : cest un attribut dfini sur un domaine primaire ( celui de R1 )
mais qui est prsent dans une autre relation ( R2 ) dans le but
de crer un lien entre les relations R1 et R2 .
- A1# et B1# dans R3 reprsentent une cl primaire compose :
Cest un groupe dattributs dfinis chacun sur un domaine
primaire . Les occurrences de ce groupe ( couples de valeurs
de A1# et B1# ) sont utilises pour identifier de manire
discriminante les tuples de la relation R3 .
- Remarques: * une cl primaire ( simple ou compose ) est toujours souligne dans une relation .
* une cl trangre ( ou externe ) peut tre compose comme dans le cas dune cl primaire
* lattribut ou les attributs constituant une cl primaire ou trangre possdent un nom
qui se termine par le symbole #
* une relation est toujours identifie par une cl primaire
* une relation peut prsenter une ou plusieurs cls candidates (cls primaires de substitution)
4 ) Schma relationnel : Cest un ensemble de relations logiques prsentant des liens smantiques .
Cet ensemble est destin la cration dune base de donnes physique .

Le Modle Logique de Donnes Relationnel ( suite 3 )


5 ) Les Contraintes dIntgrit :
Elles reprsentent un ensemble de rgles fondamentales dont lapplication permet de garantir
la cohrence du schma relationnel dune base de donnes .
Ces rgles contrlent la cohrence des valeurs prises par :

* les attributs par rapport leur domaine de valeurs (contrainte dintgrit de domaine)
Exemple : Si lattribut N Client est dfini sur un domaine de valeurs numriques , il ne
peut pas contenir de lettres .

* les cls primaires des relations ( contraintes dintgrit de relations )


Lintgrit de relation concerne les valeurs d une cl primaire qui doivent tre uniques
( pas de doublons ) et non nulles ( toujours spcifies ) .

* les cls trangres des relations ( contraintes dintgrit rfrentielles )


Lintgrit rfrentielle stipule quune cl trangre ne peut prendre que les valeurs dfinies dans
le domaine primaire de la cl primaire laquelle elle est associe .

Construction du Modle Logique de Donnes Relationnel


Le MLDR est construit partir du MCD en appliquant des rgles de transformation simples
aux entits et aux associations .
Les entits donnent toujours lieu des relations dans le MLDR .
Les associations , selon leur cardinalits , peuvent ou non donner lieu des relations .

1 ) Transformation des Entits


ENTITE A
Identifiant Ao
Proprit A1
Proprit A2
Proprit A3

Relation A
Ao A1 A2

A3

Cl

Une entit A du MCD devient la relation ( ou table ) : A ( Ao# , A1 , A2 , A3 )


Lidentifiant Ao de lentit A devient la cl primaire Ao# de la relation A .
Les autres proprits deviennent les attributs de la relation A .
Les occurrences de lentit deviennent les tuples de la relation A .
Le degr de la relation A est le nombre dattributs de cette relation ( ici deg (A) = 4 )
La cardinalit de la relation A dsigne le nombre de tuples de cette relation

Construction du Modle Logique de Donnes Relationnel ( suite 1 )


2 ) Transformation des Associations
2.1 ) Association multivalue plusieurs [ 0, N ou 1, N ] plusieurs [ 0, N ou 1, N ]
ENTITE B

ENTITE A
Identifiant Ao
Proprit A1
Proprit A2
Proprit A3

*,N

Association

Relations obtenues :
A , B et C
A ( Ao# , A1 , A2 , A3 )
B ( Bo# , B1 , B2 )
Cas dune association non porteuse : C ( Ao# , Bo# )
Cas dune association porteuse des proprits : C1, C2,...
C ( Ao# , Bo# , C1 , C2 , )
Exemple :
DEPOT
N Dpt
Adresse
Ville

1,N

0,N
Stocker

ARTICLE
Code Article
Libell
Qt stock

Identifiant Bo
Proprit B1
Proprit B2

*,N

Reprsentation graphique du MLDR


A
Ao #
A1
A2
A3

C
Ao #
Bo #

B
Bo #
B1
B2

Relations obtenues :
DEPOT ( N Dpt # , Adresse, Ville )
ARTICLE ( Code Article # , Libell , Qt Stock )
STOCKER ( N Dpt # , Code Article # )

Construction du Modle Logique de Donnes Relationnel ( suite 2 )


2.2 ) Association hirarchique Un [ 0, 1 ou 1, 1 ] Plusieurs [ 0, N ou 1, N ]
ENTITE B

ENTITE A
Identifiant Ao
Proprit A1
Proprit A2

*,1

Association

*,N

Identifiant Bo
Proprit B1
Proprit B2

Cette association traduit la dpendance fonctionnelle inter-entits : Ao


Bo
Lentit A qui met la dpendance fonctionnelle reoit au niveau logique lidentifiant de lautre entit B .
La cl primaire Bo # migre dans la relation A comme attribut cl trangre ou externe .
Relations obtenues :

A, B

Reprsentation graphique du MLDR

A ( Ao# , A1 , A2, Bo# ... )


B ( Bo# , B1 , B2 , ...)
Exemple :

Ao #
A1
A2
Bo #

Bo #
B1
B2

Employ
Matricule
Nom
Prnom
Fonction

Relations obtenues :
1, 1

1, N
CIF

SERVICE
N Service
Libell Service

EMPLOYE ( Matr. # , Nom , Prnom ,


Fonction , N Service # )
SERVICE ( N Service # , Libell Service )

Construction du Modle Logique de Donnes Relationnel ( suite 3 )


2.3 ) Association hirarchique Un [ 0, 1 ou 1, 1 ] Un [ 0, 1 ou 1, 1 ]
ENTITE A
Identifiant Ao
Proprit A1
Proprit A2

ENTITE B

*,1

Association

*,1

Cette association traduit lexistence de 2 dpendances fonctionnelles inter-entits : Ao

Identifiant Bo
Proprit B1
Proprit B2
Bo et

Bo

Ao

La migration de cl peut se faire dans un sens ou lautre selon les besoins du systme dinformation .
Si la cardinalit dun ct de lassociation est 1, 1 ( exemple ct Entit A ) , il est conseill de choisir
la migration de la cl primaire Bo # dans la relation A comme cl trangre ( rgle quivalente au cas
dune association hirarchique )
Relations obtenues :

A, B

Reprsentation graphique du MLDR

A ( Ao# , A1 , A2, Bo# ... )


B ( Bo# , B1 , B2 , ...)
Exemple :
FACTURE
N Facture
Date Facture
Montant TTC

0, 1

1, 1
Payer

Ao #
A1
A2
Bo #

Bo #
B1
B2

REGLEMENT
N Rglement
Date Rglement
Montant Rgl.

Relations obtenues :
FACTURE ( N Facture # , Date Facture ,
Montant TTC )
REGLEMENT ( N Rgl. # , Date Rgl. ,
Montant Rgl. , N Facture # )

Construction du Modle Logique de Donnes Relationnel ( suite 4 )


2.4 ) Association rflexive multivalue Plusieurs [ 0, N ou 1, N ] Plusieurs [ 0, N ou 1, N ]
ENTITE A

*,N

Identifiant Ao
Proprit A1
Proprit A2

Association

Reprsentation graphique
du MLDR
A

*,N
Relations obtenues :

Ao #
A1
A2

A, B

A ( Ao# , A1 , A2 , ... )
B ( Ao1# , Ao2# ) : Cas dune assoc. non porteuse
B ( Ao1# , Ao2# , B1 , B2 , ...) : Cas dune assoc. porteuse
Exemple :
Est parent de

PERSONNE
N CIN
Nom
Prnom

Parent
Est enfant de

Ao1 #
Ao2 #
B1
B2

Relations obtenues :

0, N
0, 2

PERSONNE ( N CIN # , Nom , Prnom )


PARENTE ( N CIN_Parent # , N CIN_Enfant # )

Construction du Modle Logique de Donnes Relationnel ( suite 5 )


2.5 ) Association rflexive hirarchique Un [ 0, 1 ou 1, 1 ] Plusieurs [ 0, N ou 1, N ]
*,N

ENTITE A
Identifiant Ao
Proprit A1
Proprit A2

Association

Reprsentation graphique
du MLDR
A

*,1
Relation obtenue :

Ao #
A1
A2
Ao #

A ( Ao# , A1 , A2 , ... , Ao # )
Exemple :
SALARIE
Matricule
Nom
Prnom
Fonction

Est Chef de

Relation obtenue :

0, N
Encadrement
0, 1
A pour Chef

SALARIE ( Matricule # , Nom , Prnom ,


Fonction , Matricule_Chef # )

Construction du Modle Logique de Donnes Relationnel ( suite 6 )


2.6 ) Association relative incluant une entit faible
ENTITE B

ENTITE A

(1,1)

Ident. Relatif Ao
Proprit A1
Proprit A2

Identifiant Bo
Proprit B1
Proprit B2

*,N

Cette association traduit le rattachement dune entit faible ( A ) une entit classique ( B ) .
Lidentifiant absolu de lentit A est : Ao + Bo .
Relations obtenues :

A, B

Reprsentation graphique du MLDR

A ( Ao# , Bo# , A1 , A2, ... )


B ( Bo# , B1 , B2 , ...)
Exemple :
PROJET

PHASE
N Phase
Dsignation
Dure

( 1, 1 )

1, N

N Projet
Nom Projet
Date dbut

Ao #
Bo #
A1
A2

Bo #
B1
B2

L attribut Bo # dans A est


une cl trangre qui forme
avec Ao # une cl primaire
compose .

Relations obtenues :
PROJET ( N Projet # , Nom Projet , Date dbut )
PHASE ( N Projet # , N Phase # ,
Dsignation , Dure )

Construction du Modle Logique de Donnes Relationnel ( suite 7 )


3 ) Transformation des Contraintes Logiques entre Associations
Les contraintes logiques dinclusion , dexclusion , de totalit , partition , etc, sont reprsentes
au niveau logique laide dun oprateur relationnel I , X , V , + , etc et au niveau physique par
du code de programmation ou des triggers (dclencheurs ) sur la base de donnes .
3.1 ) Exemple de transformation dune contrainte dinclusion
0,N

Matire

Sait enseigner

0,N

MCD
Classe

0,N

Enseigne

0,N

CLASSE

MATIERE

N Classe #

N Matire #

MLDR

I
ENSEIGNER
N Matire #
N Classe #
N Professeur #

PROFESSEUR
N Professeur #

0,N

Prof.

SAIT ENSEIGNER
N Matire #
N Professeur #

Construction du Modle Logique de Donnes Relationnel ( suite 8 )


3.2 ) Exemple de transformation dune contrainte dexclusion
Une personne ne peut pas tre la fois locataire et propritaire dun mme logement .
Une personne peut tre ni locataire ni propritaire de logement .
Louer

0,N

MCD

Personne

0,N

Logement

X
0,N

0,N

Possder

MLDR

PERSONNE

LOUER
N Personne #
N Logement #

N Personne #

LOGEMENT

POSSEDER
N Personne #
N Logement #

N Logement #

Construction du Modle Logique de Donnes Relationnel ( suite 9 )


4 ) Application : Schma relationnel dun service clientle dans un caf

MLDR

SERVEUR
1#
2

1,N

0,N

AFFECTER

CALENDRIER

SERVEUR ( 1 # , 2 )

9#

1,N

CALENDRIER ( 9 # )

1,N

SUIVRE

1,N

3#

CONCERNER

1,1

0,N

TABLE

TABLE ( 3 # )
TRAITER

1,1

1,1

COMMANDE
11 #
12
10

1,N

FIGURER
7
8

1,N

CONSOMMATION
4 #
5
6

Dictionnaire de donnes
1 - N de serveur
2 - Nom de serveur
3 - N de table
4 - N de consommation
5 - Libell consommation
6 - Prix unitaire consommation

AFFECTER ( 1 #, 9 # , 3 # )

7 - Quantit d une consommation commande


8 - Montant d une ligne de commande
9 - Date de commande
10 - Heure de la commande
11 - N de la commande
12 - Montant total de la commande

COMMANDE ( 11 #, 12, 10 ,
1 #, 3 #, 9 # )
FIGURER ( 11 # , 4 # , 7 , 8 )
CONSOMMATION ( 4#, 5 , 6 )

Exploitation du Modle Logique de Donnes Relationnel


1 ) Notions dAlgbre Relationnelle
Lalgbre relationnelle reprsente une collection doprations formelles pouvant tre excutes
sur les relations dun modle de donnes logique relationnel ( MLDR ) .
Ces oprations sont utilises pour excuter des requtes de manipulation des donnes dans le cadre
des traitements du S.I au niveau logique et physique .
On distingue :

* Les oprations ensemblistes


Elles dcoulent de la thorie des ensembles .Elles permettent dobtenir une nouvelle relation
comme le rsultat dune opration densemble sur 2 ou plusieurs relations
Exemples : Union , Intersection , Diffrence , Produit cartsien , etc

* Les oprations relationnelles


Elles sont propres lalgbre relationnelle . Elles peuvent utiliser :
- des oprateurs unaires ( slection , projection )
- des oprateurs binaires : ( jointure , division )

* Les oprations complmentaires


Elles permettent de mettre en forme les rsultats ou de faire une synthse sur les donnes .
Exemples : oprations de calcul, regroupement, comptage , tri, etc

Exploitation du Modle Logique de Donnes Relationnel ( suite 1 )


1.1 ) Les oprateurs ensemblistes
Oprateur UNION

Formalisme : R = UNION ( R1 , R2 )

Exemple E1 = Enseignants affects aux relations extrieures


E2 = Enseignants reprsentants
syndicaux
N enseignant
Nom_enseignant
Nom_enseignant
E1
E2N enseignant
1

RAMI

RAMI

ALAOUI

IDRISSI

IDRISSI

MOUNIR

RIFAI
On dsire obtenir l'ensemble des enseignants affects aux

N enseignant

Nom_enseignant

relations extrieures et reprsentants syndicaux .


R = UNION ( E1, E2 )

RAMI

Loprateur UNION porte sur 2 relations uni-compatibles

ALAOUI

cest dire vrifiant les conditions suivantes :

IDRISSI

RIFAI

- Le mme nombre d'attributs ( relations de mme degr


- Les attributs sont dfinis dans le mme domaine sman

MOUNIR

La relation rsultat R possde les mmes attributs que E1


et la runion des tuples de E1 et E2 avec limination des
doublons ventuels.

Exploitation du Modle Logique de Donnes Relationnel ( suite 2 )


Oprateur INTERSECTION

Formalisme : R = INTERSECTION ( R1 ,

R2 )

Exemple E1 = Enseignants affects aux relations extrieures


E2 = Enseignants reprsentants
syndicaux
N enseignant
Nom_enseignant
Nom_enseignant
E1
E2N enseignant
1

RAMI

RAMI

ALAOUI

IDRISSI

IDRISSI

MOUNIR

RIFAI
On dsire connatre les enseignants affects aux relations

N enseignant

Nom_enseignant

extrieures qui sont des reprsentants syndicaux .


R = INTERSECTION ( E1, E2 )

RAMI

Loprateur INTERSECTION porte sur 2 relations

IDRISSI

uni-compatibles comme loprateur UNION .

La relation rsultat R possde les attributs des relations d


et les tuples communs chacune.

Exploitation du Modle Logique de Donnes Relationnel ( suite 3 )


Oprateur DIFFERENCE

Formalisme : R = DIFFERENCE ( R1 , R2 )

Exemple E1 = Enseignants affects aux relations extrieures


syndicaux

E1

E2N enseignant

E2 = Enseignants reprsentants

N enseignant

Nom_enseignant

Nom_enseignant

RAMI

RAMI

ALAOUI

IDRISSI

IDRISSI

MOUNIR

RIFAI
On dsire connatre les enseignants affects aux relations

N enseignant

Nom_enseignant

extrieures qui ne sont pas des reprsentants syndicaux .


R = DIFFERENCE ( E1, E2 )

ALAOUI

Loprateur DIFFERENCE porte sur 2 relations

RIFAI

uni-compatibles comme loprateur UNION .

La relation rsultat R possde les attributs des relations d

et les tuples de la 1re relation qui nappartiennent pas


2me relation .

Exploitation du Modle Logique de Donnes Relationnel ( suite 4 )


Oprateur PRODUIT CARTESIEN

Formalisme : R = PRODUIT ( R1 ,

R2 )
Exemple R1 = ETUDIANT

R1

R2 = EPREUVE

N Etudiant

Nom

R2Libell preuve

101

RAMI

Informatique

102

ALAOUI

Mathmatiques

Gestion financire

Coefficient

Examen = PRODUIT ( Etudiant , Epreuve )


R

N Etudiant
Coefficient

Nom

Libell preuve

Cet oprateur porte sur deux relations de degr


quelconque .

101

RAMI
2

Informatique

101

RAMI

Mathmatiques

La relation rsultat possde les attributs de chac

101

RAMI

Gestion financire

des relations d'origine et ses tuples sont forms

102

ALAOUI
2

Informatique

102

ALAOUI

Mathmatiques

102

ALAOUI

Gestion financire

la concatnation de chaque tuple de la 1re rela


avec l'ensemble des tuples de la deuxime .

Exploitation du Modle Logique de Donnes Relationnel ( suite 5 )


1.2 ) Les oprateurs relationnels
Oprateur PROJECTION

Formalisme : R = PROJECTION ( R1 , Liste des

attributs )
Joueur
Exemple :

R1 = JOUEUR

N Licence
Catgorie
Anne naissance
101
CADET
212

CADET

375
CADET
427
JUNIOR
432
JUNIOR
512
JUNIOR
R = PROJECTION ( JOUEUR , N Licence
603, Anne naissance
JUNIOR )
R

N Licence
Anne naissance
101
1973

1973
1972
1973

1971
1971
1970
1969

Cet oprateur ne porte que sur une


relation.

212

1972

Il permet de ne retenir que certains


attributs spcifis d'une relation.

375
427
432

1973
1971
1971

La relation rsultat comporte tous les


tuples de la relation dorigine
l'exception des doublons .

512

1970

Exploitation du Modle Logique de Donnes Relationnel ( suite 6 )


Oprateur SELECTION
Exemple :

R1 = JOUEUR

Joueur

Formalisme : R = SELECTION ( R1 , Condition )


N Licence
Catgorie
Anne naissance
101
CADET

1973

212

CADET

1972

375
427
432
512
603

CADET
JUNIOR
JUNIOR
JUNIOR
JUNIOR

1973
1971
1971
1970
1969

R = SELECTION ( JOUEUR , Catgorie = Cadet ET Anne naissance > 1971 )

N Licence
Anne naissance
101

CADET

375

CADET

Catgorie

Cet oprateur ne porte que sur une relation.


Il permet de ne retenir que les tuples
1973 rpondant une condition exprime l'aide
des oprateurs arithmtiques ( =, >, < , >= ,
1973 <= , <>) ou logiques de base ( ET , OU ,
NON ) .
La relation rsultat conserve tous les attributs
de la relation dorigine .

Exploitation du Modle Logique de Donnes Relationnel ( suite 7 )


Oprateur JOINTURE : ( Equijointure )
Formalisme : R = JOINTURE ( R1 , R2 , Condition dgalit entre attributs )
Exemple
R1 = PRODUIT
R1

Code Prod

R2 = DETAIL_COMMANDE

Libell

590A

HD 1,6 Go

588J

Scanner HP

515P

Printer OKI

Prix unitaire R2

N Cde

1615

Code Prod.
97001

1700
1820

Quantit

590A

97002

515P

97003

515P

R = JOINTURE ( PRODUIT , DETAIL_COMMANDE, Produit.CodeProd =


Dtail_Commande.CodeProd )
R2
Code Prod
Libell
Prix unitaire N Cde Quantit
590A

HD 1,6 Go

1615

97001

515P

Printer OKI

1820

97002

515P

Printer OKI

1820

97003

Cet oprateur porte sur 2 relations qui doivent avoir au moins un attribut dfini dans le mme doma
La condition de jointure peut porter sur l'galit d'un ou de plusieurs attributs dfinis dans le mme dom
( mais n'ayant pas forcment le mme nom ).
Les tuples de la relation rsultat sont forms par la concatnation des tuples des relations d'origine qui v
condition de jointure. Les tuples doublons sont limins .
Remarque : Des jointures plus complexes que l'quijointure peuvent tre ralises en gnralisant l'usage
de jointure d'autres critres de comparaison que l'galit ( < , > , <= , >= , <> ).

Exploitation du Modle Logique de Donnes Relationnel ( suite 8 )


Oprateur DIVISION
Exemple

R1 = PARTICIPER
Athlte Epreuve

Formalisme : R = DIVISION ( R1 , R2 )
R2 = EPREUVE
Epreuve

Mounir

200 m

200 m

Daoudi

400 m

400 m

Mounir

400 m

110 m H

Fadili

110 m H

Mounir

110 m H

Fadili

200 m

R = DIVISION (PARTICIPER, EPREUVE)


Athlte
Mounir

"L'athlte Mounir participe


toutes les preuves"

Cet oprateur porte sur 2 relations qui doivent avoir au moins un attribut dfini dans le mme domain

Tous les attributs du diviseur ( ici EPREUVE ) doivent tre des attributs du dividende ( ici PARTICIP
La relation dividende doit avoir au moins une colonne de plus que la relation diviseur.
La relation rsultat, le quotient, possde les attributs non communs aux deux relations initiales .

La relation quotient est forme de tous les tuples qui, concatns chacun des tuples du diviseur ( i
donnent toujours un tuple du dividende ( ici PARTICIPER ) .

Exploitation du Modle Logique de Donnes Relationnel ( suite 9 )


1.3 ) Les oprateurs complmentaires
Oprateur TRI

Formalisme : R = TRI ( R1 , Liste des attributs et

options de tri )
R1

Exemple R1 = LIVRAISON
N Client
Date livrais.

Article

006

10/10/99

Filtre cran

10

015

16/11/99

Printer HP LaserJet 6L

004

03/11/99

Clavier 102 T

015

11/09/99

Souris PS/2

006

28/12/99

Printer HP LaserJet 6L

002

03/11/99

Qt
250,00
2

3500,00
500,00

10

de Tri

/A : Tri ascendant
/D : Tri descendant

100,00
1

HP Brio 64 Mo-350 MHz

Prix
unit.
Options

3500,00

13000,00

R = TRI ( LIVRAISON , N Client /A , Date livrais./D , Article /A )


R

N Client
Date livrais.
Qt Prix unit.
002
03/11/99
13000,00

Le tri s'effectue sur un ou plusieurs

Article

attributs, dans l'ordre croissant ou

HP Brio 64 Mo-350 MHz

004

03/11/99

Clavier 102 T

006
3500,00

28/12/99

Printer HP LaserJet 6L

006

10/10/99

Filtre cran

015

16/11/99

Printer HP LaserJet 6L

500,00
1

10

250,00
2

dcroissant.
La relation rsultat a la mme
structure et le mme contenu que
relation de dpart.

Exploitation du Modle Logique de Donnes Relationnel ( suite 10 )


Attributs calculs et renomms
Attributs calculs
Un attribut calcul est un attribut dont les valeurs sont obtenues par des oprations arithmtiques portant
sur des
attributs de la mme relation. Le calcul est spcifi lors d'une projection ou lors de l'utilisation d'une
fonction.
Exemple : R = PROJECTION ( Ro , att1, att2, att3, att4, att1*att2, att3 / att2 )
Attributs renomms

Il est possible de renommer n'importe quel attribut en le faisant prcder de son nouveau nom ( alias ) suiv
Exemple :

Exemple

R = PROJECTION ( Ro, att1, att2, att3, att4, Alias1 : att1*att2, Alias2 : att3/att2 )

Ro

N Client

Date livrais.

Article

006

10/10/99

Filtre cran

015

16/11/99

Printer HP LaserJet 6L

004

03/11/99

Clavier 102 T

10

Qt
250,00
2

3500,00
500,00

R = PROJECTION ( Ro , Date livrais., Article , Montant : Qt x Prix unit. )


R

Date livrais.

Article

10/10/99

Filtre cran

16/11/99

Printer HP LaserJet 6L

03/11/99

Clavier 102 T

Montant
2500,00
7000,00
2500,00

Prix

Exploitation du Modle Logique de Donnes Relationnel ( suite 11 )


Oprateur CALCULER

Formalisme : R = CALCULER ( Ro , Fonction1,

Fonction2, )
Exemple

Ro

Ro = Ligne_commande

NBonCommande

CodeProd.

Quantit Prix U.HT

96008

A10

10

83

96008

B20

35

32

96009

A10

20

83

96010

A15

96010

B20

55

110
32

On dsire obtenir le chiffre d'affaires total HT , ainsi que le nombre total de produits commands :
R = CALCULER ( LIGNE_COMMANDE, Somme ( Quantit ) , Somme ( Quantit * Prix.U.HT ) )

Somme ( Quantit )

Somme ( Quantit * Prix.U.HT )

124

5810

Les calculs portent sur la relation Ro .


La relation rsultat R ne comporte qu'une ligne avec autant de colonnes que de rsultats demands
La relation R peut utiliser des attributs nomms ( alias ) :

Nbre_Produits_Commands
124

Chiffre_Affaires_HT
5810

Exploitation du Modle Logique de Donnes Relationnel ( suite 12 )


Oprateur REGROUPER_ET_CALCULER
Formalisme : R = REGROUPER_ET_CALCULER ( Ro , Att1, Att2 , , Fonction1,
Fonction2, )
Exemple

Ro

Ro = Ligne_commande

NBonCommande

CodeProd.

Quantit Prix U.HT

96008

A10

10

83

96008

B20

35

32

96009

A10

20

83

96010

A15

96010

B20

55

110
32

On dsire obtenir le montant total HT de chaque bon de commande :


R = REGROUPER_ET_CALCULER ( LIGNE_COMMANDE, NBonCommande, Mont_HT : Somme ( Qt * Prix.U.HT) )
Le regroupement s'effectue sur un sous ensembleR

N Bon commande

Montant HT

des attributs de la relation Ro.

96008

1950

La relation rsultat R comporte autant de lignes

96009

1660

que de groupes de tuples , les fonctions

96010

2200

s'appliquant chacun des groupes sparment.

SQL et les Oprateurs de base


Reprsentations graphiques
Projection

[ Liste d attributs ]

Slection

[ Condition ]
[ Nom de la table ]

[ Nom de la table ]

Produit
cartsien
[ Nom de la table ]

[ Nom de la table ]

Intersection

[ Nom de la table ]

U
[ Nom de la table ]

Diffrence

[ Nom de la table ]

Division

Union

[ Nom de la table ]

[ Nom de la table ]

Auto-jointure

[ Nom de la table ]

[ Nom de la table ]

[ Nom de la table ]

[ Nom de la table ]

[ Pivot ]

[ Nom de la table ]

SQL et les Oprateurs de base


Reprsentations graphiques ( suite )

Jointure
externe

[ Pivot ]

Table 2 ( + )
( table subordonne )
Les lignes affiches
doivent satisfaire
la condition de jointure

Table 1
( table dominante )
Toutes les lignes affiches
mme si la condition de
jointure non ralise

Calcul

Division

[ Nom de la table ]

[ Nom de la table ]

F1( Attr 1 ) ,
F2( Attr 2 ), ...

Calcul
F1( Attr 1 ) , F2( Attr 2 ), ...

Calcul

Calcul et
Regroupement

[ Nom de la table ]

[ Attr 3 ,
Attr 4 , ]
Regroupement
[ Nom de la table ]

Regroupement
avec Slection
de groupe

[ Condition de groupe ]

Regroupement

[ Attr 1 ,
Attr 2 , ]

[ Nom de la table ]

Calcul et
Regroupement
avec Slection de
groupe

F1( Attr 1 ) ,
F2( Attr 2 ), ...

Calcul

[ Condition de groupe ]

Regroupement

[ Attr 3 ,
Attr 4 , ]

[ Nom de la table ]

SQL et les Oprateurs de base


Exemple d application : Tour du Maroc de Cyclisme

MCD

EQUIPE

COUREUR
N Coureur
Nom Coureur

1,1

0,N

ADHERER

1,N

1,1
NATIONALITE

PARTICIPER

0,N

Nbre points
Temps ralis

Code Equipe
Nom Equipe
Direct. Sportif

PAYS
Code Pays
Nom Pays

1,N
ETAPE
N Etape
Ville dpart
Ville arrive
Nombre Km

MLDR

1,1

CLASSER

1,N

TYPE ETAPE
Code Type
Libell Type

EQUIPE ( Code Equipe #, Nom Equipe , Directeur Sportif )


COUREUR ( N Coureur #, Nom Coureur, Code Equipe #, Code Pays # )
PARTICIPER ( N Coureur #, N Etape #, Nbre points , Temps ralis )
ETAPE ( N Etape #, Ville dp., Ville arr., Nbre Km , Code Type # )
TYPE ETAPE ( Code Type #, Libell Type )

Exemple dapplication : Tour du Maroc de Cyclisme

1 - Quelle est la composition de l'quipe NAJAH ( Numro, nom et pays de


R1
R2
R3
R4

=
=
=
=

SELECTION ( EQUIPE , NomEquipe = "NAJAH" )


JOINTURE ( R1 , COUREUR, R1.CodeEquipe = COUREUR.CodeEquipe )
JOINTURE ( R2 , PAYS, R2.CodePays = PAYS.CodePays )
PROJECTION ( R3, N_Coureur, NomCoureur, NomPays )
R4
[ N_Coureur , Nom Coureur , Nom Pays ]
R3
[ CodePays # ]

R2

EQUIPE

[ CodeEquipe # ]

COUREUR

SELECT N_Coureur, NomCoureur, NomPays


FROM EQUIPE As A, COUREUR As B, PAYS As C
WHERE A.[CodeEquipe#] = B.[CodeEquipe#]
AND
B.[CodePays#] = C.[CodePays#]
AND
NomEquipe = "NAJAH" ;

R1
[ Nom Equipe = NAJAH ]
EQUIPE

Exemple dapplication : Tour du Maroc de Cyclisme

2 - Quel est le nombre de kilomtres total du Tour du Maroc ?

N = CALCULER ( ETAPE , SOMME ( NombreKm ) )

[ N = SOMME ( NombreKm ) ]

SELECT SUM ( NombreKm) As N


FROM ETAPE ;
ETAPE

Exemple dapplication : Tour du Maroc de Cyclisme


3 - Quel est le nombre de kilomtres total des tapes de type Haute
Montagne ?
R1 = SELECTION ( TYPE_ETAPE, LibellType =" HAUTE
MONTAGNE" )
R2 = JOINTURE ( R1, ETAPE, R1.[CodeType#] = ETAPE.
[CodeType] )
N = CALCULER ( R2, SOMME( NombreKm ) )
N
[ N = SOMME( NombreKm ) ]

R2
[ CodeType # ]

ETAPE

SELECT SUM ( NombreKm)


FROM ETAPE As A , TYPE_ETAPE As B
WHERE A.[CodeType #] = B.[CodeType#]
AND LibellType = "HAUTE MONTAGNE" ;

R1
[ LibellType = HAUTE MONTAGNE ]
TYPE ETAPE

Exemple dapplication : Tour du Maroc de Cyclisme

4 - Quels sont les noms des coureurs qui nont pas particip ltape
N 7 ?
R1 = PROJECTION ( COUREUR, N_Coureur# )
R2 = SELECTION ( PARTICIPER, N_Etape# = 7 )
R3 = PROJECTION ( R2 , N_Coureur# )
R4 = DIFFERENCE ( R1 , R3 )
R5 = JOINTURE ( R4, COUREUR, R4.[N_Coureur#] = COUREUR.
[N_Coureur#] )
R6 = PROJECTION ( R5 , Nom_Coureur )

SELECT Nom_Coureur FROM


COUREUR
WHERE [N_Coureur#] NOT IN
( SELECT [N_Coureur#] FROM
PARTICIPER WHERE N_Etape =
7);

Nom_Coureur

[N_Coureur #] NOT IN
[ N_Coureur #]

COUREUR

N_Etape = 7
PARTICIPER

Si loprateur DIFFERENCE est absent


dans le rpertoire des clauses SQL du
SGBD utilis , on le simule par une
slection avec la clause NOT IN
et une sous-requte SELECT

Exemple dapplication : Tour du Maroc de Cyclisme


5 - Quels sont les noms des coureurs qui ont particip toutes les
tapes ?
N = CALCULER ( ETAPE , Comptage( ) )
R1 = REGROUPER_ET_CALCULER ( PARTICIPER, [N_Coureur#] , Nb :
Comptage( ) )
R2 = SELECTION ( R1 , Nb = N )
R3 = JOINTURE ( R2 , COUREUR , R2.[N_Coureur#] = COUREUR.
[N_Coureur#] )
R4 = PROJECTION ( R3 , Nom_Coureur )
Nom_Coureur
[N_Coureur #]
COUREUR

SELECT Nom_Coureur FROM PARTICIPER A ,


COUREUR B
WHERE A.[N_Coureur#] = B.[N_Coureur#]
GROUP BY A.[N_Coureur#] , A.Nom_Coureur ;
HAVING COUNT(*) = ( SELECT COUNT(*) FROM ETAPE ) ;

Nb = N
Comptage( )
Nb = Comptage( )
[ N_Coureur #]
PARTICIPER

ETAPE

Loprateur DIVISION tant absent dans le


langage SQL sur la plupart des SGBD , on utilise
pour le simuler, une opration de comptage et de
regroupement avec une sous-requte de comptage

Exemple dapplication : Tour du Maroc de Cyclisme


6 - Quel est le classement gnral des coureurs ( Nom, Code quipe,
Code pays et Temps des coureurs ) lissue des 12 premires
tapes ?
R1 = SELECTION ( PARTICIPER , [N_Etape #] <= 12 )
R2 = REGROUPER_ET_CALCULER ( R1, [N_Coureur#] , Total :
Somme(Temps_Ralis) )
R3 = JOINTURE ( R2 , COUREUR , R2.[N_Coureur#] = COUREUR.
[N_Coureur#] )
R4 = PROJECTION ( R3 , Nom_Coureur , [Code_Equipe#] , [Code_Pays#] ,
Total )
R5 = TRI (Nom_Coureur
R4 , Total, [Code_Equipe#]
)
, [Code_Pays#] , Total / ASC
[N_Coureur #]
COUREUR
Total = Somme( Temps_Ralis )
[ N_Coureur #]

[N_Etape #] <= 12
PARTICIPER

SELECT Nom_Coureur , [Code_Equipe#]


, [Code_Pays#] , SUM(Temps_Ralis)
AS Total FROM PARTICIPER A ,
COUREUR B
WHERE A.[N_Coureur#] = B.
[N_Coureur#]
AND [N_Etape #] <= 12
GROUP BY A.[N_Coureur#] ,
Nom_Coureur,
[Code_Equipe#] , [Code_Pays#]
ORDER BY 4 ;

Exemple dapplication : Tour du Maroc de Cyclisme


7 - Quel est le classement gnral par quipe lissue des 12
premires tapes
( Nom et Temps des quipes ) ?
R1 = SELECTION ( PARTICIPER , [N_Etape #] <= 12 )
R2 = JOINTURE ( R1 , COUREUR , R1.[N_Coureur#] = COUREUR. [N_Coureur#]
)
R3 = REGROUPER_ET_CALCULER ( R2, [Code_Equipe#] , Total :
Somme(Temps_Ralis) )
R4 = JOINTURE ( R3 , EQUIPE , R3.[Code_Equipe#] = EQUIPE.
[Code_Equipe#] )
R5 = PROJECTION ( R4 , Total , Nom_Equipe )
, Total
R6 = TRI (Nom_Equipe
R5 , Total
) / ASC
[Code_Equipe #]
EQUIPE
Total = Somme( Temps_Ralis )
[ Code_Equipe #]
[N_Coureur#]
[N_Etape #] <= 12
COUREUR

PARTICIPER

SELECT Nom_Equipe , SUM(Temps_Ralis)


AS Total FROM PARTICIPER A , COUREUR B,
EQUIPE C
WHERE A.[N_Coureur#] = B.[N_Coureur#]
AND
B.[Code_Equipe#] = C.
[Code_Equipe#]
AND
[N_Etape#] <= 12
GROUP BY B.[Code_Equipe#] , Nom_Equipe
ORDER BY 2 ;

BASES DE DONNEES
SYSTEMES DE GESTION DE BASES
DE DONNEES

Quest-ce quune base de donnes ? ( BD )


Une base de donnes ( BD ) est un ensemble structur de donnes enregistres avec le minimum
de redondance sur un support de stockage informatique et accessibles plusieurs utilisateurs de
manire slective et simultane au moyen dun systme de gestion de base de donnes ( SGBD ) .
Un SGBD permet de rpondre simultanment aux interrogations ( requtes ) de plusieurs
utilisateurs exprimes sur une mme base de donnes dploye sur un rseau informatique .

Exemple : Base de donnes dune compagnie arienne


Les requtes sont trs varies , par exemple :
- Une rservation : Liste des passagers qui ont rserv un vol dtermin ?
- Un quipage : Quel est le pilote du vol Royal Air Maroc Casablanca Londres du 15 Octobre
Dpart 15 H 30 ?
- Un appareil : Quelle est la date de la dernire rvision de lavion N 97 ?

Approche classique et Approche Base de donnes


Un systme dinformation organis autour dune base de donnes est centr sur les donnes
alors quun systme dinformation classique est conu autour de fonctions de traitement
( exemple : chane de traitement : Commande , Facturation , Comptabilit , Paye , etc )

Approche Gestion de fichiers


Fichiers

Description des donnes


Programme dapplication ( 1 )

Gestionnaire de fichiers
du systme dexploitation

Les structures de donnes sont dcrites dans chaque


programme dapplication afin daccder aux fichiers de donnes .

Description des donnes


Programme dapplication ( 2 )
Description des donnes
Programme dapplication ( 3 )

Approche Base de Donnes


BD

Description
unique des
donnes

SGBD
Liaison 1

Programme ( 1 )

Liaison 2

Programme ( 2 )

Liaison 3

Programme ( 3 )

Les structures de donnes sont dcrites de faon unique laide du SGBD qui rsout les requtes des diffrents programmes

Architecture type dun SGBD Relationnel


Utilisateurs
dapplication
nafs

Dveloppeurs
dapplication

Programmes
applicatifs
en langage volu

Compilateur
du langage volu

Environnement du SGBD

Utilisateurs
occasionnels
Requte
interactive

Administrateur de
Bases de donnes
Schma
Base de donnes

Moteur du SGBD
Prcompilateur
du langage de
manipulation
de donnes
( LMD de SQL )

Processeur
de requtes

Compilateur du langage
de dfinition de donnes
( LDD de SQL )

Gestionnaire
de donnes

Programmes applicatifs
( Code objet )

Bases de donnes sur disque


Fichiers
de donnes

Rles du Gestionnaire de donnes :

Gestion de fichiers

Dictionnaire de donnes
( mtadonnes )

Maintenance , intgrit , scurit des donnes , backup et restauration ,


contrle des accs concurrents

Comment apprhender une Base de Donnes ?


3 Niveaux danalyse selon le groupe ANSI / X3 / SPARC ( 1975 ) :
- Le niveau interne SGBD ( Schma ou couche interne ) :
Il correspond la description des structures de donnes sur les fichiers physiques stocks sur les mmoires de masse
( Types de donnes et domaines de valeurs , indexes , chanages etc ) .
- Le niveau conceptuel SGBD ( Schma ou couche conceptuelle ) :
Il correspond la description du schma logique relationnel liant globalement les donnes
( MLDR global selon MERISE )
- Le niveau externe SGBD ( Schma ou couche externe ) :
Il correspond la description des schmas relationnels locaux et des vues exploits par les diffrents utilisateurs
( MLDR locaux et vues associs aux postes de travail selon MERISE )

Disques
Programmes
dapplicationc

BD

Requte
interactive

Schma interne
Schma conceptuel
Schma externe

Modle 3 couches ( ANSI / SPARC )

Un Systme de Gestion de Bases de Donnes


offre la possibilit lutilisateur de manipuler les reprsentations abstraites des donnes
( mtadonnes ) indpendamment de leur organisation et de leur implantation sur les
supports physiques .

Fonctions principales dun SGBD


- Dcrire et organiser les donnes sur les mmoires secondaires
( disques, bandes magntiques , etc )
- Rechercher, slectionner et modifier les donnes

Fonctions complmentaires dun SGBD


- Scurit : vrifier les droits daccs des utilisateurs sur les donnes
- Intgrit : dfinir des rgles qui maintiennent une cohrence entre les donnes compte tenu
de leur structure ( contraintes dintgrit )
- Concurrence daccs : dtecter et traiter les cas o il y a conflit daccs entre plusieurs
utilisateurs et les traiter correctement .

Le march des SGBD


Parts de march en 1997
Aujourdhui 3 leaders : Oracle, IBM, Microsoft

24

24,9

Oracle
IBM
Microsoft
Sybase

6,1
5,7

12,1

199627,2

Source: Dataquest Mars 1998

Informix
Autres

Oracle

21,5

27,5

4,4

IBM
Microsoft
Sybase

4,5
14,9

27,2

1998

Informix
Autres

Le choix sur Windows NT

Database Market Share on Windows NT Operating System


45%
35%
25%
15%

5%
1994
Source: Gartner Group March 1997

.
.

..

MICROSOFT SQL Server


Oracle Database

Mais aussi DB2, Informix,


et Sybase

1995

1996

Exemple de Formulation de Requte


MCD

DEPT

PRODUIT
N Produit
Libell

MLDR :

0,N

STOCKAGE

0,N

N Dpt
Ville

Reprsentation en intention
PRODUIT ( N Produit , Libell )
DEPT ( N Dpt , Ville )
STOCKAGE ( N Produit # , N Dpt # , Qt produit stocke )

MLDR :

Reprsentation en extension
oo

oo
STOCKAGE N Produit#

1
PRODUIT N Produit

1
2
3
4

Libell
Farine
Huile
Sucre
Sel

1
3
2
1
3

N Dpt#
1
4
3
4
3

DEPT

Qt stocke
220
140
52
60
45

N Dpt Ville
1
2
3
4

Agadir
Casa
Mekns
Tanger

Exemple de Formulation de Requte ( suite )


PRODUIT
N Produit
Libell

oo

STOCKAGE

N Produit #
N Dpt #
Qt Prod. stocke

oo

DEPT
N Dpt
Ville

Requte : Quels sont les produits ( Libell et Qt en stock ) stocks Tanger ?


Rsolution :

R1

R1 = SELECTION ( DEPT , Ville = Tanger )

N Dpt Ville
4

Tanger

R2 = JOINTURE ( R1 , STOCKAGE , R1.[ N Dpt ] = STOCKAGE .[ N Dpt # ] )


R2

N Dpt
4
4

Ville
Tanger
Tanger

N Produit# N Dpt #
3
1

Qt stocke

4
4

140
60

R3 = JOINTURE ( R2 , PRODUIT , R2.[ N Produit # ] = PRODUIT .[ N Produit ] )


R3

N Dpt
4
4

Ville
Tanger
Tanger

N Produit# N Dpt #
3
1

R4 = PROJECTION ( R3 , Libell , Qt prod. stocke )

Qt stocke

4
4

140
60
R4

Libell
Sucre
Farine

N Produit Libell
3
1

Sucre
Farine

Qt stocke
140
60

LE LANGAGE DE REQUETES SQL


1 Origines et volutions
- SQL est driv de lalgbre relationnelle et du langage SEQUEL ( Structured English Query Language )
- Il a t intgr ds 1986 aux plateformes SQL / DS, DB2 , puis ORACLE , INGRES ,
INFORMIX , etc
- Il existe 3 versions normalises , du plus simple au plus complexe :
* SQL 1 ( 1986 ) : le langage de base
* SQL 1 ( 1989 ) : addendum ( contraintes dintgrit sur les donnes )
* SQL 2 ( 1992 ) : langage complet 3 niveaux
* SQL 3 ( 1998 ) : Les volutions orientes objet ( SQL 3 nest pas encore le nouveau standard )

2 Les 3 niveaux du langage SQL


* Langage de dfinition de donnes ( LDD ) : Il permet de spcifier un schma conceptuel de BD
CREATE et DROP ( tables , indexes et vues )
* Langage de manipulation de donnes ( LMD ) : Il permet dinterroger et de manipuler les donnes
SELECT , INSERT , UPDATE , DELETE , OPEN , FETCH , CLOSE , etc
* Langage de contrle de donnes ( LCD ) : Il permet de grer la scurit des donnes, les transactions
et les accs concurrents
GRANT et REVOKE , BEGIN et END TRANSACTION , COMMIT et ROLLBACK, etc

LE LANGAGE DE MANIPULATION DE DONNEES ( LMD )


Les ordres LMD sont des instructions SQL cres partir des commandes suivantes :
Commande
SELECT
INSERT
UPDATE
DELETE

Rle
Interroger une base de donnes en vue dextraire les enregistrements qui rpondent
des critres particuliers
Insrer ( charger ) des lots de donnes dans la base de donnes en une seule opration
Modifier ( mettre jour ) des valeurs dattributs dans une table ou bien des valeurs
denregistrements entiers rpondant des critres particuliers
Supprimer des enregistrements dans une table de base de donnes slectionns daprs
un critre donn .

Chaque commande peut utiliser une ou plusieurs clauses obligatoires et des clauses optionnelles .
Les clauses permettent de dfinir lorigine et la nature des donnes quil faut slectionner ou manipuler .
Clause
FROM
WHERE
GROUP BY
HAVING
ORDER BY

Rle
Nommer une ou plusieurs tables ou vues partir desquelles les enregistrements doivent
tre slectionns
Spcifier des conditions de jointure et / ou de slection sur les enregistrements
Spcifier les attributs de regroupement lors dune opration de calcul et / ou
regroupement
Spcifier des conditions de slection sur les enregistrements obtenus aprs une
opration de regroupement
Trier les enregistrements slectionns pour tre projets dans un ordre particulier

COMMANDE SELECT : Forme gnrale


SELECT [DISTINCT] < liste dattributs de projection simples , calculs ou renomms >
FROM
< liste de tables ou vues >
[WHERE
< critre de jointure naturelle, thta-jointure, jointure externe > ]
[ AND < critre de slection simple > ]
[ AND < critre de slection complexe appelant une sous-requte > ]
[GROUP BY
< liste dattributs de regroupement > ]
[HAVING
< critre de slection sur des attributs calculs ou regroups > ]
[UNION / INTERSECT / EXCEPT ( autre requte SELECT ) ]
[ORDER BY
< liste dattributs de tri avec ordre de tri > ]
Critre de slection simple
* arithmtique ( = , < , > , <= , >= , <> )
* textuel ( LIKE )
* sur intervalle ( BETWEEN )
Critre de slection complexe ( imbrication dordres SELECT )
* clause IN ou NOT IN , EXISTS ou NOT EXISTS
* clauses ALL , ANY , SOME , etc
* sous-requtes dpendantes ou corrles

COMMANDE SELECT : Les slections ( restrictions ) simples


Relation utilise : PRODUIT ( N_Produit , Libell_Produit , Prix_U , Poids , Couleur )
* Liste des donnes sur les produits dont le poids est suprieur 15 Kg
SELECT * FROM Produit WHERE Poids > 15 ;
* Liste des libells de produits diffrents dont le poids est compris entre 15 et 40 Kg
SELECT DISTINCT Libell _Produit FROM Produit WHERE Poids BETWEEN 15 AND 40 ;
* Liste des produits dont le poids nest pas compris entre 15 et 40 Kg et dont la couleur est
verte , rouge ou bleue
SELECT * FROM Produit
WHERE Poids NOT BETWEEN 15 AND 40
AND
Couleur IN ( Vert, Rouge, Bleu ) ;
* Liste des produits dont le libell ne commence pas par la lettre D
SELECT * FROM Produit WHERE Libell _Produit NOT LIKE D%
* Liste des produits dont la couleur est renseigne
SELECT * FROM Produit WHERE Couleur IS NOT NULL ;
* Liste des produits dont la couleur est nest pas renseigne
SELECT * FROM Produit WHERE Couleur IS NULL ;

COMMANDE SELECT : Les Slections ( restrictions ) avec sous-requte


Schma relationnel :

DEPOT ( N_Dpt, Nom_Dpt, Ville )


STOCKER ( N_Dpt # , N_Produit # , Qt_Stocke )
PRODUIT ( N_Produit , Libell_Produit , Prix_U, Poids, Couleur )

Sous-requte renvoyant une seule valeur ( relation une seule ligne et une seule colonne ) :
Liste des dpts situs dans la mme ville que le dpt N 12
SELECT Nom_Dpt FROM Dpt
WHERE Ville = ( SELECT Ville FROM Dpt WHERE N_Dpt = 12 )
Liste des produits dont le prix unitaire est suprieur celui du produit N 36
SELECT Libell_Produit FROM Produit
WHERE Prix_U > ( SELECT Prix_U FROM Produit WHERE N_Produit = 36 )
Sous-requte renvoyant plusieurs valeurs ( relation une seule colonne et plusieurs lignes ) :
Loprateur : IN
Liste des produits dont la couleur est la mme que celle de lune des tables
SELECT Libell_Produit FROM Produit
WHERE Couleur IN ( SELECT Couleur FROM Produit WHERE Libell_Produit = Table )
Liste des produits dont le prix unitaire est diffrent de celui de toutes les armoires
SELECT Libell_Produit FROM Produit
WHERE Prix_U NOT IN ( SELECT Prix_U FROM Produit WHERE Libell_Produit = Armoire )

COMMANDE SELECT : Les Slections ( restrictions ) avec sous-requte ( suite


1)
* Sous-requte renvoyant plusieurs valeurs ( relation une seule colonne et plusieurs lignes ) :
Les oprateurs : ANY et ALL
ANY : la comparaison est vraie si elle est vraie pour au moins un des lments de l'ensemble.
ALL : la comparaison sera vraie si elle est vraie pour tous les lments de l'ensemble.
La forme ( = ANY ) est quivalente la forme ( IN )
Les formes ( <> ANY ) et ( <> ALL ) sont quivalentes la forme ( NOT IN )
=> Liste des produits dont le prix unitaire est infrieure celui de larmoire la plus chre
SELECT Libell_Produit FROM Produit
WHERE Prix_U < ANY ( SELECT Prix_U FROM Produit WHERE Libell_Produit = Armoire )
=> Liste des produits dont le prix unitaire est infrieure celui de larmoire la moins chre
SELECT Libell_Produit FROM Produit
WHERE Prix_U < ALL ( SELECT Prix_U FROM Produit WHERE Libell_Produit = Armoire )
* Sous-requte renvoyant plusieurs colonnes ( relation une plusieurs colonnes ) :
=> Liste des produits dont le poids et la couleur sont identiques ceux de larticle N 125
SELECT Libell_Produit FROM Produit
WHERE ( Poids , Couleur ) = ( SELECT Poids , Couleur FROM Produit WHERE N_Produit = 125 )

COMMANDE SELECT : Les Slections ( restrictions ) avec sous-requte ( suite


2)
* Sous-requte renvoyant au moins 1 ligne ( relation 1 ou plusieurs colonnes comportant au moins 1 ligne ) :
Loprateur : EXISTS
=> Liste des produits stocks dans au moins un dpt avec une quantit suprieure 1000 units ?
SELECT Libell_Produit FROM Produit AS P
WHERE EXISTS ( SELECT * FROM STOCKER WHERE [N_Produit#] = P. N_Produit
AND
Qt_Stocke > 1000 )
=> Liste des produits qui ne sont stocks dans aucun dpt ?
SELECT Libell_Produit FROM Produit AS P
WHERE NOT EXISTS ( SELECT * FROM STOCKER WHERE [N_Produit#] = P. N_Produit )
* Sous-requtes multiples
Lorsque les attributs de projection appartiennent tous la requte principale , on peut utiliser plusieurs
sous-requtes imbriques au lieu dutiliser des jointures
=> Liste des produits ( Libell, Prix_U et Poids ) stocks Tanger dans le dpt Grossisterie Znibar ?
SELECT Libell_Produit, Prix_U, Poids FROM Produit
WHERE N_Produit IN ( SELECT [ N_Produit# ] FROM STOCKER
WHERE [ N_Dpt# ] IN ( SELECT N_Dpt FROM Dpt
WHERE Ville = Tanger
AND Nom_Dpt = Grossisterie Znibar )

COMMANDE SELECT : Les Slections ( restrictions ) avec sous-requte ( suite


3)
Les sous-requtes dpendantes ou corrles
Cest une forme trs puissante des sous-requtes .
La requte principale fournit plusieurs groupes de valeurs la sous-requte . Pour chaque groupe de valeurs ,
la sous-requte est value pour donner un rsultat .
=> Liste des produits disponibles dans plusieurs couleurs ( au moins 2 )
SELECT Libell_Produit FROM Produit AS P1
WHERE Libell_Produit IN ( SELECT Libell_Produit FROM Produit As P2
WHERE P2.Couleur <> P1.Couleur )
=> Liste des prix unitaires les plus levs de chaque type de produit
SELECT Libell_Produit, Prix_U FROM Produit AS P1
WHERE Prix = ( SELECT MAX ( Prix_U ) FROM PRODUIT P2
WHERE P2. Libell_Produit = P1. Libell_Produit )
=> Liste des dpts stockant tous les produits ( simulation de loprateur relationnel Division )
SELECT Nom_Dpt , Ville FROM Dpt AS D
WHERE NOT EXISTS ( SELECT * FROM Produit AS P
WHERE NOT EXISTS ( SELECT * FROM STOCKER S
WHERE S. [N_Produit#] = P. N_Produit
AND
S. [N_Dpt#] = D. N_Dpt )

COMMANDE SELECT : Les Fonctions Statistiques


Le langage SQL offre la possibilit de rcuprer des donnes chiffres sur des tables ou des vues .
On peut par exemple obtenir le nombre de tuples rpondant un critre de slection avec la fonction
COUNT , la valeur moyenne dune colonne avec la fonction AVG , la valeur maximale ou minimale
et la somme dune colonne avec les fonctions MAX , MIN et SUM .
=> Compter le nombre de dpts o le produit N 122 est stock
SELECT COUNT(*) AS Compte FROM STOCKER WHERE [ N_Produit# ] = 122
=> Calculer la somme globale , la moyenne , le maximum et le minimum des quantits stockes du produit
N 122
SELECT SUM ( Qt_Stocke ) , AVG ( Qt_Stocke ) , MAX ( Qt_Stocke ) , MIN ( Qt_Stocke )
FROM STOCKER WHERE [ N_Produit# ] = 122
=> Compter les noms de produits diffrents
SELECT COUNT ( DISTINCT Libell_Produit ) AS Compte FROM Produit

COMMANDE SELECT : Les Regroupements


On appelle Groupe un ensemble de lignes ( tuples ) dans une relation qui possdent une valeur identique dans
une ou plusieurs colonnes . Cette colonne ( ou ensemble de colonnes ) peut tre dfinie comme un
facteur de regroupement laide de la clause GROUP BY de la commande SELECT .
SQL permet alors deffectuer des calculs sur les autres colonnes ( qui ne sont pas des facteurs de regroupement )
en utilisant les fonctions statistiques ( fonctions dagrgation ) : COUNT , SUM , AVG, MAX et MIN .
La clause HAVING permet dappliquer une condition de slection ( restriction ) chaque groupe dans la
relation rsultat de la requte au niveau des colonnes de regroupements et / ou de calcul .
Remarque : Dans la commande SELECT , les colonnes de calcul sont toujours spcifies dans la liste des
attributs de projection . Toutes les autres colonnes ( non calcules ) figurant dans cette liste sont alors
considres comme des facteurs de regroupement et doivent figurer dans la clause GROUP BY .
=> Liste du nombre de produits par type de produit
SELECT Libell_Produit , COUNT(*) AS [Nombre articles ] FROM PRODUIT
GROUP BY Libell_Produit ORDER BY 1 ;
=> Liste des N de produits stocks dans plus de 2 dpts
SELECT [ N_Produit# ] , COUNT(*) AS [Nombre dpts] FROM STOCKER
GROUP BY [ N_Produit# ]
HAVING COUNT(*) > 2 ORDER BY 1 ;
=> Lister les dpts de la ville de Rabat dont la valeur marchande est suprieure 100 000 DH
SELECT Nom_Dpt , SUM ( Prix_U*Qt_Stocke ) As [ Valeur en DH ]
FROM Dpt As D , Stocker As S , Produit As P
WHERE D.N_Dpt = S.[N_Dpt#] AND S.[N_Produit#] = P.N_Produit AND Ville = Rabat
GROUP BY Nom_Dpt
HAVING SUM ( Prix_U*Qt_Stocke ) > 100 000 ORDER BY 2 DESC

Programmation DAO ( Data Access Objects )


1 - Peuplement dune Liste de donnes laide dun contrle DATA
Liste des Rgions

F ( Classe FORM )

L ( Classe DBList )
L.Listfield = Rgion
Permet de dfinir lattribut afficher
( Mode conception )

<-

DATA1

->

L.RowSource = DATA1
( Mode conception )

Le contrle DBList est affich dans la bote


outils des contrles de lenvironnement
de dveloppement aprs avoir rfrenc la
Classe : Microsoft Data Bound List Controls
dans loption Composants du menu
Projet

( Classe Data )

La Liste L ( contrle dpendant ) est lie un contrle DATA1 par linstruction : L.RowSource = DATA1
La colonne afficher dans la liste est spcifie par la proprit Listfield .
Le chargement du contrle DATA1 avec un jeu denregistrement entrane le peuplement automatique de la liste .
Programmation
Procdure de dmarrage de la Feuille

Procdure de peuplement de la Liste

Private Sub Form_Load


Call AfficheListe

Private Sub AfficheListe


Data1.DatabaseName = C:\Travail\BD1.mdb

End Sub

Data1.RecordSource = SELECT * FROM Client


Data1.Refresh
End Sub

Programmation DAO ( Data Access Objects )


2 - Peuplement dune Grille de donnes laide dun contrle DATA
Liste des Clients
Matricule

Nom

Prnom

G ( Classe DBGrid )
Adresse

G.DataSource = DATA1
( Mode conception )
<-

DATA1

F ( Classe FORM )
Le contrle DBGrid est affich dans
la bote outils des contrles de
lenvironnement de dveloppement
aprs avoir rfrenc la Classe :
Microsoft Data Bound Grid
Control dans loption
Composants du menu Projet

->

( Classe Data )

La Grille G ( contrle dpendant ) est lie un contrle DATA1 par linstruction : G.DataSource = DATA1
Le chargement du contrle DATA1 avec un jeu denregistrement entrane le peuplement automatique de la grille
Programmation
Procdure de dmarrage de la Feuille

Procdure de peuplement de la Grille

Private Sub Form_Load


Call AfficheGrille

Private Sub AfficheGrille


Data1.DatabaseName = C:\Travail\BD1.mdb

End Sub

Data1.RecordSource = SELECT * FROM Client


Data1.Refresh
End Sub

Programmation DAO ( Data Access Objects )


3 Synchronisation de 2 Listes de donnes
Liste des Pays

Liste des Rgions


du pays slectionn

C ( Classe DBCombo )
C.RowSource = Data1
C.Listfield = Pays
C.BoundColumn = N_Pays
C.Style = 2
( Mode conception )
<Modle logique relationnel :

DATA1

->

F ( Classe FORM )
Les contrles C et L sont lis
chacun un contrle DATA.
L ( Classe DBList )
Les colonnes daffichage sont
dfinies laide de la proprit
L.RowSource = Data2
L.Listfield = Rgion
Listfield .
( Mode conception )
La colonne de synchronisation
est spcifie par la proprit
BoundColumn de la liste
Combo et ses valeurs sont
transmises par la proprit
<DATA2
->
BoundText

PAYS ( N_Pays , Pays )

REGION ( N_Rgion , Rgion , N_Pays )

La colonne de synchronisation doit tre prsente dans les commandes SQL affects aux 2 listes afin quelles puissent afficher
des donnes lies :
Private Sub AffichePays
Data1.DatabaseName = C:\Travail\BD1.mdb
Private Sub Form_Load
Data1.RecordSource = SELECT * FROM Pays
Call AffichePays
Data1.Refresh
End Sub
End Sub
Private Sub C_Click ( Area as Integer )
If Area = 2 Then Call AfficheRgions
End Sub

Private Sub AfficheRgions


Data2.DatabaseName = C:\Travail\BD1.mdb
Data2.RecordSource = SELECT * FROM Rgion + _
WHERE N_Pays = +CSTR ( VAL ( C.BoundText ) )
Data2.Refresh
End Sub

Programmation DAO ( Data Access Objects )


4 Synchronisation de Grilles et de Listes
Liste des Rgions
du pays slectionn

Liste des Pays

L ( Classe DBList )

L.RowSource = Data2
L.BoundColumn = N_Rgion
L.Listfield = Rgion
( Mode conception )

C ( Classe DBCombo )
C.RowSource = Data1
C.Listfield = Pays
C.BoundColumn = N_Pays
C.Style = 2
( Mode conception )
Matricule

F ( Classe FORM )

Nom

Prnom

Adresse

Les contrles C , L et G sont lis


chacun un contrle DATA.
Les colonnes daffichage sont
dfinies laide de la proprit
Listfield pour les listes C et L.
Les colonnes de synchronisation
sont dfinies par la proprit
BoundColumn dans chacune
des listes .

G ( Classe DBGrid )
G.DataSource = Data3
( Mode conception )
<-

DATA1

->

<-

DATA2

->

Modle logique relationnel :


PAYS ( N_Pays , Pays )
REGION ( N_Rgion , Rgion , N_Pays )
CLIENT ( Matr , Nom, Prnom , Adresse, N_Rgion )

<-

DATA3

->

Remarque importante
La colonne de synchronisation N_Pays doit tre prsente dans
les commandes SQL affects aux listes C et L
La colonne de synchronisation N_Rgion doit tre prsente
dans les commandes SQL affects la liste L et la Grille G

Programmation DAO ( Data Access Objects )


4 Synchronisation de Grilles et de Listes ( Suite )
Programmation de la Feuille
Procdure de dmarrage de la feuille
Private Sub Form_Load()
Call AffichePays
Call AfficheRgions
Call AfficheClients
End Sub
Gestion du Click sur le Combo C
Private Sub C_Click ( Area as Integer )
If Area = 2 Then Call AfficheRgions
End Sub
Gestion du Click sur la Liste L
Private Sub L_Click ( )
Call AfficheClients
End Sub

Private Sub AffichePays


Data1.DatabaseName = C:\Travail\BD1.mdb
Data1.RecordSource = SELECT * FROM Pays
Data1.Refresh
End Sub
Private Sub AfficheRgions
Data2.DatabaseName = C:\Travail\BD1.mdb
Data2.RecordSource = SELECT * FROM Rgion + _
WHERE N_Pays = +CSTR ( VAL ( C.BoundText ) )
Data2.Refresh
End Sub
Private Sub AfficheClients
Data3.DatabaseName = C:\Travail\BD1.mdb
Data3.RecordSource = SELECT * FROM Client + _
WHERE N_Rgion = +CSTR ( VAL ( L.BoundText ) )
Data3.Refresh
End Sub

Remarque
Il ne faut utiliser que les valeurs de la proprit BoundText pour synchroniser une liste avec des contrles en aval et jamais celles
renvoyes par le Recordset du contrle DATA associ la liste car il ny a pas synchronisation du contrle DATA avec les
changements de lignes dans la liste . Le contrle DATA nintervient quune seule fois , au moment du remplissage de la liste .

Programmation DAO ( Data Access Objects )


5 Synchronisation de plusieurs Grilles

F ( Classe FORM )

Liste des Clients


Matricule

Nom

Prnom

Adresse

Rgion

G1 ( Classe DBGrid )

Pays

G1.DataSource = Data1
( Mode conception )

Liste des Commandes passes par le Client point


Date Commande

N Commande

G2 ( Classe DBGrid )

Libell

G2.DataSource = Data2
( Mode conception )
Dtail de la Commande pointe
N Produit

Dsignation

Prix unitaire

G3 ( Classe DBGrid )

Quantit commande

G3.DataSource = Data3
( Mode conception )
<-

DATA1

->

<-

DATA2

->

<-

DATA3

->

Modle logique relationnel :


PAYS ( N_Pays , Pays )
REGION ( N_Rgion , Rgion , N_Pays )
CLIENT ( Matr , Nom, Prnom , Adresse, N_Rgion )

COMMANDE ( N_Commande, Date Commande , Libell, Matr )


LIGNE_COMMANDE ( N_Commande_, N_Produit , Qt )
PRODUIT ( N_Produit , Dsignation , Prix_Unitaire )

Programmation DAO ( Data Access Objects )


5 Synchronisation de plusieurs Grilles ( Suite 1 )
Procdure de dmarrage de la feuille
Private Sub Form_Load()
Call AfficheClients
Call AfficheCommandes
Call AfficheDtailCommande
End Sub

Private Sub AfficheClients


Dim SQL as String
SQL = SELECT Matr, Nom , Prnom , Rgion , Pays + _
FROM Client C , Rgion R , Pays P + _
WHERE C.N_Rgion = R.N_Rgion + _
AND
R.N_Pays = P.N_Pays + _
ORDER BY 2 , 3
Data1.DatabaseName = C:\Travail\BD1.mdb
Data1.RecordSource = SQL
Data1.Refresh
G1.Columns(0).Width = 700 : G1.Columns(1).Width = 1800
G1.Columns(2).Width = 1800 : G1.Columns(3).Width = 1400
G1.Columns(4).Width = 1400
End Sub

Gestion du Changement de ligne sur G1

Gestion du Changement de ligne sur G2

Private Sub G1_RowColChange(LastRow As Variant, _


ByVal LastCol As Integer)
Call AfficheCommandes

Private Sub G2_RowColChange(LastRow As Variant, _


ByVal LastCol As Integer)
Call AfficheDtailCommande

End Sub

End Sub

Programmation DAO ( Data Access Objects )


5 Synchronisation de plusieurs Grilles ( Suite 2 )
Private Sub AfficheCommandes

Private Sub AfficheDtailCommande

Dim SQL as String

Dim SQL as String

If Data1.Recordset.RecordCount > 0 Then


SQL = SELECT Date_Commande , N_Commande , Libell + _
FROM Commande + _
WHERE Matr = + _
Cstr ( Data1.Recordset.Fields(Matr).Value ) + _
ORDER BY 1 DESC
Else
SQL = SELECT Date_Commande , N_Commande , Libell + _
FROM Commande + _
WHERE Matr = - 1
Endif

If Data2.Recordset.RecordCount > 0 Then


SQL = SELECT P.N_Produit , Dsignation , Prix_Unitaire , Qt + _
FROM Produit P , Ligne_Commande L + _
WHERE P.N_Produit = L.N_Produit + _
AND L.N_Commande = + _
Cstr ( Data2.Recordset.Fields(N_Commande).Value ) + _
ORDER BY 1
Else
SQL = SELECT P.N_Produit , Dsignation , Prix_Unitaire , Qt + _
FROM Produit P , Ligne_Commande L + _
WHERE P.N_Produit = L.N_Produit + _
AND L.N_Commande = - 1
Endif

Data2.DatabaseName = C:\Travail\BD1.mdb
Data2.RecordSource = SQL
Data2.Refresh
G2.Columns(0).Width = 1000
G2.Columns(1).Width = 700
G2.Columns(2).Width = 2500

End Sub

Data3.DatabaseName = C:\Travail\BD1.mdb
Data3.RecordSource = SQL
Data3.Refresh
G3.Columns(0).Width = 700
G3.Columns(1).Width = 2500
G3.Columns(2).Width = 1000
G3.Columns(3).Width = 1000

End Sub