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

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

dater et localiser les naissances des personnes (afin de les afficher sur une carte)

représenter les liens familiaux: parents, fratrie, jumeaux, etc.

gérer les différentes appellations des personnes

classifier les personnes avec une classification définie par l'utilisateur (tags)

traiter les métiers et autres occupations des personnes, leur évolution dans le temps et pouvoir les cartographier

traiter les spécialisation des métiers et leur appartenances à différents domaines.

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.

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:

on crée une table ou relation pour chaque classe

le nom de la table sera sans espaces et sans accents, uniquement avec des lettres en minuscule

on attribue un identifiant unique à chaque classe

cet identifiant s'appelle clé primaire, primary key

par convention nous choisissons de nommer cet identifiant avec le nom de la table, précédé de 'pk_', par ex. pk_person pour la table ou relation person.

les relations de '1 à n' sont exprimées par un report de la clé primaire de la table/classe du côté '1' vers la table/classe du côté 'n'

la clé primaire (primary key) de la table du côté '1' de vient une clé étrangère (foreign key) dans la table du côté 'n'

par convention, les clés primaires sont préfixées par 'fk_'

les relations de 'n à n' sont exprimées par la création d'une nouvelle table ou relation.

cette table établit le lien entre les deux classes et exprime leur relation de 'n à n'

les clés primaires (primary key) de chaque table sont reportées et deviennent des clés étrangères (foreign key) dans la table relation

la table relation a le nom de la relation – celui-ci doit donc être unique dans le modèle conceptuel

pour des raisons pratiques nous ajoutons une clé primaire spécifique pour la table relation sous la forme 'pk_' + nom de la table, par ex. pk_specializes_tag pour la table specializes_tag.

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)

appellation(pk_appellation, pk_person, name)

tag(pk_tag, fk_parent_tag, name, definition)

tags(pk_tags, fk_person, fk_tag)

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

organisation(pk_organisation, fk_geographical_place, name, definition)

occupation(pk_occupation, name, definition)

specializes_occupation(pk_specializes_occupation, fk_parent_occupation, fk_child_occupation)

birth(pk_birth, date, fk_geographical_place, fk_union)

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

union_type(pk_union_type, name, definition)

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

geographical_place_type(pk_geographical_place_type, name, definition)

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).

Création de la base de données

Instructions:

créer un dossier (répertoire) dans le dossier dédié au cours et l'appeler 'bases_sqlite' (sous-entendu bases de données sqlite) qui va contenir une ou plusieurs bases de données

ouvrir le logiciel SQLiteStudio

dans le menu Database ou avec le bouton correspondant activer la commande 'Add a database'

choisir le type par dévaut SQLite3

appuyer sur le bouton '+' en vert

entrer un nom pour la base de données (sans espaces, seulement avec des '_' entre les paroles, et sans accents), par ex. prosopographie

naviguer vers le dossier 'bases_sqlite' précédemment créé.

appuyer sur le bouton 'Enregistrer'

on revient à la boîte de dialogue 'Database', on lit le chemin vers le fichier SQLite et son nom, prosopographie.db, et on valide avec le bounton 'OK'.