1
G. Gardarin
Méthodes de conception 1. Objectifs et principes 2. Le modèle objet 3. Passage au relationnel 4. Raffinement du schéma 5. Optimisation physique 6. Conclusion
2
G. Gardarin
1. Objectifs de la Modélisation Permettre une meilleure compréhension
Systèmes réels trop complexes
Abstraction des aspects cruciaux du problème
Omission des détails
Permettre une conception progressive Abstractions et raffinements successifs
Possibilité de prototypage rapide
Découpage en modules ou vues
Génération des structures de données et de traitements
Faciliter la visualisaton du système Diagrammes avec notations simple et précise
Compréhension visuelle et non seulement intellectuelle
3
G. Gardarin
Générations de méthodes Méthodes d'analyse et de décomposition hiérarchiques
(1ère génération) Diviser pour régner (Problème --> Sous-problème)
Warnier, SADT, Jackson, De Marco
Méthodes d'analyse et de représentation systémiques (2e génération) Séparation des données et traitements
Merise, Axial, SSADM
Méthodes d'analyse et de conception orientées objets (3ème génération) Réconciliation données et traitements
Réutilisation de composants
4
G. Gardarin
Objectifs des méthodes objet Réduire la distance sémantique entre le langage des
utilisateurs et le langage des concepteurs meilleure communication entre utilisateurs et concepteurs
abstraction du réel perçu en termes compréhensible
Regrouper l'analyse des données et des traitements meilleure compréhension des choses
plus grande cohérence entre l'aspect statique et l'aspect dynamique
Simplification des transformations entre niveau conceptuel et niveau interne implémentation directe éventuelle du schéma conceptuel
établissement possible de règles de transformations automatisées
5
G. Gardarin
Principales méthodes objet OOD
G. Booch 1991
HOOD HOOD Technical Group (B. Delatte, M. Heitz, J.F. Muller) 1993
OOA S. Shlaer & S. Mellor 1992
OOA/OOD T. Coad & E. Yourdon 1991
OMT J. Rumbaugh, M. Blaha, W. Premerlani, et. al.1991
OOSE I. Jacobson, M. Christerson, P. Jonson, G.Vergaard 1992
OOM M. Bouzeghoub, A. Rochfeld1994
FUSION D. Coleman, P. Arnold, S. Bodoff, C. Dollin et. al. 1994
La notation UML Rationale et OMG
une notation universelle
6
G. Gardarin
Les principaux modèles Modèle des objets (Object model)
définition des objets (données et opérations)
définition des associations entre objets
Modèle dynamique (Dynamic model) états successifs des objets (cycle de vie)
interactions temporelles et réponses aux stimulis
Modèle fonctionnel (Functional model) processus de transformation des objets
flots de données entre acteurs
7
G. Gardarin
Les cycles Analyse (Analysis)
étude du problème utilisateur
génération de modèles de problèmes
Conception (Design) raffinement de modèles de problèmes
génération de modèles d'implémentation (prototypes)
Implémentation (Implementation) codage de modèles d'implémentation
génération du code des programmes
8
G. Gardarin
2. Le modèle des objets Objet (Object)
concept, abstraction ou entité clairement distinguable
Classe (Class) description d'un groupe d'objet aux propriétés similaires
Attribut (Attribute) propriété nommée d'une classe représentée par une valeur dans
chaque instance
Opération (Operation) une fonction/transformation applicable aux objets d'une classe
Méthode (Method) une implémentation d'une opération pour une classe
9
G. Gardarin
Nom
attributs
opérations
Voitures
Nveh: Int Type: String Marque: Constructeur Vitesse: Int Km : Int
Démarrer() Accélérer() Rouler(km:Int) Freiner()
Représentation (UML) Classe
10
G. Gardarin
Association Association (Association)
Une relation entre des instances de deux (ou plus) classes
Lien (Link) Une instance d'association
Rôle (Role) Une extrémité d'une association
Cardinalité (Multiplicity) Le nombre d'instance d'une classe pour chaque instance de l'autre
Attribut de lien (Link attribute) Un attribut de l'association instancié pour chaque lien
11
G. Gardarin
Représentation
Personne Voiture
Possède
Propriétaire Possédée
Date Prix
Buveurs Vins
Boire
DateQuantité
Abus Estbu
12
G. Gardarin
Cardinalités
1
plusieurs (0 à N)
0..1
*
optionnel (0 ou 1)
1..*obligatoire (1 ou plus)
ordonné (0 à N){ord}
3..5limité (de 3 à 5)
1
0..*
13
G. Gardarin
Poste-Travail
BureauBarre-Menus Corbeille
Outils-BureauDossiers
Sélectionner
NbreEléments
Ouvrir
Taille
Vider
Nom
Type
Ranger
* *
*
Agrégation Agrégation (Aggregation)
Forme spéciale d'association entre un tout et ses parties (part-of)
14
G. Gardarin
Personnes
Employés Etudiants
Personnes
Employés Etudiants
Etudiants
Personnes
Employés Hommes Femmes
Généralisation Généralisation (Generalization)
Relation particulière de factorisation permettant de regrouper les attributs et opérations communs de sous-classes dans une super-classe.
15
G. Gardarin
Module Module (Module)
Groupe de classes apparentées conçues ensemble
Sous-système (Sub-system) Groupe de modules
Permet de définir des vues et groupes de vues d'une BD ou plus généralement d’une application
16
G. Gardarin
La pratique Bien comprendre le problème à résoudre Essayer de conserver le modèle simple Bien choisir les noms Ne pas cacher les pointeurs sous forme d'attributs
utiliser les associations
Faire revoir le modèle par d'autres définir en commun les objets de l’entreprise
Documenter les significations et conventions élaborer le dictionnaire
17
G. Gardarin
3. Passage au relationnel Implémentations des attributs, généralisation, et
associations sous de forme de tables mémorisent les états des objets
pas nécessaire d ’avoir une BD objet
Implémentation des méthodes sous forme de procédures stockées état de l ’objet passé en paramètre (clés)
associées à une base de données
très important pour l ’optimisation client-serveur
18
G. Gardarin
C
C1 C2
C
C1
C2
K
K
K
(a)
C1
C2
C
C
C C1 C2
(b) (c)
Réduction des généralisations Aplatissage des hiérarchies
1 table par classe avec jointures
une seule table avec valeurs nulles
une table par feuille
Réalisation de l ’héritage statique :
problème des valeurs nulles pour les objets sans descendants
dynamique :jointures sur clés, bien prévoir les indexes !
19
G. Gardarin
Implémentation des associations Une association est représentée par une table dont le
schéma est le nom de l'association et la liste des clés des classes participantes et des attributs de l'association
Exemple : POSSEDE (N° SS, N° VEH, DATE , PRIX ) BOIRE(NV, NB, CRU, MILLESIME, DEGRE)
Amélioration possible Regrouper les associations 1 --> n avec la classe cible
Exemple : VOITURE (N°VEH, MARQUE, TYPE, PUISSANCE, COULEUR) POSSEDE (N° SS, N° VEH, DATE , PRIX ) regroupés si toute voiture a un et un seul propriétaire
20
G. Gardarin
Tabulation des collections Nombre maximum de valeurs connu
N attributs déclarés
Manque de dynamicité
Maximum souvent difficile à estimer
Requêtes complexes
Valable pour N < 5
Table des valeurs avec clé Passage en première forme normale
Nécessité de jointure pour reconstituer la collection
Performance nécessitant un index
21
G. Gardarin
Exemple
Personnenssnom
prenomsdatenaisvieillir()dormir()
Employéfonctionsalaireprimes
travailler()
Buveurtypeétat
boire()
Vincru
millésimedegré
qualité
Appart.étage
norue
codeville
Supérieur
Inférieur Boire
Bu_par
Habite
Loge
Voiturenveh
couleurmarque
kmrouler()
Possède
Appartient
EmployéBuveur
22
G. Gardarin
4. Raffinement du schéma Risques de mauvaise conception
classe trop importante
classe trop petite
Exemples : Propriétaire-de-véhicule (n° ss, nom, prénom, n° veh, marque, type,
puissance, couleur, date, prix)Propriétaire-de-véhicule = personne |x| possède |x| voiture
Cru (cru, qualité, degré) et Vin (nv, cru, millésime)Cru = (vins) et Vin = (vins)
Anomalies redondance de données, valeurs nulles
perte de sémantique
23
G. Gardarin
Dépendances Fonctionnelles Définition :
Soient R(A1, A2 … An) un schéma de relation, X et Y des sous-ensembles de A1, A2 …An;
On dit que X --> Y (X détermine Y ou Y dépend fonctionnellement de X) ssi il existe une fonction qui a partir de toute valeur de X détermine une valeur unique de Y
Formellement : ssi quel que soit l’instance r de R, pour tout tuple t1 et t2 de r on a
X(t1) = X(t2) ==> Y(t1) = Y(t2)
24
G. Gardarin
Exemples PERSONNE
N° SS --> NOM ?
NOM --> N° SS ?
VOITURE (MARQUE, TYPE) --> PUISSANCE ?
MARQUE --> PUISSANCE ?
PUISSANCE --> TYPE ?
POSSEDE N° VEHP --> N° PROP ?
N° PROP --> N° VEHP ?
(N° VEHP, N° PROP) --> DATE ACHAT ?
25
G. Gardarin
N° VEH
COULEUR
TYPE MARQUE
PUISSANCE
Graphe de Dépendances
VOITURE (N°VEH, TYPE, COULEUR, MARQUE, PUISSANCE)
26
G. Gardarin
CRU --> TYPE TYPE, CLIENT --> REMISE
TYPE CLIENT REMISE
A A B
C1 C2 C1
3% 5% 4%
TYPE CLIENT REMISE
A A B
C1 C2 C1
3% 5% 4%
CRU
CHENASMEDOC
JULIENAS
Autre Exemple
CRU
TYPE
CLIENT
REMISE
27
G. Gardarin
Notion formelle de Clé Définition :
Un groupe d'attribut X est une clé de R (a1, a2 … an) ssi :1) X --> A1 A2 … An
2) il n'existe pas de sous-ensemble Y de X tel que
Y --> A1 A2 … An
Plus simplement : Une clé est un ensemble minimum d'attribut qui détermine tous les
autres.
Exemple : (n° veh) voiture ? (n° veh, type) voiture ?
Non unicité : Il peut y avoir plusieurs clés pour une relation (clés candidates)
Une est choisie comme clé primaire
28
G. Gardarin
Formes normales Objectifs
Définir des règles pour décomposer les relations tout en préservant les DF et sans perdre d'informations, afin de représenter des objets et associations canoniques du monde réel (les molécules d'informations)
Éviter les anomalies de mises a jour Éviter les réponses erronées
29
G. Gardarin
Une telle relation doit être décomposée en répétant les noms
pour chaque profession (Opération UNNEST)
PERSONNE NOM PROFESSION
DUPONT Ingénieur, Professeur
MARTIN Géomètre
1e Forme Définition
Une relation est en 1ère forme normale si tout attribut contient une valeur atomique (unique)
Exemple
30
G. Gardarin
R K1 K2 X Y
Une telle relation doit être décomposée en
R1(K1,K2,X) et R2(K2,Y)
2e Forme Définition
une relation est en 2e forme normale ssi :1) elle est en 1ère forme
2) tout attribut non clé ne dépend pas d'une partie de clé
Schéma
31
G. Gardarin
Exemple 2e Forme Exemple 1 :
Fournisseur (nom,adresse, article, prix)
La clé est (nom, article)
Mais nom --> adresse : pas en 2e forme
Exemple 2 : R (cru,type,client,remise)
La clé est (cru, client)
Mais cru --> type : pas en 2e forme
32
G. Gardarin
R K X Y Z
Une telle relation doit être décomposée en
R1(K, X, Y) et R2(X,Z)
3e Forme Définition
une relation est en 3e forme normale ssi :1) elle est en 2e forme
2) tout attribut n'appartenant pas a une clé ne dépend pas d'un autre attribut non clé
Schéma
33
G. Gardarin
Exemple 3e Forme Exemple
Voiture (n° veh, marque, type,puissance, couleur)
Type --> marque
Type --> puissance
Pas en 3eme forme !
Il est bon que les relations logiques soient en 3e forme : Pas de redondance
Pas de perte d ’information
Pas de perte de dépendance
Représentation canonique du monde réel !
34
G. Gardarin
Exemples de Décomposition Voiture (n° veh, marque, type, puissance, couleur)
Se décompose en :
véhicule (n° veh, type, couleur)
Modèle (type, marque, puissance)
Réduction (cru, type, client, remise) Se décompose en :
Remise (cru,client,remise)
Type (cru,type)
35
G. Gardarin
R K1 K2 X Y
Une telle relation peut être décomposée en
R1(K1, K2, X) et R2(Y,K1)
Une forme plus simple : la BCNF Définition
une relation est en BCNF (Boyce-Codd Normal Form) ssi :
les seules dépendances fonctionnelles sont du type clé détermine attribut non clé
Plus simple que 3NF, un peu plus fort
Schéma
36
G. Gardarin
5. Optimisation physique On implémente pas forcément le schéma logique
regroupement de relations interrogées ensemble parfois avantageux
la dénormalisation évite des jointures coûteuses
nécessite de gérer la redondance en mise à jour
Choix du placement indexe primaire plaçant = clé primaire
hachage parfois avantageux (groupes de relations)
Choix des indexes contraintes référentielles
attributs de sélections fréquentes
indexe B-tree ou bitmap
37
G. Gardarin
Réglage des schémas Partitionnement de relations
horizontalsupporter par certains SGBD
gestion d ’indexe maître
verticaldécoupage en plusieurs tables
attributs de jointures redondants
Utilisation de données redondantes agrégats pré-calculés
jointures pré-calculées
vues concrètes
38
G. Gardarin
Résumé du réglage 1. Régler les requêtes en premier :
vérifier les plans d'exécution générés;
reformuler les requêtes sans changer le schéma;
pour éviter des sous requêtes inefficaces, régler l'usage des relations temporaires intermédiaires; ...
2. Régler les dimensions des tables par partitionnement 3. Régler les indexes et l’organisation des relations 4. Considérer l'usage de données redondantes 5. Revoir les décisions de normalisation
L'usage de vues permet de masquer ces réorganisations
39
G. Gardarin
6. Conclusion Intérêt de l’utilisation d’une méthode objet
proche du monde réel
démarche sémantique claire
diagramme UML standards
Passage au relationnel automatique outils du commerce utilisables (Rationale Rose, etc.)
supporteront les extensions objet-relationnel à venir
Normalisation à l’exception utile quand sémantique confuse
Optimisation et réglage une étape essentielle et permanente (suivi nécessaire)
Top Related