PostGIS: Index, Opérateurs et Fonctions

Slides:



Advertisements
Présentations similaires
Etudes de cas A vous de faire Bases de données DRES – B. TALON.
Advertisements

Bases de Données Avancées: Bases de Données Relationnelles
MySQL et PHP.
Les requêtes Manière de dialoguer avec une base de donnée pour :
PHP mySQL Extension php_mysql. Connexion à une base de données Établir une connexion mysql_connect(string server, string username, string password) –permet.
Année universitaire Système dinformation Le SQL (Structured Query Language) langage dinterrogation dune base de données.
LE LANGAGE SQL : LDD La création de tables L’ordre CREATE CREATE TABLE nom_de_table (Nom_colonne Type_colonne, Nom_colonne Type_colonne,
Licence GNU FDL - Version 1.5
Les contraintes d’integrité
Développement d’applications web
L’utilisation des bases de données
Systèmes d Information : 10b Michel de Rougemont Université Paris II Les Bases de Données : Access.
PostGIS – Création d'une base spatiale
Gestion des annulations
Copyright Oracle Corporation, Tous droits réservés. 9 Écriture de Sous- Interrogations Synchronisées.
Administration de bases de données spatiales avec SavGIS
2 Ils associent les rangées de 2 requêtes UNION [ALL] INTERSECT MINUS.
Les requêtes Les requêtes permettent dinterroger une base de données suivant 3 opérateurs : La projection Affiche le contenu dun champ complet En langage.
SELECT {* | Expression [Alias] [,...] } FROM Table [WHERE Condition] [ORDER BY { Expression | Alias } [ ASC | DESC ] [NULLS FIRST | NULLS LAST ] [,...]
L’utilisation des bases de données
Nicolas Ribot - Licence GNU FDL - Version 1.0
PostGIS – Chargement de données
Fonctionnalités avancées
Nicolas Ribot - Licence GNU FDL - Version 1.0
PostGIS – Spécifications OGC et ISO
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections
1 SQL: Requêtes, Programmation et Triggers Chapitre 5, Sections 15.5.
Modex Web Dominique Rossin
1 CSI 2532 Lab3 6 Février 2012 Programmation avancée SQL.
Christine Bonnet SOURCES : « Samples » dOracle, « Oracle 8 » R. Chapuis PRO*C – C ++
OPTIMISATION DE BASE DE DONNEES ORACLE
 CREATE TABLE  DROP TABLE  ALTER TABLE  INSERT  UPDATE  DELETE  SELECT interrogation 2 Instruction de mise à jour structure.
Comment stocke-t-on des données sur un site web ?
EPID-CPI-ISAIP Philippe Bancquart - mise à jour 24/02/ page 1 Transac SQL Intégrité des données.
Access Les requêtes Table médias Table (*) Requêtes simples.
Cours 5: Sous requetes Exploitation des données Présentation  Supposez que vous voulez écrire une requête pour trouver qui a un salaire plus.
A L I M E N T A T I O N A G R I C U L T U R E E N V I R O N N E M E N T Réseau BD 11/12/08 Fonctionnalités et limites d’outils d’indexation et de recherche.
PostGIS – Modèle géométrique, Spécifications OGC et ISO
 C'est une fenêtre par laquelle les informations d'une table peuvent être visualisées et changées.  C'est une table virtuelle: ◦ elle n'existe pas ◦
1 PHP 5 Notions fondamentales (cours #5) Formation continue – Cégep de Sainte-Foy.
Institut Supérieur d’Informatique
PostgreSQL – Présentation
Module 7 : Utilisation de requêtes élaborées
Sélection de colonnes (la projection)
Magellium - 24 rue Hermès – BP12113, Ramonville Saint-Agne 
Quinio1 Bases de données : modèlisation et SGBD Séance 3 B Quinio.
Création et Gestion de Tables
 Le langage SQL Introduction SQL : Strutured Query Language, est un langage de requête, que l'on retrouve dans divers SGBDR (Access de Microsoft, MySQL,
Les vues Une vue: c’est une relation virtuelle. Définie par:
 L’information est conservée sous forme de tables  Contient: ◦ Un nom ◦ Une clé primaire ◦ Une liste de colonnes ◦ Les informations/données (sous forme.
Le langage SQL. Voir polycopié: Introduction à SQL SQL.
Les bases de données Séance 8 Jointures.
Le Langage de Manipulation de Données LMD. 2 Les ordres SQL de manipulation INSERT –Insertion (ajout) de ligne(s) dans une table –Utiliser SQL*LOAD pour.
MANIPULATION DES DONNEES : mise à jour des n-uplets.
Séance /10/2004 SGBD - Approches & Principes.
Fonctionnalités avancées
NIVEAU LOGIQUE Vues. Fenêtre dynamique sur la base Ses données proviennent d'autres tables ou d'autres vues.
Op é rateurs ensemblistes Module 4. 2 La clause GROUP BY La clause GROUP BY est nécessaire dès que l'on utilise des fonctions de calculs statistiques.
Cours n°2 Implémentation et exploitation
Le Langage de Manipulation de Données LMD Module 6.
Modélisation et utilisation Aurélien Marion1 Aurélien Marion
1 Les bases de données Séance 7 Les fonctions avancées : Opérateurs ensemblistes, Sous-requêtes et transactions.
1 Initiation aux bases de données et à la programmation événementielle VBA sous ACCESS Cours N° 4 Support de cours rédigé par Bernard COFFIN Université.
1 Les bases de données Séance 5 -- Le Langage de Définition de Données ou la manœuvre de la structure de la base -- Le Langage de Manœuvre de Données.
Master sciences et techniques de géomatique environnementale
Les sous-requêtes ou requêtes imbriquées B.T.S. S.I.O – SI3 – 1.
Transcription de la présentation:

PostGIS: Index, Opérateurs et Fonctions Licence GNU FDL - Version 1.3 Description des opérateurs, utilité des index

Plan Index spatiaux GEOS Fonctions spatiales Opérateurs spatiaux Opérateurs et fonctions

Index Spatiaux - Principes Ils fonctionnent comme des index classiques Permettent d'accélérer les requêtes sur des SELECT avec une clause WHERE basée sur des données spatiales Ils ralentissent de fait les tâches d'écriture en base (INSERT / UPDATE) Ils utilisent le mécanisme GiST (Generalized Search Tree) de PostgreSQL http://www.postgresql.org/docs/8.2/static/gist.html http://www.sai.msu.su/~megera/postgres/gist/ http://postgis.refractions.net/support/rtree.pdf Stockage de la Bbox de la géométrie dans l'index Basé sur un R-Tree (attention, différent du R-Tree fourni avec PostgreSQL

Index Spatiaux - Utilisation Cas d'utilisation Dans une logique de SELECT avec des WHERE sur colonne spatiale A tester dans le cas de table avec des requêtes en lecture/écriture importantes Création d'un index spatial: Nom de l'index Nom de la table spatiale CREATE INDEX index_dept ON departement USING GIST ( the_geom GIST_GEOMETRY_OPS ); Nom de la colonne spatiale

Index – Manipulation avec PostgreSQL Commandes PostgreSQL (psql) lister les index: \di Commandes SQL 92 Supprimer un index: DROP index_name ON table_name; Vérifier l'utilisation d'un index: EXPLAIN ANALYZE devant une requête SQL

Opérations 'Topologiques' Ensemble des calculs réalisés par GEOS GEOS Portage en C++ de JTS geos.refractions.net Travaille uniquement dans un espace cartésien plan (pas encore de calcul sphérique dans GEOS) Attention avec les données Lat-Lon: résultats des calculs sans réalité géographique

Fonctions et Opérateurs spatiaux ST_intersects(geometry,geometry) : Renvoie vrai, si les deux géométries se recoupent. ST_touches(geometry,geometry) : Renvoie vrai, si les deux géométries se touchent. ST_within(geometry,geometry) : Renvoie vrai, si la première géométrie est contenue dans la seconde ST_covers(geometryA,geometryB) : Renvoie vrai si aucun point de la géométrie B n'est a l'extérieur de la géométrie A. ST_coveredBy(geometryA,geometryB) : Renvoie vrai si aucun point de la géométrie A n'est à l'extérieur de la géométrie B.

Fonctions et Opérateurs spatiaux (suite) ST_crosses(geometry,geometry) : Renvoie vrai, si les deux géométries ont certains points de leurs intérieurs en commun, mais pas tous. ST_disjoint(geometry,geometry) : Renvoie vrai, si les deux géométries ne s'intersectent pas spatialement: elles ne partagent aucun point de l'espace. ST_equals(geometry, geometry): Renvoie vrai si les deux géométries représentent la meme géométrie. La direction n'est pas prise en compte. ST_overlaps(geometryA,geometryB) : Renvoie vrai si les deux géométries: partagent des points de l'espace, sont de même dimension, mais ne sont pas complètement contenues l'une dans l'autre.

Exemple de fonctions spatiales select st_touches(p.geometry, p2.geometry) from pays p, pays p2 where p.country='France' and p2.country='Spain'; => True select st_overlaps(p.geometry, p2.geometry) => False select st_intersects(p.geometry, p2.geometry) => True ?

Exemple de fonctions spatiales select st_intersects(p.geometry, p2.geometry) from pays p, pays p2 where p.country='France' and p2.country='Spain’;

Opérateurs ou fonctions ? Les opérateurs fonctionnent à partir des rectangles englobants minimums des géométries (bounding box) Les fonctions utilisent elles la géométrie exacte. Les opérateurs mettent également à profit les index spatiaux basés sur les bbox. Les nouvelles fonctions st_* utilisent également les index spatiaux, s'ils existent (depuis version 1.3.x)

Opérateurs ou fonctions, en exemples SELECT nom_dept FROM departement WHERE the_geom && (SELECT the_geom FROM departement WHERE nom_dept='SAVOIE'); WHERE ST_Intersects(the_geom, (SELECT the_geom FROM departement WHERE nom_dept='SAVOIE'));

Requête mixtes, opérateurs ET fonctions SELECT nom_dept FROM departement WHERE ST_intersects(the_geom, (SELECT the_geom FROM departement WHERE nom_dept='SAVOIE')) AND the_geom && (SELECT the_geom FROM departement WHERE nom_dept='SAVOIE'); Utiliser EXPLAIN ANALYZE pour vérifier les différences de performance Depuis PostGIS 1.3, l'utilisation des index spatiaux est automatiques avec les fonctions. (opérateur && inutile)