Vous êtes sur la page 1sur 203

Organisation et système

Organisation
On englobe sous ce terme l’ensemble des structures
économiques qui existent :
■ les entreprises publiques,
■ les entreprises privées,
■ les administrations,
■ les associations...

Un Système est un ensemble d’éléments organisés autour


d’un but, et dont la modification d’un constituant entraîne la
modification d’une partie, ou de l’ensemble des constituants
du système.
Brahim ER-RAHA
Notion de Système

Matériels
Ensemble d'éléments
Autres (hommes, règles, ...)

Entrée Processus Sortie

Brahim ER-RAHA
Exemple de système

Essence Voiture Déplacement

Contrôlée par un autre système de pilotage : conducteur

Brahim ER-RAHA
Autre Exemple
l'entreprise/organisation 1950/60

•Organisations : Entreprises ...


•Réalisation d'objectifs

Règlements fournisseurs Règlements clients

Entreprise
Produits achetés Produits vendus

Brahim ER-RAHA
La notion de système d’information
Qu'est qu'un système d'information :

La définition du système d'information est issue de la théorie des


systèmes ou systémique. Bien que fortement « théorisante », elle
fournit un éclairage assez solide sur le terrain (lorsqu'on ne voit plus
de quoi on parle…)

Une « organisation » (entreprise, administration, collectivité, tout


groupe social organisé exerçant une activité) peut être modélisé
comme comportant trois sous systèmes :

le système de pilotage (celui qui réfléchit, décide, oriente)


le système opérant (celui qui produit, transforme, agit)
le système d'information

Brahim ER-RAHA
Le système d’informations

C’est l’activité décisionnelle


de l’entreprise
C’est le système de
mémorisation entre
l’opérant et décision

C’est la transformation
des ressources , l’activité
de production

Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
La notion de système d’information
Le système d'information est la représentation de l'activité du
système opérant ,construite par et pour le système de pilotage pour
en faciliter le fonctionnement. Le système d'information a deux
grandes fonctions :

recueillir, mémoriser et diffuser les informations


assurer le traitement de ces informations

 joue un rôle à la fois stratégique, tactique et opérationnel


 contribue à leur croissance et leur pérennité
 constitue un outil de compétitivité
 est un catalyseur de l'innovation
 améliore leur efficacité et réactivité en favorisant la prise de
décision
Brahim ER-RAHA
Brahim ER-RAHA
La notion de système d’information
Une « organisation » (entreprise, administration, collectivité, tout
groupe social organisé exerçant une activité) peut être modélisée
comme comportant deux sous systèmes :

•le système d'information organisationnel (SIO), la partie visible,


basée essentiellement sur des ressources humaines, de l'activité
organisée.

•le système d'information informatisé (SII) correspondant au


contenu informatisé du SI (logiciel, base de données) , c’est l'ensemble
des moyens et des méthodes se rapportant au traitement automatisé des données de
l'organisation (Les SII (SIA) sont perçus à travers les logiciels qui les composent)

NB : on ne peut pas construire un SII sans comprendre au préalable le SIO


dans lequel on l'implante !

Brahim ER-RAHA
La notion de Projet Informatique
un projet informatique a pour objectif de construire une application
informatique (logiciel et base de données), support d'un système
d'information informatisé, inclus dans un système d'information
organisationnel.

Or, le processus d'informatisation des SI n'est pas encore


totalement maîtrisé: « Crise du logiciel »
• Coût élevé du logiciel dans les organisations
• Part importante du logiciel dans l'économie des pays
• Demande croissante, offre insuffisante
• Productivité insuffisante des informaticiens, pénurie
d'informaticiens, fardeau de la maintenance, ...

Brahim ER-RAHA
Le cycle de vie

1. Le Schéma Directeur
2. Analyse / Conception
L'étude préalable
L'étude détaillée
3. La réalisation
L’étude Technique
Production Logicielle
Mise en service
4.La Maintenance

Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Analyse
• Au sens informatique, l’analyse consiste d’une part à
comprendre et modéliser le fonctionnement d’un domaine de
gestion d’une organisation, et d’autre part à concevoir la
solution informatique adéquate.

Brahim ER-RAHA
Analyse/Conception

Brahim ER-RAHA
Étude préalable

Brahim ER-RAHA
L’Étude détaillée

Brahim ER-RAHA
3.Les principes de bases de Merise
3.2. Le cycle de vie
La réalisation

Brahim ER-RAHA
L’Étude Technique

Brahim ER-RAHA
3.Les principes de bases de Merise
3.2. Le cycle de vie
La production logicielle
La Réalisation

Elle décrit un projet dans une forme interprétable par la machine.


Elle comprend :

-La génération des fichiers ou bases de données


-L'écriture des programmes
-Les tests de mise au point.

Brahim ER-RAHA
La mise en service

Elle comprend :

-La mise au point d'un planning d'installation


-La création et le chargement des bases informations de base
-La formation des utilisateurs
-La migration.

Brahim ER-RAHA
La maintenance

C'est la prise en compte des évolutions apparaissant après le lancement


opérationnel.

Elle comprend :

-L'étude de l'impact des modifications


-La spécification des modifications
-La réalisation
-La mise en service

Elle peut parfois aboutir à une remise en cause de la solution


précédemment mise en place.

Brahim ER-RAHA
La notion de Méthode
Qu'est ce qu'une méthode ?

Une méthode comporte trois axes indispensables pour obtenir ce


label « méthode » :

• une démarche, ensemble coordonné d'étapes, de phases et de


tâches indiquant le chemin à suivre [Hodos, le chemin en grec,
serait une des étymologies de méthode] pour conduire un projet, ici,
la conception d'un SI,
• des raisonnements et des techniques nécessaires à la
construction de l'objet projeté, traduits ici par des modélisations,
• des moyens de mise en œuvre, en l'occurrence une organisation
de projet et des outils.

Brahim ER-RAHA
La notion de Modèle

Brahim ER-RAHA
Qualités attendues d’un modèle
• La fidélité
– La représentation doit être effectuée sans
déformation de la réalité
• La cohérence (validité)
– La représentation ne doit comporter de
contradiction explicite ou implicite
• La complétude
– La représentation doit décrire tous les phénomènes
pertinents par rapport aux objectifs du
modélisateur

Brahim ER-RAHA
Exemple de Modèle

Brahim ER-RAHA
Courants Structuré Systémique Objet

Apparition Les plus ancien Théorie des Le plus récent


systèmes
Origine Anglo--Saxone
Anglo Européenne Langages OO

Modélisation Décomposition Modélisation des Objet = Structure +


arborescente des données et des Comportement
fonctions traitements

Carac. Flux de données Séparation Implémentation OO


données /
traitements
Exemples SADT MERISE UMP / UML
DEMARCO AXIAL OOD
YOURDON IDA HOOD
Brahim ER-RAHA
Merise

M éthode d'
E tude et de
R éalisation ,

I nformatique pour les


S ystèmes d'
E ntreprise
Brahim ER-RAHA
Les principes de bases de Merise

Brahim ER-RAHA
Le Cycle d’Abstraction

Niveau Conceptuel
• Ce qu’il faut faire
• Quoi ?
Niveau Organisationnel
• La manière de faire
• Pour les traitements
Niveau Logique
• Choix des moyens et ressources
• Pour les données
Niveau Physique
• Les moyens de le faire
• Comment ?

Brahim ER-RAHA
La Méthode MERISE

MODELES

MCC

MCD MCTA
Niveau conceptuel

CVO

MOD MOTA Niveau


Organisationnel

MLD MLT Niveau logique

Niveau physique
MLDR MLTR

Brahim ER-RAHA
Le Système d’Information vu selon la méthode MERISE
MODELES Système Modélisé Description

MCC
Description des fonctions majeures du S.I en réponse aux stimuli
+ MCD Système d’information
provenant de l’environnement extérieur ( acteurs externes ) sans
+ MCTA Conceptuel ( SIC ) référence aux ressources nécessaires à sa mise en œuvre
+ CVO ( Concentration sur le Quoi )

MOD Système d’information Description des ressources nécessaires à la mise en œuvre des activités
+ MOTA Organisationnel ( SIO ) du SIC du point de vue du gestionnaire ( moyens techniques et humains ,
espace , temps , données ) et choix d ’une organisation pour ces
ressources ( Concentration sur le Comment du gestionnaire )

Description d’une solution informatique permettant d’assurer


le fonctionnement du SIO :
MLD Système d’information - Choix techniques concernant les outils de gestion de données
+ MLT Informatisé ( SII ) ( SGBD ) et les outils de développement informatiques .
- Représentation de la structure logique des données ( base de données )
et des traitements ( interaction homme-machine au niveau des postes de
travail )
- Description de l’architecture informatique ( répartition des
traitements et des données )
( Concentration sur le comment de l’informaticien )

Mise en œuvre opérationnelle d’une solution informatique


- Description de la base de données dans la syntaxe du SGBD choisi
MPD Système d ’information - Codage des procédures logiques de traitement en langage informatique
+ MPT Opérationnel ( SIOp ) évolué ( programmation )
- Mise en place d’une architecture de fonctionnement en réseau
( architecture centralisée , distribuée ou répartie )
Brahim ER-RAHA
La Démarche

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Document Acrobat

Brahim ER-RAHA
MODÈLE DE CONTEXTE (MC)
MC= Diagramme de flux de niveau 0
Il représente les échanges d 'information entre le Domaine Etude ( ex:
Gestion es ventes), les domaines connexes (ex: Gestion du
personne, stock, comptabilité ) et L’environnement ( ex : Client)

Facture Informations Vente G.


Client Comptabilité

Règlement G. Des
Ventes

Bon Livraison
G. De
Personnel

G. De
Stockes

Brahim ER-RAHA
Document Acrobat

Brahim ER-RAHA
Diagrammes de flux de données

DFD 1 = Zoom sur Ie domaine principal de


« Gestion des ventes »

Info. Stockes G. De
Stockes

G. Des
Commandes Info. Livraison en cours

Client
Bon livraison2 Commande2
Facture

Règlement G. Des Informations Vente G.


Factures Comptabilité

Informations Vente2

Informations Rémunération
G. force de
vente G. De
Personnel
Inf. Personnel
DFD 2 = Zoom sur Ie sous-domaine
« Gestion des factures » du
domaine « Gestion des ventes »
G. Des
Commande
s

Bon livraison2
Commande2

Facture
Facture2 G.
Client G. Des
Comptabilité
Factures

Informations
Facture3
Règlement
Règlement

Suivi des
règlements
Informations
G. force de
Vente2
vente
La Démarche
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
La Démarche
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : La modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
4.La Démarche
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
La Démarche
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
4.La Démarche
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
La Démarche

Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
4.La Démarche
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
4.La Démarche
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
4.La Démarche
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
4.La Démarche
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
4.La Démarche
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
La Démarche
Chapitre 1 : Modélisation de la communication

Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Modélisation des Données

....
Brahim ER-RAHA
Le Modèle Conceptuel de données ( MCD )

Formalisme = Modèle Entité-Association


développé par CHEN aux U.S.A ( 1976 )
puis TARDIEU en France ( 1979 )

Exemple :
1,N
COMMANDE
Commander
Qté commandée N° Commande
0,N Date Commande
1,1
PRODUIT Passer
commande
Ref-Produit
Désignation
Prix-unitaire 1,N
CLIENT
Code-Client
Nom-Client

Brahim ER-RAHA
Notion d’ENTITÉ

Entité = Représentation d’un objet concret ou abstrait


du S.I caractérisé par :
Nom Entité
* des propriétés ( attributs ) : P1, P2, P3, …..Pn P1
* un identifiant = Propriété ( P1 ) dont les valeurs P2
sont discriminantes Pn
* des occurrences ( instances ) multiples
( au moins 2 )
Etudiant
Exemple Etudiant
Etudiant 125
235
Etudiant 918 ALAMI
SEBASTIEN

N° Inscription DAOUDI ALBERT


DRISS
Nom MOUNIR FRANCAISE
MAROCAINE
Prénom MAROCAINE
Nationalité
Une occurrence d ’entité = 1 jeu de valeurs prises par les
Brahim ER-RAHA propriétés de l’entité
Notion d’ASSOCIATION
Une Association traduit les liens sémantiques existant entre 2
ou plusieurs entités du S.I et de son environnement
Elle est caractérisée par : * Absence d’existence intrinsèque
* des occurrences ( au moins une )
* des propriétés portées ( nombre M ) M = 0, 1, 2, 3, …
* une dimension N ( N = nombre d ’entités rattachées )
* un identifiant obtenu par concaténation des identifiants
des entités rattachées

Exemple Client
Véhicule
Loué par N° Client
N° Immatr.
Date mise en service Nom
Association binaire non Adresse
Kilométrage
porteuse d’identifiant
(N°Immatr.+N° Client )
Service
Salarié N° Service
Matricule Affecté à
Désignation
Date affect.
Nom

Association binaire porteuse d ’1 propriété ( Date


Brahim Affect ) et d’identifiant ( Matricule.+ N° Service )
ER-RAHA
Occurrences d’association
SALARIE
SERVICE
A01
IDRISSI 125
18/05/92 Comptabilité
SALARIE
SERVICE
A12 11/10/91
ALAMI 124
Commercial
SALARIE 04/03/93
SERVICE
A05
RAMI 106
Magasin
SALARIE
A09 * A01-125 , A12-125 et A05-106 sont des instances
DAOUDI de l ’association « Affecté à »

* Les instances A09 ( entité Salarié ) et 124 ( entité Service )


ne participent pas à l’association « Affecté à »
Brahim ER-RAHA
Cardinalités d ’une Association ( Interprétations )
E1 E2 E1 E1 E2
Assoc. E2 Assoc.
Assoc.

0,1 1,1 1,1 1,1 1,1


E1 E2 0,N
Assoc. Cardinalités mini :
0 : Certaines occurrences de l’entité peuvent ne pas participer à l’assoc
1 : Toute occurrence de l’entité participe obligatoirement à l’association
Cardinalités maxi :
1 : Toute occurrence de l’entité participe au plus une fois à l’association
N : Toute occurrence de l’entité peut participer plusieurs fois à l’assoc
0,N 1,N
Conclusion
* La cardinalité mini traduit la capacité d ’une occurrence à exister
indépendamment ou non des occurrences de l’association .
* La cardinalité maxi traduit la capacité associative de l’association pour
l’entité considérée
Brahim ER-RAHA
Cardinalités d ’une ASSOCIATION
Cardinalités = Couple de valeurs représentant la fréquence
(mini et maxi ) de participation d’une occurrence d ’entité à une
association )

Entité 1 i1 , j1
Entité 2
Association
i2 , j2
i1 , i2 = cardinalités mini
j1 , j2 = cardinalités maxi
Exemple
Service
Salarié 1,N 1,8 N° Service
Matricule Affecté à
Date affect. Désignation
Nom

Règles de gestion :
RG1 - Un salarié est affecté à un et ou pls services le long de sa carrière
RG2 - A un service , on peut affecter un à plusieurs salariés (maximum 8)
Brahim ER-RAHA
Identifiant d’une Association
Il est obtenu par concaténation des identifiants des entités reliées par l’association

Exemple : Employé Médecin


N° Employé N° Médecin
0,N 0,N
Nom Visiter Nom
Employé Médecin
Date _Visite
Nom Spécialité
Employé Téléphone
Adresse
Client Identifiant = ( N° Employé , N° Médecin )
Occurrences de « Visiter »
N° Employé N° Médecin Date Visite
La dernière occurrence de l’association « Visiter » n’est
23 1 26/06/01 pas permise en raison de la discriminance de l’identifiant .
12 3 05/07/01
39 2 10/08/01
La duplication de l’occurrence ( 42 , 4 ) n’est pas possible !
42 1 15/08/01
42 4 22/08/01
42 4 05/09/01

Question : Un employé peut-il effectuer plusieurs visites chez le même médecin à des dates différentes ?

Brahim ER-RAHA
Identifiant d’une Association
Il est obtenu par concaténation des identifiants des entités reliées par l’association

Exemple : Employé Médecin


N° Employé N° Médecin
0,N 0,N
Nom Visiter Nom
Employé Médecin
Date _Visite
Nom Spécialité
Employé Téléphone
Adresse
Client Identifiant = ( N° Employé , N° Médecin )
Occurrences de « Visiter »
N° Employé N° Médecin Date Visite
La dernière occurrence de l’association « Visiter » n’est
23 1 26/06/01 pas permise en raison de la discriminance de l’identifiant .
12 3 05/07/01
39 2 10/08/01
La duplication de l’occurrence ( 42 , 4 ) n’est pas possible !
42 1 15/08/01
42 4 22/08/01
42 4 05/09/01

Question : Un employé peut-il effectuer plusieurs visites chez le même médecin à des dates différentes ?

Réponse : Ce modèle ne le permet pas même si la propriété « Date_Visite » est portée par l’association « Visiter »

Brahim ER-RAHA
Identifiant d’une Association ( Suite )

Solution du Problème : Association ternaire


Employé Médecin
N° Employé 0,N 0,N N° Médecin
Visiter
Nom Employé Nom Médecin
Spécialité
Identifiant de l’association Nom Employé
Téléphone
Adresse Client 0,N
« Visiter » :
Calendrier
( N° Employé , N° Médecin , Date )
Date

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


l’association « Visiter » car elles représentent des valeurs distinctes de son identifiant .

Ce modèle permet , à l’inverse du précédent , de représenter le fait qu’un employé peut visiter le même
médecin plusieurs fois à des dates différentes .

Généralisation : Une association N-aire ( de dimension N ) possède un identifiant sous forme de


N-uplet dont les valeurs sont distinctes .

Brahim ER-RAHA
Comment doit-on interpréter les cardinalités d’une association ternaire ?
Exemple : Association ternaire ( i2 , j2 )
Médecin
( i1 , j1 ) Visiter
Employé

( i3 , j3 ) Calendrier
• Identification de ( i1 , j1 )
Pour un employé fixé ( occurrence E ) , le couple de N° Employé ( N° Médecin , Date Visite )
cardinalités ( i1 , j1 ) traduit le nombre minimal 1 ( 12 , 08/05/01 )
et maximal d’occurrences du couple d’entités 1 ( 10 , 15/06/01 ) Occurrences
( Médecin , Calendrier ) qui sont associées à 1 ( 6 , 09/06/01 ) de « Visiter »
l’occurrence E . 3 ( 10 , 02/06/01 )
Ici : ( i1 , j1 ) = ( 0 , 3 ) 4 ( 12 , 14/06/01 )
4 ( 10 , 14/06/01 )
5 ( 10 , 02/06/01 )
• Identification de ( i2 , j2 )
N° Médecin ( N° Employé , Date Visite )
Pour un médecin fixé ( occurrence M ) , le couple de
cardinalités ( i2 , j2 ) traduit le nombre minimal 12 ( 1 , 08/05/01 )
et maximal d’occurrences du couple d’entités 10 ( 1 , 15/06/01 )
6 ( 1 , 09/06/01 )
( Employé , Calendrier ) qui sont associées à
10 ( 3 , 02/06/01 )
l’occurrence M . 12 ( 4 , 14/06/01 )
Ici : ( i2 , j2 ) = ( 0 , 4 ) 10 ( 4 , 14/06/01 )
10 ( 5 , 02/06/01 )
• Identification de ( i3 , j3 )
En raisonnant de même pour ( i3 , j3 ) on trouve : ( i3 , j3 ) = ( 0 , 2 )
Brahim ER-RAHA
Rôles dans une Association
Rôle = Notion précisant le rôle particulier joué par un ensemble
d’occurrences relatives à une entité dans une association .
Les rôles sont portés sur le schéma Entité-Association .
Exemple 1 Livrer Dépôt expéditeur
Nbre colis livrés DEPOT
0,N 0,N

Dépôt destinataire
Code dépôt
CLIENT Recevoir
Adresse dépôt
Code Client Nbre colis reçus 0,N
Nom client 0,N
Adresse client

Dépôt Client Nbre colis livrés Nbre colis reçus


D1 C6 1 - Occurrences de l’association
Dépôt
« Livrer »
expéditeur D3 C2 2 -
D1 C9 - 2
Occurrences de l’association
Dépôt D2 C2 - 5 « Recevoir »
destinataire D4 C6 - Brahim ER-RAHA 4
Rôles dans une Association ( suite )
Exemple 2 : Cas d ’une entité réflexive
A pour chef
0,1
SALARIE Encadrer

N° Salarié
Nom Est chef de
Prénom 0,N
Fonction
Salarié
N° Subalterne N° Chef
1 2 Occurrences de
1
5 2 l’association
2 2 4
6 1
3
* Les salariés N° 1 et 2 participent aux 2 rôles de l’association .
4
* Le salarié N° 3 ne participe à aucun des rôles de l ’association .
5
6 * Les salariés N° 4 et 5 participent à un seul des rôles de l ’association.

Brahim ER-RAHA
Notion de Dépendance Fonctionnelle
Définition : 2 propriétés A et B sont en DF si la connaissance
d’une valeur de A détermine une et une seule valeur de B . On
dit que A détermine fonctionnellement B .

Formalisme : A B : 1 source , 1 but


( A, B, …) X : plusieurs sources , 1 but
A ( X, Y, …) : 1 source , plusieurs buts

Exemples : N° Client Nom Client

Nom Client N° Client ( pas de DF )

Prénom Client N° Client ( pas de DF )


( Réf-prod , N° Commande ) Qté prod. commandée

Réf-prod ( Libellé prod. , Prix unit. Prod. )


Brahim ER-RAHA
AXIOMES ET PROPRIETES DES
DEPENDANCES FONCTIONNELLES
AXIOMES
1 - Réflexivité : X X
2 - Augmentation : X Y => X,Z Y
3 - Additivité : {X Y et X Z } => X Y,Z
4 - Projectivité : X Y,Z => { X Y et X Z }

5 - Transitivité : {X Y et Y Z } => X Z

6 - Pseudo-transitivité : {X Y et Y, Z W } => X, Z W

PROPRIETES

* DF élémentaire : X Y élémentaire si il  Z  X tel que Z Y


* DF directe : X Y directe si il  Z tel que X Z et Z Y
Brahim ER-RAHA
DEPENDANCES FONCTIONNELLES

1 - Cas d’une Entité

Code Client Nom


CLIENT
Prénom
Code Client Adresse
Nom
Téléphone
Prénom
Adresse Code Client ( Nom , Prénom , Adresse , Téléphone )
Téléphone

Toutes les Propriétés d’une Entité sont en dépendance fonctionnelle directe


avec la propriété identifiante de cette Entité

Brahim ER-RAHA
DEPENDANCES FONCTIONNELLES
2 - Cas d’une Association hiérarchique ( monovaluée )

COMMANDE CLIENT
1,1 PASSER 0,N Code Client
N° Commande
Nom
Date Commande
Adresse
Montant

DF représentant l’assoc.
N° Commande Code Client Nom

Adresse
Date Commande Montant Téléphone
Une Association Hiérarchique est une association binaire
Occurrences de « PASSER » (dimension = 2) dont l’une des pattes possède une Cardinalité
N° Commande Code Client Maxi égale à 1 .
1 4 Ce type d’association est toujours orienté suivant le sens de la
2 9 dépendance fonctionnelle qui relie les identifiants de ses Entités .
3 4
4 6 Remarque : La dépendance fonctionnelle Code Client --->
5 2 N°Commande n’existe pas car un Client peut passer plusieurs
6 4 commandesBrahim
( exemple du Client N° 4 )
ER-RAHA
DEPENDANCES FONCTIONNELLES
3 - Cas d’une Association N-aire multivaluée non porteuse de propriétés

* Exemple 1 : Association binaire non porteuse


Une Association multivaluée
ACTEUR FILM est une association dont toutes les
JOUER pattes possèdent une Cardinalité
N° Acteur 0,N 1,N N° Film Maxi égale à N ( N >= 2 ) .
Nom Titre
Prénom Date N° Auteur ( Nom , Prénom )
Production
N° Film (Titre , Date Product. )
DF représentant l’assoc. ( sans but )
( N°Acteur , N° Film ) -
Calendrier
* Exemple 2 : Association ternaire non porteuse
0,N Date

Employé 0,N VISITER


N°Employé ( Nom , Prénom ) N° Employé Médecin
N°Médecin ( Nom Médecin , Spéc. ) Nom
N° Médecin
Prénom
0,N Nom
Médecin
DF représentant l’assoc. (sans but)
( N° Employé , N° Médecin , Date ) Brahim ER-RAHA - Spécialité
DEPENDANCES FONCTIONNELLES
4 - Cas d’une Association N-aire multivaluée porteuse de propriétés

* Exemple 1 : Association binaire porteuse


PRODUIT
FACTURE 0,N 1,N
COMPORTER
N° Facture Réf. Produit
Quantité Produit Désignation
Date Facture
Montant Prix Unitaire

DF représentant l’assoc.
( N° Facture , Réf. Produit ) Quantité Produitc

* Exemple 2 : Association ternaire porteuse


VILLE Route
0,N
TRAJET 1,N
N° Ville Ville départ N° Route
Nom Ville 0,N Distance Type Route
Nbre Ville arrivée Etat route
Habitants

DF représentant l’assoc.
( N° Ville Départ , N° Ville Arrivée , N° Route ) Distance
Brahim ER-RAHA
DEPENDANCES FONCTIONNELLES

5 - Cas d’une Association Hiérarchique Réflexive


1,1
EMPLOYE N° Employé ( Nom , Prénom , Date Emb. )
Subalterne
N° Employé A pour Chef
Nom
Prénom
1,N DF représentant l’association
Date Embauche Chef

6 - Cas d’une Association Multivaluée Réflexive

PERSONNE 0,N
Parent PARENTE
N° CIN ( Nom , Prénom )
N° CIN
Nom
Enfant

Prénom 0,2
DF représentant l’assoc.
( N° CIN Parent , N° CIN Enfant ) -
Brahim ER-RAHA
DEPENDANCES FONCTIONNELLES

7 - Cas d’une Association de Cardinalités Maxi égales à 1


Exemple :

FACTURE REGLEMENT
0,1 PAYER 1,1
N° Règlement
N° Facture
Date Règlement
Date Facture
Montant Règlement
Montant Facture

Règles de gestion:
Ce type d’association est orienté
RG1 - Une facture fait l’objet d ’un seul règlement dans les 2 sens pour indiquer
l’existence de 2 dépendances
RG2 - Un règlement compense toujours une seule facture
fonctionnelles entre les identifiants
RG3 - A un instant donné , certaines factures peuvent être impayées. des entités de l’association .

N° Facture N° Règlement

Date Montant
Date Montant Règlement Règlement
Facture Facture Brahim ER-RAHA
Notion d’entité faible et d’identification relative
Une entité faible possède un identifiant relatif qui se rapporte
toujours à celui d’une entité classique . L’identifiant absolu de
l’entité faible est obtenu en concaténant les identifiants des 2 entités.

Formalisme MERISE 2: E1 (1,1)  -,N E2

Exemple :
1,N
ETAGE
CHAMBRE   HOTEL
N° Etage
( 1,1 )
N° Chambre Nbre de toilettes 1,N N° Hotel
( 1,1 )
Surface Adresse Hotel

Entité Identifiant relatif Identifiant absolu


HOTEL - Code Hotel
- ETAGE N° Etage Code Hotel + N° Etage
CHAMBRE N° Chambre Code Hotel + N° Etage + N° Chambre
Brahim ER-RAHA
Dépendance Fonctionnelle inter-entités
incluant une Entité faible
Exemple :
1,N
ETAGE
CHAMBRE  HOTEL
 N° Etage
( 1,1 )
N° Chambre Nbre de toilettes 1,N N° Hotel
( 1,1 )
Surface Adresse Hotel

0,N RESERVATION Code Hotel + N° Etage + N° Chambre


Réserver 1,N N° Réservation

Durée Date Réservation Durée


N° Réservation
Avance en DH

Règles de gestion:
RG1 - Une réservation est effectuée sur une ou plusieurs chambres
RG2 - Une réservation de client à l’hôtel précise le nombre de nuits relatif à chaque chambre ( durée )
RG3 - Une chambre est identifiée relativement à un étage et à un hôtel particuliers
Brahim ER-RAHA
Dépendances Fonctionnelles particulières
et Représentations MERISE 2

E1 1,1 -, - E2
DF DF forte inter-entités

E1 0,1 -, - E2 DF faible inter-entités


DF

E1 1,1 -, - E2 CIF = Contrainte d’intégrité fonctionnelle


CIF
= DF forte traduisant un lien très stable

E1

-,1 -, -
DF F DF Entité - Association

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


de la même façon qu’une DF inter-entités
Pseudo-entité
Remarque : les DF particulières présentées sont toujours orientées
Brahim ER-RAHA
Dépendances Fonctionnelles particulières
( Exemples )
Suivre REPRESENTANT
CLIENT 1,1 0,N
N° Représentant
N° Client
Nom Représentant
Nom Client 1,1 1,N
Passer Taux de commission
Adresse Client

« PASSER » représente une DF forte mais instable


« SUIVRE » représente une CIF : c ’est une DF forte et stable

DEPARTEMENT
N° Département
REPRESENTANT
1,N 0,1 1,N
Gérer Affecter N° Représentant
1,N Nom Représentant

TYPE DE CLIENT Taux de commission


Code Type Client
« AFFECTER » représente une DF faible entre l ’association
Libellé Type Client « GERER » et l ’entité « Représentant »
Brahim ER-RAHA
REGLES DE NORMALISATION
Définition : Ce sont des règles permettant d’obtenir une
représentation des données du S.I ( GDF et MCD ) normalisée .
La normalisation élimine toute redondance d’information et
conduit à un modèle de données cohérent et optimisé .
1ère Forme Normale ( 1FN )
Une entité ou association est dite en 1FN si elle possède un identifiant fiable et
si toutes ses propriétés sont atomiques ( élimination des propriétés multivaluées )
Exemples d’occurences
Exemple : PERSONNE N° CIN Nom Mont. Salaires
N° CIN
J201816 ALAMI 8000 ; 8000 ; 9000
Nom Personne M4123 FAOUZI 7500 ; 7500 ; 8000
Mont. Salaires S1827 SABIR 4000 ; 4500 ; 5000
« Montants salaires » est une propriété multivaluée ( non atomique )

PERSONNE MOIS
Modèle Affecter 0,N
N° CIN 0,N N° Mois
normalisé Mont. salaire
en 1FN Nom Personne Libellé Mois

Brahim ER-RAHA
2ème Forme Normale ( 2FN )
Une association est dite en 2FN si elle est en 1FN et si toutes les DF entre ses propriétés sont
élémentaires

Exemple : PRODUIT FOURNISSEUR


1,1 Fournir 1,N
N° Produit N° Fournisseur
Prix d’Achat Prod.
Libellé Produit Nom fournisseur
Adresse fournisseur

2 DF découlent du modèle : ( N° Produit , N° fournisseur ) 1 Prix d ’Achat Produit


N° Produit 2 N° Fournisseur
Or on a aussi : N° Produit 3 Prix d ’Achat Produit
La DF N° 1 n’est donc pas élémentaire => Le modèle doit être normalisé .

PRODUIT FOURNISSEUR
Fournir 1,N
1,1
N° Produit N° Fournisseur

Libellé Produit Nom fournisseur

Prix d’Achat Prod. MCD normalisé en 2FN Adresse fournisseur

Brahim ER-RAHA
3ème Forme Normale ( 3FN )
Une entité ou une association est en 3FN si elle est en 2FN et si toutes les DF entre ses propriétés
sont directes ( élimination des dépendances fonctionnelles transitives )

Exemple : PRODUIT 3 DF découlent du modèle :


N° Produit 1 Libellé Produit
N° Produit
N° Produit 2 Code Famille
Libellé Produit
N° Produit 3 Libellé Famille
Code Famille
Libellé Famille Il existe de plus la DF suivante :
Code Famille 4 Libellé Famille

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


4
=> Le modèle doit être normalisé

PRODUIT FAMILLE
Appartenir 1,N
N° Produit 1,1 Code Famille
Libellé Produit Libellé Famille

MCD normalisé en 3FN


Brahim ER-RAHA
FORME NORMALE DE BOYCE-CODD ( BCNF )
Une association est en BCNF si elle est en 3FN et si une entité reliée par une DF à l ’association
( ou toute propriété non identifiante de l ’association ) n’est pas source de DF vers une partie de
l’association .

Schéma supposé en 3FN mais non en BCNF


E1
Pseudo -,1 - , -
Entité ASSOC. DF F

E2 - , - - , 1
DF

Schéma normalisé en BCNF


E1

- , 1 - , - -,1 - , -
ASSOC. ASSOC. F DF E2

Brahim ER-RAHA
FORME NORMALE DE BOYCE-CODD ( suite )
Exemple
MATIERE
1,N 1,1
N° Matière DF
Pseudo-entité Intitulé Matière
« COURS »
ANNEE 1,N SALLE
ANNEE Enseigner 1,1 1,N N° Salle
DF
1,N 0,N Libellé Sallle

PROFESSEUR * Un cours ( Prof + Matière + Année ) est enseigné dans une


même salle le long de l ’année
N° Professeur * Dans une salle , on enseigne la même matière chaque année
Nom Professeur * Un enseignant peut enseigner une à plusieurs matières
chaque année

PROFESSEUR SALLE
0,N Affecter 1,N
N° Professeur N° Salle
1,N
Nom Professeur Libellé Sallle

Enseigner 1,1
ANNEE MATIERE
1,N
ANNEE 1,N N° Matière DF
Intitulé Matière
« Réserver »

Schéma normalisé en BCNF


Pseudo-entité « Prof. Opérationnel » Brahim ER-RAHA
4ème 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é inférieur
ou
- elle est décomposée pour montrer les DF ou CIF qu’elle comporte

Exemple 1 : 0,N Prof.


0,N Enseigner
Classe
0,N
Règles de gestion Matière
RG1 - Un professeur peut enseigner une matière dans
plusieurs classes et plusieurs matières dans Exemples d’occurrences de « Enseigner »
une même classe N° Classe N°Matière N° Prof
RG2 - Dans une classe, une matière ne peut être C1 M1 P1 !
enseignée que par un seul professeur C1 M1 P2 !
Ce modèle est incorrect car il ne tient pas compte de la règle C2 M3 P3
RG2 qui indique l’existence d’une CIF de degré inférieur . C4 M3 P3
C1 M8 P1

Classe Occur. de ‘ Est enseignée ’ Occur. de la CIF

1,1 1,N N° Classe N° Mat. N°Cl.+N°Mat. N°Prof.


0,N Est enseignée
CIF Prof. C1 M1 C1+M1 P1
0,N C2 M3 C2+M3 P3
C4 M3 C4+M3 P3
Matière Modèle normalisé en 4FN C1 M8 C1+M8 P1
Brahim ER-RAHA
4ème Forme Normale ( 4FN ) (suite)
Exemple 2 : 0,N Prof.
0,N Enseigner
Classe
0,N
Matière
Règles de gestion
Exemples d’occurrences de « Enseigner »
RG1 - Un professeur peut enseigner une matière dans
N° Classe N°Matière N° Prof
plusieurs classes et plusieurs matières dans
une même classe C1 M1 P1
RG2 - Dans une classe, une matière peut être C1 M1 P2
C2 M3 P3
enseignée par plusieurs professeurs C4 M3 P3
( prof. de cours, TD et TP ) C1 M8 P1

Pour les nouvelles règles de gestion , le modèle d ’association ternaire ne


cache aucune DF ou CIF de degré inférieur

=> Il ne doit pas être décomposé et se trouve déjà en 4 ème forme normale

Brahim ER-RAHA
Normalisation des entités
Première forme normale (1FN) : toutes les propriétés sont élémentaires et il existe au
moins une clé. Si une clé est unique, elle sera
prise comme identifiant
Deuxième forme normale (2FN) : toute propriété doit dépendre de la clé par une DF
élémentaire
Troisième forme normale (3FN) : toute propriété doit dépendre de la clé par une DF
élémentaire directe
Forme normale de Boyce-Codd (BCFN) : si une entité possède un identifiant concaténé, un des
éléments de cet identifiant ne doit pas dépendre d'une
autre propriété.
Exemples :
CLIENT

Nom, adresse

Pas FN1 car pas de clé et adresse pas élémentaire (concaténée)


Brahim ER-RAHA
Exemples (suite)

Ligne-Commande
Pas FN2 car Df avec clé n'est pas élémentaire
N°cde,Réf,Dés, Qté

Commande 1,n Concerne 0,n Produit

N°cde Qté Réf, Dés

Client
Pas FN3 (Pas de transitivités)
Codecli,nomcli, codecaté, nomcaté

Client 1,n Appartient à 0,n Catégorie

Codecli, nomcli Codecaté, nomcaté

Brahim ER-RAHA
Exemples (suite)

COURS
N'est pas BCFN
Matière, N°classe, Code-prof

PROF Fait cours CLASSE


1,n 1,n

Code-prof , matière N°classe

Brahim ER-RAHA
PERSONNALISATION D’ASSOCIATIONS
BUT : Transformer une association en entité lorsqu’il y a une perte sémantique dans le MCD par
rapport aux règles de gestion du S.I .
CLIENT
Exemple : ASSUREUR
1,N Fournir 1,N N° Client
N° Assureur Date signature
Nom Client
Date échéance
Nom Assureur
Mont. Prime Adresse Client
Adresse Assureur 1,N
Selon le modèle , le client ne peut signer qu’un seul contrat
VEHICULE
d’assurance pour un véhicule donné avec le même assureur N° Immatr.
d’après la structure de l’identifiant de l’association .
Modèle
Date mise en service
Solution : Personnaliser l’association « Assurer » en entité
CLIENT
ASSUREUR
CONTRAT N° Client
1,1 1,N Nom Client
N° Assureur 1,N CIF Adresse Client
Nom Assureur CIF N° Contrat
1,1
Adresse Assureur Date Signature
VEHICULE
Un client peut signer plusieurs
Date échéance 1,1
N° Immatric.
contrats d’assurance relatifs au même Mont. Prime 1,N Modèle
véhicule chez le même assureur . CIF Date mise en service
Brahim ER-RAHA
PERSONNALISATION DE PSEUDO-ENTITES
BUT : Transformer une pseudo-entité en entité lorsqu’il y a participation de l’association formant
la pseudo-entité à une ou plusieurs autres associations dans le but de simplifier le modèle
conceptuel des données .

Exemple : EMPLOYE

N° Employé TACHE
0,N
Nom Employé 1,N N° Tâche
Attribuer
Prénom Employé Libellé Tâche
ANNEE Date Attribution
0,N
ANNEE Affecter
1,N 1,N
FONCTION
N° Fonction
Libellé Fonction
Personnalisation de la
pseudo-entité en entité
1,N « Employé Opérationnel »
Année CIF 1,1 Employé
Opérationnel 1,N Attribuer 0,N
1,N 1,1
Fonction CIF Date Attribution
Code Employé Op. TACHE
1,1 N° Tâche
Employé 1,N
CIF Libellé Tâche
Brahim ER-RAHA
Graphe de Dépendances Fonctionnelles

GDF = Représentation graphique de l’ensemble des DF unissant


les propriétés dans un domaine d’activité du système d’information .
Ces propriétés sont obtenues à partir du dictionnaire de données du
domaine .
Exemple : GDF du domaine « Gestion commerciale » dans une entreprise
Date
N° Produit Libellé
N° Client
produit
N° Catégorie
Nom Adresse Tél.
Libellé
Client Client Client Qté prod.commandée, catégorie
Mont. ligne commande

N° fournisseur

Nom Adresse Prix achat


fournisseur fournisseur produit
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Brahim ER-RAHA
Modélisation Conceptuelle des
Traitements

....
Brahim ER-RAHA
Enrichissement du MCC
• Les MCT ont pour objectif de représenter les activités du
domaine d ’étude
• Le MCT est un « zoom » sur le modèle de flux
– Dans les modèles de flux sont représentés les messages
échangés entre acteurs
– Dans les MCT, on représente comment un acteur de
l’organisation réagit quand il reçoit ce message et quelle
opération il effectue
Messages reçus à traiter

Acteur Opération

Messages émis traités

Brahim ER-RAHA
Niveau Conceptuel
• La modélisation conceptuelle des traitements
– représente formellement les activités exercées par le
domaine (à la base de la connaissance du SI)
– repose sur la prise en compte des échanges (flux) du
domaine avec son environnement
– s’effectue en faisant abstraction de l ’organisation et des
choix technologiques
• Au niveau conceptuel des traitements
– La définition des interactions du domaine avec son
environnement prime sur la manière dont on assurera ces
activités

Brahim ER-RAHA
Représentation
• Déclencheurs
Evt_1 Evt_2
• Synchronisation
et
• Nom de l’opération Oper_3
• Actions action1
acion2
• Règles d’émission ok pas ok

• Evénements Evt_6 Evt_10


résultants

Brahim ER-RAHA
Terminologie (1)

• Evénements déclencheurs
– Matérialisent une sollicitation du système, par un acteur externe, à
laquelle le système doit réagir
• Synchronisation
– Expression booléenne reliant les événements déclencheurs et
exprimant les conditions d’activation d’une opération
• Opération.
– Ensemble d’actions s’exécutant dans les mêmes conditions, dont
l’enchaînement n’est conditionné par aucun événement externe
• Action.
– Activité élémentaire du système qui utilise les informations contenues
dans le message associé aux événements déclencheurs

Brahim ER-RAHA
Terminologie (2)
• Règles d’émission.
– Conditions déterminants la production d’un événement
résultant
• Evénements résultants.
– Evénement interne produit par une opération du système
• Opérations périodiques.
– Dans certains cas le déclenchement d’une opération n’est
pas conditionné par l’arrivée d’un événement externe,
c’est le cas pour des opérations périodiques qui sont
exécutées à intervalle de temps régulier. On dit qu’elles
sont déclenchées par un événement « calendaire »

Brahim ER-RAHA
EXEMPLE D'ENCHAINEMENT D'OPERATIONS
Processus livraison

dem_rdzvous

Planning

toujours

colis
Date_retenue

et
Livraison
livrer
toujours

Livraison_effectuée

Brahim ER-RAHA
Du MCC au MCT

• A partir du MCC dossier

– Pour chaque événement entrant,


rechercher les actions effectuées
vérifier pièces
– Vérifier que tous les évènements
sortants sont produits complet incomplet

– Rajouter au besoin les dossier rejeté


évènements calendaires
dossier complet

listes
résultats_bac

•dossier
•candidat •Résultats_bac et
•scolarité
enregistrement résultats
•avis
•dossiers_complets
•listes

•président résultat

Brahim ER-RAHA
Règles à respecter
livraison
cde

• Non répétition traitement cde et


vérifier_stock
traitement_appro
– Des actions préparer_cde
stock_ok stock_pasok
cde en
attente ajouter_ articles_
manquants

– Des évènements cde_livré


e
résultants cde_livré
e

• Elimination des non- doit être remplacé par

évènements cde
(a)
livraison
(c)

a ou (b et c)
traitement cde2
vérifier_stock cde_incomplète
préparer_cde (b)

cde_ok stock_ok stock_pasok

Brahim ER-RAHA
Interaction Traitements - Données
Représentation et conventions MERISE 2
Objet A Interrogation
C1 Etat actuel
( lecture seule )

Opération C2 Objet A Création


dans un d’occurrence
 Créé
processus
Objet A Mise à jour
du MCTA C3
d’occurrence
Etat initial 1
Etat initial 2 Etat final

Objet A
Mise à jour
L’objet A désigne une entité Etat final 1 C4 d’occurrence
Etat initial Etat final 2 C5
ou une association du MCD C1
C1,C2,C3,C4,C5 sont des conditions Objet A Suppression
logiques à vérifier sur les données Etat actuel Supprimé d’occurence
du MCD
Brahim ER-RAHA
Exemple de MCTA avec représentation des interactions
Traitements - Données

Schémas de 2 processus élémentaires dans une gestion commerciale

Processus Commande Client



Arrivée Prospect Portefeuille
commande Portefeuille

Produit
C1 En stock
Enregistrer commande
- Saisie ordinateur Commande
En attente C1
 En livraison C1
Stock suffisant Stock insuffisant
C1
Bon livraison
Commande Commande Créé
en livraison en attente 

Brahim
C1 : Si la quantité en stock est suffisante pourER-RAHA
assurer la livraison ( la quantité en stock est mise à jour )
Processus Facturation
Bon livraison
Livraison
Créé Facturé
en cours

Commande
En attente En livraison
En livraison

Facturer les produits


- Saisie ordinateur Facture
- Impression facture  En attente
règlement

Facture Livraison
imprimée effectuée

ET Facture
Enregistrer Règlement En attente Facture
règlement réglée
- Saisie ordinateur

Facture
réglée
Brahim ER-RAHA
Autre exemple
Service
Demande
de promotion
employé

Responsable
C1
Affecter responsabilité
- Saisie ordinateur Employé

Employé La décision de promotion d’un employé en tant que chef de service est
responsable soumise à la condition C1 :
de service « L’employé doit avoir : - au moins 4 ans d’ancienneté dans le service
- l’échelle 11
- géré au moins 10 grands projets »

L’interaction de l’opération conceptuelle avec les données se traduit par


la lecture d’une occurrence dans chacune des entités ‘Service ‘ et ‘ Employé ‘
et la création d’une occurrence correspondante dans l ’association ‘responsable ‘

Brahim ER-RAHA
Graphe d’Ordonnancement des Evénements ( GOE )
Le développement du MCTA est difficile lorsque l’ordre d ’enchaînement des
événements et leur synchronisation n’est pas établi au préalable .
Le GOE est un graphe intermédiaire permettant de faciliter la construction d’un
modèle de traitement . Il affiche tous les événements intervenant dans un
domaine en indiquant leur succession à l’aide de flèches et leur synchronisation
à l’aide d ’un segment vertical .

Exemple de GOE d’un domaine Existence d’une synchronisation


et d ’une opération dans le MCTA
EV4
EV2
EV1 EV5
EV3
EV8
EV6
EV10
EV9
Tableau des synchronisations du GOE exemple EV7

Opération Synchronisation
Remarque
Les opérations identifiées dans
Op. 1 Néant le GOE d’un domaine doivent être
Op. 2 EV2 ou EV3 affectées aux processus de traitement
Op. 3 EV5 et ( EV6 ou EV7 ) de ce domaine puis libellées et
Op. 4 EV8 et EV9 analysées au niveau du MCTA
Brahim ER-RAHA
Le Cycle de Vie des Objets ( CVO )
Définition : Le cycle de vie d’un objet décrit l’ensemble des états que peut
prendre un objet au cours de son cycle de vie ainsi que les
événements qui font passer cet objet d ’un état dans un autre état
( événements de transition ) .

Objectifs : - Synthétiser le cycle de vie de chacun des objets du S.I


- Aider à la construction du MCTA au niveau de l ’interaction
traitements - données en connaissant les états de transition des objets .
- Compléter le MCD en mettant en évidence des propriétés spécifiques aux états
pris par les objets au cours de leur cycle de vie .

MCTA et MCD Processus d’enrichissement CVO

Notions principales Définitions

Objet Entité dynamique du MCD ( susceptible de changer d ’état au cours de son cycle de vie )
Etat d’objet L’état d’un objet est un stade transitoire par lequel passe un objet durant son cycle de vie
Evénement de CVO Un événement déclenche la transition d ’un état à un autre par l’intermédiaire d’une
opération . Un même événement peut déclencher plusieurs transitions .
Transition Une transition d ’un objet correspond au passage d ’un objet d ’un état à un autre état .
Une transition peut être conditionnelle
Brahim ER-RAHA .
Règles de construction d’un CVO
* Création ( Etat initial d’un objet )
Objet A
EV
Etat initial

* Suppression ( mort de l’objet = occurrence d’une entité dynamique du MCD )

Objet A
EV
Etat final

* Séquence avec transition simple


Objet A Objet A Sans condition
EV
Etat 1 Etat 2

Objet A C1 Objet A
EV Avec condition
Etat 1 Etat 2
Brahim ER-RAHA
Règles de construction d’un CVO ( suite )

* Séquence avec transition simultanée sur plusieurs variables d’état

Objet A Objet A
EV
Etat 1 / var1 Etat 2 / var1
Etat 1 / var2 Etat 2 / var2

* Alternative
Objet A C1 Objet A
EV
Etat 1 Etat 2

C2 Objet A
Etat 3
* Itération

Objet A Objet A
EV
Etat 1 Etat 2
Brahim ER-RAHA
Règles de construction d’un CVO ( suite )
Interaction entre plusieurs CVO
* Evénement dépendant de * Evénement avec transition d’état
l’état de plusieurs objets sur plusieurs objets

Objet A Objet A
EV EV Etat 1
Etat 1
Objet B
Objet B
Etat 2
Etat 2

* Transition d’état d’un objet conditionnelle à l’état d’un autre objet

Objet A Objet A
EV
Etat 1 Etat 2

Objet B
Etat 3
Brahim ER-RAHA
Exemple 1 : Cycle de vie d’un objet « Représentant »

Recrutement Représentant
représentant Affectation Représentant
Secteur-Produit
En formation Affecté

Départ

Prise en compte des états du CVO dans le MCD

Produit Secteur
0,N Commercialiser sur 0,N N_Secteur
Code Produit Nom Secteur
0,N
1,1 0,N
Affectation
Classer Calendrier
0,N
Début formation
0,N Date
1,N 1,1
Représentant 0,N
Fin formation 0,N
Type Produit N_Représentant 1,1
Nom représentant 0,1 Départ
Type Produit
taux Commission
Brahim ER-RAHA
Règles de syntaxe
• Un événement provient d’au moins un acteur
• Un résultat provient d’au moins une opération
• Une opération est déclenchée soit directement par un
événement ou un résultat, soit par une synchronisation unique
• Une synchronisation lie au moins deux événements ou résultats
par une expression logique
• Les résultats sont utilisés
– une expression logique associée à une synchronisation ou à
l’émission d’un résultat ne peut être toujours fausse

Brahim ER-RAHA
Modélisation Organisationnelle
des Traitements

....
Brahim ER-RAHA
Niveau Organisationnel
• Qui est qui ? Qui fait quoi ?
– Analyse des postes de travail. Partage des
traitements entre l’homme et la machine. Type
d’individu qui réalisera les traitements

• Quand ?
– Influence du temps et comment structurer les
traitements en conséquence

• Où ?
– Comment les traitements sont-ils organisés dans
l’espace? Brahim ER-RAHA
Modèle Organisationnel des Traitements

Le MOT se concentre sur le COMMENT ?

– Définition des différentes ressources à mettre en œuvre


(moyens techniques ou humains, espace, temps, données)
– Existant
• Organisation de l’ensemble des ressources permettant
d’assurer l’exécution des tâches envisagées
– Système futur
• Décomposition des opérations spécifiées au niveau
conceptuel en des éléments plus fins et homogènes, les
tâches

Brahim ER-RAHA
Modèle Organisationnel
• Un modèle d’organisation doit préciser au
minimum
– l’organisation prévue pour les personnels, avec les
différents postes de travail et/ou services dans
lesquels seront réalisés les traitements des
différentes tâches
– la circulation des informations entre ces centres
d’activités
– dans les postes de travail, les différentes tâches à
réaliser et selon quelle chronologie
– pour chaque poste de travail et chaque tâche, la
part assurée par l’homme et celle assurée par la
machine Brahim ER-RAHA
Modèle Organisationnel des traitements
MOT = MCT + lieu + moment + nature

• Lieu
– Qui exécute ? Acteurs (MCC)
• Moment
– Quand exécute-t-on l’opération ?
• Agencement temporel
• Attente
• Nature
– Manuelle
– Automatique

Brahim ER-RAHA
Liste des acteurs
• Le MCC fournit la liste des acteurs

Acteur A Acteur A Acteur B Acteur C

Acteur B Acteur C

Brahim ER-RAHA
Importation du MCT
Acteur A Acteur B Acteur C
• Le MCT est importé dans
cette structure

OP2 OP1 OP2 OP1

OP4 OP3 OP4 OP3

Brahim ER-RAHA
Réagencement du MCT
• Pour tenir compte de l’organisation
• Pas toujours trivial, quand une opération est
supportée par plusieurs acteurs
Acteur A Acteur B Acteur C
Acteur A Acteur B Acteur C

OP1

OP2 OP1
OP2 OP3a

OP4

OP3b
OP4 OP3 OP3

OP4

Brahim ER-RAHA
Prise en compte des aspects temporels
Temps Acteur A Acteur B Acteur C

lundis-mardis- OP3a
mercredis OP4a


OP3b

jeudis
vendredis OP4b

Brahim ER-RAHA
Nature des opérations
Acteur B Acteur C Nature

OP4a manuelle


OP3b manuelle

OP4b1 manuelle

OP4b2 automatisée

Brahim ER-RAHA
MOT vs MCT
Temps Acteur A Acteur B Acteur C Nature

lundis-mardis-
mercredis OP1 manuelle

lundis-mardis-
mercredis OP2 automatisée

OP2 OP1

lundis-mardis-
mercredis OP3a automatisée
jeudi matin OP4a automatisée

 OP4 OP3

jeudi matin OP3b automatisée



jeudis
OP4b1 manuelle
vendredis

jeudis OP4b2 automatisée


vendredis

Brahim ER-RAHA
Le Modèle Logique de Données Relationnel ( MLDR )
Ce modèle permet de constituer une base de données au sens logique au moyen
de tables désignées aussi sous le terme de relations .

Les Concepts du MLDR


1 ) L’attribut : C’est le plus petit élément d’information enregistré dans une base de données .
Il possède un nom et prend des valeurs dans un domaine de valeurs bien déterminé .
Exemples :
Attribut Domaine de valeurs
N° Client Entier naturel
Adresse Client Alphanumérique
Mode de paiement Liste alphabétique (Espèces,Chèque ,Traite)

2 ) La Relation : Une relation ( appelée aussi table ) est un ensemble d’attributs significativement
associés ( dont l’association a un sens au niveau du S.I ) .

Représentation d’une relation : R ( A1, A2 , A3, …….., An ) Représentation en intention


ou Schéma de la relation

R A1 A2 A3 ….. An Représentation en extension


tuple 1 ……… …….. …….. ….. ……… ( montrant les tuples de la relation )
tuple 2 valeur valeur valeur ….. Valeur
……. …….. …….. …….. ….. …….. R : Nom de la relation
tuple n …….. ……… …….. ….. …….. A1, A2 , …., An : Attributs de la relation
Brahim ER-RAHA
Le Modèle Logique de Données Relationnel ( suite 3 )

3 ) Les Contraintes d’Intégrité :

Elles représentent un ensemble de règles fondamentales dont l’application permet de garantir


la cohérence du schéma relationnel d’une base de données .

Ces règles contrôlent la cohérence des valeurs prises par :

* les attributs par rapport à leur domaine de valeurs (contrainte d’intégrité de domaine)
Exemple : Si l’attribut ‘ N° Client ’ est défini sur un domaine de valeurs numériques , il ne
peut pas contenir de lettres .

* les clés primaires des relations ( contraintes d’intégrité de relations )


L’intégrité de relation concerne les valeurs d ’une clé primaire qui doivent être uniques
( pas de doublons ) et non nulles ( toujours spécifiées ) .

* les clés étrangères des relations ( contraintes d’intégrité référentielles )


L’intégrité référentielle stipule qu’une clé étrangère ne peut prendre que les valeurs définies dans
le domaine primaire de la clé primaire à laquelle elle est associée .

Brahim ER-RAHA
Construction du Modèle Logique de Données Relationnel
Le MLDR est construit à partir du MCD en appliquant des règles de transformation simples
aux entités et aux associations .
Les entités donnent toujours lieu à des relations dans le MLDR .
Les associations , selon leur cardinalités , peuvent ou non donner lieu à des relations .

1 ) Transformation des Entités


Relation A
ENTITE A Ao A1 A2 A3
Clé
Identifiant Ao
Propriété A1
Propriété A2
Propriété A3

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

L’identifiant Ao de l’entité A devient la clé primaire Ao# de la relation A .


Les autres propriétés deviennent les attributs de la relation A .
Les occurrences de l’entité deviennent les tuples de la relation A .
Le degré de la relation A est le nombre d’attributs de cette relation ( ici deg (A) = 4 )
La cardinalité de la relation A désigne le nombre de tuples de cette relation
Brahim ER-RAHA
Construction du Modèle Logique de Données Relationnel ( suite 1 )

2 ) Transformation des Associations


2.1 ) Association multivaluée plusieurs [ 0, N ou 1, N ] à plusieurs [ 0, N ou 1, N ]

ENTITE A ENTITE B

*,N *,N Identifiant Bo


Identifiant Ao Association Propriété B1
Propriété A1 Propriété B2
Propriété A2
Propriété A3

Représentation graphique du MLDR


Relations obtenues : A , B et C
A ( Ao# , A1 , A2 , A3 )
A C
B ( Bo# , B1 , B2 )
Cas d’une association non porteuse : C ( Ao# , Bo# ) Ao # B
Ao #
Cas d’une association porteuse des propriétés : C1, C2,... A1 Bo # Bo #
C ( Ao# , Bo# , C1 , C2 , …) A2 B1
A3 B2
Exemple :
Relations obtenues :
DEPOT ARTICLE
1,N 0,N
N° Dépôt Code Article DEPOT ( N° Dépôt # , Adresse, Ville )
Stocker
Adresse Libellé ARTICLE ( Code Article # , Libellé , Qté Stock )
Ville Qté stock STOCKER ( N° Dépôt # , Code Article # )
Brahim ER-RAHA
Construction du Modèle Logique de Données Relationnel ( suite 2 )
2.2 ) Association hiérarchique Un [ 0, 1 ou 1, 1 ] à Plusieurs [ 0, N ou 1, N ]

ENTITE A ENTITE B

*,1 *,N Identifiant Bo


Identifiant Ao Association Propriété B1
Propriété A1
Propriété B2
Propriété A2

Cette association traduit la dépendance fonctionnelle inter-entités : Ao Bo


L’entité A qui émet la dépendance fonctionnelle reçoit au niveau logique l’identifiant de l’autre entité B .
La clé primaire Bo # migre dans la relation A comme attribut clé étrangère ou externe .

Relations obtenues : A, B Représentation graphique du MLDR

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


B ( Bo# , B1 , B2 , ...) Ao # Bo #
A1 B1
Exemple : A2 B2
Bo #
Employé Relations obtenues :
Matricule 1, 1 1, N SERVICE
EMPLOYE ( Matr. # , Nom , Prénom ,
Nom CIF N° Service Fonction , N° Service # )
Prénom Libellé Service SERVICE ( N° Service # , Libellé Service )
Fonction Brahim ER-RAHA
Construction du Modèle Logique de Données Relationnel ( suite 3 )
2.3 ) Association hiérarchique Un [ 0, 1 ou 1, 1 ] à Un [ 0, 1 ou 1, 1 ]

ENTITE A ENTITE B
Identifiant Ao *,1 Association *,1 Identifiant Bo
Propriété A1 Propriété B1
Propriété A2 Propriété B2

Cette association traduit l’existence de 2 dépendances fonctionnelles inter-entités : Ao Bo et Bo Ao


La migration de clé peut se faire dans un sens ou l’autre selon les besoins du système d’information .
Si la cardinalité d’un côté de l’association est 1, 1 ( exemple côté Entité A ) , il est conseillé de choisir
la migration de la clé primaire Bo # dans la relation A comme clé étrangère ( règle équivalente au cas
d’une association hiérarchique )
Relations obtenues : A, B Représentation graphique du MLDR

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


B ( Bo# , B1 , B2 , ...) Ao # Bo #
A1 B1
A2 B2
Exemple : Bo #

FACTURE Relations obtenues :


REGLEMENT
0, 1 1, 1
N° Facture N° Règlement FACTURE ( N° Facture # , Date Facture ,
Date Facture Payer
Date Règlement Montant TTC )
Montant TTC Montant Règl. REGLEMENT ( N° Règl. # , Date Règl. ,
Brahim ER-RAHA Montant Règl. , N° Facture # )
Construction du Modèle Logique de Données Relationnel ( suite 4 )
2.4 ) Association réflexive multivaluée Plusieurs [ 0, N ou 1, N ] à Plusieurs [ 0, N ou 1, N ]

*,N
ENTITE A
Représentation graphique
Identifiant Ao Association du MLDR
Propriété A1
Propriété A2
A
*,N
Ao #
Relations obtenues : A, B A1
A2 B
A ( Ao# , A1 , A2 , ... )
Ao1 #
B ( Ao1# , Ao2# ) : Cas d’une assoc. non porteuse Ao2 #
B ( Ao1# , Ao2# , B1 , B2 , ...) : Cas d’une assoc. porteuse B1
B2
Exemple :
Est parent de Relations obtenues :
PERSONNE 0, N
N° CIN PERSONNE ( N° CIN # , Nom , Prénom )
Parenté
Nom
Prénom 0, 2 PARENTE ( N° CIN_Parent # , N° CIN_Enfant # )
Est enfant de

Brahim ER-RAHA
Construction du Modèle Logique de Données Relationnel ( suite 5 )
2.5 ) Association réflexive hiérarchique Un [ 0, 1 ou 1, 1 ] à Plusieurs [ 0, N ou 1, N ]

*,N
ENTITE A
Représentation graphique
Identifiant Ao Association du MLDR
Propriété A1
Propriété A2
A
*,1
Ao #
A1
Relation obtenue : A A2
Ao‘ #
A ( Ao# , A1 , A2 , ... , Ao’ # )

Exemple :

Est Chef de Relation obtenue :


SALARIE
0, N
Matricule SALARIE ( Matricule # , Nom , Prénom ,
Nom
Encadrement Fonction , Matricule_Chef # )
Prénom 0, 1
Fonction A pour Chef

Brahim ER-RAHA
Construction du Modèle Logique de Données Relationnel ( suite 6 )
4 ) Application : Schéma relationnel d’un service clientèle dans un café

SERVEUR MLDR
1# 1,N 0,N CALENDRIER
AFFECTER
2 SERVEUR ( 1 # , 2 )
9#

1,N 1,N
CALENDRIER ( 9 # )

0,N AFFECTER ( 1 #, 9 # , 3 # )
SUIVRE 1,N TABLE
3#
CONCERNER TABLE ( 3 # )
1,1 TRAITER
1,1 COMMANDE ( 11 #, 12, 10 ,
1,1
COMMANDE 1 #, 3 #, 9 # )
11 # CONSOMMATION
FIGURER 1,N FIGURER ( 11 # , 4 # , 7 , 8 )
12 1,N 4 #
10 5
7 CONSOMMATION ( 4#, 5 , 6 )
8 6

Dictionnaire de données

1 - N° de serveur 7 - Quantité d ’une consommation commandée


2 - Nom de serveur 8 - Montant d ’une ligne de commande
3 - N° de table 9 - Date de commande
4 - N° de consommation 10 - Heure de la commande
5 - Libellé consommation 11 - N° de la commande
6 - Prix unitaire consommation 12 - Montant Brahim
total de la commande
ER-RAHA
MODULE 2

CREATION D’UNE BASE DE DONNEES


Avec L’atelier WinDsign

Brahim ER-RAHA
Qu’est-ce qu’une base de données ? ( BD )

Une base de données ( BD ) est un ensemble structuré de données enregistrées avec le minimum
de redondance sur un support de stockage informatique et accessibles à plusieurs utilisateurs de
manière sélective et simultanée au moyen d’un système de gestion de base de données ( SGBD ) .

Un SGBD permet de répondre simultanément aux interrogations ( requêtes ) de plusieurs


utilisateurs exprimées sur une même base de données déployée sur un réseau informatique .

Exemple : Base de données d’une compagnie aérienne


Les requêtes sont très variées , par exemple :

- Une réservation : « Liste des passagers qui ont réservé un vol déterminé ? »

- Un équipage : « Quel est le pilote du vol Royal Air Maroc Casablanca – Londres du 15 Octobre
Départ 15 H 30 ? »

- Un appareil : « Quelle est la date de la dernière révision de l’avion N ° 97 ? »

Brahim ER-RAHA
Un Système de Gestion de Bases de Données

offre la possibilité à l’utilisateur de manipuler les représentations abstraites des


données
( métadonnées ) indépendamment de leur organisation et de leur implantation sur
les supports physiques .
Fonctions principales d’un SGBD

- Décrire et organiser les données sur les mémoires secondaires


( disques, bandes magnétiques , etc… )
- Rechercher, sélectionner et modifier les données

Fonctions complémentaires d’un SGBD

- Sécurité : vérifier les droits d’accès des utilisateurs sur les données

- Intégrité : définir des règles qui maintiennent une cohérence entre les données compte tenu
de leur structure ( contraintes d’intégrité )

- Concurrence d’accès : détecter et traiter les cas où il y a conflit d’accès entre plusieurs
utilisateurs et les traiter correctement .
Brahim ER-RAHA
MODULE 3

Requêtes SQL

Brahim ER-RAHA
LE LANGAGE DE REQUETES SQL
1 – Origines et évolutions

- SQL est dérivé de l’algèbre relationnelle et du langage SEQUEL ( Structured English Query
Language )
Il existe 3 versions normalisées , du plus simple au plus complexe :
* SQL 1 ( 1986 ) : le langage de base
* SQL 1 ( 1989 ) : addendum ( contraintes d’intégrité sur les données )
* SQL 2 ( 1992 ) : langage complet à 3 niveaux
* SQL 3 ( 1998 ) : Les évolutions orientées objet ( SQL 3 n’est pas encore le nouveau
standard )
2 – Les 3 niveaux du langage SQL

* Langage de définition de données ( LDD ) : Il permet de spécifier un schéma


conceptuel de
BD
CREATE , ALTER et DROP ( tables , indexes et vues )

* Langage de manipulation de données ( LMD ) : Il permet d’interroger et de manipuler


les
données
SELECT , INSERT , UPDATE , DELETE , OPEN , FETCH , CLOSE , etc…

* Langage de contrôle de données ( LCD ) : Il permet de gérer la sécurité des données,


les Brahim ER-RAHA
transactions et les accès 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 créées à partir des commandes suivantes :
Commande Rôle
SELECT Interroger une base de données en vue d’extraire les enregistrements qui
répondent à
des critères particuliers
INSERT Insérer ( charger ) des lots de données dans la base de données en une seule
opération
UPDATE Modifier ( mettre à jour ) des valeurs d’attributs dans une table ou bien des
valeurs
d’enregistrements entiers répondant à des critères particuliers
DELETE Supprimer des enregistrements dans une table de base de données sélectionnés
’après
un critère donné .

Chaque commande peut utiliser une ou plusieurs clauses obligatoires et des clauses optionnelles .
Les clauses permettent de définir l’origine et la nature des données qu’il faut sélectionner ou
manipuler .
Clause Rôle
FROM Nommer une ou plusieurs tables ou vues à partir desquelles les enregistrements
doivent être sélectionnés
Brahim ER-RAHA
WHERE Spécifier des conditions de jointure et / ou de sélection sur les enregistrements
GROUP BY Spécifier les attributs de regroupement lors d’une opération de calcul et / ou
COMMANDE SELECT : Forme générale

SELECT [DISTINCT] < liste d’attributs de projection simples , calculés ou renommés>


FROM < liste de tables ou vues >
[WHERE < critère de jointure naturelle, théta-jointure, jointure externe > ]
[ AND < critère de sélection simple > ]
[ AND < critère de sélection complexe appelant une sous-requête > ]
[GROUP BY < liste d’attributs de regroupement > ]
[HAVING < critère de sélection sur des attributs calculés ou regroupés > ]
[UNION / INTERSECT / EXCEPT ( autre requête SELECT ) ]
[ORDER BY < liste d’attributs de tri avec ordre de tri > ]
Critère de sélection simple
* arithmétique ( = , < , > , <= , >= , <> )
* textuel ( LIKE )
* sur intervalle ( BETWEEN )
Critère de sélection complexe ( imbrication d’ordres SELECT )
* clause IN ou NOT IN , EXISTS ou NOT EXISTS
* clauses ALL , ANY , etc…
* sous-requêtes dépendantes ou corrélées
Brahim ER-RAHA
COMMANDE SELECT : Les sélections ( restrictions ) simples
Relation utilisée : PRODUIT ( N_Produit , Libellé_Produit , Prix_U , Poids , Couleur )

* Liste des données sur les produits dont le poids est supérieur à 15 Kg
SELECT * FROM Produit WHERE Poids > 15 ;

* Liste des libellés de produits différents 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 n’est 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 renseignée


SELECT * FROM Produit WHERE Couleur IS NOT NULL ;

* Liste des produits dont la couleur est n’est pas renseignée


SELECT * FROM Produit WHERE Couleur IS NULL ;
Brahim ER-RAHA
COMMANDE SELECT : Les Sélections ( restrictions ) avec sous-requête
Schéma relationnel : DEPOT ( N_Dépôt, Nom_Dépôt, Ville )
STOCKER ( N_Dépôt # , N_Produit # , Qté_Stockée )
PRODUIT ( N_Produit , Libellé_Produit , Prix_U, Poids, Couleur )

•Sous-requête renvoyant une seule valeur ( relation à une seule ligne et une seule colonne ) :

Liste des dépôts situés dans la même ville que le dépôt N° 12


SELECT Nom_Dépôt FROM Dépôt
WHERE Ville = ( SELECT Ville FROM Dépôt WHERE N_Dépôt = 12 )
Liste des produits dont le prix unitaire est supérieur à celui du produit N° 36
SELECT Libellé_Produit FROM Produit
WHERE Prix_U > ( SELECT Prix_U FROM Produit WHERE N_Produit = 36 )

•Sous-requête renvoyant plusieurs valeurs ( relation à une seule colonne et plusieurs lignes ) :

L’opérateur : IN
Liste des produits dont la couleur est la même que celle de l’une 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 différent 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’ )
Brahim ER-RAHA
COMMANDE SELECT : Les Sélections ( restrictions ) avec sous-requête
(suite 1)
* Sous-requête renvoyant plusieurs valeurs ( relation à une seule colonne et plusieurs lignes ) :

Les opérateurs : ANY et ALL


ANY : la comparaison est vraie si elle est vraie pour au moins un des éléments de l'ensemble.
ALL : la comparaison sera vraie si elle est vraie pour tous les éléments 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 inférieure à celui de l’armoire la plus chère
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 inférieure à celui de l’armoire la moins chère
SELECT Libellé_Produit FROM Produit
WHERE Prix_U < ALL ( SELECT Prix_U FROM Produit WHERE Libellé_Produit = ‘Armoire’ )

* Sous-requête renvoyant plusieurs colonnes ( relation à une plusieurs colonnes ) :

=> Liste des produits dont le poids et la couleur sont identiques à ceux de l’article N° 125
SELECT Libellé_Produit FROM Produit
WHERE ( Poids , Couleur ) = ( SELECT Poids , Couleur FROM Produit WHERE N_Produit = 125

Brahim ER-RAHA
COMMANDE SELECT : Les Sélections ( restrictions ) avec sous-requête
(suite 2)
* Sous-requête renvoyant au moins 1 ligne ( relation à 1 ou plusieurs colonnes comportant au moins 1 ligne ) :

L’opérateur : EXISTS
=> Liste des produits stockés dans au moins un dépôt avec une quantité supérieure à 1000 unités ?
SELECT Libellé_Produit FROM Produit AS P
WHERE EXISTS ( SELECT * FROM STOCKER WHERE [N_Produit#] = P. N_Produit
AND Qté_Stockée > 1000 )
=> Liste des produits qui ne sont stockés dans aucun dépôt ?
SELECT Libellé_Produit FROM Produit AS P
WHERE NOT EXISTS ( SELECT * FROM STOCKER WHERE [N_Produit#] = P. N_Produit )

* Sous-requêtes multiples

Lorsque les attributs de projection appartiennent tous à la requête principale , on peut utiliser plusieurs
sous-requêtes imbriquées au lieu d’utiliser des jointures
=> Liste des produits ( Libellé, Prix_U et Poids ) stockés à Tanger dans le dépôt ‘Grossisterie Znibar‘ ?
SELECT Libellé_Produit, Prix_U, Poids FROM Produit
WHERE N_Produit IN ( SELECT [ N_Produit# ] FROM STOCKER
WHERE [ N_Dépôt# ] IN ( SELECT N_Dépôt FROM Dépôt
WHERE Ville = ‘Tanger’
AND Nom_Dépôt = ‘Grossisterie Znibar’ )
Brahim ER-RAHA
COMMANDE SELECT : Les Sélections ( restrictions ) avec sous-requête
(suite 3)
•Les sous-requêtes dépendantes ou corrélées

C’est une forme très puissante des sous-requêtes .


La requête principale fournit plusieurs groupes de valeurs à la sous-requête . Pour chaque groupe de valeurs ,
la sous-requête est évaluée pour donner un résultat .
=> 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 élevés 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 dépôts stockant tous les produits ( simulation de l’opérateur relationnel ‘Division‘ )
SELECT Nom_Dépôt , Ville FROM Dépôt 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_Dépôt#] = D. N_Dépôt )

Brahim ER-RAHA
COMMANDE SELECT : Les Fonctions Statistiques

Le langage SQL offre la possibilité de récupérer des données chiffrées sur des tables ou des vues .
On peut par exemple obtenir le nombre de tuples répondant à un critère de sélection avec la fonction
COUNT , la valeur moyenne d’une colonne avec la fonction AVG , la valeur maximale ou minimale
et la somme d’une colonne avec les fonctions MAX , MIN et SUM .

=> Compter le nombre de dépôts 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 quantités stockées du produit
N° 122

SELECT SUM ( Qté_Stockée ) , AVG ( Qté_Stockée ) , MAX ( Qté_Stockée ) , MIN ( Qté_Stockée )


FROM STOCKER WHERE [ N_Produit# ] = 122

=> Compter les noms de produits différents

SELECT COUNT ( DISTINCT Libellé_Produit ) AS Compte FROM Produit

Brahim ER-RAHA
COMMANDE SELECT : Les
Regroupements
On appelle « Groupe » un ensemble de lignes ( tuples ) dans une relation qui possèdent une valeur identique dans
une ou plusieurs colonnes . Cette colonne ( ou ensemble de colonnes ) peut être définie comme un
« facteur de regroupement » à l’aide de la clause « GROUP BY » de la commande SELECT .
SQL permet alors d’effectuer des calculs sur les autres colonnes ( qui ne sont pas des facteurs de regroupement )
en utilisant les fonctions statistiques ( fonctions d’agrégation ) : COUNT , SUM , AVG, MAX et MIN .
La clause « HAVING » permet d’appliquer une condition de sélection ( restriction ) à chaque groupe dans la
relation résultat de la requête au niveau des colonnes de regroupements et / ou de calcul .
Remarque : Dans la commande SELECT , les colonnes de calcul sont toujours spécifiées dans la liste des
attributs de projection . Toutes les autres colonnes ( non calculées ) figurant dans cette liste sont alors
considérées 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 stockés dans plus de 2 dépôts
SELECT [ N_Produit# ] , COUNT(*) AS [Nombre dépôts] FROM STOCKER
GROUP BY [ N_Produit# ]
HAVING COUNT(*) > 2 ORDER BY 1 ;
=> Lister les dépôts de la ville de Rabat dont la valeur marchande est supérieure à 100 000 DH
SELECT Nom_Dépôt , SUM ( Prix_U*Qté_Stockée ) As [ Valeur en DH ]
FROM Dépôt As D , Stocker As S , Produit As P
WHERE D.N_Dépôt = S.[N_Dépôt#] AND S.[N_Produit#] = P.N_Produit AND Ville = ‘ Rabat ’
GROUP BY Nom_Dépôt
HAVING SUM ( Prix_U*Qté_Stockée ) > 100 000 ORDER BY 2 DESC
Brahim ER-RAHA
COMMANDE INSERT : Forme générale

1ère Forme
INSERT [INTO] < Nom de Table >
[ < Liste d’attributs entre parenthèses > ]
VALUES < Liste de valeurs correspondant aux attributs entre parenthèses >
2ème Forme
INSERT [INTO] < Nom de Table >
[ < Liste n° 1 d’attributs entre parenthèses > ]
SELECT < Liste n°2 d’attributs correspondant en type à ceux de la Liste n°1 >
FROM < liste de tables ou vues >
[WHERE < critère de jointure naturelle, théta-jointure, jointure externe > ]
[ AND < critère de sélection simple > ]
[ AND < critère de sélection complexe appelant une sous-requête > ]
[etc… ]
Remarques :
- Les attributs non spécifiés dans la liste n°1 restent à NULL ou à leur valeur par défaut après l’insertion de tuples
- On doit toujours fournir une valeur dans l’ordre INSERT pour les attributs déclarés NOT NULL
( déclaration effectuée lors de la création deBrahim
la table )
ER-RAHA
COMMANDE INSERT : Exemples
Schéma relationnel : PRODUIT ( N_Produit , Libellé_Produit , Prix_U , Poids , Couleur )
ARTICLE ( N_Article , Désignation , Prix_U )

* Insertion d’une ligne ( un tuple ) dans la table PRODUIT


INSERT INTO PRODUIT VALUES ( 20 , ‘VASE DE CHINE’ , 250 , 15 , ‘BLEU’ )

* Insertion de 2 lignes ( 2 tuples ) dans la table PRODUIT avec certaines valeurs nulles
INSERT INTO PRODUIT VALUES ( 21 , ‘VERRE CRISTAL’ , 50 , 0.25 , NULL ) ,
( 22 , ‘FOURCHETTE INOX’, 10 , NULL , NULL )

* Insertion de 2 lignes dans la table PRODUIT avec spécification des attributs d’insertion
INSERT INTO PRODUIT ( N_Produit , Libellé_Produit )
VALUES ( 23 , ‘CUILLERE INOX’ ) , ( 24 , ‘COUTEAU INOX’ )

* Insertion de tous les tuples de la table PRODUIT dont le prix est supérieur à 200 DH dans la Table ARTICLE :
( la structure des colonnes dans la table cible doit être la même que celle des colonnes dans la table source )
INSERT INTO ARTICLE
SELECT N_Produit , Libellé_Produit , Prix_U FROM PRODUIT
WHERE Prix_U > 200 ;

* Requête interdite : la duplication des tuples d’une table par un INSERT avec une sous-requête sur la même table
INSERT INTO PRODUIT
SELECT * FROM PRODUIT ;
Brahim ER-RAHA
COMMANDE UPDATE : Forme générale

1ème Forme
UPDATE < Nom de Table >
SET < Attribut1 = Valeur1 > ,
< Attribut2 = Valeur2 > , etc …
[WHERE < critère de sélection simple
ou critère de sélection complexe appelant une sous-requête > ]
2ème Forme
UPDATE < Nom de Table >
SET < Attribut1 = Valeur1 > ,
< Attribut2 = Valeur2 > , etc …
FROM < liste de tables ou vues >
WHERE < critère de jointure naturelle, théta-jointure, jointure externe >
[ AND < critère de sélection simple > ]
[ AND < critère de sélection complexe appelant une sous-requête > ]

Brahim ER-RAHA
COMMANDE UPDATE : Exemples
Schéma relationnel : PRODUIT ( N_Produit , Libellé_Produit , Prix_U , Qté_Stock )
ACHETER ( N_Produit , N_Client , Qté_Achetée , Date_Achat )
CLIENT ( N_Client , Nom , Adresse , Tél , Chiffre_Affaire )

* Mise à jour du prix de tous les produits pour tenir compte d’une augmentation de 10 DH
UPDATE PRODUIT SET Prix_U = Prix_U + 10 ;

* Mise à jour des produits de luxe dont le prix est supérieur à 1000 DH seulement ( augmentation de 15 % )
UPDATE PRODUIT SET Prix_U = Prix_U * 1.15
WHERE Prix_U > 1000 ;

* Mise à la valeur nulle des adresses et téléphones et initialisation du chiffre d’affaires réalisé avec tous les clients
dont le nom commence par la lettre B ( dans le but de recommencer leur saisie )
UPDATE CLIENT SET Adresse = Null , Tél = Null , Chiffre_Affaire = 0
WHERE Nom LIKE ‘ B% ’ ;

* Mise à jour de la Qté en stock de tous les produits ayant fait l’objet de ventes durant la journée
du 10/01/2001 ( seule une vente par produit sera prise en compte à cette date )
UPDATE PRODUIT SET Qté_Stock = Qté_Stock - A.Qté_Achetée
FROM PRODUIT P , ACHETER A
WHERE P.N_Produit = A.N_Produit
AND A.Date_Achat = ‘ 10/01/01’

Brahim ER-RAHA
COMMANDE UPDATE : Exemples ( suite )
Attention !
Une instruction UPDATE ne met jamais à jour une même ligne à deux reprises.
Le schéma relationnel considéré suppose qu'un produit peut être vendu à plusieurs reprises
( acheté par plusieurs clients ) le même jour .
Avec l’ordre UPDATE précédent , il y aura exécution sans erreur, mais chaque produit ne sera mis à jour
qu'avec une seule vente, en dépit du nombre de ventes ayant réellement eu lieu à la date spécifiée .

Solution du problème :
Au cas où plusieurs ventes ont lieu le même jour pour un produit donné, toutes les ventes de chaque
produit doivent être additionnées dans l’ordre UPDATE et le stock mis à jour à l’aide de la somme obtenue ,
comme le montre l’ordre SQL suivant :

UPDATE PRODUIT P
SET Qté_Stock = Qté_Stock -
( SELECT SUM ( Qté_Achetée )
FROM ACHETER A
WHERE P.N_Produit = A.N_Produit
AND Date_Achat = ‘ 10/01/01’ ) ;

Autre requête à exprimer :


Mettre à jour le chiffre d’affaires réalisé avec tous les clients pour tenir compte des ventes
Brahim ER-RAHA
effectuées le dernier jour d’ouverture du magasin ?
COMMANDE DELETE : Forme générale et Exemples

DELETE FROM < Nom de Table >


[WHERE < critère de sélection simple
ou critère de sélection complexe appelant une sous-requête > ]

Exemple : PILOTE ( N_Pilote , Nom , Prénom , Adresse , Salaire )


AVION ( N_Avion , Type , Capacité )
VOL ( N_Pilote , N_Avion , Date_Vol , Heure_Dép , Heure_Arr , Ville_Dép , Ville_Arr )

* Suppression de tous les vols ( tous les tuples de la table VOL )


DELETE FROM VOL ;
* Suppression de tous les vols qui datent d’avant le 28 Février 2000
DELETE FROM VOL WHERE Date_Vol < ‘ 28/02/01’ ;
* Suppression de tous les vols assurés par le pilote ‘ DRISSI ’
DELETE FROM VOL WHERE N_Pilote IN
( SELECT N_Pilote FROM PILOTE WHERE Nom = ‘ DRISSI’ )
* Suppression de tous les pilotes qui n’ont effectué aucun vol
DELETE FROM PILOTE P WHERE NOT EXISTS
( SELECT * FROM VOL WHERE N_Pilote = P.N_Pilote )
Brahim ER-RAHA
LE LANGAGE DE DEFINITION DE DONNEES ( LDD )

Les ordres LDD sont des instructions SQL créées à partir des commandes suivantes :

Commande Rôle

CREATE Création de la structure d’une table , d’un index ou d’une vue de


données en spécifiant des contraintes structurelles ou d’intégrité
référentielle à respecter sur les données

DROP Supprimer une table , un index ou une vue ( structure et données )

ALTER Modifier la structure d’une table ( ajout , suppression ou mise à jour


d’un ou plusieurs attributs )

Chaque commande peut utiliser une ou plusieurs clauses obligatoires et des clauses
optionnelles

Brahim ER-RAHA
COMMANDE CREATE TABLE : Forme générale

CREATE TABLE < Nom de Table >


[ < Nom attr. > < Type > ] , …
ou [ < Nom attr. > < Type > < Contrainte d’attr. > ] , …
ou [ < Nom attr. > < Type > CONSTRAINT <Nom contrainte> <Contrainte d’attr.> ] ,
ou [ CONSTRAINT < Nom contrainte > < Contrainte de Table > ] , etc ...

Les contraintes constituent une méthode normalisée par l’ANSI pour assurer l’intégrité
des données .
Chaque type d’intégrité ( de domaine , d’entité ou référentielle ) est mis en œuvre à l’aide
de types
de contraintes spécifiques ( voir tableau ).

Les contraintes garantissent la validité des valeurs saisies dans les colonnes et le maintien
des
relations entre les tables .
Les principales contraintes sont DEFAULT , CHECK , PRIMARY KEY , UNIQUE
et FOREIGN KEY .
L’écriture d’un ordre CREATE TABLE utilisant ces contraintes peut différer légèrement
suivant Brahim ER-RAHA
le SGBD utilisé ( ACCESS , SQL Server , ORACLE , SYBASE , INFORMIX , etc… )
COMMANDE CREATE TABLE : Les Contraintes d’intégrité

Type d’intégrité Type de Contrainte Description


-------------------------------------------------------------------------------------------------------------
----------
Domaine DEFAULT Spécifie la valeur qui sera placée dans la colonne si
aucune valeur n’est spécifiée explicitement dans
l’instruction
INSERT au moment de la saisie
CHECK Spécifie une règle de validité s’appliquant aux
valeurs d’une colonne .
FOREIGN KEY Les valeurs de colonne de clé étrangère doivent
correspondre aux valeurs des colonnes de clé
primaire de la
table référencée .
Entité PRIMARY KEY Identifie chaque ligne de façon unique , interdit
l’entrée de valeurs en double et garantit la création
d’un index pour
améliorer les performances . Les valeurs NULL ne
sont pas
acceptées .
UNIQUE Empêche la création des doublons dans les
colonnes qui ne constituent pas une clé primaire et
garantit la création d ’un index pour améliorer les
performances . Les valeurs NULL
Brahim ER-RAHA
sont acceptées .
Référentielle FOREIGN KEY Définit une colonne ou un ensemble de colonnes
COMMANDE CREATE TABLE : Exemples
* Spécification de contraintes d’attributs
CREATE TABLE Etudiant
( Matricule INT NOT NULL CONSTRAINT Clé_Primaire PRIMARY KEY ,
Nom CHAR(25) NOT NULL ,
Prénom CHAR(25) NOT NULL ,
Sexe CHAR(1) NOT NULL CHECK ( Sexe IN ( ’M', ’F ’ ) ) ) ;

CREATE TABLE Employé


( Code CHAR(9) NOT NULL CONSTRAINT Clé_Primaire PRIMARY KEY NONCLUSTERED
CHECK ( Code LIKE
'[A-Z][A-Z][A-Z][1-9][0-9][0-9][0-9][0-9][MF]' OR
Code LIKE '[A-Z]-[A-Z][1-9][0-9][0-9][0-9][0-9] [0-9][MF]’ ) ,
Nom VARCHAR(30) NOT NULL,
Prénom VARCHAR(30) NOT NULL,
N_Fonction SMALLINT NOT NULL DEFAULT 1 REFERENCES Fonction ( N_Fonction ) ,
Date_Embauche DATETIME NOT NULL DEFAULT ( GETDATE() ) ) ;

CREATE TABLE Fonction


( N_Fonction SMALLINT IDENTITY( 1 , 1) PRIMARY KEY CLUSTERED ,
Libellé_Fonction VARCHAR(50) NOT NULL DEFAULT ’ Fonction ? ',
Echelle TINYINT NOT NULL CHECK ( Echelle <= 11 ) ) ;

Remarque : L’utilisation du qualificatif IDENTITY(Valeur_initiale , Incrément ) permet de spécifier


un attribut qui doit faire l’objet d’une incrémentation automatique par le système à chaque ajout de tuple
Brahim ER-RAHA
COMMANDE CREATE TABLE : Exemples ( Suite )
* Spécification de contraintes de table
- Contrainte d’unicité : Il ne peut y avoir 2 dépôts de même nom dans la même ville :
CREATE TABLE DEPOT
( N_Dépôt INT NOT NULL CONSTRAINT Clé_Primaire PRIMARY KEY ,
Nom_Dépôt CHAR(25) NOT NULL ,
Ville VARCHAR(25) NOT NULL ,
CONSTRAINT C_Dépôt UNIQUE ( Nom_Dépôt , Ville ) ) ;

- Contrainte sur les domaines de valeurs de plusieurs attributs


CREATE TABLE Produit
( N_Produit INT NOT NULL CONSTRAINT Clé_Primaire PRIMARY KEY ,
Désignation CHAR(25) NOT NULL ,
Poids DECIMAL(8,2) NULL ,
Prix_U DECIMAL(10,2) NULL ,
CONSTRAINT C_Produit CHECK ( Poids > 0 AND Prix_U > 0 AND Prix_U <= 10000 ) ) ;

- Contrainte de type Clé primaire composée


CREATE TABLE STOCKER
( N_Produit INT NOT NULL REFERENCES Produit ( N_Produit ) ,
N_Dépôt INT NOT NULL REFERENCES Dépôt ( N_Dépôt ) ,
CONSTRAINT C_Stocker PRIMARY KEY (N_Produit , N_Dépôt ) ) ;
Brahim ER-RAHA
COMMANDE ALTER TABLE : Forme générale
But : Modifier la définition d'une table en changeant, en ajoutant ou en supprimant des colonnes ou des contraintes

1ère Forme :
ALTER TABLE < Nom de Table >
[ ADD < Nom attr. > < Type > [ < Contrainte d’attr. > ] ] , …
ou [ ADD CONSTRAINT < Nom contrainte > < Contrainte > ] , …
2ème Forme :
ALTER TABLE < Nom de Table >
[ DROP COLUMN < Nom attr. > ] , ...
ou [ DROP CONSTRAINT < Nom contrainte > ] , …
3ème Forme :
ALTER TABLE < Nom de Table >
[ ALTER COLUMN < Nom attr. > < Nouveau Type > [ < Contrainte d’attr. > ] ] , .

Brahim ER-RAHA
COMMANDE ALTER TABLE : Exemples ( Suite )
- Ajout d’une colonne simple à la structure d’une table
ALTER TABLE Vente ADD Commission MONEY NULL ;

- Ajout d’une colonne ou de plusieurs colonnes avec contraintes


ALTER TABLE Client ADD Code_Client INT IDENTITY ( 1,1 )
CONSTRAINT PK_Client PRIMARY KEY ;

ALTER TABLE Employé ADD


N_Dép INT NOT NULL CONSTRAINT C_Dép REFERENCES Département ( N_Dép ) ,
Tél VARCHAR ( 10 ) NULL CONSTRAINT C_Tél CHECK ( Tél IS NULL OR
Tél LIKE "[0-9][0-9][0-9]-[0-9][0-9][0-9][0-9]" OR
Tél LIKE " [0-9][0-9][0-9]) [0-9][0-9][0-9]-[0-9][0-9][0-9][0-9] " ) ,
Salaire DECIMAL ( 8, 2 ) CONSTRAINT C_Salaire DEFAULT 5000 ;

- Ajout d’une contrainte


ALTER TABLE Employé ADD CONSTRAINT C_Employé CHECK ( Date_Embauche > ‘ 01/01/98

- Suppression d’une colonne ou d’une contrainte


ALTER TABLE Personne DROP Age ;

ALTER TABLE Employé DROP CONSTRAINT C_Employé ;


Brahim ER-RAHA
COMMANDE CREATE INDEX : Forme générale et Exemples

CREATE [UNIQUE ] INDEX < Nom de l’indexe >


ON < Nom de Table >
( < Nom Attr. > , < Nom attr. > , ….. )

On utilise un indexe sur un attribut ou un groupe d’attributs de table dans les situations
suivantes :
* Pour implémenter l’intégrité de relation ( de table ) permettant de garantir l’unicité des
valeurs
de la clé primaire ( Commande CREATE INDEX avec le qualificatif UNIQUE )
* Pour définir une ou plusieurs clés candidates ( attributs à valeurs distinctes ) dans une table
* Pour accélérer le temps de réponse de certaines opérations de traitement sur la base de
données
lorsque le nombre d’enregistrements des tables est très important :
- Recherche ou Tri croissant / décroissant sur une ou plusieurs colonnes
- Requête de sélection utilisant un filtre sur une ou plusieurs colonnes avec une clause
WHERE
- Requête utilisant des jointures sur certains attributs communs à 2 ou plusieurs tables
On définit alors un indexe sur la ou les colonnes en question ( colonnes de recherche , de tri ,
de sélection , de jointure , etc… )
Exemples : Brahim ER-RAHA

CREATE UNIQUE INDEX PK_Pilote ON Pilote ( N_Pilote ) ; // Clé primaire


COMMANDE CREATE VIEW : Forme générale et Exemples

CREATE VIEW < Nom de Vue > ( < Nom Attr. > , < Nom attr. > , … )
AS < Instruction SELECT > ;

1 - Notion de Vue : Une vue est une table virtuelle déterminée à partir d’autres tables à l’aide d’une
requête de sélection . Les données affichées par une vue ne sont pas physiquement stockées dans la base de
données mais correspondent au résultat de l’exécution d’une requête d’interrogation sur les données
stockées dans d’autres tables .

2 - Avantages de l’utilisation des vues :


* Sauvegarde de requêtes complexes et simplification de l’accès aux données en masquant les opérations
de
jointures et d’agrégation :
Création d’une vue : CREATE VIEW Commande_Produit AS
SELECT P.N_Produit , Désignation , Prix_U , Date_Commande , Qté_Stock
FROM Produit P , Commande C
WHERE P.N_Produit = C.N_Produit ;
Utilisation de la Vue : SELECT N_Produit , Désignation FROM Commande_Produit
WHERE Qté_Stock > 10 ;
* Support de l’indépendance logique :
Si la structure de la table Produit est mise à jour , la vue Commande_Produit doit être reconstituée
mais les
requêtes qui utilisent cette vue n’ont pas à être remaniées
Brahim ER-RAHA.
COMMANDE CREATE VIEW : Exemples ( Suite )
* Renforcement de la sécurité des données par masquage des attributs et des tuples dans les tables à
certains
utilisateurs :
L’exemple suivant montre 2 vues définies pour 2 catégories de représentants commerciaux dans une
entreprise :
ceux affectés à la région d’Agadir et ceux affectés à celle de Casa .
Chacune de ces vues permet d’obtenir les informations sur les clients d’une région mais ne donnent pas
accès
aux données des autres régions ni à celles des autres attributs des tables Client et Commande .
CREATE VIEW Commande_Client_Agadir AS
SELECT A.N_Client , A.Nom_Client , B.N_Produit , B.Désignation , B.Qté_Commandée
FROM Client A , Commande B
WHERE A.N_Client = B.N_Client
AND A.Ville = ‘’Agadir ‘’ ORDER BY 2 , 3 ;

CREATE VIEW Commande_Client_Casa AS


SELECT A.N_Client , A.Nom_Client , B.N_Produit , B.Désignation , B.Qté_Commandée
FROM Client A , Commande B
WHERE A.N_Client = B.N_Client
AND A.Ville = ‘’Casa ‘’ ORDER BY 2 , 3 ;

3 - Problème de mise à jour des données à l’aide d’une vue :


La mise à jour des données via une vue pose des problèmes pour la plupart des SGBD relationnels .
Les conditions nécessaires pour que les données d’une vue soient accessibles en mise à jour et que cette
mise à jour
se répercute sur les tables d’origine sont : Brahim ER-RAHA
> Le mot clé DISTINCT doit être absent dans l’ordre SELECT et la clause FROM doit faire référence à une seule table
COMMANDE DROP : Forme générale et Exemples

DROP TABLE < Nom de table >


ou DROP INDEX < Nom d’indexe >
ou DROP VIEW < Nom de Vue >

But : Supprimer un objet table , index ou vue de la base de données en éliminant les
informations de structure liées à cet objet et les données qui lui sont attachées .

Exemples :

DROP TABLE Client ;

DROP INDEX Clé_Primaire_Client ;

DROP VIEW Commande_Client ;

Brahim ER-RAHA