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
intro_histoire_numerique:modele_logique [2020/10/31 17:09]
Francesco Beretta [Ajouter des lignes aux tables]
intro_histoire_numerique:modele_logique [2024/03/04 13:55] (Version actuelle)
Francesco Beretta [Le modèle logique ou relationnel]
Ligne 9: Ligne 9:
  
  
-{{:​intro_histoire_numerique:​mcd_to_database_example.jpg?​300|Exemple de modèle conceptuel}}+{{:​intro_histoire_numerique:​mcd_to_database_example_drawio.jpg?​300|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, [[http://​phn-wiki.ish-lyon.cnrs.fr/​doku.php?​id=intro_histoire_numerique:​modelisation_bases_donnees&#​logiciel_pour_realiser_le_modele_conceptuel|voir cette page]].
 +
 +
 +Télécharger le {{:​intro_histoire_numerique:​mcd_to_database_example.drawio.zip|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 ​proposopographique, comprenant ces aspects:+ 
 + 
 + 
 +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:
   * dater et localiser les naissances des personnes (afin de les afficher sur une carte)   * dater et localiser les naissances des personnes (afin de les afficher sur une carte)
   * représenter les liens familiaux: parents, fratrie, jumeaux, etc.   * représenter les liens familiaux: parents, fratrie, jumeaux, etc.
 +    * on utilise la classe Union qui représente la relation des parents (mariage, union libre, etc.) donnant lieu aux naissances
 +    * les autres rapports de parentée sont __calculés__ à partir des unions
 +    * les autres rapports de parentée ne doivent pas être renseignés en utilisant la classe union 
   * gérer les différentes appellations des personnes   * gérer les différentes appellations des personnes
   * classifier les personnes avec une classification définie par l'​utilisateur (//tags//)   * classifier les personnes avec une classification définie par l'​utilisateur (//tags//)
Ligne 23: Ligne 33:
 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.+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 ===== ===== Le modèle logique ou relationnel =====
Ligne 54: Ligne 64:
 person(//​pk_person//,​ name, definition, gender, death_date, __fk_birth__,​ notes) \\ person(//​pk_person//,​ name, definition, gender, death_date, __fk_birth__,​ notes) \\
  
-appellation(//​pk_appellation//, ​__pk_person__, name, sources, notes) \\+appellation(//​pk_appellation//, ​__fk_person__, name, sources, notes) \\
  
 tag(//​pk_tag//,​ __fk_parent_tag__,​ name, definition, notes) \\ tag(//​pk_tag//,​ __fk_parent_tag__,​ name, definition, notes) \\
Ligne 104: Ligne 114:
   * choisir le type par dévaut SQLite3   * choisir le type par dévaut SQLite3
   * appuyer sur le bouton '​+'​ en vert   * 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__ +  ​* apparaît cette boîte de dialogue:​{{:​intro_histoire_numerique:​capture_d_ecran_2023-11-02_110119.png?​nolink&​200|}} 
-  * naviguer vers le dossier '​bases_sqlite'​ précédemment créé.+  * naviguer avec le bouton '​Fichier'​ vers le dossier '​bases_sqlite'​ précédemment créé. 
 +  ​* entrer un nom pour la base de données (sans espaces, seulement avec des '​_'​ entre les paroles, et sans accents), par ex. __prosopographie.sqlite__
   * appuyer sur le bouton '​Enregistrer'​   * 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'​.   * 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'​.
Ligne 117: Ligne 128:
 Instructions:​ Instructions:​
  
-  * commencer par ajouter des tables qui n'ont pas de clés étrangères,​ par ex. '​geographical_place_type'​+  * commencer par ajouter des tables qui n'ont pas de clés étrangères ​qui références des tables externes, par ex. '​geographical_place_type'​
   * click droit sur '​Tables'​ à gauche dans la liste des objets de la base de données et '​Create a table'   * click droit sur '​Tables'​ à gauche dans la liste des objets de la base de données et '​Create a table'
   * insérer le nom de la table   * insérer le nom de la table
Ligne 157: Ligne 168:
  
 On procède ainsi pour toutes les autres tables. On procède ainsi pour toutes les autres tables.
 +
 +  * **IMPORTANT** : Traitement des **dates**
 +    * dans une base de données SQLite (sqlite3) le format de DATE n'​imposte pas de contrainte précise, ça peut être un chiffre ou une chaine de caractères (cf. [[https://​www.w3resource.com/​sqlite/​sqlite-data-types.php|ces explications]])
 +    * Si on traite uniquement des dates dans l'Ére commune ou chrétienne (après Jésus-Christ) on peut utiliser la valeur VARCHAR pour les dates, en mettant une limite à 12 charactères et en utilisant le format ISO qui permet les dates tronquées et le tri de type texte: 1900-10-15, 1900-10, 1900.
 +    * Si on a des dates avant l'Ère commune, deux champs sont nécessaires : année (entier avec valeur négatives possible) ; mois-jour si nécessaire (varchar)
 +    * Si on a besoin de heures:​minues:​secondes les ajoute (dans les deux cas) après le jour, par exemple sous cette forme 1900-10-15T09-10-04
 +
  
 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'​. 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'​.
Ligne 182: Ligne 200:
 ==== Ébauche de base de données ==== ==== Ébauche de base de données ====
  
-Voici {{:​intro_histoire_numerique:​prosopographie.db.zip|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 SQLStudio ​-> nouvelle base de donnée et ouvrir à la place ce créer la base de données (cf. [[https://​github.com/​pawelsalawa/​sqlitestudio/​wiki/​User_Manual#​using-existing-database|le manuel]]).+Voici {{:​intro_histoire_numerique:​prosopographie.db.zip|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. [[https://​github.com/​pawelsalawa/​sqlitestudio/​wiki/​User_Manual#​using-existing-database|le manuel]]).
  
intro_histoire_numerique/modele_logique.1604160540.txt.gz · Dernière modification: 2020/10/31 17:09 par Francesco Beretta