Retour à la page précédente.
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.
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.
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.
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.
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'.
Pour ajouter des lignes, correspondant aux individus ou entités de cette classe, passer dans une table dans l'onglet 'Data' puis:
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).