Hicham BEHJA
Plan
6
SYSTEME DE PILOTAGE
Coordination, objectifs
(membres de la direction, …)
Décisions Décisions
l ’extérieur
Informations vers
Informations traitées
SYSTEME D ’INFORMATION
- Collecte
- Mémorisation
des données
- Traitement
- Transmission
9
Développement logiciel : un
processus complexe
Analyse
Description formelle du problème (Quoi)
Phase essentielle dans le cycle de vie du logiciel,
souvent négligée (à tort !) car les conséquences
d’une analyse bâclée sont toujours très coûteuses
15
Analyse des besoins
l'environnement du futur système
son rôle
son utilisation (manuel d'utilisation préliminaire)
si nécessaire, partage entre matériel et logiciel
Essentiellement au début du processus de
développement.
Faite en coordination avec les études de faisabilité
et la planification.
Peut se poursuivre durant tout le cycle de vie
(maintenance évolutive).
16
Les différentes phases du cycle de
vie d’un développement logiciel
Conception
Recherche de solutions tenant compte de
l’Architecture technique (Comment)
2 phases
– Conception Préliminaire (ou générale)
Fusion de l’analyse des besoins fonctionnels et techniques
Définition de l’Architecture technique générale
– Conception Détaillée
Raffinage des modèles d’Analyse
Préparation au codage dans le langage cible
17
Spécification globale
La spécification globale a pour but d'établir une
description du futur système.
Entrée: analyse des besoins + considérations techniques et
faisabilité informatique
Méthodes: SADT, SART, MERISE, ...
Résultat: modèle conceptuel
ce que doit faire le futur système; QUOI et non comment
complément au manuel d'utilisation
manuel de référence préliminaire
Souvent regroupée dans la même étape que la
spécification des besoins. Cette activité ne fait pas
apparaître de choix d'implémentation.
18
Conception architecturale,
détaillée
Le but de la conception architecturale détaillée est
d'établir une description très proche du système à
réaliser.
Entrée: les spécifications globales + contraintes
d'implémentation
Méthodes: enrichir la description du système de détails
d'implémentation. Deux étapes:
1. conception architecturale
décomposer le logiciel en composants plus simples en
terme de fonctions et interface architecture du logiciel
et spécification des composants
19
Conception architecturale,
détaillée
2. conception détaillée
description de chaque composant: algorithmes,
structure des données, ...
Résultat: modèle d'implémentation:
• architecture du système
• spécification des composants
• algorithmes
• modèle des données (entité-association)
• selon la nature de la conception:
Fonctionnelle: modèles par flux de données: DFD, Contexte,
AFD, structure, Petri, ...
Objets: diagrammes UML
• ...
Peut remettre en cause les spécifications globales. 20
Les différentes phases du cycle de
vie d’un développement logiciel
Développement
Production du code associé
– les diagrammes élaborés doivent être suffisamment
complets pour que le développeur ne se pose pas de
question ayant trait à l’analyse ou à la conception
– éventuellement, utilisation d’un générateur de code
« intelligent »
attention : l’opportunité d’un générateur de code devra être
étudiée au début de la phase de Conception
Tests unitaires
– Tests « boîte blanche » des unités élémentaires de code
21
Programmation
Cette activité consiste à passer du résultat de la conception
détaillée à un ensemble de programmes ou de composants logiciel.
Elle est la mieux outillée et maîtrisée. Dans certain cas elle peut
être totalement automatisée.
Entrée: conception détaillée + contraintes de l'environnement de
programmation
Méthodes: Dans certains cas, cette étape peut être automatisée
(génération automatique de code)
Résultat: documents décrivant:
code source
directives: compilation, liens, ...
documentation d'implémentation
22
Les différentes phases du cycle de
vie d’un développement logiciel
Intégration
Assemblage des différents composants constituant
le système
– Vérification du respect des interfaces inter-composant
– Vérification de type « boîte blanche »
Validation
Recette du système par le client
– Vérification du respect des interfaces inter-composant
– Vérification de type « boîte noire »
23
Validation et vérification
24
Validation et vérification
Entrée: documents produits par l'ensemble des
étapes précédentes
Méthodes:
- validation: revues et inspections des
spécifications, manuels, prototypes
- vérification: examens des spécifications,
programmes, preuves, tests
25
Les différentes phases du cycle de
vie d’un développement logiciel
Exploitation
Déploiement du système
Mise en production
Maintenance
Correction des anomalies
Prise en compte des demandes d’évolutions
26
Activités de développement
Les activités relevant du génie logiciel sont maintenant
bien définies. Nous trouvons:
– l'analyse des besoins;
– la spécification globale;
– la conception architecturale et détaillée
– Développement
– Intégration
– Validation
– Exploitation et maintenance
La spécification et la conception représentent environ
40% de l'effort dans un projet bien conduit;
la programmation représentant 15 à 20% de l'effort de
développement d'un logiciel, voire 10% selon certains
chiffres; 27
Activités de développement
28
Le cycle de vie en cascade
Le modèle de la cascade prévoit un certain nombre
d'étapes ou phases durant lesquelles les activités
vont se déroulées
Une étape doit se terminer à une date donnée par
la production de certains documents ou logiciels.
Les résultats de l'étape sont soumis à une revue
approfondie.
L'étape suivante n'est abordée que s'il sont jugés
satisfaisants.
29
Le cycle de vie en cascade
Etude de faisabilité
+
Analyse des besoins
Exploitation
Produit
+
+
Doc utilisateur Maintenance
30
Le cycle de vie en cascade
Avantages :
Définition des tâches à accomplir
Détermination des livrables à fournir
Séparation des problématiques (métier / technique)
Inconvénients :
Obligation de définir la totalité des besoins au départ
Validation fonctionnelle tardive
Code disponible tardivement dans le projet
Projets rarement séquentiels
Aucune préparation des phases de vérification
31
Le cycle de vie en cascade
Les versions actuelles de ce modèle font apparaître
la validation vérification à chaque étape.
faisabilité et analyse des besoins + validation
conception du produit, conception détaillée +
vérification
codage + test unitaire
intégration + test d'intégration + test d'acceptation
installation + test du système
Il existe de nombreux documents, normes ou
recommandations décrivant très précisément le
modèle de la cascade: IEEE, AFNOR
32
Le cycle de vie en V
On retrouve les caractéristiques du cycle en cascade
– Phases successives
– Une activité principale et des livrables par phase
– Des activités transverses
– Remise en cause de la phase précédente
33
Le cycle de vie en V
Le principe de ce modèle en V, est qu'avec toute
décomposition doit être décrite la recomposition et
que toute description d'un composant est
accompagnée de ses tests (correspondance avec sa
spécification) permettant sa vérification et validation.
34
Le cycle de vie en V
Ce principe évite un écueil bien connu de la
spécification de logiciel: on énonce une propriété
qu'il est impossible de vérifier objectivement, une fois
le logiciel réalisé. De plus, l'obligation de concevoir
les jeux de test et leurs résultats oblige à une réflexion
et ainsi à des retours sur les descriptions en cours.
Ainsi les étapes de la branche droite du V peuvent
être mieux préparées et planifiées.
Les dépendances entre étapes sont de types:
– enchaînement et itération éventuelle du modèle de la
cascade en suivant le V (haut-bas, gauche-droite);
– une partie des résultats de l'étape de départ sont directement
utilisés par celle d'arrivée.
35
Le cycle de vie en V
Etude de faisabilité Exploitation
+ +
Analyse des besoins Maintenance
Cahier de recettes
Analyse Validation
Cahier des
charges
Dossier
d’intégration
Conception Intégration
Spécifi-
cations
Réalisation
Dossiers de Code
Conception +
(Générale et détaillée) Tests
unitaires
36
Le cycle de vie en V
Avantages :
Préparation des phases de vérification au moment
de l’Analyse et de la Conception
Inconvénients :
Obligation de définir la totalité des besoins au
départ
Validation fonctionnelle tardive
Code disponible tardivement dans le projet
Projets rarement séquentiels
37
Le cycle de vie en Y
Cette démarche itérative (à tout point de vue) distingue
l’étude des aspects globaux du SI de l’entreprise de ceux
spécifiques à chaque application.
La démarche préconise deux activités d’ingénierie
transverses :
– l’analyse métier qui correspond à l’étude fonctionnelle
– l’architecture technique, qui correspond à l’étude technique.
Ces deux activités enrichissent respectivement un
référentiel des processus métier de l’entreprise tenant
compte de l’urbanisme du SI et un référentiel de solutions
techniques.
38
Le cycle de vie en Y
Cahier des charges Cahier des charges
Spécifi- Dossiers
cations de
Gestion Simulation Prototypage Conception
de projet des
+ spécifications
Mécanismes +
Gestion Design Patterns
du changement Codage
+
Gestion
de l’environ- Code +Tests unitaires
nement Sources +
Objets Exploitation
+ Librairies
Maintenance
Réutilisation
Composants métier
39
Le cycle de vie en Y
Avantages :
Utilisation immédiate de toutes les compétences
Meilleure traçabilité sur l’ensemble du développement
(réutilisation des modèles d’Analyse + règles de passage)
Validation précoce des besoins
Possibilité de générer le code automatiquement
Industrialisation de la réutilisation
Inconvénients :
Obligation de définir la totalité des besoins au départ
40
Le cycle de vie en spirale
Inventé par Boehm (Cocomo) en 1988
Le projet est découpé en N phases successives suivies
d’une dernière phase où le logiciel est intégralement
développé
Chaque phase a pour objectif la validation d’un point
technique ou fonctionnel particulier pouvant donner lieu
au développement d’une maquette
Chaque phase peut donner lieu à l’utilisation d’un cycle
en V ou en Y
Chaque phase permet d’affiner les besoins de
l’utilisateur
A chaque phase est associée une analyse de risques
pouvant remettre en cause le développement
41
Le cycle de vie en spirale
Chaque cycle est décomposé en 4 étapes:
1. détermination des objectifs, des alternatives, des contraintes
à partir des résultats du cycle précédent et pour le premier à
partir d'une analyse préliminaire des besoins;
2. analyse des risques, évaluation des alternatives,
éventuellement prototypage;
3. développement et vérification de la solution retenue (modèle
de la cascade ou en V);
4. revue des résultats et planification du cycle suivant.
42
Le cycle de vie en spirale
Tests
Développement Déploiement
Analyse
43
Le cycle de vie en spirale
Avantages :
Mise en œuvre d’une analyse de risques
Les besoins sont affinés au fur et à mesure
Validation fonctionnelle et technique précoces
Il est plus particulièrement adapté aux projets innovants, à risques et dont
les enjeux sont importants.
Un des intérêts du modèle en spirale est de fournir la liste des risques
majeurs encourus dans le cadre du développement d'un système
informatique.
Inconvénients :
Le cycle N ne s ’appuie pas obligatoirement sur le cycle N-1
Chaque cycle produit un composant du système intégré en phase finale
Les maquettes développées à chaque cycle ne sont pas obligatoirement
réutilisables
Risque de « spiralisation » des besoins
Nécessite une plus grande participation de la part des utilisateurs
44
Le cycle de vie itératif et
incrémental
Le projet est découpé en N itérations successives
temps passé
48
Modèle par incréments
Les avantages d'une telle pratique sont nombreux:
• chaque développement est moins complexe;
• les intégrations sont progressives;
• il peut y avoir des livraisons et mises en oeuvre après
chaque incrément;
• l'effort est constant dans le temps par opposition au pic
pour spécifications détaillées pour les modèles en cascade
ou en V.
Les inconvénients sont:
• la remise en cause du noyau de départ;
• celle des incréments précédents;
• ou encore l'impossibilité d'intégrer un nouvel incrément.
49
Modèle par incréments
51
Problèmes
Imaginer des solutions méthodologiques qui
permettent
53
Méthode (1)
« Processus discipliné qui génère un ensemble de modèles
décrivant les différents aspects d'un système logiciel, en
utilisant une certaine notation bien définie » (Booch, 94)
Ensemble de règles bien définies qui conduisent pour un
problème à une solution correcte
Une méthode a pour objet
– de décrire l'ensemble des tâches à accomplir,
– l'ordonnancement de ces tâches,
– les documents et les standards qui leur sont associées,
– afin de prendre en charge des aspects spécifiques ou une partie du
processus de développement
54
Méthode (2)
Une méthode :
– définit la documentation à fournir à l'issue de chaque phase de
développement
– spécifie en détail les activités permettant d'atteindre un objectif
donné
– Les méthodes de développement utilisées sont nombreuses et
variées
– Elles peuvent recouvrir tout ou partie du cycle de vie et sont axées
sur une ou plusieurs approches de développement du SI
Les quatre composantes d'une méthode :
– Modèles
– Langages
– Démarche
– Outils
55
Méthode = Démarche + Formalisme
56
Merise
Merise : Méthode d’Études et de Réalisation Informatique
des Systèmes Évolués (1979)
80% du marché français
Trois phases: analyse (diagnostic), conceptualisation
(modélisation) et développement (Bases de données)
Modèles:
– MCC: Modèle Conceptuel de Communication
– MCD: Modèle Conceptuel de Données
– MCT: Modèle Conceptuel de Traitements
– MOT: Modèle Organisationnel de Traitements
– MLD: Modèle Logique de données
– MPD: Modèle Physique de données
57
L'expression des besoins est une étape consistant à
définir ce que l'on attend du système d'information
automatisé, il faut pour cela:
•faire l'inventaire des éléments nécessaires au
système d'information
•délimiter le système en s'informant auprès des
futurs utilisateurs
Cela va permettre de créer le MCC (Modèle
conceptuel de la communication) qui définit les flux
d'informations à prendre compte L'étape suivante
consiste à mettre au point le MCD (Modèle
conceptuel des données) et le MCT (Modèle
conceptuel des traitements) décrivant les règles et
les contraintes à prendre en compte
Le modèle organisationnel consiste à définir le
MOT (Modèle organisationnel des traitements)
décrivant les contraintes dûs à l'environnement
(organisationnel, spatial et temporel)
Le modèle logique représente un choix logiciel
pour le système d'information
Le modèle physique reflète un choix matériel pour
le système d'information
58
Niveau conceptuel
On ne se préoccupe ni de l ’organisation ni du matériel utilisé
59
Niveau organisationnel
On intègre les critères d ’organisation de travail
On tient compte et/ou on propose des choix d ’organisation de travail
60
Niveau physique
On étudie les solutions techniques
61
La démarche
Quatre étapes
Etude préalable
Etude détaillée
Réalisation
Mise en œuvre
62
Etude préalable
Recueil des données grâce à des entretiens
cerner le projet
comprendre les besoins
identifier des concepts ( règles de gestion, règles
d ’organisation …)
proposer une première solution
proposer une évaluation quantitative et qualitative
Diagramme de flux
Dossier d ’étude préalable
63
Etude détaillée
Décrire complètement, au plan fonctionnel
la solution à réaliser
Débouche sur un dossier de spécifications
détaillées
64
Réalisation
65
Le MCC
Souvent connu sous le nom de graphe des flux, c'est un outil
très simple qui permet de représenter tous les flux
d'information qu'échange le SI avec son environnement
Ce modèle ne manipule que deux concepts : l'acteur et le flux
L'acteur est soit interne au SI soit externe. On peut faire
autant de MCC que de domaines étudiés quitte ensuite à les
fusionner pour avoir une vision plus synoptique.
Le flux est soit entrant, soit sortant, d'où la flèche pour le
symboliser. Il est porteur de messages, d'informations que l'on
peut analyser. A ce stade conceptuel nous ne cherchons pas à
savoir quel est le support utilisé (voie, téléphone, courrier,
fax, EDI etc.).
66
Exemple
Les clients font leurs demandes de livraison au
magasin.
Le magasin donne l ’ordre au transporteur d ’effectuer
la livraison.
Lorsque celle-ci est faite, le magasin en est averti par un
bon de livraison.
Il envoie alors l ’ordre de facturer au service facturation.
Celui-ci émet une facture pour le client et un double est
envoyé à la caisse.
La caisse reçoit les chèques des clients et les dépose à la
banque.
67
Recherche des acteurs et des
flux
Acteurs externes :
client,
transporteur,
caisse
banque
Acteurs internes :
facturation,
magasin
flux :
demande de livraison, ordre de livraison, bon de livraison,
ordre de facturation, facture,
chèque,
chèque à encaissement
68
Règles de gestion
Associées au niveau conceptuel, elles
répondent à la question « QUOI ? ».
Elles décrivent les actions qui doivent être
effectuées et les règles associées à chacune
de ses actions.
Les règles de gestion représenteront les
objectifs choisis par l’entreprise et les
contraintes associées.
69
Exemple : règles de gestion
70
Règles d ’organisation
Elles sont associées au niveau
organisationnel et décrivent le où, qui et
quand.
Elles traduisent l’organisation mise en place
au sein de l’entreprise afin d’atteindre les
objectifs.
71
Exemple : Règles
d ’organisation
c ’est la secrétaire qui édite les factures
chaque fin de semaine.
72
Le MCD
Schéma qui obéit à quelques conventions
graphique très simples et à quelques règles
de construction, peu nombreuses mais très
précises qui font la puissance et la
pertinence de cet outil
Il manipule essentiellement deux concepts :
les ENTITES et les ASSOCIATIONS.
73
Le modèle Conceptuel des
données
Représentation graphique des données et des liens qui
existent entre chacune d ’elle.
Les concepts de base :
Entités
Propriétés
Relations
Cardinalités
Identifiants
74
Le modèle Conceptuel des données
Entité
Définition
–pourvue d ’une existence propre
–conforme aux choix de gestion de l ’entreprise
75
Assuré
num
nom
Les entités
Prenom
adresse
age
76
Le modèle Conceptuel des données
Propriétés
Définition :
Donnée élémentaire qui qualifie l ’entité à laquelle elle se rapporte
Caractéristiques :
– occurrence : valeur que peut prendre la propriété
– domaine de définition : ensemble des valeurs possibles
de la propriété
Une propriété peut être composée c'est à dire qu'elle renferme d'autres
propriétés plus élémentaires (identité, adresse complète, contact). Toutes
les propriétés ont un nom, et un même nom ne doit pas faire référence à
deux propriétés distinctes.
77
Le modèle Conceptuel des données
Identifiant
Définition :
Propriété ( ou ensemble de propriétés ) particulière qui
permet d ’identifier de façon unique une occurrence de
l ’entité.
Pour être identifiant, la ou le groupe de propriétés ne peut
pas prendre plusieurs fois la même valeur sur l ’ensemble
des occurrences possibles de l ’entité.
Identifiant d ’une relation : Concaténation
des identifiants des entités participant à la relation.
78
Le modèle Conceptuel des données
Identifiant
79
Le modèle Conceptuel des données
Associations
Définition :
Lien sémantique reliant un ensemble d ’entités et
présentant un intérêt pour l ’entreprise
Association porteuse :
Relation qui porte des propriétés.
Dimension d ’une association :
Association binaire :lien entre deux entités
Association ternaire : lien entre trois entités
Association n-aire : lien entre n entités
Association réflexive : lien de l ’entité sur elle-même
80
Les associations
Ce sont elles qui mettent en relation les entités et donne à
l'ensemble la caractéristique de système. Chaque fois que
possible il est bon de les nommer par un verbe à l'infinitif car il y
a toujours plusieurs sens de lecture.
La plupart des associations sont binaires, c'est à dire qu'elles
relient deux entités. Par exemple Effectuer associe étudiant et
stage : un stage est effectué par un étudiant et ce dernier peut
effectuer plusieurs stages : les deux sens de lecture sont chacun
porteur de sens.
Pour être plus précis encore MERISE introduit les notions de
cardinalités minimales et les cardinalités maximales. Chaque
sens de lecture sera entièrement décrit lorsqu'on aura précisé le
couple (cardinalité mini, cardinalité maxi).
81
num Association
Règles de gestion:
-Un assuré peut posséder 0 ou n véhicules
-Un véhicule peut être assuré par un et un seul assuré
82
Le modèle Conceptuel des données
Cardinalités
Définition :
Quantifient le nombre d ’occurrences d ’une entité
qui participent à une occurrence
83
Les cardinalités
(1,1)
(0,n)
(1,n)
(0,1)
Lorsque la cardinalité maximale d'un des deux
sens de lecture vaut 1 on dit alors que
l'association binaire est fonctionnelle. Elle
s'appelle aussi une dépendance fonctionnelle (DF)
ou contrainte d'intégrité fonctionnelle (CIF)
Lorsque les deux cardinalités maximales sont n
l'association binaire est non fonctionnelle
84
Démarche dans la construction
d ’un MCD
– Recherche des propriétés à gérer
– Regroupement des propriétés par entité
– Représentation des entités
– Recherche des relations
– Recherche des cardinalités
– Vérification validation du modèle
85
CONSTRUCTION DU MCD
Recherche des propriétés à gérer
86
CONSTRUCTION DU MCD
Dictionnaire de données
87
CONSTRUCTION DU MCD
Représentation des entités
entités
propriétés
88
CONSTRUCTION DU MCD
Recherche des associations
– Caractéristiques :
Nom
collection
cardinalité
89
CONSTRUCTION DU MCD
Recherche des cardinalités
90
CONSTRUCTION DU MCD
Règles de normalisation
– But
Rendre le modèle le « plus propre possible »,
Limiter la redondance de données
91
Dépendances fonctionnelles
Dans de nombreuses bases de données, le contrôle de la
redondance et la préservation de la cohérence des données sont les
plus importants auxquels est confronté le concepteur et
l’administrateur.
La redondance survient quand une information est stockée dans
plusieurs endroits. Si ce contenu est modifié, il faut le modifier au
niveau de chacune des copies. Si certaines, mais pas toutes les
copies, sont modifiées les données sont incohérentes.
Pour éviter ses écueils, cela passe par l’étude des dépendances
fonctionnelles.
92
Dépendances fonctionnelles
Définition : Une dépendance
fonctionnelle, notée DF, indique que la
valeur d'un ou plusieurs attributs est
associée à au plus une valeur d'un ou
plusieurs autres attributs.
93
Dépendances fonctionnelles (DF)
X et Y deux ( ou plusieurs) attributs de la B.D.
X Y : Y dépend fonctionnellement de X
La connaissance de la valeur de X entraîne la connaissance de la valeur de Y.
X détermine Y.
Pour une valeur de X, il existe une et une seule valeur de Y.
Si un attribut (ou un groupe d'attributs) détermine par DF tous les autres
attributs de la même relation, c'est une clé de la relation.
Exemple :
– Agence Ville
– Prêt Montant
– Id_article désignation
– (Numcom, NumLigne) Idarticle
94
Dépendances fonctionnelles
Les contraintes se classent en deux groupes
– Les contraintes sémantiques : dépendent de la signification ou de
la compréhension des attributs d’une relation
Dans une relation Personnel(Nom, Age, Salaire) aucun âge ou
salaire ne peut être négatif
– Les contraintes d’accord ou de concordance ne dépendent pas des
valeurs particulières d’un attribut d’un tulpe mais du fait que les
tulpes qui acceptent certains attributs acceptent ou non les valeurs
de certains de leurs autres attributs
Dans une relation Personnel (employé, âge, salaire, service, chef de
service) si un employé ne travaille que dans un service et que
chaque service n’a qu’un chef de service alors deux tulpes ayant la
même valeur dans la colonne chef de service on doit avoir la même
valeur dans service. On a une dépendance fonctionnelles
Les dépendances fonctionnelles sont les plus importante
contraintes de concordance ou d’agrément.
95
Dépendances fonctionnelles
Définition d’une dépendance fonctionnelle élémentaire
– une DF, X B, est une dépendance fonctionnelle élémentaire si B est un
attribut unique, et si X est un ensemble minimum d'attributs (ou un attribut
unique).
Exemples : Dans la relation Produit, les DF :
– NP (couleur, poids) et (NP, NomP) Poids
ne sont pas élémentaires.
Mais les DF :
– NP Couleur, NP Poids, NP NomP
– NomP Couleur, NomP Poids, NomP NP
sont élémentaires.
La DF :
– (NP, NF, date) Qté
de la relation Livraison est élémentaire.
96
Dépendances fonctionnelles
Soient W, X, Y et Z des ensembles d'attributs non vides d'une relation R. Voici
quelques propriétés remarquables:
Réflexivité
– W est une partie de X alors (X W)
Augmentation
– (W X) (W, Y X, Y)
Transitivité
– (W X et X Y) (W Y)
Union
– (W X et W Y) (W X, Y)
Pseudo-transitivité
– (W X et X, Y Z) (W, Y Z)
Décomposition
– (W X et Y une partie de X) (W Y)
97
Première forme normale
Une relation est en première forme normale si :
– Elle possède une clé
– Tous ses attributs sont atomiques : c'est à dire n'ayant à un instant donné
qu'une seule valeur ou ne regroupant pas un ensemble de valeurs.
– Ses éléments sont indivisibles ( une seule valeur).
Si les tables relationnelles résultant de la modélisation ne sont
pas déjà en 1FN, il serait approprié de retourner à l’étape de
modélisation.
Une modélisation de qualité minimale devrait toujours être en
1FN.
99
Deuxième forme normale
Une relation est en deuxième FN si :
– Elle est en 1FN
– Toutes les DF sont élémentaires par rapport à la clé
: tout attribut hors clé ne dépend pas d’une partie de
la clé
100
Deuxième forme normale
Exemple
– Patient (N°patient, Date consultation, Nom)
– Nom dépend d’une partie de la clé N°patient Nom
– Le 2NF permet d’éliminer certaines redondances
Patient (N°patient,Nom)
Consultation (N°patient*,Date consultation, ordonnance)
Mais il peut rester des redondances …
101
Troisième forme normale
Une relation est en troisième forme normale
si :
– Elle est en 2 FN
– Tout attribut hors clé est en DF directe par
rapport à la clé (pas de transitivité)
103
Forme de Boyce-
Boyce-Codd
(BCNF)
Une relation est en BCNF si :
– Elle est en 3 FN
– Tout attribut non clé de la relation n'est pas
source de DF vers une partie de la clé.
Ou
– Les seules DF élémentaires qu’elle comporte sont celle où une clé
détermine un attribut.
Dans l’exemple précédant :
CodeVille (Code*, Ville)
CodeRue (Code, Rue)
Sont en BCNF, mais perte de la DF Ville,Rue ->Code
Toute relation a une décomposition en BCNF sans perte d’information,
par contre, une décomposition en BCNF ne préserve pas généralement
les DF.
104
Forme de Boyce-
Boyce-Codd
(BCNF)
105
Méthode de normalisation
Il est souhaitable qu’un schéma relationnel ne comporte que
des relations en 3NF ou BCNF.
Des algorithmes de constructions permettent d’obtenir de tels
schémas. Ils sont de deux catégories :
– La méthode de décomposition :
Elle se base sur la décomposition de relations en utilisant les DF entre les
données. Cette méthode conduit à des relations en 3NF ou BCNF. Il y a 2
problèmes :
– Identification des DF et leurs exhaustivité
– Le résultat dépend de l’ordre d’application des décompositions et peut ne pas
préserver les DF
– La méthode synthétique
Elle se base sur la représentation des DF en terme de graphes (graphe et
leur couverture)
106
Méthode synthétique
Point de départ
– L’ensemble de tous les attributs
– L’ensemble des DF entre attributs qui sont représentées dans un
graphe avec comme nœud un attribut et comme arc une DF
Ce qu’il faut faire
– Trouver la couverture minimale du graphe c’est-à-dire éliminer les
circuits ainsi que les DF non élémentaires et non directes
Résultat
– Une collection de relation en 3NF. Chaque schéma est obtenu en
prenant comme :
Clé une source de DF
Attributs, les buts des DF correspondant
107
Exemple
Service d’immatriculation de voitures dans une préfecture
– Soient les DF suivantes :
N°Immat -> Couleur, Type, Puissance, Marque
N°Pers -> Nom, Prénom, Adresse
N°Immat -> N°Pers et Type -> Marque, Puissance
– On crée le graphe :
N°Pers N°Immat Type
Puissance
Nom Prénom Adresse Couleur
On supprime les transitivités Marque
On obtient :
Personne (N°Pers, Nom, Prénom, Adresse)
Voiture (N°Immat, Couleur, Type*, N°Pers*)
Types (Type, Puissance, Marque)
108