Convertir ses données en une base MySQL

Plusieurs logiciels de généalogie stockent leurs données dans un format qui ne nous est pas accessible1. Nous sommes alors dépendants des statistiques et des rapports fournis par le logiciel sans possibilité de créer nos propres filtres.

Dans cet article, je vous propose de découvrir une méthode simple permettant de convertir un fichier généalogique en une base de données relationnelle. Cette conversion permet, via le langage de requête MySQL, de créer des listes et des statistiques entièrement personnalisées.

Ma méthode s’appuie premièrement sur un export des données au format GEDCOM, format qui nous servira d’intermédiaire universel entre le logiciel de généalogie et la base MySQL.

Deuxièmement, nous convertirons le fichier GEDCOM en base MySQL via le logiciel Oxy-Gen.

Oxy-Gen est un logiciel Windows, mais, chers utilisateurs de Mac ou de Linux, ne partez-pas ! Je travaille moi-même sous Mac et ai réussi assez facilement à faire tourner Oxy-Gen sous l’émulateur Windows PlayOnMac (gratuit !). Je vous propose un tutoriel spécifique d’installation d’Oxy-Gen sous PlayOnMac à la fin de ce billet. Pour les utilisateurs Linux, je n’ai pas testé, mais je pense que PlayOnLinux fonctionne de manière similaire. Vous pouvez aussi tenter d’installer Oxy-Gen via un autre émulateur Windows2. Je suis preneuse de vos éventuels retours à ce sujet.

Les pré-requis pour suivre ce tutoriel

Tutoriel

Installation d’Oxy-Gen

  • Allez sur la page des téléchargements d’Oxy-Gen.
  • Choisissez l’exécutable d’installation automatique, version complète (avec toutes les cartes et toutes les villes). Quel que soit votre système d’exploitation, c’est bien le .exe que vous devez télécharger.
    • Utilisateurs Windows : double-cliquez sur oxy-gen_full_map.exe pour lancer l’installation.
    • Linux et Mac : comme indiqué précédemment, reportez-vous au tutoriel d’installation en fin de billet.

Import du fichier GEDCOM dans Oxy-Gen

À cette étape, vous devez avoir Oxy-Gen installé sur votre machine, et un export de vos données au format GEDCOM. C’est enfin le moment tant attendu d’importer votre fichier GEDCOM !

Oxy-Gen va créer à la volée un certain nombre de fichiers PHP et HTML qui serviront à l’interface web de l’application, puis au remplissage de la base de données. Avant de lancer l’import, vous devez donc créer :

  • un répertoire dans votre dossier destiné aux sites web (“/var/www/” chez moi)
  • une base de données

Lancez maintenant Oxy-Gen. Au démarrage, une fenêtre s’ouvre pour vous demander quel type de conversion vous souhaitez effectuer. Voici les paramètres à configurer :

  • Fichier généalogie : l’emplacement de votre fichier GEDCOM
  • Fichier de sortie : le répertoire dans lequel va se situer le site Oxy-Gen local (par exemple “/var/www/oxygen”)
  • Format de sortie : PHP – MySQL

Avant de lancer l’export, il faut encore cliquer sur “options” pour affiner ses choix. Personnellement, voici les options que je modifie :

  • Général→ Afficher les numéros de sosa
  • Général Montrer le résultat en fin de traitement
  • HTML → Détaillé → Divers→ Encoding→ utf-8     ← IMPORTANT

Une fois ces options modifiées, vous pouvez cliquer sur “Lancer”. Vous devez voir un message “Fichier converti avec succès”. Vous pouvez maintenant cliquer sur “Quitter”.

Paramétrer la connexion à la base de données

Un des fichiers générés contient les paramètres de connexion à la base de données, qu’il va falloir personnaliser. Pour cela, ouvrez avec un éditeur de texte le fichier admin/lib_inc.php. Au début de ce fichier, vous devez renseigner les variables suivantes avec vos propres paramètres :

$server = "localhost";
$login = "root";
$password = "XXX";
$mydatabase = "oxygen";

et sauvegardez 🙂

Remplissage de la base de données

  • Ouvrez votre navigateur et tapez l’url de votre site oxy-gen local (par exemple http://oxygen.local chez moi).
  • Allez à la page : admin/index_admin.php.
  • Vous arrivez dans le “Menu administrateur”.
  • Cliquez sur le 2e lien en partant du haut “Création / initialisation de la base avec les tables vides” → Oxy-Gen va créer les tables de la base de données.
  • Cliquez sur le 4e lien en partant du haut “Chargement automatique de toute la base” → Oxy-Gen mouline pendant quelques instants, en fonction du nombre d’individus dans votre fichier, puis affiche : “Génération de la base de données terminée”.

BINGO : Vos données ont bien été insérées dans la base ! En prime, vous bénéficiez d’une nouvelle interface de visualisation de vos données, accessible à l’adresse http://oxygen.local/index.php.

Interface web d'Oxy-Gen, en local

Interface web d’Oxy-Gen, copie d’écran de mon site local

Maintenant, ouvrez un client MySQL3 et observez les données insérées.

Quelques requêtes possibles

Une description des tables de la base est proposée sur le site du développeur. J’ai tout de même composé mon propre schéma :

Schéma simplifié de la base MySQL créée par Oxy-Gen (schéma réalisé avec MySQL Workbench)

Schéma simplifié de la base MySQL créée par Oxy-Gen (diagramme réalisé avec MySQL Workbench)

Parvenus jusqu’ici, vous êtes le roi du monde vous pouvez (enfin) triturer vos données comme bon vous semble !

Voici des exemples de statistiques que je trouve intéressantes :

Répartition globale des individus selon les départements (en comptant tous les évènements connus) :

SELECT oxg_zones.code, oxg_zones.libelle, count(*) AS total
FROM oxg_events2, oxg_zones, oxg_countries
WHERE oxg_events2.id_country=oxg_zones.id_country
AND oxg_countries.id_country=oxg_zones.id_country
AND oxg_events2.id_zone=oxg_zones.id_zone
AND oxg_countries.libelle='France'
GROUP BY oxg_zones.id_zone, oxg_zones.libelle
ORDER BY total DESC;

Répartition de mes ascendants selon le département (en nombre d’évènements)
copie d’écran Sequel Pro pour Mac.

 

Principales villes représentées dans un département donné (exemple avec le département de la Loire (42)) :

SELECT oxg_cities.code AS 'code insee', oxg_cities.libelle, count(*) AS total
FROM oxg_events2, oxg_cities
WHERE oxg_events2.id_country=oxg_cities.id_country
AND oxg_events2.id_zone=oxg_cities.id_zone
AND oxg_events2.id_city=oxg_cities.id_city
AND oxg_cities.id_country=(SELECT id_country FROM oxg_countries WHERE libelle ='France')
AND oxg_cities.id_zone='42'
GROUP BY oxg_cities.id_city, oxg_cities.libelle
ORDER BY total DESC;

Principales villes du département de la Loire représentées chez mes ascendants (en nombre d’évènements)

 

Nous verrons dans un prochain article quelques requêtes supplémentaires ainsi que différentes techniques de visualisation des données extraites. Nous pourrons par exemple réaliser la carte ci-dessous (#teasing).

Carte de France représentant la répartition de mes ascendants selon le département (en nombre d'évènements)

Carte de France montrant la répartition de mes ascendants selon le département (en nombre d’évènements)

Et vous, avez-vous expérimenté d’autres techniques pour convertir vos données vers une base de données relationnelle ?


Notes

1. Voici les logiciels qui, à ma connaissance, permettent d’accéder aux données sous forme de base relationnelle : Geneamania, Geneotree, Gramps (avec les plugins ExportDjango ou QueryGramplet), HeredisHumo-Gen, PhpGedView, Roots Magic (cf ce lien) et webtrees. Si vous en connaissez d’autres, n’hésitez pas à les citer en commentaire.
2. Les plus connus sont Parallels, Virtual Box, VMWare Fusion et Boot Camp.
3. Au choix : Adminer, phpMyAdmin, Sequel Pro, MySQL Workbench


Liens pour en savoir plus


Installation d’Oxy-Gen sous Mac OS via PlayOnMac

PlayOnMac est un logiciel libre et gratuit permettant d’installer et d’utiliser facilement de nombreux jeux et logiciels prévus pour fonctionner exclusivement sous Windows. Une fois téléchargé et installé, ouvrez PlayOnMac et suivez les étapes suivantes :

  • Cliquez sur “Installer un programme
  • En bas de la fenêtre, cliquez sur “Installer un programme non listé”, puis : 
    • « Installer un programme dans un nouveau disque virtuel »
    • « Nom du disque virtuel » : oxygen
    • « Que souhaiteriez-vous faire avant l’installation » ? : “Installer certaines librairies

[… Création du disque dur virtuel, moulinage de quelques minutes…]

  • Veuillez faire votre choix (librairies)”  ; cochez les options suivantes :
    • POL_Install_corefonts
    • POL_Install_mfc42
    • POL_Internal_InstallFonts
    • et cliquez sur « Suivant« 
  • Veuillez sélectionner le fichier d’installation à exécuter” : aller chercher oxy-gen_full_map.exe sur votre disque dur
    • « PlayOnMac est en train d’installer votre application« 
    • Chemin d’installation : C:\Program Files\Oxy-Gen
    • clic sur “Installer
      • Please choose a file for PlayOnMac to make a shortcut
      • choisissez pour l’instant « Je ne veux pas créer d’autres icônes« 
  • Retournez dans PlayOnMac et cliquez sur “Configurer” (roue crantée dans la barre d’outils en haut).
  • Choisissez le disque virtuel “oxygen” dans la partie gauche de la fenêtre, puis, dans l’onglet “Divers”, cliquez sur “Lancer un .exe dans ce disque virtuel” → Choisissez le fichier oxy-gen_full_map.exe
    • Laissez la valeur par défaut du chemin d’installation : C:\Program Files\Oxy-Gen
    • Voulez-vous ajouter un raccourci dans le menu Démarrer/Programmes ? OUI
    • Installation terminée avec succès
  • Il ne vous reste plus qu’à cliquer, dans l’onglet « Général« , sur le bouton « Créer un nouveau raccourci depuis ce disque dur virtuel » : choisissez oxy-gen.exe et validez.

Pour démarrer Oxy-Gen, il suffit maintenant de double-cliquer sur le raccourci dans la fenêtre de PlayOnMac.

Publicités

8 réflexions sur “Convertir ses données en une base MySQL

  1. Pingback: Convertir ses données en une base MySQL ...

  2. Bonsoir,

    Je comprends pas ton embarras. Heredis Mac ne propose pas d’options tel que sous Windows, car le fichier .heredis de la version Mac EST sous format SQLite natif. Tu n’as aucunement besoin de passer par un gedcom pour cela.
    Fais une copie (par prudence) de ton fichier .heredis et ouvre cette copie dans n’importe quel lecteur de base de données et le tour sera joué.

    J'aime

    • Arf… tu as tout à fait raison, je n’avais jamais réalisé cela… La honte ! Donc, en effet, les utilisateurs d’Heredis n’ont pas besoin de cette manip’…
      Je m’en vais de ce pas modifier l’article…
      Après, je me pose une question : l’avantage, finalement, de passer par un convertisseur commun (ici Oxy-Gen) cela pourrait être de permettre à plusieurs internautes d’échanger des astuces, des requêtes SQL intéressantes même s’ils n’utilisent pas au quotidien le même logiciel de généalogie. Dans le cas contraire, si j’écris des requêtes liées au format spécifique d’Heredis, je ne peux échanger qu’avec les utilisateurs d’Heredis, ce que je trouve dommage…

      Merci en tout cas pour ton message.

      J'aime

  3. Pingback: 5 méthodes pour réaliser une carte en généalogie | Des Aïeux et des Hommes

  4. Pingback: Convertir ses données en une base MySQL ...

  5. Pingback: Représentations graphiques d’une ascendance | Des Aïeux et des Hommes

  6. Pingback: Une année de généalogie | Des Aïeux et des Hommes

  7. Pingback: Cartographiez vos ancêtres ! | Des Aïeux et des Hommes

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s