tâche bd.relations.schema¶
résumé: | Cette tâche a pour objectif de créer le schéma relationnel à partir du modèle de données (si celui-ci existe). |
---|---|
langage: | |
artefacts: |
|
Introduction¶
Le schéma de production d’une base de données à partir d’un modèle de classes est le suivant.
+--------------------------------+
| Modèle de classes conceptuel | <--- langage ClassScript1
+--------------------------------+
|
V <--- tâche bd.classes
+--------------------------------+
| Modèle de données | <--- langage ClassScript1
+--------------------------------+
|
V <--- TACHE BD.RELATIONS.SCHEMA
+================================+
|| MODELE DE RELATIONS || <--- LANGAGE RelationScript
+================================+
|
V <--- tâche bd.sql.schema
+--------------------------------+
| Schéma SQL | <--- langage SQL
+--------------------------------+
Dans un tel contexte on s’intéresse à la troisème étape. Sinon, il s’agit simplement de créer un modèle de relation à partir de zéro.
Note
Dans cette tâche seul le schéma de données est considéré. On ne prend pas en compte d’éventuels jeux de données (datasets).
Le fichier a modifier dans cette tâche est bd/relations/relations.res
.
RelationScript est le langage utilisé. Se
référer à la documentation pour plus d’exemples.
(A) Columns¶
La première étape consiste à définir les relations et leurs colonnes.
relation LesAppartements
columns
nom_ : String
numero_ : Integer
superficie : Real
nbDePieces : Integer
La section columns
définit les colonnes de la relation
LesAppartements
. D’autres notations sont possibles
(documentation).
(B) Transformation¶
Dans le cas où le modèle de relations est dérivé à partir
d’un modèle de classe il est important de documenter le
processus de transformation suivi.
La section transformation
est alors ajouté à chaque relation
dérivée.
relation LesAppartements
transformation
from R_Class(Appartement)
from R_Compo(EstDans)
from R_OneToMany(Partage)
columns
nom_ : String
numero_ : Integer
superficie : Real
nbDePieces : Integer
Dans cet exemple la transformation effectuée a été basé sur
l’application de trois règles (R_Class
, R_Compo
et
R_OneToMany
) (documentation).
(C) Contraintes¶
Il s’agit ensuite de définir les contraintes intégrité suivantes :
- les contraintes de domaine.
Les contraintes de domaine peuvent soit être indiquées dans le
profil de la relation (par exemple
R(x:String)
ou de façon plus conciseR(x:s)
) soit être sous forme de contraintes explicites (par exempledom(x)=String
dans la sectionconstraints
) (documentation). - les contraintes de clés.
Les clés peuvent soit être définies dans le profil de la relation
(par exemple
Compte(login_id)
), soit via mot clékey
(documentation). - les contraintes d’intégrité référentielle. Elles sont exprimées en langue naturelle ou en algèbre relationelle (documentation).
Se référer à la documentation de RelationScript pour plus d’exemples.
(Z) Suivi et status¶
Suivi: Des questions ou des hypothèses ? Voir la tâche projet.suivis.
Status: Avant de terminer cette tâche écrire le status. Voir la tâche projet.status.