18.2. Lesson: Utiliser DB Manager pour travailler avec les Bases de données Spatiales dans QGIS
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.
18.2.1. Follow Along: Administrer une Base de Données PostGIS avec DB Manager
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 manuel 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 l’interface de 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 Propriétés de la table.
afin d’ouvrir la fenêtre
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.
18.2.2. Follow Along: Création d’une Nouvelle Table
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 tableplaces
.Ajoutez les champs
id
,place_name
etelevation
comme montré ci-dessousAssurez-vous de définir le champ
id
comme clé primaire.Cochez la case Créer une colonne géométrique et assurez-vous qu’elle est définie de type
POINT
et laissez le nomgeom
et spécifiez4326
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.
18.2.3. Follow Along: Administration basique de base de données
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
.
PostgreSQL va réaliser l’opération. Selon la taille de votre table, ceci peut prendre un certain temps.
Vous pouvez trouver plus d’informations sur les processus de VACUUM ANALYZE dans la documentation de PostgreSQL sur VACUUM ANALYSE.
18.2.4. Follow Along: Exécution de requêtes SQL avec DB Manager
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 colonnegeom
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.
18.2.5. Importer des données dans une base de données avec DB Manager
Nous avons déjà étudié comment importer des données dans une base de données spatiale en utilisant la ligne de commande. Voyons comment y parvenir en utilisant le Gestionnaire de Bases de Données.
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
depuisexercise_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.
18.2.6. Exporter des données d’une base de données à l’aide de DB Manager.
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 nomurban_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.
18.2.7. In Conclusion
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 SQL et comment importer et exporter des données.
18.2.8. What’s Next?
Dans la prochaine leçon, nous étudierons comment utiliser des techniques identiques sur les bases de données SpatiaLite.