Modélisation des bases de données avec UML 1 Généralités • Un modèle informatiq
Modélisation des bases de données avec UML 1 Généralités • Un modèle informatique est une représentation simplifiée de la réalité en vue de réaliser un traitement avec un ordinateur. • Un modèle est une abstraction, une simplification de la réalité, ce n'est pas la réalité, il n'est jamais complètement fidèle par construction. • Le seul modèle complètement fidèle à la réalité est la réalité elle-même, et ce n'est donc pas un modèle. 2 Généralités • UML est un langage de représentation destiné en particulier à la modélisation objet. UML est devenu une norme OMG en 1997 • UML propose un formalisme qui impose de "penser objet" et permet de rester indépendant d'un langage de programmation donné. Pour ce faire, UML normalise les concepts de l'objet (énumération et définition exhaustive des concepts) ainsi que leur notation graphique. Il peut donc être utilisé comme un moyen de communication entre les étapes de spécification conceptuelle et les étapes de spécifications techniques. • Le diagramme de classes est un sous ensemble d'UML qui s'attache à la description statique d'un modèle de données représentées par des classes d'objets. 3 Généralités 4 Classes et attributs • Une classe est un type abstrait caractérisé par des propriétés (attributs et méthodes) communes à un ensemble d'objets et permettant de créer des instances de ces objets, ayant ces propriétés. 5 Classes et attributs 6 Classes et attributs • Un attribut est une information élémentaire qui caractérise une classe et dont la valeur dépend de l'objet instancié. • Un attribut est typé : Le domaine des valeurs que peut prendre l'attribut est fixé a priori. • Un attribut peut être multivalué : Il peut prendre plusieurs valeurs distinctes dans son domaine. • Un attribut peut être composé: Il joue alors le rôle d'un groupe d'attributs (par exemple une adresse peut être un attribut composé des attributs numéro, type de voie, nom de la voie). Cette notion renvoie à la notion de variable de type dans les langages de programmation classiques. Record 7 Classes et attributs • Un attribut peut être dérivé : Sa valeur alors est une fonction sur d'autres attributs de la classe (ou composite) 8 Classes et attributs • Un attribut ou un groupe d'attributs peut être annoté comme étant une clé s'il permet d'identifier de façon unique objet de la classe. • On ajoute le symbole à côté du ou des attributs concernés :{key} ou * 9 Classes et attributs • Un attribut a une visibilité : privée ou private (-), protégée ou read (#) et publique ou public (+). • Un objet de la classe C1 peut utiliser tous les attributs et méthodes de sa classe (C1) (+, #, - ). 10 Méthodes • Une méthode (ou opération) est une fonction associée à une classe d'objet qui permet d'agir sur les objets de la classe ou qui permet à ces objets de renvoyer des valeurs (calculées en fonction de paramètres). • Les mots clés in, out et in/out devant un paramètre de méthode permettent de spécifier si le paramètre est une donnée d'entrée, de sortie, ou bien les deux. 11 Associations • Une association est une relation logique entre deux classes (association binaire) ou plus (association n- aire) qui définit un ensemble de liens entre les objets de ces classes. • Une association est nommée généralement par un verbe. Une association peut avoir des propriétés. • Une association est généralement bidirectionnelle. Les associations qui ne respectent pas cette propriété sont dites unidirectionnelles ou à navigation restreinte. 12 Associations 13 Associations • La cardinalité d'une association permet de représenter le nombre minimum et maximum d'instances qui sont autorisées à participer à la relation. La cardinalité est définie pour les deux sens de la relation. • Si min_a (resp. max_a ) est le nombre minimum (resp. maximum) d'instances de la classe A autorisées à participer à l'association, on note sur la relation, à côté de la classe A : min_a ..max_a . • Si le nombre maximum est indéterminé, on note n ou *. 14 Associations • La notation de la cardinalité en UML est opposée à celle adoptée en E-A. En E-A on note à gauche (resp. à droite) le nombre d'instances de la classe de gauche (resp. de droite) autorisées dans l'association. En UML, on note à gauche (resp. à droite) le nombre d'instances de la classe de droite (resp. de gauche) autorisées dans l'association. • Les cardinalités les plus courantes sont : – 0..1 (optionnel) – 1..1 ou 1 (un) – 0..n ou 0..* ou * (plusieurs) – 1..n ou 1..* (obligatoire) 15 Associations 16 Associations • On appelle association 1:1 les associations de type : – 0..1:0..1 0..1:1..1 – 1..1:0..1 1..1:1..1 • On appelle association 1:N les associations de type : – 0..1:0..N 0..1:1..N – 1..1:0..N 1..1:1..N • On appelle association N:M (ou M:N) les associations de type : – 0..N:0..N 0..N:1..N – 1..N:0..N 1..N:1..N 17 Associations 18 Associations • On utilise la notation des classes d'association lorsque l'on souhaite ajouter des propriétés à une association. 19 Associations • On réserve en général les classes d'association aux associations N:M. • Il est toujours possible de réduire une classe d'association sur une association 1:N en migrant ses attributs sur la classe côté N, et c'est en général plus lisible ainsi. 20 Exemples • Match de ténnis 21 Exemples 22 Exemples 23 Exemples Une base "Coopérative" possède les caractéristiques suivantes: • Un vin est caractérisé par un numéro entier unique nv , un cru, une année de production et un degré. • Un viticulteur est caractérisé par un numéro entier unique nvt , un nom et une ville. • Les buveurs sont caractérisés par un numéro de buveur, un nom, prénom et une adresse (limitée à la nb ville pour simplifier). • Un viticulteur produit plusieurs vins, chaque vin n'est produit que par un viticulteur. 24 Exemples • Un buveur consomme des vins et peut passer des commandes pour acheter des vins. 25 Exemple de modélisation UML Nous voulons concevoir une base de données pour gérer les cours dispensés dans une école d'ingénieur, ainsi que les personnes qui interviennent dans ces cours. Chaque cours est identifié par une année et un numéro. Chaque cours a donc un numéro unique localement à chaque année. Un cours possède un titre et un type ('C' pour Cours, 'TD' ou 'TP'). Un cours possède également une date de début, et une date de fin, qui est toujours de 5 jours après la date de début. Chaque intervenant est identifié par son nom (deux intervenants ne peuvent avoir le même nom). Il a un prénom, un bureau, un ou plusieurs numéros de téléphones (jusqu'à trois numéros) et des spécialités. 26 Exemples Un bureau est défini par un centre ('R' pour Royallieu, 'BF' pour Benjamin Franklin et 'PG' pour Pierre Guillaumat), un bâtiment (une lettre de A à Z), et un numéro (inférieur à 1000). Les spécialités sont des couples de chaînes de caractères désignant un domaine (par exemple 'BD') et une spécialité (par exemple 'SGBDRO'). Chaque cours est donné par un unique intervenant. Voici un exemple : Le cours 'Machines universelles', n°21 de l'année 2014 est donné par Alan Turing entre le 05/01/2014 et le 10/01/2014. C'est un cours de type 'C'. Alan Turing a le bureau 524 au bâtiment X de PG. Il a les numéros de téléphone 97979898 et 98959882. Il possède les spécialités suivantes : • Domaine : Mathématique ; Spécialité : Cryptographie • Domaine : Informatique ; Spécialité : Algorithmique • Domaine : Informatique ; Spécialité : Intelligence Artificielle 27 Exemples 28 Héritage 29 Héritage • L'héritage est l'association entre deux classes permettant d'exprimer que l'une est plus générale que l'autre. • L'héritage implique une transmission automatique des propriétés (attributs et méthodes) d'une classe A à une classe A'. • Dire que A' hérite de A équivaut à dire que A' est une sous-classe de A. On peut également dire que A est une généralisation de A' et que A' est une spécialisation de A. 30 Héritage 31 Héritage 32 Héritage 33 Héritage • Une classe abstraite est une classe non instanciable. Elle exprime donc une généralisation abstraite, qui ne correspond à aucun objet existant du monde. • Une classe abstraite est toujours héritée. En effet sa fonction étant de généraliser, elle n'a de sens que si des classes en héritent. Une classe abstraite peut être héritée par d'autres classes abstraites, mais en fin de chaîne des classes non abstraites doivent être présentes pour que la généralisation ait un sens. • On note les classes abstraites en italique 34 Héritage 35 Héritage 36 Héritage • Un héritage est complet si ses classes filles n'ont aucune caractéristique (attributs, méthodes, associations) propres. • Un héritage est presque complet si les classes filles ont des méthodes propres, quelques attributs propres, et aucune association propre 37 Héritage • Un héritage est exclusif si les objets d'une classe fille ne peuvent appartenir aussi à une autre classe fille. On peut le noter avec la contrainte {X} sur le diagramme UML {XT} ( uploads/Philosophie/ mcd-avec-uml.pdf
Documents similaires










-
26
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 22, 2022
- Catégorie Philosophy / Philo...
- Langue French
- Taille du fichier 1.2267MB