6.2 - Passage au relationnel
Afin de pouvoir implémenter une base de données,
il faut pouvoir traduire le modèle conceptuel en modèle logique.
Cela signifie qu'il faut pouvoir convertir le modèle UML en
modèle relationnel. Le principe est le suivant :
? Une classe dans le diagramme de classe correspond à
une table dans la base de données, l'identifiant de la classe
correspondra alors à la clé primaire de la table et ses
propriétés correspondront aux colonnes de la table.
? Une association binaire avec un lien de cardinalités
maximales plusieurs, devient une classe associative et donne lieu à une
table supplémentaire dans la base de données.
? Une association avec un lien de cardinalité maximale
1 et 1 de part et d'autre de l'association, donne lieu à un
référencement dans l'une des tables.
? Pour le lien d'héritage, la classe mère va
disparaître pour laisser place aux tables filles. La classe mère
distribue alors les attributs aux classes.
Ainsi le tableau suivant nous donne un aperçu de notre
base de données en nous permettant d'observer les différents
changements qui seront engendrés par le passage du diagramme de classe
au modèle relationnel.
Bachelor Degree Promotion sortante 2023
63
Mise en place d'un portail web
Ce qui nous permet d'écrire notre model relationnel comme
suit :
Etudiant (mat_etd, nom_etd, prenom_etd, sexe_etd, datenai_etd,
tel_etd, email_etd, lieunai_etd, codevalidation, id_niveau*, nom_utilisateur,
motdepasse)
Enseignant (mat_eng, nom_eng, prenom_eng, type_eng, estchef_eng,
email_eng, tel_eng, codevalidation, nom_utilisateur, motdepasse)
Filière (nom_fil, cycle_fil, nombreAnne_fil,
id_departement*)
Département (nom_dep, datecreation_dep, nom_falculte,
id_enseignant*(chef))
Niveau (libelle_niv, numero_niv, id_filière*)
Semestre (nom_semeste, id_niveau*)
Module (libelle_mod, code_mod, id_niveau*, id_enseignant*)
Document (nom_document, id_module*)
Noter (note1, note2, note3, id_etudiant*, id_module*, total100,
mention)
Appréciation (valeur, id_enseignant*)
InfoScolarité (montant_payé, montant_restant,
id_etudiant*)
PV (fiche_pv, id_niveau*)
|