Précédent   Forum du club des développeurs et IT Pro > Bases de données > Langage SQL
Langage SQL Forum d'entraide sur le langage SQL et sur les questions liées à la conception de schéma (DDL). Cours SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 26/10/2010, 15h44   #1
SQLpro
Rédacteur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 12 163
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 12 163
Points : 21 855
Points : 21 855
Par défaut ARTICLE : SQL et système d'information géographique (SIG)

Cet article fait la synthèse de l'état de l'art en matière de SIG sous SQL dans les SGBDR

Un système d’information géographique (SIG ou GIS en anglais pour geographical information system, aussi appelé SIRS pour système d’information à référence spatiale) est constitué de type de données et méthodes permettant d’établir des plans et des cartes pour traiter différents problèmes relatifs aux données spatiales et planaires. Les SIG sont aujourd'hui largement intégrés aux SGBDR et permettent des manipulations via des requêtes écrites en langage SQL.

Contenu :

0 - Introduction

1 - Type SQL pour les objets spatiaux

2 - Types des données spatiales

3 - Représentation logique des données géométriques

4 - Identificateur de référence spatiale (SRID)

5 - Expression des valeurs

6 - Méthodes
6.1 - Constructeur de types
6.2 - Transtypage des types géométriques
6.3 - Méthodes communes
6.4 - Méthodes testant les relations topologiques entre les objets
6.5 - Méthodes DE-9IM et autour de...
6.6 - Méthodes de calcul
6.7 - Méthodes intergéométriques
6.8 - Méthodes spécifiques


7 - Et quoi encore ?

CONCLUSION : comparaison PostGreSQL / PostGIS vs SQL Server 2008

http://blog.developpez.com/sqlpro/p9...n-geographiqu/

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 26/10/2010, 18h21   #2
elsuket
Modérateur

 
Avatar de elsuket
 
Homme Nicolas Souquet
Administrateur de base de données
Inscription : janvier 2005
Messages : 4 968
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Souquet
Âge : 31
Localisation : Thaïlande

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : janvier 2005
Messages : 4 968
Points : 10 096
Points : 10 096
Ma souris en fume déjà

Merci !
__________________
"Les mots sont des mots, les explications des explications, les promesses des promesses; mais seule la performance est tangible." Harold Geneen.
Blog | Profil | MVP SQL Server | Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012
elsuket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2010, 22h05   #3
calagan99
Modérateur
 
Homme
Chef de projet NTIC
Inscription : avril 2007
Messages : 1 891
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 29
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Chef de projet NTIC
Secteur : Service public

Informations forums :
Inscription : avril 2007
Messages : 1 891
Points : 3 060
Points : 3 060
Merci beaucoup pour cet article.
Je pensais justement aujourd'hui de cette nouveauté dans MS SQL 2008 en imaginant qu'elle pourrait me permettre de résoudre un problème auquel je suis confronté en ce moment.
Désormais, j'ai une bonne idée des possibilités offertes par cette fonctionnalité.
calagan99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2010, 09h34   #4
SQLpro
Rédacteur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 12 163
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 12 163
Points : 21 855
Points : 21 855
En particulier dans SQL Server et à travers son outil SQL Server Management Studio, vous avez un onglet supplémentaire pour montrer visuellement les résultat des requêtes SIG GEOMETRY (planaire) ou GEOGRAPHY c'est à dire avec les projections...
1) équirectangulaire :
http://www.developpez.net/forums/att...1&d=1288164801
2) Mercator :
http://www.developpez.net/forums/att...1&d=1288164834
3) Robinson :
http://www.developpez.net/forums/att...1&d=1288164854
4) Bonne :
http://www.developpez.net/forums/att...1&d=1288164878

A +
Images attachées
Type de fichier : gif SSMS_SIG_SQL_Server_1_equirectangulaire.gif (193,3 Ko, 31 affichages)
Type de fichier : gif SSMS_SIG_SQL_Server_2_mercator.gif (203,1 Ko, 15 affichages)
Type de fichier : gif SSMS_SIG_SQL_Server_3_robinson.gif (219,1 Ko, 12 affichages)
Type de fichier : gif SSMS_SIG_SQL_Server_4_bonne.gif (220,7 Ko, 13 affichages)
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2010, 18h54   #5
peufeu
Membre régulier
 
Inscription : octobre 2009
Messages : 70
Détails du profil
Informations forums :
Inscription : octobre 2009
Messages : 70
Points : 77
Points : 77
Pour ce qui est de postgres, il faudrait aussi parler des index de type gist qui permettent de faire des recherches très rapides sur les formes géométriques, par exemple trouver les lignes de la table dont les coordonnées géographiques sont contenues dans une box...

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
 
CREATE TABLE test_geo AS SELECT BOX( POINT( x,y ), POINT( x,y ) ) AS coords FROM (SELECT random() x, random() y FROM generate_series( 1,1000000 ) s ) foo;
VACUUM test_geo;
 
EXPLAIN ANALYZE SELECT count(*) FROM test_geo WHERE coords && '((0.5,0.5),(0.51,0.51))'::BOX;
                                                    QUERY PLAN                                                    
------------------------------------------------------------------------------------------------------------------
 Aggregate  (cost=19865.60..19865.61 rows=1 width=0) (actual time=136.094..136.095 rows=1 loops=1)
   ->  Seq Scan ON test_geo  (cost=0.00..19853.10 rows=5000 width=0) (actual time=0.393..136.064 rows=98 loops=1)
         Filter: (coords && '(0.51,0.51),(0.5,0.5)'::box)
 Total runtime: 136.134 ms
(4 lignes)
CREATE INDEX test_geo_coords ON test_geo USING gist( coords );
 
EXPLAIN ANALYZE SELECT count(*) FROM test_geo WHERE coords && '((0.5,0.5),(0.51,0.51))'::BOX;
                                                             QUERY PLAN                                                             
------------------------------------------------------------------------------------------------------------------------------------
 Aggregate  (cost=7242.06..7242.07 rows=1 width=0) (actual time=0.522..0.522 rows=1 loops=1)
   ->  Bitmap Heap Scan ON test_geo  (cost=215.35..7229.55 rows=5000 width=0) (actual time=0.327..0.508 rows=98 loops=1)
         Recheck Cond: (coords && '(0.51,0.51),(0.5,0.5)'::box)
         ->  Bitmap INDEX Scan ON test_geo_coords  (cost=0.00..214.10 rows=5000 width=0) (actual time=0.307..0.307 rows=98 loops=1)
               INDEX Cond: (coords && '(0.51,0.51),(0.5,0.5)'::box)
 Total runtime: 0.564 ms
peufeu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/10/2010, 23h23   #6
SQLpro
Rédacteur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 12 163
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 12 163
Points : 21 855
Points : 21 855
Bien évidemment cela existe aussi sous SQL Server avec quelques raffinements. Voici la syntaxe (en dehors des paramètres généraux des index) de la création d'un index spatial pour une colonne GEOMETRY ou GEOGRAPHY dans SQL Server 2008 :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
CREATE Spatial INDEX 
CREATE SPATIAL INDEX index_name 
  ON <object> ( spatial_column_name )
    {
       [ USING <geometry_grid_tessellation> ]
          WITH ( <bounding_box> 
                [ [,] <tesselation_parameters> [ ,...n ] ] 
                [ [,] <spatial_index_option> [ ,...n ] ] ) 
     | [ USING <geography_grid_tessellation> ] 
          [ WITH ( [ <tesselation_parameters> [ ,...n ] ]
                   [ [,] <spatial_index_option> [ ,...n ] ] ) ]
    } 
  [ ON { filegroup_name | "default" } ]
; 
 
<object> ::=
    [ database_name. [ schema_name ] . | schema_name. ] 
                table_name
 
<geometry_grid_tessellation> ::=
{ GEOMETRY_GRID }
 
<bounding_box> ::=
BOUNDING_BOX = ( {
        xmin, ymin, xmax, ymax 
   | <named_bb_coordinate>, <named_bb_coordinate>, <named_bb_coordinate>, <named_bb_coordinate> 
  } )
 
<named_bb_coordinate> ::= { XMIN = xmin | YMIN = ymin | XMAX = xmax | YMAX=ymax }
 
<tesselation_parameters> ::=
{ 
    GRIDS = ( { <grid_density> [ ,...n ] | <density>, <density>, <density>, <density>  } ) 
  | CELLS_PER_OBJECT = n 
}
 
<grid_density> ::=
{
     LEVEL_1 = <density> 
  |  LEVEL_2 = <density> 
  |  LEVEL_3 = <density> 
  |  LEVEL_4 = <density> 
}
 
<density> ::= { LOW | MEDIUM | HIGH }
 
<geography_grid_tessellation> ::= 
{ GEOGRAPHY_GRID }
Les essais que j'ai pu mené sont que SQL Server est plus pointu en indexation sur un bon nombre de requêtes sargeable que ne l'est PotsGreSQL/PostGis. Mais ces essais n'ayant pas été fait avec une volumétrie suffisante, je ne ferais pas de papier sur le sujet.

Enfin, dans mon ouvrage, sur SQL (3e edition), je parle des techniques interne d'indexation notamment au niveau des tesselations et des courbes de Hilbert.

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/10/2010, 10h35   #7
zinzineti
Expert Confirmé
 
Homme Etienne ZINZINDOHOUE
Chargé de Développement et d'Analyse de données
Inscription : mars 2010
Messages : 1 278
Détails du profil
Informations personnelles :
Nom : Homme Etienne ZINZINDOHOUE
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Chargé de Développement et d'Analyse de données
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : mars 2010
Messages : 1 278
Points : 2 814
Points : 2 814
Envoyer un message via Yahoo à zinzineti
Il faut que je prenne quelques jours de congés pour bien lire cet article
J'ai déjà vu des démos sur le sujet, mais je pas encore eu l'occasion de pratiquer moi-même. En tout cas merci pour cet article.

A+
__________________
Etienne ZINZINDOHOUE
Billets-Articles
zinzineti est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h00.


 
 
 
 
Partenaires

Hébergement Web