Outils pour utilisateurs

Outils du site


intro_histoire_numerique:modele_logique

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
intro_histoire_numerique:modele_logique [2020/10/31 16:17]
Francesco Beretta [Ajouter de nouvelles tables]
intro_histoire_numerique:modele_logique [2020/10/31 16:50]
Francesco Beretta [Ajouter des lignes aux tables]
Ligne 22: Ligne 22:
  
 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. 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 source 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 concernant les objets), d'où une propriété explicite.
 +
 ===== Le modèle logique ou relationnel ===== ===== Le modèle logique ou relationnel =====
  
Ligne 49: Ligne 52:
 \\ \\
  
-person(//​pk_person//,​ name, definition, gender, death_date, __fk_birth__) \\+person(//​pk_person//,​ name, definition, gender, death_date, __fk_birth__, notes) \\
  
-appellation(//​pk_appellation//,​ __pk_person__,​ name) \\+appellation(//​pk_appellation//,​ __pk_person__,​ name, sources, notes) \\
  
-tag(//​pk_tag//,​ __fk_parent_tag__,​ name, definition) \\+tag(//​pk_tag//,​ __fk_parent_tag__,​ name, definition, notes) \\
  
-tags(//​pk_tags//,​ __fk_person__,​ __fk_tag__) \\+tags(//​pk_tags//,​ __fk_person__,​ __fk_tag__, notes) \\
  
-pursuit(//​pk_pursuit//,​ __fk_person__,​ __fk_occupation__,​ __fk_organisation__,​ begin_date, end_date) \\+pursuit(//​pk_pursuit//,​ __fk_person__,​ __fk_occupation__,​ __fk_organisation__,​ begin_date, end_date, sources, notes) \\
  
-organisation(//​pk_organisation//,​ __fk_geographical_place__,​ name, definition) \\+organisation(//​pk_organisation//,​ __fk_geographical_place__,​ name, definition, notes) \\
  
-occupation(//​pk_occupation//,​ name, definition) \\+occupation(//​pk_occupation//,​ name, definition, notes) \\
  
-specializes_occupation(//​pk_specializes_occupation//,​ __fk_parent_occupation__,​ __fk_child_occupation__) \\+specializes_occupation(//​pk_specializes_occupation//,​ __fk_parent_occupation__,​ __fk_child_occupation__, notes) \\
  
-birth(//​pk_birth//,​ date, __fk_geographical_place__,​ __fk_union__) \\+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__) \\+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) \\+union_type(//​pk_union_type//,​ name, definition, notes) \\
  
-geographical_place(//​pk_geographical_place//,​ name, definition, longitude,​latitude,​ __fk_geographical_place_type__) \\+geographical_place(//​pk_geographical_place//,​ name, definition, longitude,​latitude,​ __fk_geographical_place_type__, notes) \\
  
-geographical_place_type(//​pk_geographical_place_type//,​ name, definition) \\+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.
  
 \\ \\
Ligne 106: Ligne 111:
 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. 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 ==== ==== Ajouter de nouvelles tables ====
  
Ligne 121: Ligne 126:
     * name, data type: VARCHAR (caractères de longueur variable, utilisable pour les labels et noms), Size: 150 (la saisie sera limitée à 150 caractères     * name, data type: VARCHAR (caractères de longueur variable, utilisable pour les labels et noms), Size: 150 (la saisie sera limitée à 150 caractères
     * definition, data type: TEXT     * definition, data type: TEXT
 +    * notes, data type: TEXT
 +    * ajouter la clé étrangère vers la même table (relation réflexive de classement)
 +      * la colonne s'​appellera '​fk_parent_geographical_place_type'​
 +      * elle sera de type INTEGER
 +      * on coche ensuite Foreign Key et on ouvre '​Configure'​
 +      * on choisit la '​Foreign table' : geographical_place_type
 +      * on choisit la '​Foreign column':​ '​pk_geographical_place_type'​
 +      * on coche MATCH ce qui va introduire un contrôle automatique
 +      * on applique: '​Apply'​
 +      * on crée la colonne
 +
   * **IMPORTANT** : sauvegarder la table en appuyant sur le bouton vert en forme de '​V'​   * **IMPORTANT** : sauvegarder la table en appuyant sur le bouton vert en forme de '​V'​
     * apparaît alors l'​instruction SQL qui sera envoyée à la base de données et que vous pourriez aussi envoyer directement pour créer de nouvelles tables en la collant et exécutant dans 'Tools > Open SQL Editor'​     * apparaît alors l'​instruction SQL qui sera envoyée à la base de données et que vous pourriez aussi envoyer directement pour créer de nouvelles tables en la collant et exécutant dans 'Tools > Open SQL Editor'​
Ligne 126: Ligne 142:
  
   * créer la table '​geographical_place'​ avec la même méthode   * créer la table '​geographical_place'​ avec la même méthode
-  * après avoir créé clé primaire, nom et descriptif, ajouter:+  * après avoir créé clé primaire, nomdescriptif ​et notes, ajouter:
     * les champs //​longitude//​ et //​latitude//​ qui seront de type NUMERIC     * les champs //​longitude//​ et //​latitude//​ qui seront de type NUMERIC
-    * ajouté ​la clé étrangère vers la table '​geographical_place_type'​+    * ajouter ​la clé étrangère vers la table '​geographical_place_type'​
       * la colonne s'​appellera '​fk_geographical_place_type'​       * la colonne s'​appellera '​fk_geographical_place_type'​
       * elle sera de type INTEGER       * elle sera de type INTEGER
Ligne 138: Ligne 154:
       * on crée la colonne       * on crée la colonne
       * on n'​oublie pas d'​__enregistrer la nouvelle table__ !       * on n'​oublie pas d'​__enregistrer la nouvelle table__ !
 +
 +
 +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'​.
 +  * on créer d'​abord la table '​person'​
 +  * on ajoute la colonne INTEGER pour la clé étrangère vers '​birth'​ qui sera appelée '​fk_birth'​ et on ne renseigne pas le lien vers la clé primaire
 +  * on enregistre la table '​person'​
 +  * on crée ensuite '​union',​ puis '​birth'​
 +  * enfin on va modifier la table '​person'​ (click droit sur la table et 'Edit the table'​),​ modifier la colonne (double-click sur la colonne) et on ajoutera la référence de la clé étrangère vers la table '​birth'​
 +
 +
 +\\
 +==== 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:
 +  * appuyer sur plus
 +  * ne rien saisir dans le champs '​pk_...'​ de la clé primaire qui sera rempli automatiquement
 +  * ajouter un nom et une définition (par ex. pour un type de lieu)
 +  * si il y a des clé étrangères et que des lignes ont été renseignées dans la table primaire se positionner dans le champs de la clé étrangère affichera la liste des entités de la table primaire (exemple de lieux et types de lieux)
 +  * une fois une ligne renseignée appuyer sur ajouter une autre ligne (+) ou enregistrer (V)
 +  * __ne pas oublier d'​enregistrer__ chaque fois avant de quitter cette vue 
 +  * Rafraîchir la table avec le bouton bleu tout à gauche
  
intro_histoire_numerique/modele_logique.txt · Dernière modification: 2024/03/04 13:55 par Francesco Beretta