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/11/08 00:49]
Francesco Beretta
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 prosopographique,​ 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 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'​.
intro_histoire_numerique/modele_logique.1604792981.txt.gz · Dernière modification: 2020/11/08 00:49 par Francesco Beretta