Transformation des classes
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectif
Savoir transformer une classe en relation.
Mise en situation
Supposez qu'on vous envoie un modèle conceptuel composé de quelques classes, par exemple une classe qui décrit les personnages d'un jeu de rôle. Chaque personnage a un nom, un type, des points de vie, etc. On sait que le nom est unique, que chaque personnage peut attaquer ou se défendre...
En vue de créer une base de données, vous décidez d'utiliser un modèle relationnel et de transformer cette classe en relation.
Quelles sont les règles de transformation ? C'est ce que vous allez découvrir dans ce module.
Méthode : Classe
Pour chaque classe :
on crée une table dont le nom correspond à celui de la classe,
on crée un attribut dans la table pour chaque attribut de la classe, de même nom et de même type,
on choisit la clé primaire de cette table parmi l'une des clés de la classe.
Table1 (#a:type, b:type)
Exemple :
@startuml
skinparam defaultFontName Inconsolata
skinparam classFontStyle bold
skinparam linetype polyline
skinparam nodesep 100
hide circle
class Hotel {
nom : string {unique}
adresse : string
codePostal : string
ville : string
étoiles : integer
}
@enduml
Hotel(#nom:string, adresse:string, codePostal:string, ville:string, étoiles:integer)
Méthode : Méthodes
On ne représente pas les méthodes dans le modèle relationnel, elles seront calculées dynamiquement soit par des vues au niveau de la BD, soit par des fonctions au niveau applicatif.
Classe1(#a:type)
Complément : Méthodes stockées
On peut décider de représenter la méthode comme s'il s'agissait d'un attribut simple pour des raisons de performance essentiellement. Il sera nécessaire dans ce cas d'ajouter des mécanismes de validation de contraintes pour s'assurer que la valeur stockée évolue en même temps que les attributs sur lesquels le calcul dérivé porte. On peut réaliser cela avec par exemple des triggers.
Attention :
Introduire un résultat de méthode dans le modèle relationnel conduit à de la redondance. Cela est en général déconseillé et doit être dans tous les cas contrôlé.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.