====== Création de deux bases de données, interfacées avec Base (LibreOffice / OpenOffice) ======
Licence Creative Commons Le cours "Informatique pour les historiens" de Francesco Beretta, avec tous les documents, fichiers et scripts associés, est mis à disposition selon les termes de la licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.
\\ Retour vers l'[[td_histoire_numerique:accueil|accueil]] \\ Nous allons créer deux bases de données, bd_td_exercice et bd_personnelle, qui contiendront respectivement les données que je vous fournis pour les exercices et celles que vous alles produire vous-mêmes. ===== Création de la base de données bd_td_exercice ===== Veuillez trouver [[td_histoire_numerique:postgresql&#apprendre_a_utiliser_postgresql|ici]] quelques indications pour apprendre à utiliser PostgreSQL. \\ Procédure d'installation détaillée: \\ * Téléchargez le {{:td_histoire_numerique:bases_de_donnees_20141003.zip|dossier zippé}} contenant les fichiers à utiliser * Dézippez-le: il contient deux dossier -> mettez-les dans le dossier du cours, dans un sous-dossier que vous nommerez 'bases_importees' * Ouvrez le logiciel pgAdmin III qui se trouve dans 'Programmes' > 'PostgreSQL 9.3' et connectez vous au serveur PostgreSQL 9.3 en utilisant le compte postgres et le mot de passe utilisé lors de l'installation. Cf. cette image {{:td_histoire_numerique:pgadminiii_serveur_postgresql.png?100|}} * Ouvrez dans l'arboréscence de gauche les bases de données et, avec un click droit, ajouter une nouvelle base de données {{:td_histoire_numerique:pdadminiii_creer_nouvelle_bd.png?100|}} * Appelez la nouvelle base de données 'bd_td_exercice'; avant de clicker sur 'OK' vérifier que dans l'onglet 'Définition' le codage des caractères est bien à UTF-8 * Sélectionnez la base de données 'bd_td_exercice' et activez-là par double click * Clicquez sur le bouton SQL (une sorte de loupe sur fonds orange) * Normalement, l'onglet 'Editeur SQL' qui s'ouvre est vide, sinon effacez le texte qu'il contient * Si le logiciel vous demande si vous voulez sauvegarder le texte que vous venez d'effacer à l'étape précédente, dites : non * A partir du menu 'Fichier' > 'Ouvrir', ouvrez les fichiers à installer qui se trouvent dans le dossier 'bases_importees' > 'bases_de_donnees_20141003' > 'bd_td_exercice' que vous venez de dézipper * Ouvrir dans le fichier **schema_objets.sql** * Une fois le fichier ouvert (vous pourrez donc lire dans l'onglet 'Editeur SQL' une série de scripts SQL prêts à exécution), exécuter avec le menu Requêtes > Exécuter ou avec le bouton avec la forme d'une fleche verte * Vous regardez la dernière ligne du message : "La requête a été exécutée avec succès en 391 ms, mais ne renvoie aucun résultat." (le reste ne compte pas, même pas les lignes annulées) – Si vous voyez ce résultat (même si la durée en ms est différente) c'est bon. * En exécutant la requête SQL que vous voyez dans la boîte de dialogue SQL, le serveur PostgreSQL a créé les tables et ajouté les données que contient la requête SQL (instruction INSERT). * Vous répétez ensuite l'opération avec les fichiers : **schema_parametres.sql** et **schema_vues_affichage.sql** * Ouvrez le schema_parametres.sql * Si le logiciel vous demande si vous voulez sauvegarder le texte que vous venez d'effacer à l'étape précédente, dites : non – car le nouveau texte SQL doit remplacer celui qui vient d'être exécuté * Exécutez le script, etc. * ATTENTION : exécuter les trois fichiers .sql exactement DANS L'ORDRE INDIQUÉ * Fermez ensuite l'Editeur SQL' * Sélectionner le dossier 'Schémas' (image rouge et blanche) dans l'arboréscence de gauche et rafraichir (Affichage > Rafraîchir ou bouton vert et rouge en haut) * Déploiez l'arboréscence du schéma par un click et trois schémas (=dossiers) apparaîssent, en plus du schema 'public', contenant les tables et vues de votre base de données * Par exemple, ouvrir le schéma 'objets', puis selectionner 'Tables', vous verrez la liste des trois tables * Dépliez l'arboréscence des tables, sélectionnez la table 'Objet', clickquez sur le bouton en forme de table, bleu et blanc, à droite du bouton de la loupe SQL et vous verrez apparaître une table contenant les données **Voilà !** Si vous en êtes là, le plus difficile est fait, vous avez créé la base de données de l'exercice. ===== Création de la base de données bd_personnelle ===== Maintenant il faut créer une base de données vide ou, plus précisément, une base de données dont les tables du schéma 'objets' sont vides – car c'est là que vous allez mettre vos propres données. A ce sujet, voici **quelques indications importantes**: * le rôle d'un schéma dans PostgreSQL est analogue à celui d'un dossier du disque dur: il réunit des tables, des fonctions, des séquences numériques, etc. tout comme un dossier réunit des fichier * pour nous permettre de travailler de manière collaborative, vous alimentez avec vos données les tables du schéma 'objets' de votre base de données personnelle, mais vous ne touchez pas aux autres schémas et aux données qu'ils contiennent. * ceci me permettra de mettre à jour le contenu des schémas 'parametres' et 'vues_affichage', vous pourrez les écraser et remplacer par les nouveaux, et on ne TOUCHERA PAS vos données * quant aux tables qui les contiennent (celles du schéma objets) vous en ferez des sauvegardes régulières selon la procédure que j'indiquerai plus pas Ceci étant dit, il faut donc: * créer une nouvelle base de donnée que vous appellerez bd_personnelle * Activez cette base par double click * Clicquez sur le bouton SQL orange pour ouvrir l' Editeur SQL * S'il n'est pas vide, effacez le texte qu'il contient sans le sauvegarder * A partir du menu 'Fichier' > 'Ouvrir', ouvrez les fichiers à installer qui se trouvent dans le dossier 'bases_importees' > 'bases_de_donnees_20141003' > **'bd_td_personnelle'** que vous venez de dézipper (et pas 'db_td_exercice') * Ouvrir dans le fichier **schema_objets.sql** * Une fois le fichier ouvert (vous pourrez donc lire dans l'onglet 'Editeur SQL' une série de scripts SQL prêts à exécution), exécuter avec le menu Requêtes > Exécuter ou avec le bouton avec la forme d'une fleche verte * En exécutant ce script SQL, le serveur PostgreSQL produit 3 nouvelles tables avec les séquences numériques associées, et alimente les tables avec les données que contient le script même (instruciton INSERT) * Vous répétez ensuite l'opération avec les fichiers : **schema_parametres.sql** et **schema_vues_affichage.sql** * ATTENTION : exécuter les trois fichiers .sql exactement DANS L'ORDRE INDIQUÉ * Fermez ensuite l'Editeur SQL' * Sélectionner le dossier 'Schémas' (image rouge et blanche) dans l'arboréscence de gauche et rafraichir (Affichage > Rafraîchir ou bouton vert et rouge en haut) * Déploiez l'arboréscence du schéma par un click et trois schémas (=dossiers) apparaîssent, en plus du schema 'public', contenant les tables et vues de votre base de données * Par exemple, ouvrir le schéma 'objets', puis selectionner 'Tables', vous verrez la liste des trois tables * Dépliez l'arboréscence des tables, sélectionnez la table 'Objet', clickquez sur le bouton en forme de table, bleu et blanc, à droite du bouton de la loupe SQL * Cette fois, la table est vide car c'est à vous de la remplir \\ ===== Interfaçage avec le logiciel Base ===== Après avoir créé les deux bases de données ci-dessus, on peut accéder aux tables et aux données qu'elles contiennent en utilisant le logiciel client PgAdminIII. Toutefois, ce n'est pas très pratique pour saisir et visualiser les données. Je vous ai donc créé une interface de saisie avec le logiciel Base de la suite LibreOffice que nous utiliserons comme **client** de la base de données pour la saisie et le travail sur les données, alors que nous utilisons le client PgAdminIII comme **client** pour la gestion de la base elle même (schémas, tables, requêtes SQL etc.) Le **logiciel serveur** lui même, c'est-à-dire PostgreSQL, tourne toujours lorsque votre ordinateur est allumé (sans consommer de ressources) mais il n'est pas directement visible. Il devient visible grâce à des **logiciels clients**. On parle d'une architecture client–serveur. PRINCIPE ESSENTIEL : Grâce à cette architecture logicielle on sépare soigneusement le stockage des données de leur visualisation. Je pourrai donc améliorer progressivement l'affichage dans Base et faire évoluer le système SANS TOUCHER À VOS DONNÉES qui se trouvent dans le schéma 'objets' et, plus tard, dans le schéma 'unites_de_connaissance'. Vos données resteront toujours sur votre ordinateur, et vous pourrez les sauvegarder régulièrement, mais le reste du système d'information pourra évoluer. TUTORIELS : il existe plein de tutoriels pour apprendre à utiliser Base de LibreOffice/OpenOffice [[http://openoffice-libreoffice.developpez.com/cours/#base|Liste dans developpez.com]] [[https://wiki.documentfoundation.org/FR/FAQ/Base|Questions et problèmes habituels]] ==== Procédure à suivre pour l'installation de l'interface ==== * Télécharger le {{:td_histoire_numerique:td_histoire_numerique.zip|fichier}} qui sert d'interface à la base de données * Le dézipper et le mettre dans le dossier du cours * Ouvrir le fichier avec le logiciel Base de la suite LibreOffice * ATTENTION: ce fichier ne marche qu'avec la version stable de LibreOffice: 4.2.6.3, et pas avec la version 4.3. Si vous avez installé la version de développement de LibreOffice (4.3), désinstallez-là et remplacez là par la version stable. * Dans l'interface principale de la base de données, dans le menu 'Edition' > Bases de données > Propriétés, {{ :td_histoire_numerique:bd_proprietes_connexion.png?100 |}} on voit l'adresse de connection vers la base de données PostgreSQL: dbname=bd_td_exercice hostaddr=127.0.0.1 port=5432 * ATTENTION que l'adresse est bien celle-ci et aucune autre (pas par ex. dbname=bd_td_exercice hostaddr=127.0.0.1 port=5432). Car pour les utilisateurs Mac j'ai hélas laissé cette adresse là par mégarde. Il faut mettre l'adresse correcte (nom de la base de données et port) pour que tout se passe bien * Dans le cadre de gauche, dans 'Formulaires', {{ :td_histoire_numerique:bd_ecran_principal.png?100 |}} on peut ouvrir le formulaire **objets** et retrouver les objets déjà créées à partir des notices biographiques de l'exercice précédent * Au moment d'ouvrir le formulaire, Base vous demandera votre mot de passe utilisé lors de l'installation de PostgreSQL * On peut parcourir les objets un par un, ou ouvrir la liste de tous les objets que contient la table –en utilisant le bouton en bas à droite {{ :td_histoire_numerique:bd_formulaire_objets.png?100 |}} – puis appliquer de filtres, trier, etc. C'est très pratique car l'objet sélectionné dans la liste est celui qu'on voit sur la fiche ATTENTION: ne pas toucher au contenu des tables du schéma paramètre car elles permettent à votre base de données de fonctionner correctement et vous risquez de compromettre l'affichage de vos données (mais pas les données elles mêmes car elles sont stockées à part) ==== Installer l'interface de sa base personnelle ==== Il s'agit maintenant de créer une interface pour la base de données personnelle que vous avez créé plus haut dans PostgreSQL: **bd_personnelle** Pour ce faire : * Accéder au menu Fichier, enregistrer sous... {{ :td_histoire_numerique:bd_creer_copie_base.png?100 |}} * renommez la copie que vous allez créer, l'appelant par ex. bd_personnelle – vous pouvez également la mettre dans un autre dossier, par ex. le dossier principal de votre travail de Master * Validez et vous vous trouverez désormais dans le nouveau fichier de Base qui (pour mémoire) vous sert de client pour accéder au serveur PostgreSQL * Il faudra maintenant changer les paramètres de connexion pour changer de base PostgreSQL interfacée * allez dans le menu Edition > Base de données > Propriétés * remplaces le nom de la base de données : 'dbname=bd_td_exercice' devient 'dbname=bd_personnelle' * vous changez ainsi la base de données du serveur PostgreSQL qui devient visible grâce au client Base * Testez la connexion avec le bouton de la même interface, mettant votre mot de passe. * Si vous vous êtes trompés de mot de passe, il faut fermer et réouvrir le fichier * ouvrez le formulaire 'objets': maintenant il sera vide car les tables du schéma 'objets' de votre base personnelle sont vides – à vous de les remplir * pour créer un nouvel objet, uitliser le formulaire 'objets_creation' {{ :td_histoire_numerique:bd_formulaire_objets_creation.png?100 |}} car le formulaire 'objets' sert uniquement à visualiser et modifier des objets existants Si vous avez tout effectué correctement jusqu'ici vous disposez désormais d'une base de données à vous, vous permettant de créer des objets et de les associer entre eux. Par exemple, de créer un acteur et de l'associer à la bibliographie qui le concerne. \\ ====== Sauvegarde de votre base personnelle !!! ====== IMPORTANT: il faut **effectuer des sauvegardes régulières de votre base de données personnelle** en exportant en format SQL le contenu du schéma 'objets'. Vous pourrez ainsi recréer uen copie identique de votre base dans n'importe quel serveur PostgreSQL, par ex. sur un autre ordinateur. * Ouvrir le client PGAdminIII et vous connecter à la base de données 'bd_personnelle' * Déplier les schémas dans l'arboréscence à gauche * sélectionner le schéma Objets, faire un click droit et sélectionner la commande sauvegarder{{ :td_histoire_numerique:pgsql_sauvegarde_du_schema.png?100 |}} * créer un dossier de sauvegarde de vos données dans le dossier du TD ou de votre Master * atteindre ce dossier par le bouton '...' de la sauvegarde de PGAdminIII * comme nom du ficher de sauvegarde taper '**schema_objets_20141004.sql**' Vous saurez ainsi directement à quelle date vous avez effectué la dernière sauvegarde. Vérifiez que le suffixe est bien **.sql**. * Ensuite paramétrer dans le même onglet: * Format : **fichier plat** ( ! ) * Codage : UTF8 * Le reste : vide * Onglet 'Options 1': cocher 'Ne pas sauvegarder: Propriétaire, Droits'; le reste décoché * Onglet 'Options 2' : cocher 'Requêtes : Utiliser les colonnes pour les Insert, Utiliser les commandes pour les insert' Le reste décoché, sauf laisser 'Messages en mode verbeux' * Puis appuyer sur Sauvegarder. * Si tout va bien, la liste des messages termine par 'Le process a retourné le code de sortie 0.' (si c'est '1' il y a un problème, '0' c'est OK) * Vérifier que vous trouvez le nouveau document dans le dossier des sauvegardes. * Ce n'est pas nécessaire de sauvegarder les autres schémas car normalement vous ne les touchez pas. Ils sont donc identiques aux fichiers que je vous ai envoyés et vous pouvez mettre une simple copie de ceux-ci dans votre dossier de sauvegarde. * Le fichier de sauvegare vous permettra de recréer une copie exacte de votre schéma 'objets' de données sur un autre serveur (exactement comme on a fait lors de l'installation de la base de données pour le fichier exercice que je vous ai fourni). Donc si votre ordinateur a une défaillance, ou qu'on vous le vole, et si vous avez une copie de ces fichiers sur un disque dur à la maison, vous pourrez recréer votre base sur un nouvel ordinateur. Exactement comme on fait avec un document de traitement de texte. Le fichier de sortie .sql est un fichier texte, facilement stockable sur une clé USB et très facile à mettre sur n'importe quelle autre plateforme, garantissant ainsi la pérennité de vos données. Plus tard, vous pourrez aussi m'envoyer ces fichiers et je pourrai voir vos données, vous donner des indications et précisions et vous paramétrer des requêtes d'exploitation, pour vous apprendre à exploiter vos données ====== Mise à jour de la base de données et de l'interface ====== \\ ===== Base de données 'bd_td_exercice' ===== Télécharger la {{:td_histoire_numerique:bd_td_exercice_20141121.zip|version à jour de la base de données}} de l'exercice. La version à jour est datée du 21 novembre 2014. \\ Dézipper le dossier et le placer dans votre endroit préféré pour ce TD. ==== Installer la base de données PostgreSQL ==== Procéder à l'installation de la dernière version de la base de données de l'exercice: * Ne toucher en aucun cas à sa base de données personnelle (appelée 'bd_personnelle') qui n'est pas concernée par l'exercice * La prodédure est semblable à celle indiquée [[td_histoire_numerique:descriptif_exercice_2#creation_de_la_base_de_donnees_bd_td_exercice|ici]] mais la création de la base se fera en une seule fois * Ouvrir pgAdminIII * Ouvrir le serveur PostgreSQL 9.3 * Ouvrir le dossier des bases de données * Activer la base de données 'bd_td_exercice' * Click droit sur la base de donnée et sélectionner 'Supprimer' dans le menu * Répondre 'Oui' à la question 'Êtes vous sur de vouloir la supprimer' * Créer une nouvelle base de données vide appelée 'bd_td_exercice' et ouvrir la boite de dialogue SQL (la loupe) * Ouvrir le dossier téléchargé (dézippé préalablement) et dans ce dossier ouvrir le fichier 'bd_td_exercice.sql' * Patienter un petit moment car l'ouverture de ce document, qui contient la sauvegarde de toute la base de données, prend un petit moment * Exécuter ce script SQL : bouton vert = exécuter la requête * Patienter quelques secondes pendant l'installation de la base de données * Si vous avez un message terminant par la ligne "La requête a été exécutée avec succès en 21247 ms, mais ne renvoie aucun résultat." c'est OK, sinon refaites l'opération en suivant encore plus attentivement les instructions. ==== Mise-à-jour de l'interface ==== Dans le dossier téléchargé et dézippé se trouve la dernière version de l'interface, c'est-à-dire le fichier 'td_histoire_numerique.odb'. Ecraser l'ancien fichier et le remplacer par celui-ci. Vérifier les paramètres de connexion selon ce qui est indique [[td_histoire_numerique:descriptif_exercice_2#mise-a-jour_de_l_interface|ici]]: nom de la base: bd_td_exercice, port 5432. Ouvrez le fichier, connectez-vous à la base de donnée et explorez les nouvelles données dans les différentes interfaces (sans rien modifier dans les données) ===== Base de données 'td_personnelle' ===== * Ouvrir votre base de données personnelle (bd_personnelle) avec pgAdminIII * Déplier dans l'arboréscence de gauche les schémas (rouge) * NE TOUCHEZ JAMAIS au schéma 'objets', sauf si: * vous avez créé une version antérieure au permier novembre 2014: dans ce cas, voir les instructions spécifiques ci-dessous * sélectionner le schéma vues_affichage, puis click droit: **supprimer en cascade** * sélectionner le schéma paramètre, puis click droit: **supprimer en cascade** * recrééz les schémas paramètre et vues_affichage selon les instructions [[td_histoire_numerique:descriptif_exercice_2&#creation_de_la_base_de_donnees_bd_personnelle|données ci-dessus]] et SANS TOUCHER au schéma 'objets' ==== Version de la base de données antérieure au premier novembre 2014 ==== ==== Mise-à-jour de l'interface ==== * prenez le fichier bd_personnelle.odb qui contient l'interface de votre base de données qui se trouve dans le dossier téléchargé et mettez le à la place de votre fichier actuel * si les paramètres de votre base de données sont corrects (nom de la base: bd_personnelle, port 5432) vous aurez accès à votre nouvelle interface et aux nouveaux paramètres – ainsi à vos données que vous n'avez pas touchées. * si ce n'est pas le cas, vérifiez le paramètrage selon les indications données [[td_histoire_numerique:descriptif_exercice_2&#installer_l_interface_de_sa_base_personnelle|ci-dessus]]