Nous avons déjà vu comment réaliser plusieurs opérations de base de données avec QGIS ainsi qu’avec d’autres outils mais il maintenant temps d’étudier l’outil DB Manager qui fournit les mêmes fonctionnalités ainsi que des outils plus orientés vers l’administration.
L’objectif de cette leçon: Apprendre comment interagir avec des base de données spatiales en utilisant le DB Manager de QGIS.
Vous devez premièrement ouvrir l’interface DB Manager en sélectionnant Base de Données –> DB Manager –> DB Manager dans le menu ou en séelectionnant l’icone DB Manager dans la barre d’outils.
Vous devriez déjà voir les connexions que nous avons configurées précédemment et vous devriez pouvoir étendre la section myPG et son schéma public pour voir les tables que nous avons utilisées dans les sections précédentes.
La première chose que vous pouvez remarquer est que vous pouvez maintenant lire les métadonnées des schémas contenus dans la base de données.
Les schémas constituent un moyen de regrouper des tables de données et d’autres objets au sein d’une base de données PostgreSQL. Ils contiennent également les permissions et les autres contraintes. Gérer des schémas PostgreSQL dépasse la portée de ce document mais vous pouvez en apprendre plus dans la Documentation sur les schémas PostgreSQL. Vous pouvez utiliser DB Manager pour créer de nouveaux schémas mais vous aurez sans doute besoin d’outils comme pgAdmin III ou de la ligne de commande pour aller plus loin.
DB Manager peut également être utilisé pour gérer les tables de votre base de données. Nous avons déjà étudié plusieurs méthodes pour créer et gérer des tables à partir de la ligne de commande mais regardons rapidement comment on peut le faire avec DB Manager.
Il est d’abord intéressant de consulter les métadonnées de la table en cliquant sur son nom dans l’arbre et en lisant l’onglet Info.
Dans ce panneau, vous pouvez lire les Informations Générales de la table ainsi que l’information que l’extension PostGIS conserve sur la géométrie et le système de référence spatiale.
Si vous vous déplacez vers le bas de l’onglet Info, vous pouvez avoir plus d’information sur les Champs, les Constraintes et les Index de la table sélectionnée.
Vous pouvez également utiliser DB Manager pour observer le contenu de la base de données de la même manière que vous utilisez la table des attributs d’une couche dans la Légende. Vous pouvez naviguer dans les données en sélectionnant l’onglet Table.
Il existe également l’onglet Aperçu qui vous montrera l’aspect de la couche de données dans une carte d’aperçu.
Effectuez un clic droit sur une couche dans l’arborescence et cliquez sur Ajouter au Canevas pour ajouter cette couche à votre carte.
Jusqu’à présent, nous avons observé la base de données par ses schémas et ses tables ainsi que leurs métadonnées mais qu’en est-il si nous voulons modifier la table pour ajouter une colonne ? DB Manager vous permet de le faire directement.
Sélectionnez dans l’arborescence la table que vous souhaiter éditer.
Sélectionnez depuis le menu Table –> Editer une table afin d’ouvrir la fenêtre Propriétés de la table.
Vous pouvez utiliser cette fenêtre pour ajouter des colonnes, ajouter des colonnes géométriques, éditer des colonnes existantes ou supprimer complètement une colonne.
Dans l’onglet Contraintes, vous pouvez gérer quels champs sont utilisés comme clé primaire ou supprimer des contraintes existantes.
L’onglet Index peut être utilisé pour ajouter et supprimer des index aussi bien normaux que spatiaux.
Maintenant que nous avons vu comment travailler sur les tables existantes dans notre base de données, voyons comment créer une nouvelle table avec DB Manager.
Si elle n’est pas déjà ouverte, ouvrez la fenêtre de DB Manager et déroulez l’arborescence jusqu’à voir la liste des tables déjà présentes dans votre base de données.
Depuis le menu, sélectionnez Table –> Créer une table pour afficher la fenêtre de création de table.
Utilisez le schéma par défaut Public et nommez la table places .
Ajoutez les champs id, place_name et elevation comme montré ci-dessous
Assurez-vous de définir le champ id comme clé primaire.
Cochez la case Créer une colonne géométrique et assurez-vous qu’il est défini de type POINT; laissez le nom geom et spécifiez 4326 comme SRID.
Cochez la case Créer un index spatial et cliquez sur Créer pour créer la table.
Validez la fenêtre vous faisant savoir que la table a été créée et cliquez sur:guilabel:Fermer pour fermer la fenêtre de création de table.
Vous pouvez maintenant inspecter votre table dans DB Manager et bien entendu, vous constaterez qu’elle ne contient aucune donnée. Désormais, vous pouvez ajouter votre table au projet, la Basculer en mode édition depuis le menu Couche et commencez à y ajouter des places.
DB Manager vous permet aussi de faire d’autres tâches basiques d’administration de base de données. Ce n’est certainement pas un substitut pour un outil complet d’administration de base de données, mais il vous fournit des fonctions de maintenance de votre base de données.
Les tables des bases de données peuvent souvent devenir volumineuses et les tables qui sont fréquemment modifiées laissent des enregistrements qui n’ont plus besoin d’être conservés par PostgreSQL. La commande VACUUM s’occupe de gérer la suppression de ces données invalidées pour compacter et analyser vos tables dans l’objectif d’être plus performant.
Voyons comment réaliser une commande VACUUM ANALYZE à partir de DB Manager.
Sélectionnez une de vos tables dans l’arborescence de DB Manager.
Sélectionnez menu Table –> Lancer Vacuum Analyze.
Ça y est! PostgreSQL va réaliser l’opération. Selon la taille de votre table, ceci peut prendre un certain temps.
Vous trouverez plus d’informations sur les processus de VACUUM ANALYZE dans la documentation de PostgreSQL.
DB Manager fournit également un moyen d’écrire des requêtes de tables et de visualiser les résultats. Nous avons déjà vu ce type de fonctionnalité dans le panneau Navigation mais observons comment le faire avec DB Manager.
Sélectionnez la table lines dans l’arborescence.
Sélectionnez le bouton Fenêtre SQL dans la barre d’outils de DB Manager.
Composez la Requête SQL suivante dans l’espace disponible:
select * from lines where roadtype = 'major';
Cliquez sur le bouton Exécuter (F5) pour réaliser la requête.
Vous devriez maintenant voir les enregistrements correspondants dans le panneau Résultat.
Cochez la case Charger comme une nouvelle couche pour ajouter le résultat à votre carte.
Sélectionnez la colonne id en tant que Colonne avec des valeurs entières et uniques et la colonne geom en tant que Colonne de géométrie.
Saisissez roads_primary dans le Nom de la couche.
Cliquez sur Charger ! pour charger les résultats dans une nouvelle couche sur votre carte.
Les couches qui correspondent à votre requête sont maintenant affichées sur la carte. Vous pouvez bien entendu utiliser cet outil pour lancer n’importe quelle commande SQL, incluant celles que nous avons étudiées dans les modules et les sections précédentes.
Nous avons déjà étudié comment importer des données dans une base de données spatiale en utilisant la ligne de commande ou l’extension SPIT. Voyons comment y parvenir en utilisant DB Manager.
Cliquez sur le bouton Importer une couche ou un fichier dans la barre d’outils de la boîte de dialogue de DB Manager.
Sélectionnez le fichier urban_33S.shp depuis exercise_data/projected_data en tant que donnée d’entrée.
Cliquer sur le bouton Options de mise à jour pour pré-remplir certaines valeurs du formulaire.
Assurez-vous que l’option Créer une nouvelle table est sélectionnée.
Paramétrer le SCR Source à 32722 et le SCR Cible à 4326.
Cochez la case Créer un index spatial
Cliquez sur OK pour réaliser l’import.
Fermer la boîte de message qui vous indique que l’export s’est correctement déroulé.
Cliquez sur le bouton Rafraîchir de la barre d’outils de DB Manager.
Vous pouvez maintenant inspecter la table dans votre base de données en cliquant dans l’arbre. Vérifiez que la donnée a bien été reprojetée en vérifiant que Ref Spatiale: contient bien WGS 84 (4326).
Faîtes un clic droit sur la table dans l’arbre et sélectionnez Ajouter au Canevas pour ajouter la table comme couche dans votre carte.
Bien entendu, DB Manager peut également être utilisé pour exporter des données de base de données spatiales. Voyons comment faire.
Sélectionnez la couche lines dans l’arbre et cliquez sur le bouton Exporter vers le fichier pour ouvrir la boîte de dialogue Exporter vers un fichier vecteur .
Cliquez sur le bouton ... pour sélectionner le Fichier en sortie et sauvegarder les données dans le répertoire exercise_data sous le nom urban_4326.
Paramétrez le SCR cible à 4326.
Cliquez sur OK pour lancer l’export.
Fermer la boîte de message vous indiquant que l’export s’est correctement déroulé et fermez DB Manager.
Vous pouvez maintenant inspecter le fichier Shape que vous avez créé en utilisant le panneau Navigation.
Nous avons étudié comment utiliser l’interface de DB Manager sous QGIS pour gérer des bases de données spatiales, exécuter des requêtes et comment importer et exporter des données.
Dans la prochaine leçon, nous étudierons comment utiliser des techniques identiques sur les bases de données Spatialite.