Académique Documents
Professionnel Documents
Culture Documents
SOUS LA SUPERVISION DE :
DEDICACE
~1
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE 8
RESUME
~2
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE 8
ABSTRACT
The organization, storage and manipulation of data is an essential performance issue. This is
why the use of databases, particularly relational databases, is now a popular solution. The
latter therefore have an operating principle to ensure the correctness of the data, a multitude of
concepts such as the domain, the attribute and the relationship (or table). In addition, a BDDR
is also made up of 5 main elements which are essential for this one. These are the hardware,
the software, the data, the procedure, and the language of access to the said database. In order
to model a database, it is important to use a modeling language and here we used UML. UML
is a graphical modeling language used to design software systems (databases). In this
language, we find concepts such as objects, activities and actors. In addition, this language is
subdivided into 3 parts namely the views, the models of elements and the diagrams which are
of 2 categories (of structure and behavior) and these categories each have 7 diagrams. The
most common diagram in UML modeling is the class diagram because it describes the logical
and physical design of a system and represents entities and their attributes. Thus, with UML,
the modeling of relational databases makes it possible to represent the entities, the relations
and the constraints that can be found in this database. But also, it is a useful way to
automatically generate the SQL code needed to create the database. So database modeling
with UML is a powerful tool for designing efficient and well-structured databases.
~3
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE 8
DEDICACE.............................................................................................................................................1
RESUME.................................................................................................................................................2
ABSTRACT.............................................................................................................................................3
INTRODUCTION..................................................................................................................................6
I. LES BASES DE DONNEES RELATIONNELLES.....................................................................7
1. DEFINITION..............................................................................................................................7
2. PRINCIPE DE FONCTIONNEMENT DES BDDR...............................................................8
3. CONCEPTS DES BDDR...........................................................................................................8
a. LE DOMAINE........................................................................................................................8
b. L'ATTRIBUT..........................................................................................................................9
c. LA RELATION (OU TABLE)...............................................................................................9
4. COMPOSANTS DES BDDR.....................................................................................................9
5. AVANTAGES ET INCONVENIENTS DES BDDR...............................................................10
a. AVANTAGES.........................................................................................................................10
b. INCONVENIENTS..............................................................................................................10
6. EXEMPLE D’UNE BASE DE DONNEES RELATIONNELLE : SYSTEME DE
GESTION D’UNE BIBLIOTHEQUE............................................................................................11
II. PRÉSENTATION DU LANGAGE UML...............................................................................13
1. DEFINITION............................................................................................................................13
2. LES CONCEPTS DE BASE ET PARTIES DE UML...........................................................13
a. CONCEPTS DE BASE........................................................................................................13
b. PARTIE DE UML.................................................................................................................16
3. LES DIAGRAMMES D’UML.................................................................................................19
a. LES DIAGRAMMES DE STRUCTURE...........................................................................20
b. LES DIAGRAMMES UML DE COMPORTEMENT......................................................23
4. AVANTAGES ET INCONVENIENTS DE UML...................................................................29
a. AVANTAGES.........................................................................................................................29
b. INCONVENIENTS..............................................................................................................30
III. MODELISATION D’UNE BASE DE DONNEES RELATIONNELLE AVEC UML.......31
1. MODELISATION CONCEPTUELLE..................................................................................31
a. Les concepts et leurs associations........................................................................................31
b. Multiplicités des associations...............................................................................................32
c. Renforcement des associations grâce à la composition.....................................................35
d. Amélioration du diagramme des classes.............................................................................36
e. Restriction de l’instanciation des classes grâce aux classes abstraites............................38
2. MODÉLISATION LOGIQUE................................................................................................39
a. Identifier les éléments clés du modèle relationnel.............................................................39
~4
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE 8
b. Créer le lien entre tables et clés étrangères........................................................................41
c. Transformer les associations de notre diagramme de classe............................................41
CONCLUSION.....................................................................................................................................51
LISTE DES FIGURES.........................................................................................................................52
LISTES DE TABLEAUX.....................................................................................................................53
REFERENCES BIBLIOGRAPHIQUES...........................................................................................54
~5
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE 8
INTRODUCTION
Les données sont des informations pouvant être liées à n’importe quel objet. Afin de gérer,
structurer et manipuler ces dernières, il est idoine d’avoir une collection organisée. Cette
collection est appelée Base De Données. Elle est généralement stockée électroniquement dans
un ordinateur. Il en existe une large variété ; nous avons entre autres les bases de données
relationnelles, les bases de données orientées objet, les bases de données distribuées et les
bases de données No SQL (non-relationnelle) mais dans le cadre de ce travail, nous allons
nous intéresser aux BDDR. En outre, toute fois avant la réalisation d’un système, il faut le
modéliser car cela permet de mieux comprendre le fonctionnement du système et est
également un bon moyen de maitriser sa complexité et d’assurer sa cohérence. De plus, la
modélisation d’un système nécessite un langage de modélisation. Dès lors, comment
concevoir une base de données relationnelle efficace avec UML pour répondre aux besoins de
la société ? Dans la suite de ce travail, nous allons tout d’abord donner un aperçu d’une Base
De Données Relationnelle, ensuite nous allons présenter le langage qui sera utilisé au cours de
notre travail à savoir UML et enfin nous allons parler de la modélisation d’une Base De
Données Relati avec UML.
~6
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE 8
Les logiciels qui permettent de créer, utiliser, maintenir et contrôler les bases de données
relationnelles sont des systèmes de gestion de bases de données relationnelles (SGBDR) de
l’anglais Relational Data Base Management System (RDBMS). Il s’agit de l’interface entre la
base de données et leur utilisateurs finaux ou les programmes.
Pratiquement tous les systèmes relationnels utilisent le langage SQL pour interroger les bases
de données. Ce langage permet de demander des opérations d'algèbre relationnelle telles que
l'intersection, la sélection et la jointure.
~7
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE 8
1
Attributs qui identifient de manière unique chaque entité dans une table
2
Attributs qui référencent les clés primaires d'autres tables et permettent de définir des relations entre les tables
~8
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE 8
b. L'ATTRIBUT
L'attribut est une caractéristique ou une propriété d'une entité. Il est utilisé pour décrire les
caractéristiques des données dans une table. Par exemple, une table d'employés pourrait
inclure des attributs tels que le nom, le prénom, le numéro d'identification et le salaire. Les
attributs sont souvent associés à un domaine qui spécifie le type de données et les contraintes
pour l'attribut.
~9
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
~ 10
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Limitation de performances :
Les requêtes complexes pourraient ralentir significativement les performances de la base de
données.
Conflit de données :
Les conflits de données peuvent survenir lorsque des données sont stockées dans des tables
différentes et qu'elles doivent être mises à jour en même temps.
Taille :
La taille est souvent limitée sur les bases de données relationnelles en raison de la manière
dont elles sont organisées. Les performances peuvent diminuer à mesure que la taille de la
base de données augmente.
En fin de compte, le choix d'une base de données dépend des besoins de l'entreprise et
des caractéristiques de la solution. Certaines applications se prêtent mieux aux bases de
données relationnelles, tandis que d'autres peuvent bénéficier des bases de données non
relationnelles ou distribuées.
~ 11
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
~ 12
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
1. DEFINITION
Le langage de modélisation unifié, de l’anglais unified modeling language, est un langage de
modélisation graphique à base de pictogrammes conçu comme une méthode normalisée de
visualisation dans les domaines du développement logiciel et en conception orienté objet.
L’UML est une synthèse de langages de modélisation objet antérieurs : Booch, OMT, OOSE.
Principalement issu des travaux de Grady Booch, James Rumbaugh et Ivar Jacobson, UML
est à présent un standard adopté par l’OMG (Object Management Group). UML 1.0 a été
normalisé en janvier 1997 ; UML 2.0 a été adopté par l’OMG en juillet 2005. La dernière
version de la spécification validée par l’OMG est 2.5.1 en 2017. UML à partir de sa version
1.3 propose neuf
(9) diagrammes tandis qu’il en existe quatorze (14) depuis l’UML 2.3
2. LES CONCEPTS DE BASE ET PARTIES DE UML
a. CONCEPTS DE BASE
Aujourd’hui, il existe deux principaux modèles de représentations des systèmes. Le modèle
fonctionnel et le modèle objet (ou de « l’orienté-objet »). L’approche fonctionnelle n’est pas
adaptée au développement d’applications qui évoluent sans cesse et dont la complexité croit
continuellement et l'approche objet qui a été inventée pour faciliter l'évolution d'applications
complexes, dont les concepts sont :
MODELE OBJET
L’objet, la classe, l’héritage, l’encapsulation, l’agrégation et le polymorphisme.
Objet
Un objet est une abstraction d’un élément du monde réel. Il possède des informations, par
exemple nom, prénom, adresse etc., et se comporte suivant un ensemble d’opérations qui lui
sont applicables. De plus, un ensemble d'attributs caractérisent l'état d'un objet, et l'on dispose
d'un ensemble d'opérations (les méthodes) qui permettent d’agir sur le comportement de
l’objet. Ce dernier est le cœur de cette approche. Tout objet donné possède deux
caractéristiques : Son état courant (attributs) et Son comportement (méthodes).
Classe
On appelle classe la structure d’un objet, c’est-à-dire la déclaration de l’ensemble des entités
qui composeront un objet. Les objets de même nature ont en général la même structure et le
même comportement. La classe factorise les caractéristiques communes de ses objets et
permet de les classifier. Un objet est l’instance d’une classe, et une classe est un type de
~ 13
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
données
~ 14
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
abstrait, caractérisé par des propriétés (ses attributs et ses méthodes) communes à ses objets et
un mécanisme permettant de créer des objets ayant ces propriétés. Le concept de classe
permet donc de regrouper des objets de même nature.
Heritage
L’héritage est un principe propre à la programmation orientée objet, permettant de créer une
nouvelle classe à partir d’une classe existante. Le nom d’"héritage" (ou parfois dérivation de
classe) provient du fait que la classe dérivée (la classe nouvellement créée) contient les
attributs et les méthodes de sa superclasse (la classe dont elle dérive). L’intérêt majeur de
l’héritage est de pouvoir définir de nouveaux attributs et de nouvelles méthodes pour la classe
dérivée, qui viennent s’ajouter à ceux et celles héritées. Par ce moyen on crée une hiérarchie
de classes de plus en plus spécialisées.
L’encapsulation
L'encapsulation est un concept clé de la programmation orientée objet (POO) et se réfère à la
pratique de cacher les détails internes d'un objet de manière à ce que les utilisateurs de cet
objet ne puissent pas y accéder directement. En UML, cela est représenté par la classe
principale qui
~ 15
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
contient des attributs et des méthodes qui sont définis comme privés. Cela signifie que ces
attributs et méthodes ne peuvent être accédés que par la classe elle-même et pas par les autres
classes.
L’agrégation
L'agrégation est un autre concept important en UML qui est utilisé pour représenter les
relations entre les classes. Il s'agit d'une relation "partie-tout" où une classe peut être
composée de plusieurs instances d'autres classes. En UML, cela est représenté par une flèche
creuse qui pointe de la classe qui contient les instances vers les instances elles-mêmes. Cette
flèche creuse est appelée une « flèche d'agrégation ».
Polymorphisme
Le polymorphisme en UML permet de créer une structure de classes et de méthodes qui peut
être élargie et modifiée sans compromettre le fonctionnement de l'ensemble du système. Cela
rend le code plus facile à réutiliser et à maintenir à long terme.
MODELE FONCTIONNELLE
Ce sont des concepts utilisés pour créer des diagrammes d’activités UML pour modéliser les
comportements des systèmes. Nous avons entre autres :
~ 16
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
L’activité
Une tache ou un comportement effectué par un objet ou un acteur d’un système. Les activités
peuvent être représentées par des rectangles avec bords arrondis.
L’action
Une étape individuelle dans une activité et représentées par des formes rectangulaires.
La transition
La connexion entre deux étapes de l’activité et représentés par des flèches.
Le point de décision
C’est une étape ou une décision prise en fonction d’une condition, et peuvent être représentés
par des losanges.
Point de fusion
Une étape ou deux branches de l’activité qui se rejoignent et sont représentés par des losanges
avec un ou plusieurs entrées.
La fourche
Une étape ou une branche d’activités se divisant en plusieurs branches, et sont représentés par
des losanges aves une ou plusieurs sorties.
L’objet
Un élément du système sur le quelle l’activités est effectués et est représentés par des
rectangles avec coins arrondis.
L’acteur
Elément extérieur au système qui interagis avec le système et peuvent être représentés par des
silhouettes humaines, rectangle arrondis ou une icône.
b. PARTIE DE UML
UML se décompose en 3 parties :
LES VUES
Ce sont les observables du système. Elles décrivent le système d'un point de vue donné, qui
peut être organisationnel, dynamique, temporel, architectural, géographique, logique, etc. En
combinant toutes ces vues, il est possible de définir (ou retrouver) le système complet.
La vue logique
Cette vue de bas niveau (aussi appelée "vue de réalisation"), montre l'allocation des éléments
de modélisation dans des modules (fichiers sources, bibliothèques dynamiques, bases de
données, exécutables, …). En d'autres termes, cette vue identifie les modules qui réalisent
(physiquement) les classes de la vue logique. L'organisation des composants, c'est-à-dire la
~ 17
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
distribution du code en gestion de configuration, les dépendances entre les composants... Les
contraintes de développement (bibliothèques externes...). La vue des composants montre aussi
l'organisation des modules en "sous-systèmes", les interfaces des sous-systèmes et leurs
dépendances (avec d'autres sous-systèmes ou modules).
La vue des processus
Cette vue est très importante dans les environnements multitâches ; elle montre la
décomposition du système en terme de processus (tâches) et les liens entre les processus (leur
communication). La synchronisation et la communication des activités parallèles (threads).
La vue de déploiement
Cette vue très importante dans les environnements distribués, décrit les ressources matérielles
et la répartition du logiciel dans ces ressources, la disposition et nature physique des
matériels, ainsi que leurs performances, l’'implantation des modules principaux sur les nœuds
du réseau et les exigences en terme de performances (temps de réponse, tolérance aux fautes
et pannes...).
La vue des besoins des utilisateurs
Cette vue (dont le nom exact est "vue des cas d'utilisation"), guide toutes les autres. Dessiner
le plan (l'architecture) d'un système informatique n'est pas suffisant, il faut le justifier ! Cette
vue définit les besoins des clients du système et centre la définition de l'architecture du
système sur la satisfaction (la réalisation) de ces besoins. À l'aide de scénarios et de cas
d'utilisation, cette vue conduit à la définition d'un modèle d'architecture pertinent et cohérent.
Cette vue est la "colle" qui unifie les quatre autres vues de l'architecture.
La vue d’implémentation
C’est une vue qui se concentre sur les détails de mise en œuvre du système tels que les
attributs et les méthodes. Elle fournit une représentation détaillée de la façon dont les
éléments du système sont réalisés avec des diagrammes.
Une façon de mettre en œuvre UML est de considérer différentes vues qui peuvent se
superposer pour collaborer à une définition du système :
~ 18
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Figure 7: Superposition des vues d’UML
~ 19
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
~ 110
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
LES DIAGRAMMES
Ce sont des ensembles d'éléments graphiques. Ils décrivent le contenu des vues, qui sont des
notions abstraites. Ils peuvent faire partie de plusieurs vues. Nous allons donc plus
approfondir ce sujet dans la suite.
~ 111
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Diagramme d’objets :
Il est souvent utilisé comme un moyen de revérifier l’exactitude d’un diagramme de classe.
Autrement dit, s’il fonctionnera dans la pratique. Ce schéma présente les instances de classes
(objets) d’un système et leurs liens à un instant donné, il donne également une meilleure vue
d’ensemble des défauts de conception potentiels qui doivent être corrigés.
~ 20
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Diagramme de composants :
Également connu sous le nom de diagramme de flux des composants, il montre les
composants du système (éléments logiciels), et leurs mis en œuvre (fichiers, bibliothèques,
bases de données...). En d’autres termes, il offre une vue plus simplifiée d’un système
complexe en le désossant en plus petits composants. Chacun des éléments est représenté par
une case rectangulaire comportant son nom. Les connecteurs définissent la relation/les
dépendances entre les différents composants.
~ 21
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Diagramme de profil :
Il s’agit plus d’un langage que d’un diagramme. Un diagramme de profil permet de créer de
nouvelles propriétés et sémantiques pour les diagrammes UML en définissant des stéréotypes
personnalisés, des valeurs balisées et des contraintes. Grâce à ces profils, vous pouvez
personnaliser un méta modèle UML pour différentes plateformes (par exemple Java Platform,
Enterprise Edition (Java EE) ou Microsoft.NET Framework) et plusieurs domaines (par
exemple, la modélisation des processus opérationnels, l’architecture axée sur le service, les
applications médicales et bien d’autres).
~ 22
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
~ 23
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
bonnes pratiques. Il décrit ce que fait un système, mais pas la manière dont il y parvient. Un
cas d’utilisation correspond à un ensemble d’événements qui se produisent lorsqu’un “acteur”
utilise un système pour terminer un processus. Un acteur est défini comme toute personne ou
tout élément qui interagit avec le système (personne, organisation ou application) de
l’extérieur du système. Ainsi, un diagramme de cas d’utilisation décrit visuellement cet
ensemble de séquences et représente les exigences fonctionnelles du système.
~ 24
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Diagramme de temps
Il est utilisé lorsque le temps est primordial. Aussi connu sous le nom de diagramme de
séquence ou d’événement, il ne montre pas comment les objets interagissent ou se modifient
entre eux. Sur le plan fonctionnel, il montre comment les objets et les acteurs agissent dans
une ligne du temps. L’accent est mis ici sur la durée des événements et sur les changements
qui surviennent en fonction des contraintes de durée. Les principales parties d’un diagramme
de temps comprennent :
La ligne de vie : le participant individuel ;
La ligne du temps de l’état : les différents états par lesquels passe la ligne de
vie à l’intérieur d’une branche ;
La contrainte de durée : le temps nécessaire pour qu’une contrainte soit
remplie ;
La contrainte de temps : le délai dans lequel un événement doit être accompli
par le participant ;
L’événement de destruction : l’endroit où la ligne de vie d’un objet se termine.
Aucun autre cas n’apparaîtra après l’événement de destruction sur une ligne de
vie.
~ 25
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Figure 21: Utilisation des contraintes et observations de temps d’un appel téléphonique
Diagramme états-transitions
Aussi appelé « state chart », ce diagramme s’applique lorsque le comportement d’un objet est
complexe et que le souci du détail est essentiel. Il permet de décrire le comportement d’un
objet (ou parfois d’un opérateur) et la façon dont il change en fonction d’événements internes
et externes.
Diagramme de séquence
Également bien connu en dehors de la communauté des concepteurs, ce diagramme
visuellement attrayant permet de montrer tous les types de processus opérationnels. Il révèle
simplement la structure d’un système, montrant la séquence des messages et les interactions
entre les acteurs ainsi que les objets dans l’ordre chronologique. Le diagramme de séquence
présente des itérations et des ramifications simples. Il est axé sur le multitâche. Il peut être
utilisé pour affiner le comportement ou la description d’un cas d’utilisation. Cette approche
est utile lors de l’analyse des besoins. Ça peut également être l’opportunité de tester un
modèle statique pendant la conception ; il peut représenter un scénario dans lequel les classes
du diagramme de classes sont instanciées pour créer les objets nécessaires à l’exécution du
scénario.
~ 26
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Diagramme de communication
Un diagramme de communication ou de collaboration est similaire à un diagramme de
séquence, mettant toutefois l’accent sur la communication entre les objets. Il présente
l’organisation des objets qui participent à une interaction et reprend des itérations ainsi que
des ramifications plus complexes. Ce diagramme montre des acteurs, des objets (instances de
classes) et leurs lins de communication (liens entre objets), ainsi que les messages qu’ils
échangent. L’ordre dans lequel les messages sont échangés est représenté par les numéros
d’ordre.
~ 27
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Diagramme de
Représente divers usages
cas d’utilisation
- diagrammes
Diagramme de Affiche la répartition des rôles des objets au sein
d’interaction
communication d’une interaction.
~ 28
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Diagramme
Montre comment les séquences et les activités
d’aperçu
interagissent.
d’interaction
~ 29
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
b. INCONVENIENTS
UML peut être complexe et difficile à apprendre pour les débutants
Il peut être abstrait et théorique pour certain développeur.
Il est couteux à mettre en œuvre car il nécessite l’utilisation d’outil de modélisation
spécialisés.
UML est trop rigide et restrictif dans certain cas, ce qui peut limiter la réactivité et
l’innovation dans la conception des systèmes.
~ 30
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Figure 26.
Dans ce diagramme, nous avons formalisé tous nos concepts sous forme de classes : nous
avons les classes film, Lieu de tournage...
Ensuite, il est question de représenter les associations entre ces différentes classes (de
préférence à l’aide de verbes) comme suit :
~ 31
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Figure 27.
Ensuite, nous pouvons aller plus loin dans la précision des multiplicités.
Par exemple, quand nous disons « au plus 1 », nous pouvons préciser s’il s’agit de «
strictement 1 », ou bien « 0 ou 1 ». Aussi, quand nous disons « plusieurs », nous pouvons
entendre « 0, 1 ou plus », ou bien « strictement plus que 1 », etc.
~ 32
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
1..1 1 Exactement 1
Tableau 3
Plusieurs :
0..* * 0, 1 ou plus
Ici, “au plus un” signifiera “exactement un”, et “plusieurs” signifiera “strictement plus de un”.
Voici comment s’utilisent ces notations :
Un film peut être réalisé par au moins 1 réalisateur (noté 1..*), et un réalisateur peut
avoir produit 0, 1 ou plusieurs (noté *) films :
~ 33
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Un film est réalisé par exactement 1 société de production (1), et une société peut
produire 0, 1 ou plusieurs films (*) :
Un cinéma a exactement 1 adresse (1), et une adresse donnée ne peut accueillir que 0
ou 1 seul cinéma ( 0..1)
~ 34
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Figure 31.Multiplicité
~ 35
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Jusqu’à maintenant, nous avons parlé de films de manière générale. Mais nos données sont un
peu plus précises que cela. En effet, ce que nous avons appelé « film » peut en réalité être un
long-métrage, un téléfilm ou une série (diffusée sur le web ou à la télévision). Pour être plus
correct, nous allons maintenant employer le terme « Œuvre » au lieu de « Film ». Une
œuvre sera donc soit un long-métrage, soit un téléfilm, ou une série.
Un long-métrage est un film tel que nous l’entendons habituellement, un téléfilm est un film
spécialement conçu pour passer à la télévision plutôt qu’au cinéma, et une série est un
enchaînement de plusieurs épisodes, souvent regroupés en saisons.
Jusqu’à maintenant, le type de l'œuvre est enregistré dans l’attribut typeDeTournage.
Or dans le cas des séries, on connaît parfois le numéro de la saison. Il serait donc préférable
d’ajouter un attribut saison dans la classe Œuvre.
~ 36
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Cependant, cet attribut ne sera utilisé que si l'œuvre est une série. Il restera vide si l'œuvre est
un téléfilm ou un long-métrage. Cette solution n’est donc pas optimale. L’idéal serait de
placer cet attribut dans une classe Série.
Heureusement, c’est possible ! On fait cela via la notion d’héritage, comme ceci :
La relation d’héritage se représente par une flèche triangulaire blanche (vide). Elle indique
que la classeOeuvre (appelée classe mère) est plus générale que ses classes filles, qui sont
plus spécialisées.
Ainsi, toutes les classes filles (Telefilm, SerieetLongMetrage) héritent deOeuvre, et cette
dernière transmet automatiquement à ses filles ses attributs et ses méthodes. De cette manière,
toutes les classes filles possèdent l’attribut Titre. La classe Serie a quant à elle deux attributs :
Titre et Saison.
Sur ce schéma, les classes Telefilm et LongMetrage sont vides. Ce n’est pas grave ! Mais si
nous avions eu plus d’informations dans le fichier, nous avions pu ajouter, par exemple, un
attribut chaine pour indiquer la chaîne de télévision sur laquelle est diffusée le Telefilm.
~ 37
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
On peut aussi enchaîner les relations d’héritage, en créant les classes SerieTV et SerieWeb !
Voici le résultat :
~ 38
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Une classe abstraite est toujours héritée. Elle peut d’ailleurs être héritée par d'autres classes
abstraites, mais en fin de chaîne, il doit y avoir une classe non abstraite.
2. MODÉLISATION LOGIQUE
a. Identifier les éléments clés du modèle relationnel
C’est la première étape et la plus simple. Dans un modèle relationnel, les informations sont
stockées sous forme de tableaux, ou simplement tables. Il s’agit donc de transformer notre
diagramme de classe en modèle relationnel, en passant des classes aux table (nous laissons
pour le moment les classes héritées qu’on verra plus tard).
Voici donc les tables que nous avons actuellement :
Œuvre ;
Lieu ;
Tournage ;
Societe_de_production ;
Realisateur_ice.
~ 39
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Ensuite, nous devons représenter ces tables et il existe différentes façons de le faire : l’une sous
forme de texte, et l’autre sous forme graphique.
i. La représentation textuelle
Notre table lieu, qui possède quatre attributs, s’écrit de cette manière :
Lieu (localisation_de_la_scene : Texte, code_postal : Numérique, longitude : Numérique,
latitude : Numérique)
ii. La représentation graphique
Elle est très similaire à l’UML car elle représente les tables par des rectangles divisés en trois
parties, mais ces trois parties sont remplies différemment qu’en UML. Par défaut, les attributs
sont notés dans la troisième partie (au lieu de la deuxième en UML).
~ 40
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Quelques exemples (non exhaustifs) sont placés ensuite au niveau des lignes du tableau:
~ 40
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Sur cette illustration, on voit que la table lieu contient quatre colonnes et plusieurs lignes.
L’une de ces lignes représente la rue Corvisart et contient les valeurs ("rue Corvisart", 75013,
2.3472, 48.8322).
("rue Corvisart", 75013, 2.3472, 48.8322) est aussi appelé un tuple, un enregistrement, plus
rarement un vecteur ou même un n-uplet ! Si nous étions encore à la phase de modélisation
UML, on pourrait aussi dire que ("rue Corvisart", 75013, 2.3472, 48.8322) est une instance de
la classelieu.
Remarque : Dans une table, l'ordre des lignes et des colonnes n'a pas d'importance et pas de
signification. Deux tables contenant les mêmes colonnes (mais dans un ordre différent) et les
mêmes lignes (dans un ordre différent) sont considérées comme identiques.
~ 41
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Une association un-à-plusieurs se traduit en ajoutant une clé étrangère dans la table qui est du
côté « plusieurs ». Cette clé étrangère référence la clé primaire de la table qui est du côté « un
».
ii. L’association plusieurs à plusieurs
Prenez maintenant l’association œuvre - realisateur_ice, qui est de type plusieurs-à-plusieurs.
Si vous essayez de mettre une clé étrangère dans œuvre référençant la clé primaire de
realisateur_ice, alors vous verrez qu’une œuvre ne peut avoir qu’un réalisateur : ce n’est pas
~ 42
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
ce que vous voulez. Si inversement vous mettez une clé étrangère dans realisateur_ice, alors
vous ne pourrez avoir qu’une œuvre par réalisateur.
La solution est d’ajouter une table en plus. Cette table contiendra deux clés étrangères : l’une
référençant œuvre, et l’autre référençant realisateur_ice :
Temporairement, comme vous ne savez pas encore quelle est la clé primaire d’œuvre, j’ai
ajouté une clé primaire artificielle id_oeuvre, juste pour cette illustration.
Vous voyez ici qu’une œuvre peut avoir plusieurs réalisateurs, et qu’un réalisateur peut avoir
réalisé plusieurs œuvres.
La clé primaire de cette nouvelle table sera composée des deux clés étrangères :
Figure 43.Représentation graphique des tables avec leurs clés primaires et étrangères
Comme assoc_oeuvre_real et realisateur_ice sont liées par une clé étrangère ( real), et que
cette clé étrangère fait également partie de la clé primaire de assoc_real_oeuvre, on lie les
deux tables par un trait plein (et non pas en pointillés comme précédemment).
iii. Association un à un
Pour une association un-à-un entre une table A et une table B, on utilise aussi une clé
étrangère. La clé étrangère est placée dans A et elle référence la clé primaire de B.
~ 43
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Selon le graphique ci-dessus, un cinéma ne peut avoir qu’une adresse, mais deux cinémas
peuvent avoir la même adresse : ce n’est pas ce que l’on veut.
Pour spécifier qu’une adresse ne peut accueillir qu’un seul cinéma, il faut ajouter une
contrainte d’unicité sur l’attribut adresse. Ainsi, la colonne adresse ne pourra pas contenir
deux fois la même valeur. Ce qui signifie qu'une adresse ne pourra pas accueillir plus d’un
cinéma.
Iv. Transformons les compositions associations
Une composition, c’est un cas particulier d’association un-à-plusieurs. Comme nous l’avons
vu précédemment, il faut donc ajouter une clé étrangère dans la table qui est du côté «
plusieurs », cette clé étrangère référence la clé primaire de la table qui est du côté « un ».
Mais vous le savez désormais, ce qui différencie une composition d’une simple association
un- à-plusieurs, c’est que le composant ne peut exister sans son composite. Ainsi, on identifie
un composant à partir de son composite. C’est-à-dire que la clé primaire du composant
inclut/comprend obligatoirement le composite.
C’est le cas entre une œuvre et sa société de production. Car comme vous l’avez vu
précédemment, une œuvre se définit par son titre ET par la société qui l’a produite (car il
arrive que deux œuvres aient le même titre).
Maintenant que nous avons ajouté une clé étrangère societe_prod dans œuvre, qui référence
societe_de_production, il est donc possible d’identifier chaque œuvre par son titre et sa
société. Vous avez donc trouvé la dernière des clés primaires de votre modèle relationnel :
celle de la table œuvre. La voici : (titre, societe_prod).
Ici, societe_prodest à la fois une clé étrangère et une partie de la clé primaire de oeuvre.
Une composition est traduite de la même manière qu’une association un-à-plusieurs ; mais en
plus, on ajoute à la clé primaire de la table composant la clé étrangère vers la table composite.
Maintenant que vous avez la clé primaire de œuvre, il faut actualiser la table
assoc_oeuvre_real avec cette nouvelle clé. Voici le résultat :
~ 44
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Figure 45.Représentation graphique des tables avec leurs clés primaires et étrangères
3. Modélisation physique
La modèle Physique des données (MPD ou MPhD) permet de préciser les systèmes de
stockage employés. Les données qui sont stockées et gérées dans un ordinateur le sont
souvent par un système de gestion de base de données (SGBD). Le MPD est l'implémentation
du MLD dans le SGBD retenu.
Un modèle physique de données introduit le contexte spécifique à la base de données qui
manque dans les modèles conceptuels et logiques de données. Il représente les tables,
colonnes,
~ 45
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
types de données, vues, contraintes, indices et procédures au sein de la base de données et/ou
les informations communiquées lors des processus informatiques.
Les modèles de données physiques doivent être construits en fonction d’un système de gestion
de base de données (SGBD) spécifique (relationnelle) ainsi que des exigences spécifiques des
processus qui fonctionnent sur la base de ces données. Cela nécessite souvent la
dénormalisation des constructions de conception logique pour maintenir l’intégrité
référentielle. Un exemple de ces considérations contextuelles à l’étape de la modélisation
physique des données est la nature des données qui peuvent être/seront traitées et les règles
concernant la façon dont ces processus peuvent être exécutés.
Il est également essentiel de s’assurer que les types de colonnes modélisés sont pris en charge
par le SGBD et que les conventions de dénomination des entités et des colonnes sont
respectées, afin d’éviter les chevauchements sémantiques problématiques. La prise en compte
du contexte technologique signifie que les modèles de données physiques reflètent les besoins
de l’environnement technologique tel qu’il est, ou tel qu’il est prévu.
Le model physique consiste plus précise à implémenter une base de donné dans le SGBDR.
Le SQL (Structured Query Language), ou Langage d'Interrogation Structuré, a été reconnu en
tant que norme officielle de langage de requête relationnelle.
Toutefois, les syntaxes d'extractions des données et de créations des tables varient quelques
peu d'un système de gestion de base de données à l'autre.
Le principe est donc le suivant :
Le modèle physique consiste donc à ressortir le script SQL de création des tables en précisant
la longueur des champs et les différentes clés.
L’implémentation d’une base de données dans le SGBDR se fait de la manière suivante :
Tout d'abord, un SGBDR est un logiciel qui joue le rôle d'interface entre les utilisateurs et la
Base de Données. Il est chargé de décrire, manipuler et interroger les données d'une Base de
Données. Il est chargé de tous les problèmes liés aux accès concurrents, à la sauvegarde et la
restauration des données. Il doit de plus veiller au contrôle, à l'intégrité et la sécurité des
données. Il est géré par plusieurs logiciels en autre MySQL. Le langage utilisé pour
implémenté les bases de donné est le SQL
Le langage SQL (sigle de Structured Query Language, en français langage de requête
structurée) est un langage informatique normalisé servant à exploiter des bases de
données relationnelles. La partie langage de manipulation des données de SQL permet
de rechercher, d'ajouter, de modifier ou de supprimer des données dans les bases de
données relationnelles.
~ 46
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Un modèle physique de données relationnel MySQL (MPDR-MySQL) est composé des deux
sous-modèles suivants :
Un modèle physique de données relationnel MySQL classique qui est une
extension du modèle logique de données relationnel (MLD-R) intégrant les
spécificités des systèmes de gestion de base de données relationnelles MySQL.
Des APIs de tables qui étendent les spécifications du modèle classique.
Un modèle physique de données relationnel MySQL classique est une extension du
modèle logique de données relationnel (MLD-R) intégrant les spécificités des
systèmes de gestion de base de données relationnelles MySQL.
Un modèle physique de données relationnel MySQL classique s'attache aux tables,
colonnes, contraintes et relations mais pas aux APIS de tables
~ 47
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Les APIs des tables sont constituées de déclencheurs et de procédures. Selon la nature
de l'enrichissement à réaliser, il y aura encore des tables et des vues.
Les déclencheurs fournissent un comportement supplémentaire qui peut être associé à
une entité. Typiquement, cela est utilisé pour faire respecter l’intégrité des données
avant ou après les mises à jour, insère et supprime. Les procédures stockées de base de
données fournissent un moyen d’étendre les fonctionnalités de base de données par les
extensions du langue propriétaire utilisé pour construire des unités fonctionnelles
(scripts). Ces procédures fonctionnelles ne correspondent pas directement à des
entités, ni avoir une relation logique pour eux. La Navigation par des ensembles de
données relationnels est basée sur la rangée. SQL est la langue principale utilisée pour
sélectionner les lignes et de localiser les cas d’un ensemble de table.
L’enrichissement est l’ajout d’une portion de code permettant d’effectuer une tache
spécifique supplémentaire dans une base de données.
~ 48
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
Représentation
Un paquetage UML stéréotypé <<TAPIS>> comporte un conteneur de déclencheurs
<<Triggers>>. Ce paquetage fait usage du conteneur de procédures et fonctions globales
SQL/PSM <<Procedures>>.
La génération de la base de données au format SQL standard donne le code suivant :
Sélectionnez
-- ============================================================
-- Nom de la base : Cameroon_prime_vidéo
-- Nom de SGBD : ANSI Niveau 2
-- Date de création : 16/01/ 2001 22:24
-- Copyright : Groupe 8
-- ============================================================
-- ============================================================
-- Table :LIEU
-- ============================================================
create table LIEU (
Locdelascene CHAR
-- ============================================================
-- Index : T_C
-- ============================================================
create unique index T_LIEU_ PK on T_ LIEU ( LONGLAT asc);
-- ============================================================
-- Table : OEUVRE
-- ============================================================
create table T_OEUVRE (
TITRE CHAR
SOC_DE_PROD. CHAR
Type_ de_tournage CHAR
primary key (
SOC_DE_PROD)
);
-- ============================================================
-- Index : T_OEUVRE
============================================================
create table T_TOURNAGE (
LOC_SCENE VARCHAR
CODEPOSTAL VARCHAR
TITRE_OEUVRE VARCHAR( 32)
~ 49
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
1. Mettre le fichier des ordres SQL d'insertion dans une colonne de table via un
import de données. Par exemple dans une table Paradox de nom
INSERT_EXEMPLE possédant une colonne de nom SQL_ORDER ;
2. Jouer le script ci-dessus afin d'insérer les données :
Sélectionnez
var
tc TCursor
svarString
sqlVar SQL
dbDatabase endvar
scan tc :
svar = TC. SQL_ ORDER
try
sql Var. read FromString(svar) sql Var. executeSQL(db)
on Fail
errorShow() msg Info("ORDRE SQL",s Var) quitLoop
endTry endscan
error Trap OnWarnings(False) endMethod
~ 50
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
CONCLUSION
Parvenu au terme de ce travail où il a été question pour nous de présenter les généralités sur
les bases de données relationnelles, le langage UML et la modélisation de ces bases avec ce
langage. Il en ressort que, la modélisation d'une base de données relationnelle avec UML offre
de nombreux avantages. Elle permet de réduire les erreurs de conception, d'améliorer la
qualité de la base de données, et d'accélérer le processus de développement grâce à une
meilleure compréhension des besoins. UML offre également une grande adaptabilité,
permettant ainsi aux développeurs de s'adapter aux changements de l'environnement et de la
structure de la base de données. En somme, la modélisation d'une base de données
relationnelle avec UML est un élément crucial pour toute entreprise qui souhaite concevoir
une base de données de qualité.
~ 51
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
~ 52
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
LISTES DE TABLEAUX
~ 53
MODELISATION D’UNE BASE DE DONNEES AVEC UML | GROUPE
REFERENCES BIBLIOGRAPHIQUES
~ 54