Table des matières

Retour à la page précédente.

Du modèle conceptuel à la base de données

Un exemple de modèle conceptuel

Exemple de modèle conceptuel

Modèle conceptuel réalisé avec le logiciel diagrams.net (draw.io) (clicker sur le diagramme deux fois pour afficher). Concernant le logiciel, voir cette page.

Télécharger le fichier XML au format .drawio ici et ouvrez-le dans diagrams.net.


Ce modèle conceptuel permet de traiter (de manière relativement simple mais efficace) un questionnement relevant de la méthode prosopographique, comprenant ces aspects:

Sur le modèle conceptuel on reconnaît les classes avec leurs propriétés et les relations (orientées) entre les classes avec leurs cardinalités.

Pour les classes qui représentent des événements, comme la naissance, union, poursuite d'une activité, ainsi que sur les appellations, une propriété 'sources' a été ajoutée permettant d'accueillir sous forme de texte l'origine précise de cette information. Si on souhaite mettre des considérations semblables pour les objets (personnes, lieux, etc.) on les ajoutera dans la propriété 'notes' qui figurera dans toutes les tables (cf. ci-dessous). Le 'sourçage' est spécifique (et virtuellement obligatoire) pour toutes les informations mettant en relation les objets, d'où une propriété explicite.

Le modèle logique ou relationnel

Dans le cours d'introduction aux bases de données, Laurent Audibert présente les règles de passage du modèle conceptuel au modèle logique ou relationnel.
A noter que une classe (UML) correspond à une entité-type (Merise).

Les principales règles:


Si on applique ces réglès au modèle conceptuel de l'exemple, on obient ces relations (les clés primaires sont en italique, les clés étrangères sont soulignées):

person(pk_person, name, definition, gender, death_date, fk_birth, notes)

appellation(pk_appellation, fk_person, name, sources, notes)

tag(pk_tag, fk_parent_tag, name, definition, notes)

tags(pk_tags, fk_person, fk_tag, notes)

pursuit(pk_pursuit, fk_person, fk_occupation, fk_organisation, begin_date, end_date, sources, notes)

organisation(pk_organisation, fk_geographical_place, name, definition, notes)

occupation(pk_occupation, name, definition, notes)

specializes_occupation(pk_specializes_occupation, fk_parent_occupation, fk_child_occupation, notes)

birth(pk_birth, date, fk_geographical_place, fk_union, sources, notes)

union(pk_union, fk_union_type, begin_date, end_date, fk_person_1, fk_person_2, sources, notes)

union_type(pk_union_type, name, definition, notes)

geographical_place(pk_geographical_place, name, definition, longitude,latitude, fk_geographical_place_type, notes)

geographical_place_type(pk_geographical_place_type, name, definition, fk_parent_geographical_place_type, notes)

N.B. Il est conseillé de mettre sur toutes les tables une propriété de type texte appelé 'Notes' qui servira à saisir tout type de remarque, aspect à compléter, source ou document dont est issue l'information, etc. Cette propriété n'est pas indiquée dans le modèle conceptuel pour ne pas l'alourdir mais elle figure dans le modèle logique.


Création de la base de données SQLite qui implémente le modèle logique ou relationnel


Après avoir défini le modèle logique ou relationnel, on passe à la réalisation physique de la base de données, à son implémentation avec le logiciel SQLite.

Pour ce faire nous allons utiliser le client graphique SQLite Studio (cf. cette page).
Les instructions qui suivent permettent de guider l'utilisateur dans les tout premiers pas et elles ne remplacent pas le manuel d'utilisation est disponible sur cette page qu'on doit avoir toujours sous la main.

Création de la base de données

Instructions:

La nouvelle base de données s'affiche dans la liste des bases de données à gauche. Appuyer deux fois sur elle et l'ouvrir.


Ajouter de nouvelles tables


Instructions:

On procède ainsi pour toutes les autres tables.

A noter que on ne pourra pas créer la table 'person' ou 'birth' directement avec toutes les clé étrangères, car 'birth' dépend de 'union' qui dépend à son tour de 'person'.


Ajouter des lignes aux tables

Pour ajouter des lignes, correspondant aux individus ou entités de cette classe, passer dans une table dans l'onglet 'Data' puis:

Ébauche de base de données

Voici un fichier qui contient les deux premières tables de la base de données, avec quelques lignes. Dézippés le fichier compressé et ouvrez le avec SQLiteStudio → nouvelle base de donnée et ouvrir à la place ce créer la base de données (cf. le manuel).