Vous êtes sur la page 1sur 31

Ecole Supérieure des Ingénieurs de Ministère de l’Enseignement

Medjez El Bab Supérieur et de la Recherche


Scientifique
Année Universitaire: 2020-2021 -------**-------
Université de Jendouba

Module: Base de données spatiale


PostgreSQL - Postgis

Chaieb Ali-2020/2021-2GTG 1
Qu’est-ce que PostgreSQL?

PostgreSQL est un moteur de bases de données relationnelles.


C’est un moteur adapté à des bases métier, riche en fonctionnalités et très puissant. La licence BSD de
PostgreSQL permet son utilisation sans aucune restriction, même au sein d’un logiciel propriétaire.
D’un point de vue architecture et fonctionnalités nous sommes en présence d’un équivalent d’Oracle. Ce n’est
plus du niveau d’Access ou de SQLite. Que ce soit au niveau du volume des données gérables (Tos), de la
robustesse de la structure, de la gestion des transactions concurrentes, etc., vous disposez de tous les outils et
fonctions nécessaires à la gestion d’une base de données de production.

Des extensions et outils sont disponibles pour compléter le moteur, en particulier PostGis qui permet la
gestion de données spatiales dans une base PostgreSQL (gestion des géométries et des systèmes de
coordonnées).

Chaieb Ali-2020/2021-2GTG 2
Architecture de base de PostgreSQL

Cluster : (ou groupe de serveurs) C’est un ensemble


virtuel des serveurs auxquels vous avez accès.

Base de données : Une base est un ensemble structuré de


données (On utilise généralement une base de donnée par
application). Une base de données est forcément créée au
sein d’un cluster

Une base de données comprend tout autant les données


que les applications qui les concernent (les Triggers, les
extensions,…) Chaieb Ali-2020/2021-2GTG 3
Schéma de base de données : contient toute la structure de
la base de données et permet de créer des vues spécifiques
des tables de données.

Comptes de connexion et rôles : A ne pas confondre. Le


compte de connexion est le compte système utilisé par les
processus de PostgreSQL. Le plus couramment utilisé
est postgres. Les rôles, par contre, sont le moyen de gérer
les droits d’accès aux bases de données.

Pour finir avec les notions de base, PostgreSQL est une application client/serveur. Le serveur gère les fichiers
de la base de données, accepte les connexions des clients, et effectue les opérations demandées par les clients
(requêtes…). Le client peut prendre de nombreuses formes. Pour administrer PostgreSQL vous disposez
d’une interface graphique, pgAdmin3. Pour travailler sur les données (affichage, mise en forme, mise à jour)
vous pourrez le faire avec QGis. Chaieb Ali-2020/2021-2GTG 4
PostGIS est une extension du système de base de données relationnelle objet PostgreSQL qui permet de
stocker des objets SIG (systèmes d'information géographique) dans la base de données. PostGIS inclut
la prise en charge des index spatiaux R-Tree basés sur GiST et des fonctions d'analyse et de traitement
des objets SIG.

Activer spatialement la base de données à l'aide d'EXTENSION

Si vous installé les modules extensions/postgis, vous pouvez transformer une base de données en une base de
données spatiale en utilisant le mécanisme EXTENSION.
L'extension postgis de base comprend la géométrie, la géographie, spatial_ref_sys et toutes les fonctions et
commentaires. Le raster et la topologie sont fournis en tant qu'extension distincte.
Exécutez l'extrait de code SQL suivant dans la base de données que vous souhaitez activer spatialement :

CREATE EXTENSION postgis;


CREATE EXTENSION postgis_raster; -- OPTIONNEL
CREATE EXTENSION postgis_topology; -- OPTIONNEL
Chaieb Ali-2020/2021-2GTG 5
Cartouches spatiales libres et propriétaires

Exemple d’extensions spatiales pour SGBD

Libres Propriétaires

PostGIS PostgreSQL Oracle Spatial Oracle


MySql Spatial MySQL DB2Spatial Extender DB2
SpatialLite Sqlite Spatial data SQLServer

Chaieb Ali-2020/2021-2GTG 6
Les objets SIG pris en charge par PostGIS sont un sur-ensemble de la norme "Simple Features" définie par
l'OpenGIS Consortium (OGC). PostGIS prend en charge tous les objets et fonctions spécifiés dans la
spécification OGC "Simple Features for SQL" (SFS).

OpenGIS WKB et WKT

La spécification OpenGIS définit deux manières standard d'exprimer des objets spatiaux : la forme Well-
Known Text (WKT) et la forme Well-Known Binary (WKB). WKT et WKB incluent tous deux des
informations sur le type de l'objet et les coordonnées qui forment l'objet.

Chaieb Ali-2020/2021-2GTG 7
Exemples de représentations textuelles (WKT) des objets spatiaux des entités :

 POINT(0 0)
 POINT Z (0 0 0)
 POINT ZM (0 0 0 0)
 LINESTRING (0 0,1 1,1 2)
 POLYGONE((0 0,4 0,4 ​4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))
 MULTIPOINT((0 0),(1 2))
 MULTIPOINT Z ((0 0 0),(1 2 3))
 CHAÎNE MULTILIGNE((0 0,1 1,1 2),(2 3,3 2,5 4))
 MULTIPOLYGONE(((0 0,4 0,4 ​4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2, -2 -2,-2 -1,-1 -1)))
 GEOMETRYCOLLECTION(POINT(2 3),LINESTRING(2 3,3 4))

La spécification OpenGIS exige également que le format de stockage interne des objets spatiaux
inclue un identifiant de système de référencement spatial (SRID). Le SRID est requis lors de la
création d'objets spatiaux à insérer dans la base de données.
Chaieb Ali-2020/2021-2GTG 8
Qu’est-ce que SRID ?

Un « SRID » signifie « Spatial Reference IDentifier ». Il définit tous les paramètres du


système de coordonnées géographiques et de projection de nos données. Un SRID est
pratique car il regroupe toutes les informations sur une projection cartographique (qui
peut être assez complexe) en un seul nombre.

Chaieb Ali-2020/2021-2GTG 9
Chaieb Ali-2020/2021-2GTG 10
Chaieb Ali-2020/2021-2GTG 11
PostGIS ajoute la prise en charge des objets géographiques à la base de données relationnelle objet
PostgreSQL. En effet, PostGIS "active spatialement" le serveur PostgreSQL, lui permettant d'être utilisé
comme base de données spatiale principale pour les systèmes d'information géographique (SIG), un peu
comme le SDE d'ESRI ou l'extension spatiale d'Oracle. PostGIS suit la "Spécification des fonctionnalités
simples pour SQL" d'OpenGIS

Chaieb Ali-2020/2021-2GTG 12
CREATE TABLE PUBLIC.DELEGATION
(code int4 primary key,
nom_délégation varchar(50),
géométrie geometry(POINT,32632));

Chaieb Ali-2020/2021-2GTG 13
Afficher les paramètres de la projection

select srtext from spatial_ref_sys where srid=32632;

Chaieb Ali-2020/2021-2GTG 14
Insertion des délégations avec leurs codes, noms et positions

INSERT INTO public.DELEGATION (code, nom_délégation, géométrie) VALUES


(1, 'AL DAHMANI', ST_GeomFromText('POINT(484832.313 3976973.75)',32632));

INSERT INTO public.DELEGATION (code, nom_délégation, géométrie) VALUES


(2, 'EL JAM', ST_GeomFromText('POINT(655574.00 3906755.00)',32632));

Chaieb Ali-2020/2021-2GTG 15
Afficher les dimensions des points insérées

SELECT nom_délégation,
st_geometrytype(géométrie) ,
st_ndims(géométrie),
st_srid(géométrie) FROM delegation;

Chaieb Ali-2020/2021-2GTG 16
Conversion et lecture des coordonnées du format hexadécimal aux format texte

select géométrie,st_astext (géométrie) from delegation;

Chaieb Ali-2020/2021-2GTG 17
Création de deux champs pour la lecture des valeurs de X et Y

SELECT DELEGATION,
ST_X(géométrie) As valeur_de_X,
ST_Y(géométrie) As valeur_de_Y
FROM public.DELEGATION;

Chaieb Ali-2020/2021-2GTG 18
SELECT *,
ST_X(géométrie) As valeur_de_X,
ST_Y(géométrie) As valeur_de_Y
FROM public.DELEGATION;

Chaieb Ali-2020/2021-2GTG 19
SELECT géométrie,
ST_X(géométrie) As valeur_de_X,
ST_Y(géométrie) As valeur_de_Y
FROM public.DELEGATION;

Chaieb Ali-2020/2021-2GTG 20
Conversion et lecture des coordonnées sous format KML

select géométrie,st_asKML (géométrie)


from delegation;

Chaieb Ali-2020/2021-2GTG 21
Conversion et lecture des coordonnées sous format GML

select géométrie,st_asGML (géométrie)


from delegation;

Chaieb Ali-2020/2021-2GTG 22
Calcul de distance entre les villes Al Dahmani et El Jam

Select
st_distance(st_geometryfromtext('point(484832.313 3976973.75)'),
st_geometryfromtext('point(655574.00 3906755.00)'));

select
st_distance(('point(484832.313 3976973.75)'),
('point(655574.00 3906755.00)'));
Chaieb Ali-2020/2021-2GTG 23
Import du fichier shp

SRID 32632

Chaieb Ali-2020/2021-2GTG 24
Chaieb Ali-2020/2021-2GTG 25
SELECT geom FROM routes;

Chaieb Ali-2020/2021-2GTG 26
SELECT geom, st_Astext(geom)
FROM routes;

Chaque polyligne est définis par le nombre des


points ou vertex qu’il contient.

Chaieb Ali-2020/2021-2GTG 27
Calcul de la longueur de la route

SELECT st_length(geom)
FROM routes
WHERE gid=1;

La distance est en mètre

Chaieb Ali-2020/2021-2GTG 28
Changement du système de projection (de l’UTM vers le Lambert Nord)

ALTER TABLE routes


ALTER COLUMN geom TYPE geometry(MultiLineString,22391)
USING ST_SetSRID(geom,22391);

Chaieb Ali-2020/2021-2GTG 29
SRID 22391

Chaieb Ali-2020/2021-2GTG 30
Chaieb Ali-2020/2021-2GTG 31

Vous aimerez peut-être aussi