• 20 heures
  • Moyenne

Ce cours est visible gratuitement en ligne.

course.header.alt.is_video

course.header.alt.is_certifying

J'ai tout compris !

Mis à jour le 29/10/2019

Modélisez dans le détail votre schéma de base de données

Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Dans ce chapitre, je vous propose de créer une base de données permettant de gérer des tickets d'incident et demande d'évolution sur des projets informatiques.

Voici un diagramme de classes du domaine fonctionnel :

Diagramme de classes ‒ Gestion de tickets

Afin de créer le MPD, je vais donc suivre la démarche que je vous ai déjà présentée dans la première partie de ce cours :

  1. je crée une table par classe

  2. je crée les colonnes dans les tables

  3. je définie les clés primaires

  4. je crée les relations entre les tables

Lancez SQL Power Architect, et on y va !

Créez les tables

Vous allez créer votre première table :

  1. Cliquez sur l'icône de création de table et cliquez dans la zone blanche.

  2. Saisissez le nom de la table dans le champ Logical Table Name :   ticket (les autres champs seront modifiés automatiquement à la validation).

  3. Vous pouvez choisir une couleur pour la table avec le champ Table Colour. Je vous conseille d'utiliser les mêmes couleurs que dans le diagramme de classes (vous vous repérerez plus facilement).

  4. Cliquez sur le bouton OK.

La table a été ajoutée.

Procédez de même pour toutes les autres tables.

Créez les colonnes

Maintenant que vous avez créé les tables, vous allez créer les colonnes :

  1. Sélectionnez la table concernée.

  2. Cliquez sur l'icône de création de table .

  3. Une fenêtre s'ouvre, vous permettant de définir les propriétés de la colonne :

    • Champ Logical Name : saisissez le nom de la colonne

    • Champ Type : sélectionnez le type de donnée (les types de données seront vus en détail plus loin dans le cours)

    • Champs Precision et Scale : à remplir suivant le type de donnée sélectionné

    • Champ Allows Nulls : indiquez si la colonne accepte les NULL

    • Champ Auto Increment et Sequence Name : voir plus bas

    • Champ Default Value : vous pouvez définir ici une valeur par défaut

    • Champ Remarks : vous pouvez mettre un commentaire sur la colonne

  4. Cliquez sur le bouton OK.

La colonne a été ajoutée dans la table.

Colonne « nullable »

Une colonne peut accepter ou non les valeurs NULL.

Si la colonne accepte les NULL, on dit qu'elle est nullable. Cela veut dire que la colonne accepte qu'aucune valeur ne soit renseignée. En termes de base de données, « aucune valeur » (NULL) est interprété différemment d'un 0 ou d'un texte vide "".

Si la colonne n'est pas nullable, elle est notée NOT NULL dans le MPD.

Colonne en « auto incrément »

Le principe de l'auto incrément d'une colonne est d'affecter une valeur numérique incrémentée (généralement de 1) à chaque nouvel ajout de ligne dans la table. En fonction des SGBD, cela est fait automatiquement ou via une séquence.

Une séquence est un compteur géré par le SGBD et auquel il est possible de demander une nouvelle valeur (généralement la valeur précédente incrémentée de 1). La nouvelle valeur renvoyée est automatiquement enregistrée dans ce compteur.

Le champ Sequence Name permet de spécifier le nom de la séquence à créer pour gérer la colonne auto-incrémentée.

Définissez les clés primaires

Vous avez créé vos tables et vos colonnes, vous devez maintenant définir les clés primaires dans les tables.

Pour cela, plusieurs options sont possibles, à vous de sélectionner celle adaptée au contexte.

Utilisation d'une colonne existante

Si votre classe contient un attribut qui a vocation à n'avoir que des valeurs uniques (c'est-à-dire des valeurs non partagées par plusieurs instances) et qu'en plus ces valeurs ne changeront pas dans le temps, alors vous pouvez utiliser la colonne correspondant à cet attribut en tant que clé primaire.

Pour cela, soit vous déplacez la colonne dans la partie haute de la table, soit vous double-cliquez sur la colonne pour ouvrir la fenêtre de propriété et cocher la case In Primary Key.

La table « ticket »

Utilisation d'une clé étrangère

Si votre classe hérite d'une autre classe, alors vous utiliserez comme clé primaire, la clé étrangère pointant sur la table correspondant à la super-classe.

La table « evolution »
La table « evolution »

Vous pouvez créer directement ce type de clé primaire en créant une relation « identifiante » :

  1. Cliquez sur l'icône.

  2. Cliquez sur la table contenant la clé primaire.

  3. Cliquez sur la table dans laquelle vous voulez créer la clé étrangère (qui sera aussi clé primaire).

  4. Renommez la colonne crée (ex :   ticket_numero).

Reportez-vous à la section Ajouter les relations et les clés étrangères pour plus de détails.

Utilisation d'une clé composite

Une clé composite est une clé primaire composée de plusieurs colonnes. Ces colonnes peuvent être des clés étrangères ou non.

La table « version »
La table « version »

Je l'avais déjà évoqué dans le chapitre traitant de la mise en œuvre des différents types d'association, mais je vous le rappelle ici. Les tables correspondant aux associations plusieurs à plusieurs ou aux classes d'association utiliseront aussi des clés composites portant sur les clés étrangères issues de l'association.

La table « ticket_associe »
La table « ticket_associe »

Création d'une colonne ad hoc

Dernière solution (mais aussi la plus courante), si vous n'entrez dans aucun des cas ci-dessus, vous devez alors créer une colonne spécifique pour la clé primaire. Cette colonne ne correspond alors à aucun attribut de la classe d'origine.

Cette colonne est, en général, de type numérique (INTEGER ou BIGINT) et auto-incrémentée.

La table « commentaire »
La table « commentaire »

Ajoutez les relations et les clés étrangères

Il ne vous reste plus qu'à :

  • créer les relations entre les tables pour les associations de type un-à-un et un-à-plusieurs

  • créer les tables et leurs relations pour les associations de type plusieurs-à-plusieurs et les classes d'association

Pour créer une relation :

  1. Cliquez sur l'une des icônes  (relation identifiante / non-identifiante) selon si la clé étrangère doit devenir clé primaire ou non.

    Cliquez sur la table contenant la clé primaire.

  2. Cliquez sur la table dans laquelle créer la clé étrangère.

    La ou les colonnes composant la clé étrangère sont créées et portent le nom des colonnes de la clé primaire dans la table liée.

  3. Renommez si besoin la (ou les) colonne(s) créée(s).

MPD Final

À titre d'exercice, vous pouvez refaire le MPD correspondant au diagramme de classes depuis le début et le compléter. Une fois terminé, comparez votre résultat avec le mien :

MPD final
MPD final
Exemple de certificat de réussite
Exemple de certificat de réussite