2-EntiteAss [Mode de compatibilité]

Transcription

2-EntiteAss [Mode de compatibilité]
1. Objectifs de la Modélisation
Modélisation E/R
des Données
Permettre une meilleure compréhension
1. Objectifs et principes
2. Le modèle Entité-Association (E/R)
3. Passage au relationnel
4. Conclusion
Le monde réel est complexe
Concentration sur les aspects cruciaux du problème
Réduire la distance sémantique entre le langage des
utilisateurs et le langage des concepteurs
abstraction du réel perçu en termes compréhensibles et visibles
Permettre une conception progressive
Abstractions et raffinements successifs, prototypage rapide
Automatisation de la construction du schéma de la BD
1
Élaborer un modèle conceptuel
Isoler les concepts fondamentaux
Que vont représenter les données de la BD ?
Découvrir les concepts élémentaires du monde réel
Décrire les concepts agrégés et les sous-concepts
Découvrir les relations entre ces concepts
Faciliter la visualisation du système
Diagrammes avec notations simples et précises
Compréhension visuelle et non seulement intellectuelle
Dériver le schéma de la BD
Schéma
Définition de tous les types de données de la base et de leurs liens
Agrégation de données
Type élémentaire (de base): Entier, Réel, String, ...
Type complexe (composé): Collection de types élémentaires
Tuple :
Exemple: Type Personne (nom: String, Prenom: String, age: Réel)
Instance ou occurrence Personne("Dupont", "Jules", 20)
Set :
Exemple : Voitures {id:String}; Voitures {"75AB75", "1200VV94"}
Bag, List, ...
Possibilité d'intégrer des relations entre données (liens)
Exemple : Personne
Voitures; "Dupont"
"75AB75"
2. Le Modèle Entité – Association
(E/R Model)
Modélisation à plusieurs niveaux
Réel
Modèle
conceptuel
Indépendant du
modèle de données
Indépendant du
SGBD
Modèle
logique
Dépendant du
modèle de données
Indépendant du
SGBD
Modèle
Physique
Dépendant du
modèle de données
Dépendant du
SGBD
Ensemble de concepts pour modéliser les données d'une
application (d'une entreprise)
Ensemble de symboles graphiques associés
effectue
Médecin
Codasyl
Relationnel
Visite
Objet
XML
Organisation physique des données
Structures de stockage des données
Structures accélératrices (index)
Exemple de modèle E/R
NP
N om
Type
PR O D U ITS
D ate
C ouleur
(0,N )
Formalisé en 1976 par P. Chen
Etendu vers E/R généralisé puis vers l'objet
A C H ETE
(1,N) Prix
VEND Rem
ise
(0,N)
FOURNISSEURS
NF Nom Région
N SS
(0,N )
N om
C LIE N TS
Entité
Prénom
Un objet du monde réel qui peut être identifié et que l'on
souhaite représenter
La classe d'entité correspond à une collection d'entités décrites
par leur type commun (le format)
L'instance d'entité correspond à un élément particulier de la
classe d'entité (un objet)
Attention: on dit entité pour les deux ! Comprendre selon le
contexte.
Il existe généralement plusieurs entités dans une classe
Représentation d’une entité
Exemple d'instance d’entité
Rectangle avec attributs (UML)
Voitures
Voiture
Nom
Nveh: Int
Type: String
Marque: String
Vitesse: Int
Km : Int
Attribut : Type
Rectangle avec attributs accrochés (E/R)
∋
Voitures
Nveh: Int
Type: String
Marque: String
Vitesse: Int
Km : Int
Voitures
Nveh
Type
Marque
Vitesse
Voiture
Nveh: 850VV94
Type: 407
Marque: Peugeot
Vitesse: 0
Km : 4000
Km
Attribut
Description des propriétés des entités
Toutes les instances d'une entité ont les mêmes attributs
Attribut simple: attribut ayant une valeur d'un type de base
Attribut composé: attribut constitué d'un groupe d'attributs
Attribut multi-valué: attribut pouvant avoir plus d'une valeur
Avec le modèle E/R de base tout attribut est simple
Avec le modèle E/R étendu, les attributs peuvent être
complexes
Composés et multi-valués
∋
Nveh: 75AB75
Type: Mégane
Marque: Renault
Vitesse: 120
Km : 54000
Identifiant ou Clé
Un identifiant aussi appelé clé est un (groupe d’) attribut qui
permet de retrouver une instance d'entité unique à tout instant
parmi celles de la classe.
Exemple: NVeh dans Voitures, NSS dans Personnes
Un identifiant peut être constitué de plusieurs attributs (clé
composée)
Exemple:
[N°, Rue, CodePostal] pour Maisons
[CodeProduit, Id_Fournisseur] pour Produit
Association
Les entités sont reliées ensemble par des associations
Entre instances: exemple 1 véhicule est associé à 1 personne
Entre classes: abstraction des associations entre instances
Une association peut avoir des attributs (propriétés)
Ex: la date de l’achat
Association: quelques définitions
Association (Association)
Une relation entre des instances de deux (ou plusieurs) classes
Lien (Link)
Multiplicité
Une instance d'association
Rôle (Role)
Entreprise 1..* emploie 0..*
Une extrémité d'une association
employeur
Attribut de lien (Link attribute)
Un attribut de l'association instancié pour chaque lien
Personne
employé
Rôle
Cardinalité (Multiplicity)
Le nombre d'instance d'une entité pour chaque instance de l'autre
Degré
Nombre de classes reliées par l’association
Représentation E/R
Degré d'une association
Salle
Personne
Possède
Propriétaire
Voiture
Possédée
Pièces
Composant
1
Composé
Professeur
Date
Prix
1
Cours
3..*
Elève
Composée_de
Heure_deb
Buveurs
Vins
Abus
Consommateur
Date
Estbu
Quantité
La plupart des associations sont de degré 2 (binaires)
Cardinalités min et max
Représentation UML
Cardinalité maximum
Indique le nombre maximum d'instances d'une classe d'entité participant à
une association
Personne
Propriétaire
Cardinalité minimum
Indique le nombre minimum d'instances d'une classe d'entité participant à
une association
Se lit
Voiture
Possède >
Etudiant
[0,7]
Passe
[1,N]
Examen
Possédée
Date
Prix
Vins
Buveurs
Abus >
Un étudiant passe entre 0 et 7 examens
Un examen est passé par au moins un étudiant, sans limite supérieure de
nombre
Consommateur
Date
Quantité
Cardinalités: notations UML
1
1
Exemple en UML
Possède
Voiture
*
plusieurs (0 à N)
0..1
optionnel (0 ou 1)
1..*
obligatoire (1 ou plus)
0..*
{ord}
ordonné (0 à N)
3..5
limité (de 3 à 5)
Estbu
nv
marque
type
puissance
couleur
0..*
Personne
1
date
prix
nss
nom
prenom
datenais
Se lit:
• Une voiture est possédée par une seule personne
• Une personne peut posséder un nombre quelconque de voitures
• ATTENTION : les cardinalités sont indiquées sur l’extrémité
inverse du lien par rapport à E/R
Associations ...
Agrégation et Composition
Attribut d’association = propriété du lien entre deux
objets
Loue
0..*
Personne 0..1
Agrégation
association particulière spécifiant une relation « tout-partie » entre l’agrégat
et un composant.
Notée
Voiture
N° contrat
Composition
forme forte d’agrégation avec cycle de vie des parties lié à celui du
composite (la destruction du composite entraîne celle des composants)
Notée
Classe d’association = élément ayant à la fois les
propriétés d’une classe et d’une association
Personne
0..*
0..1
Distinction utile pour exprimer des contraintes d’intégrité
Société
Contrat de Travail
Convention Collective
Date
salaire
0..n
respecte
0..1
résilier
Exemples
Flotte
d’entreprise
1
Hiérarchies de classes
Gérer la complexité
Véhicule
1..n
Arborescences de classes d’abstraction croissante
Généralisation
Personne
Parent
Super-classes
Enfants
Super-classe
Spécialisation
*0..2
homme
{abstract}
Sous-classes
**
1
<S'occupe de
0..2
Bras
0..2
Jambe
1
Tête
1
Tronc
Sous-classe
Classe plus
spécialisée
Classe plus
générale
Généralisation
Généralisation = relation taxonomique entre un élément
plus général et un élément plus spécifique qui est
entièrement conforme avec le premier élément, et qui
ajoute de l’information supplémentaire
Généralisation
Factoriser les éléments communs
attributs, opérations et contraintes
Abstraction plus gˇnˇrales
Vˇhicule
Héritage = mécanisme par lequel des éléments plus
spécifiques incorporent la structure et le comportement
d’éléments plus généraux
Vˇhicule terrestre
Voiture
Spécialisation
Extension cohérente d'un ensemble de classes
Camion
Vˇhicule aˇrien
Avion
Hˇlicopt¸re
Domaines
Ensemble nommé de valeurs
Un attribut peut prendre sa valeur dans un domaine
Généralisation des types élémentaires
Transmission
Continue
Variateur
Exemples
Liste de valeurs (1,2,3)
Type contraint (0< val <100)
Discr¸te
Dˇrailleur
Extension par spˇcialisation
Bo”te de vitesses
Permettent de préciser les valeurs possibles des attributs
Utile pour déclarer des contraintes d’intégrité
La pratique de la conception
Bien comprendre le problème à résoudre
Essayer de conserver le modèle simple
Bien choisir les noms
Ne pas cacher les associations 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
3. Passage au relationnel
Implémentations des entités et associations sous forme
de tables
mémorisent les états des entités et liens
Les attributs correspondent aux colonnes des tables
nom attribut
nom colonne
Ensemble de valeurs
domaine
Exemple
Etudiant (Ne: integer, Nom: string, Prénom: string, Age:
integer)
Traduction des associations
Règle de base
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 entités participantes suivie des attributs
de l'association
Exemples :
POSSEDE (N° SS, N° VEH, Date , Prix )
ABUS (Nv, Nb, Date, Quantité)
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
Exemple
Vins
Buveurs
nb
nom
type
*
Boire
1..*
Estbu
Abus
nv
cru
millésime
degré
Abus
Date
Quantité
À cause de la cardinalité min de 1.
BUVEURS (NB REF ABUS.NB, NOM, TYPE)
VINS (NV, CRU, MILLESIME, DEGRE)
ABUS(NB REF BUVEURS.NB, NV REF VINS.NV, DATE, QUANTITE)
À cause de l'association (obligatoire).
6. Conclusion
Intérêt de l’utilisation d’une méthode de conception
proche du monde réel
démarche sémantique claire
diagrammes standards
Passage au relationnel semi-automatique
outils du commerce utilisables (Objecteering, Rose, etc.)
supporteront les extensions objet-relationnel à venir
Extensions à venir avec la conception objet

Documents pareils