[MUSIQUE] [MUSIQUE] Bienvenue à cette leçon au cours de laquelle nous allons préparer les bases de données test que nous allons utiliser par la suite pour illustrer les différentes formes d'utilisation du langage SQL lorsque l'on fait des requêtes pour rechercher des objets dans des bases de données. L'objectif de cette leçon est donc de se familiariser avec l'utilisation de différents types de supports de données dans QGIS, des supports de données sous forme de fichiers simples ou de bases de données, SpatiaLite et PostGIS en particulier. Nous aborderons donc successivement les objectifs de cette démarche, l'importation des fichiers sources, la création d'une base de données sous format SpatiaLite et finalement la création d'une base de données PostGIS. L'objectif de cette leçon est donc de préparer un jeu de données qui pourra être utilisé par la suite pour tester et illustrer les requêtes et le langage SQL. Comme on l'a vu lors de la première leçon de ce module, ce jeu de données peut reposer sur divers types de supports et dans le cas précis, nous allons fabriquer trois supports pour montrer de quelle manière ces trois types de supports peuvent être utilisés dans le logiciel QGIS. Ces trois types de supports sont tout d'abord les fichiers simples au format shapefile ESRI puis une base de données autonome au format SpatiaLite, donc une base de données indépendante d'un serveur central et finalement une base de données PostGIS Postgres hébergée sur un serveur centralisé. [MUSIQUE] [MUSIQUE] Alors, pour commencer, nous ouvrons l'application QGIS [AUDIO_VIDE] et lorsqu'elle est lancée, nous allons importer quelques couches vectorielles provenant d'une base de données sur les Seychelles. Ces données de base sont composées de quatre couches, les districts des trois îles centrales des Seychelles, les hôtels, une couche contenant des lieux-dits et finalement le réseau routier. On voit que pour chacune de ces couches, on dispose de cinq fichiers. Alors on reconnaît comme on l'avait vu dans la première leçon de ce module les fichiers .shp, .shx et .dbf qui sont les fichiers de base du système ESRI auxquels s'ajoute un fichier prj qui contient les informations de projection et un fichier qml qui est un fichier spécifique à QGIS qui contient en fait la symbologie de ses couches. On sélectionne les quatre shapefile à importer, donc les fichiers qui ont l'extension shp et on valide leur importation. Donc ils viennent se mettre en place et vont compléter l'exercice, on met ces couches dans le bon ordre. Et puis, on peut encore modifier la couleur du fond pour, ben c'est l'océan, on peut le mettre en bleu, changer l'échelle de présentation, voir un peu mieux ce qui se passe et puis finalement enregistrer le projet au format projet QGIS. [AUDIO_VIDE] Pour compléter les choses, on va encore mettre ces premières couches dans un groupe qu'on appelle shapefile en ajoutant le groupe et en déplaçant ces différentes couches pour les mettre dans ce dossier. [MUSIQUE] Pour créer la base de données SpatiaLite, nous allons commencer par installer une extension de QGIS qui s'appelle QSpatiaLite qui donne accès à ce type de, qui permet de gérer ce format de base de données. Lorsque cette extension est installée, on la trouve dans le menu base de données et on va commencer par créer une nouvelle base de données SpatiaLite, hein, qu'on va mettre dans le disque E, dans le matériel en fait qui concerne les Seychelles et on va appeler cette base de données Mahé, du nom de l'île principale des Seychelles. Alors, nous avons quelques messages liés à la création de cette base de données, et une fois qu'elle est présente, l'interface QGIS de SpatiaLite permet d'importer les couches qui sont présentes dans la carte. On peut spécifier le système de projection, en l'occurrence UTM Sud 40 degrés. L'importation se fait. On voit que lors de l'importation, SpatiaLite n'a pas compris les champs ID comme étant des clés primaires de ses tables et qu'elle a ajouté un nouveau champ PKUID symbolisé par une petite clé qui montre que c'est une clé primaire. C'est quelque chose qu'il va falloir changer. On va remettre de l'ordre dans cette base de données et c'est quelque chose que l'on va faire avec un logiciel spécifique SpatiaLite. Nous ouvrons donc une instance de SQLite studio. On ajoute une base de données, donc la base de données Mahé et lorsque cette base de données a été ajoutée, on peut la connecter et accéder aux différentes tables qu'elle contient. En particulier dans la table districts, on peut supprimer la clé primaire qui a été ajoutée lors de l'importation et modifier la colonne ID originale d'abord en disant que c'est un entier et non pas un réel et en disant que c'est une clé primaire. On valide ces modifications et puis on passe ensuite à la table suivante, la table hôtels. Pareillement, on supprime le champ d'identifiant ajouté par l'importation. On modifie le champ original pour le remettre en entier. On refait une clé primaire. Pareillement, les chambres qui étaient un, le nombre de chambres qui était un entier sont devenus un réel, le nombre de lits également est devenu un réel, ce que l'on remet en entier. Et finalement, l'ID du district dans lequel se trouve l'hôtel qui est un entier au départ aussi et qui est une clé étrangère pointant sur la table districts et sur le champ ID de la table districts. Dans les, donc on valide ces modifications et dans les deux tables restantes, lieux-dits et routes, donc on pourrait laisser les choses comme elles sont mais pour la bonne forme, on supprime également la clé primaire ajoutée at puis on remet la clé primaire initiale ici pour la couche lieux-dits et par la suite pour la table des routes, on fait encore la même opération. On valide tout ça et la boucle est bouclée. Donc on peut refermer cette application SQLLite studio qui est aussi une application gratuite et puis maintenant quand on revient dans QGIS dans l'interface SpatiaLite, on peut ajouter en fait les couches qui cette fois ont les bons paramètres. On peut les ajouter dans la carte QGIS [AUDIO_VIDE] et puis de nouveau créer un groupe pour ces couches SpatiaLite et placer ces couches, les couches importées dans ce groupe. Voilà qui est fait. Et on enregistre le tout. Finalement, on ajoute encore une extension underscore S majuscule pour marquer la différence entre les couches SpatiaLite et les couches originales shapefile ESRI. [MUSIQUE] [MUSIQUE] L'installation de Postgresql et de PostGIS ne pose pas de problème majeur. Les logiciels sont des logiciels gratuits qui peuvent être téléchargés sur Internet. Et les sites, en fait, de téléchargement proposent des tutoriels pour, qui décrivent cette installation donc on ne va pas reprendre ça ici, on part du principe que l'application postgres, postgis, est installée et on va utiliser, en fait, le, l'interface utilisateur pgAdmin, pour accéder à cette base de données. Qu'on ouvre l'application pgAdmin, dans laquelle nous allons pouvoir créer une nouvelle base de données, que l'on va appeler Seychelles. Et comme utilisateur, on va, on va mettre, comme propriétaire, on va mettre Marc, moi-même. Alors, lorsque cette base de données est créée, on peut l'ouvrir, et puis il faut lui ajouter une extension pour pouvoir utiliser des données spatiales, cette extension, c'est l'extension postgis, donc elle se trouve ici dans la longue liste d'extensions possibles, donc on ajoute cette extension postgis, à la base de données Seychelles, ce qui va nous permettre, par la suite, d'importer des couches géographiques de QGIS dans cette base de données postigis. Alors pour se faire, on a également besoin d'une extension, qui se trouve dans la librairie des extensions et qui s'appelle processing, qui fournit, en fait, tout un, tout un tas d'outils de traitement de données spatiales, donc on va les trouver dans le menu traitement, la boîte à outils, et ici on a une série de géotraitements spécifiques QGIS, c'est dans la rubrique base de données, nous avons l'importation de couches dans une base de données QGIS a un peu précisé le champ, clé primaire, donc là on a importé les districts, on va importer cette fois, les hôtels, donc en partant du shape file, de nouveau, on définit le champ ID comme clé primaire. La même chose pour la couche des lieux dits, et finalement pour la couche des routes. [AUDIO_VIDE] [AUDIO_VIDE] Voilà qui est fait. Donc on peut refermer cette boîte à outils. Et toujours dans les extensions, nous avons une extension qui s'appelle DB Manager, pour data base manager, et qui, en français, est traduite en gestionnaire de base de données. Lorsque cette extension est installée, dans le menu de base de données, nous trouvons le gestionnaire de base de données et ce gestionnaire, on voit qu'il donne accès aux bases de données postgis aussi bien qu'aux bases de données SpatialLite, et on voit que cette base de données postgis Seychelles est présente et contient les, les différents champs avec leurs informations, les données tabulaires et un aperçu de leurs géométries. Et ces différentes couches on peut ensuite les, les, à partir de ce gestionnaire de base de données, les ajouter à la carte, et puis ensuite, comme précédemment, créer dans la carte, un groupe pour ces couches postgis, et puis placer ces différentes couches dans ce groupe. [AUDIO_VIDE] [AUDIO_VIDE] Et comme précédemment, on, nous allons ajouter un suffixe, P majuscule, pour distinguer ces couches des couches originales, format shapefile, ou bien des couches au format SpatialLite. Et voilà , moyen en quoi, l'ensemble des données que l'on souhaitait mettre en place pour tester les requêtes et le langage SQL est prêt. [MUSIQUE] Dans cette leçon nous avons donc vu comment manipuler des données shapefile, SpatialLite, postgis, à partir du logiciel QGIS, comment créer des bases de données, comment les documenter et nous avons pu produire, en fait, un jeu de données qui va nous être utile pour tester, par la suite, les requêtes et le language SQL. [MUSIQUE]