SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
Systèmes d’Information
                              Géographique


                        Jean-Yves Antoine
                     Université François Rabelais de Tours
                       www.info.univ-tours.fr/~antoine




© J.Y. Antoine — 1
Systèmes d’Information
                                      Géographique


                         4. INTERROGATION DES SIG
                     requêtes en mode vectoriel et indexation




© J.Y. Antoine — 2
Sommaire

         • SIG : implémentation pour requêtes spatiales optimisées   4
         • Requêtes en mode vectoriel : cas d’école                  7
         • Requêtes attributaires : SQL                              9
         • Requêtes spatiales : SQL étendu                           11
         • Index spatiaux                                            16




© J.Y. Antoine — 3
SIG : implémentation
         Modélisation de l’information géogrphique (rappel)

                                                   Route
                                   1,n




                                                                                                        SEMANTIQUE
                      Eléments
                                                   #N°
                      1,1
                     Tronçon
                                                                                           Carrefour
                                  2,2                                                2,n
                     Km_deb                            Extrémité
                                                                                           #N°
                     Km_fin
                                                                                            1,1
                      1,1
                                                                                           Représenté
                     Représenté




                                                                                                        GEOGRAPHIE
                                         Segment                                              par
                        par                                 1,1
                                         #Id_arc                    Début                   1,1
                                         Fct_Arc              1,1                          Point
                                                                                    0,n
                      1,1
                                                                     Fin                   #Id_point
                                          1,1
                     Polyligne                                                0,n
                                                                                           Longitude
                                                           0,n
                                  1,2
                                         Eléments                                          Latitude
                                                                                    0,n
                                                                     Point
                     #Id_ligne
                                         Orientation                d’appui
                     Dte / Gche



           En théorie – MCD représentable dans un SGBD relationnel
           En pratique – Peu adapté à la représentation de la partie géographique :
           • Pas d’optimisation pour l’accès à l’information spatiale
           • Requêtes spatiales de trop bas niveau
© J.Y. Antoine — 4
SIG : implémentation
         SIG : couplage SBGD-R / SI spatial
         -      SGBD-R : information sémantique + lien vers l’information géographique
         -      SI spatial : information géométrique
                                                                          Route

         Requêtes dans les SIG : extension de SQL                         #N°

                                                                           1,n
         -      types abstraits de données (point, ligne, zone ….)
                                                                            Eléments
         -      Fonctions d’interrogation spatiales                        1,1
                                                                          Tronçon
                Troncon
                                                                          Km_deb
                {                                                         Km_fin
                   num_troncon :           integer,
                                                                           1,1
                   num_route :             integer,
                   km deb :                integer,                        Représenté
                   km fin :                integer,                           par
                   obj_geom :              ligne
                }                                                          1,1
         MapInfo
                                                                          Polyligne
             obj
                                                                          #Id_ligne
                                                                          Dte / Gche
                     CREATE TABLE Troncon …

© J.Y. Antoine — 5
SIG : implémentation
         SQL étendu : exemples de fonctions spatiales
                                                               MapInfo
                                                            Professional
                                                                        

            PointInZone(zone,point) → booleen            Within
            LineInZone(zone,zone) → booleen              Contains {Entire}
            ZoneInZone(zone,zone) → booleen
            IntersectZone(zone,zone) → booleen           Intersect
            IntersectLineZone(zone,zone) → booleen
            Adjacent(zone,zone) → booleen
            Surface(zone) → real                        Area
            Perimeter(zone) → real                      Perimeter
            Intersection(zone, zone) → zone
            Centroid(zone) → zone                       Centroid


            PointInLine(zone,point) → booleen
            IntersectLineZone(zone,zone) → booleen
            Length(zone) → real


            Distance(point,point) → real                Distance

© J.Y. Antoine — 6
Requêtes en mode vectoriel : cas d’école

                                                        Id    Long                   Trafic    obj
                                                                        Type
                                                  obj
           Id_parcelle   Proprietaire   Surface
                                                        N14   173       Nationale    4 500         *
                                                   *
           041_345       Ant_1_66_12    483



          Cadastre
                                                        Voirie




           Id        Type     Superficice   obj          Id         Nom     Dep Pop           obj
           041_26    Mairie   483             *          41000      Blois   41      51500      *


         Bâti                                            Communes



© J.Y. Antoine — 7
Requêtes en mode vectoriel : cas d’école

         Exemples de requêtes




                                                                               AT
                                                                               RE IB
          1.         Quelle est la longueur de la nationale 14 ?




                                                                                  TR
                                                                                  Q UT
                                                                                   UA
                                                                                     ET IR
          2.         Quelle est le trafic moyen des routes départementales ?




                                                                                       ES ES
          3.         Quelle est la ville la plus peuplée du Loir-et-Cher ?
          4.         Quelle est la taille moyenne des villes dans chaque département ?



         5.          Quelles sont les routes qui croisent la nationale 14 ?




                                                                                  RE A
         6.          Quelles communes disposent encore d’une église ?




                                                                                    SP
                                                                                    Q TI A
                                                                                      UL
         7.          Quelles sont les communes traversées par la nationale 14 ?




                                                                                       ET E
                                                                                         ES S
         8.          Combien y-a-t-il d’écoles dans la ville de Blois ?
         9.          Combien y-a-t-il de propriétés cadastrales à Blois ?



© J.Y. Antoine — 8
Requêtes attributaires : SQL
         Requêtes attributaires unitables              Id    Long                  Trafic   obj
                                                                       Type

                                                       N14   173       Nationale   4 500     *



                                                              Voirie




         Quelle est la longueur de la nationale 14 ?

                     SELECT   Long
                     FROM     Voirie
                     WHERE    Id= ‘N14’;


          Quel est le trafic moyen des routes départementales ?

                              AVG(Trafic)
                     SELECT
                              Voirie
                     FROM
                              Type = ‘Departementale’;
                     WHERE

© J.Y. Antoine — 9
Requêtes attributaires : SQL
         Jointures et fonctions d’agrégat                        Id      Nom     Dep   Pop     obj
                                                                 41000   Blois   41    51500    *


                                                                 Communes


         Quelle est la ville la plus peuplée du Loir-et-Cher ?
                                 Nom
                      SELECT
                                 Communes
                      FROM
                                 Pop IN (
                      WHERE
                                  SELECT Max(Pop)
                                  FROM Communes);

         Quelle est la taille moyenne des villes dans chaque département ?

                                 Dep, AVG(Pop)
                      SELECT
                                 Communes
                      FROM
                                 Pop > 3000
                      WHERE
                      GROUP BY   Dep;

© J.Y. Antoine — 10
Requêtes spatiales : SQL étendu
         Opérateurs spatiaux                               Id    Long               Trafic   obj
                                                                        Type
                                                                        Nationale   4 500     *
                                                           N14   173



                                                            Voirie




         Quelles sont les routes qui croisent la nationale 14?

           SELECT     Id
           FROM       Voirie
           WHER       obj Intersect(
                       SELECT obj
                       FROM Voirie
                       WHERE Id = quot;N14quot;)
                             );




© J.Y. Antoine — 11
Requêtes spatiales : SQL étendu
         Jointure spatiale                                         Id        Type       Superficice     obj

                                                                   041_26    Mairie     483              *
         Quelles communes possèdent une église ?
                                                                   Bati
           SELECT Nom
           FROM Communes
           WHERE obj Contains(
                    SELECT obj                                          Id      Nom      Dep    Pop     obj
                    FROM Batiments
                                                                        41000   Blois    41     51500     *
                    WHERE Type = quot;Eglise« )
                                    );
                                                                        Communes
           SELECT Communes.Nom
           FROM Communes, Bati
           WHERE Communes.obj Contains Bati.obj
                  Bati.Type = quot;Eglise« ;
           AND

           Quelles sont les communes traversées par la nationale 14 ?
                Requête semblable à la précédente : la jointure se fait ici avec INTERSECT

© J.Y. Antoine — 12
Requêtes spatiales : SQL étendu
         Jointure spatiale et fonction d’agrégats

              Id      Nom     Dep   Pop     obj    Id       Type     Superficice   obj
              41000   Blois   41    51500    *     041_26   Mairie   483            *


              Communes                             Bati




           Combien y-a-t-il d’écoles dans la ville de Blois ?

            SELECT Count(Bati.obj)
            FROM Communes, Bati
            WHERE Communes.obj Contains Bati.obj
                   Bati.Type = quot;Eglise«
            AND
                   Communes.Nom = quot;Bloisquot; ;
            AND

           Combien y-a-t-il de propriétés cadastrales dans la ville de Blois ?
                Requête semblable à la précédente avec les tables Cadastre et Communes

© J.Y. Antoine — 13
Requêteurs SIG
         Requêteur MapInfo Professional (v. 8.0)
                                       


                                                    opérateurs
                                                    spatiaux




                                                                 fonctions
                                                                 spatiales




© J.Y. Antoine — 14
Requêteurs SIG
         Requêteur ArcGIS




             Requêteur attributaire
                                Requêteur spatial
© J.Y. Antoine — 15
Index spatiaux
         Optimisation de requêtes                                   Id      Nom     Dep   Pop     obj

                                                                    41000   Blois   41    51500    *
           Problème – Temps d’exécution d’une requête

           Exemples
                                                                    Communes

           • Liste des villes de plus de 10 000 habitants

                      Index classique (SGBD-R) sur l’attribut Pop

           • Pointé sur une zone dans une couche donnée
           • Sélection de zone dans un rectangle donné

                Problème : Comparer les coordonnées de la sélection avec celles de tous
                les objets de la couche : nombreux tests à faire et test unitaire
                d’appartenance très coûteux en temps de calcul

                      Index spatial



© J.Y. Antoine — 16
Index spatiaux
         Principes
         Idée – Partitionner l’espace pour limiter la recherche aux objets d’une sous-zone
         considérée index spatial défini sur ces zones

                                                                    α        γ
                                                                    α,γ
                          α
                                    γ
                                                                    β,γ              δ
                                                                             δ
                                                                             δ,γ




                                        δ
                      β



            Index spatial – Liste des objets en intersection (inclus, coupant, ou contenant)
            avec chaque zone. Plus précisément, indexation de leur rectangle englobant
            minimal (rem).

© J.Y. Antoine — 17
Index spatiaux
         Sélection d’objets avec indexation : cas du pointage
             1.       Détermination de la zone concernée par le pointage
             2.       L’index donne les rem correspondant
             3.       Recherche des rem englobant bien le point désigné
             4.       Test d’appartenance du point à l’objet du rem.

                                           γ
                             α                                     α,γ     γ


                                                                                 δ
                                                                   β,γ     δ,γ
                                               δ
                         β


         Principales techniques d’indexation spatiale
           Seule la constitution des zones d’indexation varient d’une technique à l’autre
           • Structures en grille (grid index)
           • Arbres quaternaires (Quadtrees)
           • Arbres R (R trees)
© J.Y. Antoine — 18
Index spatiaux
         Index à grille régulière                                 [Bentley & Friedman. 1979]

         Structure d’indexation la plus simple : on partitionne une fois pour toute
         l’espace par une grille régulière.
         Implémentation – Coordonnées grille + tableau 2D de pointeurs vers des
         pages mémoires décrivant tous les rem de chaque zone de la grille



                                           α,γ

                                                 β,γ



         Ajout d’un objet – Ajout dans les pages des zones concernées. Si page déjà
         pleine, page(s) de débordement
         Pointage – Accès à l’index aisé à partir des coordonnées du point désigné

         Efficacité – Puissant si répartition homogène des objets et grille adaptée à la
         taille des pages. Bien moins performant sinon
© J.Y. Antoine — 19
Index spatiaux
         Index à grille adaptative                                      [Nivergelt et. al. 1994]

         Idée – Redécoupage dynamique de la grille si trop grande densité d’objets
         dans une zone donnée
         Exemple : index à grille adaptative avec un maximum de 3 éléments par zone




                                  2
                          1                                 1,2      2
                                                                     2,5
                              5
                                                                                4
                                                            2,3      2,4
                                                                     2,4,5

                                      4
                      3
                                                                     4,6


                              6

         Pointage – Aussi aisé que pour une grille fixe (découpage à instant t connu)

© J.Y. Antoine — 20
Index spatiaux
         Index à grille adaptative                                           [Nivergelt et. al. 1994]

         Implémentation – Index composé de trois structures de données :
         • Tableau Grille pointant sur les pages de zone comme pour une grille régulière
         • Vecteurs Tx et Ty donnant les abcisses et ordonnées de découpage.

         Exemple : index à grille adaptative avec un maximum de 3 éléments par zone
                                                                                              Pages
                                                     Ty
   y2                                                         Grille                           1,2      P1
                                                      y2
                                                                 P1         P2
                                   2
                      1                                                                        22,5
                                                                                                2,5     P2
                                                      y1
                               5                                 P3         P41
                                                                            P4
 y1
                                                                                               2,3      P3
                                                      y3
                                                      y0
                                                                 P3         P42
  y3
                                                                                                2,4,5
                                                                                               2,4,5
                                                                                               2,4
                                       4
              3                                                                                         P4 1
                                                      y0

                                                            x0         x1         x2
                                                                                                4,6
                                                                                                        P42
                               6
                                                                      Tx
  y0 x0                                    x2
                          x1
© J.Y. Antoine — 21
Index spatiaux
         Index à arbre quaternaire (quadtree)                         [Samet 1990]

         Idée – Découpage dynamique : toute zone saturée est redivisée en 4
         Implémentation – Découpage décrit par une structure d’arbre

         Exemple : index quadtree avec un maximum de 3 éléments par zone


                                                                             Quadtree
                                2
                      1   5

                                          6


                               4
                  3



                                              Pages   1,3,5
                                                      1,3     2,4,5
                                                              2,4      4        3



© J.Y. Antoine — 22
Index spatiaux
         Index à arbre quaternaire (quadtree)                        [Samet 1990]

         Idée – Découpage dynamique : toute zone saturée est redivisée en 4
         Implémentation – Découpage décrit par une structure d’arbre

         Exemple : index quadtree avec un maximum de 3 éléments par zone


                                                                            Quadtree
                                2
                      1   5

                                          6


                               4
                  3




                                                 1,3,5   2,5     4    3     2,6     4,6   2,4


© J.Y. Antoine — 23
Index spatiaux
         Index à arbre quaternaire (quadtree)                       [Samet 1990]

           Pointage – Détermination de la zone de pointage par parcours de l’arbre (un
           seul chemin jusqu’à la bonne feuille)




           Intérêt et limite – Assez bien adapté aux distributions non homogènes
           d’objets. Peu cependant conduire à des arbres déséquilibrés.

                Arbre équilibré : index R



© J.Y. Antoine — 24
Index spatiaux
         Index à arbre R (R tree)                                   [Guttman 1984]

         Principes – Index dynamique avec arbre équilibré
         1. Partition incomplète de l’espace : simples zones englobant tous les objets
         2. Organisation hiérarchique des zones suivant un arbre équilibré
                                                       Chaque zone est le rem des
                                                    éléments (rem ou objet) englobées
                                       2
                      1
                          5
                                            6



                      3
                                  4
                7
                                                             3,7     1,2,5   4,6


         Sélection (pointé) – Plusieurs parcours à étudier dans l’arbre R
© J.Y. Antoine — 25
Index spatiaux
         Index à arbre R (R tree)                                                 [Guttman 1984]

         Arbre R – Arbre équilibré de degré n fixé avec :
         • Le nœud racine possède entre 2 et n fils
         • Tout nœud interne a entre m et n fils, avec m entier inférieur à n/2.

         Construction dynamique de l’arbre R – Ajout d’un nouvel élément à l’index
                                non                                                  oui
                                          L’objet est-il inclus dans une zone ?

            Intégration à la zone dont l’extension
               du rem est minimale : rem étendue                              Intégration à la zone


                                non                                                  oui
                                               La zone est-elle saturée ?


                                                      Réorganisation de l’arbre R : éclatement de la
                Ajout de la référence à
                                                          feuille en plusieurs feuilles. Propagation
                 l’élément dans la page
                                                                éventuelle aux nœuds parents
                    d’index concernée
                                                                   analogue arbre B : cf. cours BD Avancées
© J.Y. Antoine — 26
Index spatiaux
         Index à arbre R (R tree)                                 [Guttman 1984]

         Construction dynamique de l’arbre R – Ajout d’un nouvel élément à l’index
         Exemple : arbre R de degré 3



                          10
                                            9
                                        2
                      1
                               5
                                            6


                                                     [3,7,8]   [1,2,5]             [4,6]
                                                     [3,7]                         [4,6,9]
                 8
                          3

                7                  4




© J.Y. Antoine — 27
Index spatiaux
         Index à arbre R (R tree)                                  [Guttman 1984]

         Construction dynamique de l’arbre R
         Exemple : arbre R de degré 3



                          10
                                                [3,7,8]   [1,10]        [2,5]       [4,6,9]
                                            9
                                        2
                      1
                               5
                                            6


                 8
                          3

                7                  4




© J.Y. Antoine — 28
Index spatiaux
         Index à arbre R (R tree)                                  [Guttman 1984]

         Construction dynamique de l’arbre R
         Exemple : arbre R de degré 3



                          10
                                                [3,7,8]   [1,10]         [2,5]      [4,6,9]
                                            9
                                        2
                      1
                               5
                                            6


                 8
                          3

                7                  4


                                                [3,7,8]   [1,10]         [2,5]      [4,6,9]

© J.Y. Antoine — 29
Index spatiaux
         Index à arbre R (R tree)                                     [Guttman 1984]

         Construction dynamique de l’arbre R – Suppression d’un élément à l’index

           Idem arbre B : fusion éventuelle si une zone a moins de m éléments.

         Construction statique de l’arbre R
         Lors de la création d’une BD, il est préférable de construire l’index avec une
         vision globale plutôt que de s’en remettre à un ajout des objets un à un.
         Stratégies en envisageables :
           • Minimiser le nombre des recouvrements de zone à un niveau de l’arbre, pour
             limiter les parcours multiples ensuite,
           • Minimiser la surface totale des zones, pour éviter de couvrir des zones sans
             objets
           • Maximiser le nombre de fils à chaque nœud, afin de limiter la profondeur du
             graphe et accélérer son parcours.
           •…

© J.Y. Antoine — 30
Index spatiaux
         Comparaison des différents index

                                 Grille          Grille      Arbre          Arbre R
                                statique       dynamique   quaternaire

             Complexité
                                   7              7            7
            d’implantation

              Tolérance à
                                                                              7
             la distribution
               des objets
             Performance
                                   7              7            7              7
              sélection


                Situation      Distributions               Compromis      Performances
               d’utilisation   homogènes                   simplicité /     en toutes
                                                                            situations
                                                            efficacité



© J.Y. Antoine — 31
Bibliographie

         Ouvrages de référence

            •         Scholl M., Voisard A., Peloux J.P., Raynal L., Rigaux Ph. (1996) SGBD
                      Géographiques : spécificité. Int. Thomson Publ., Paris, France. Chap. 4




         Travaux cités

            •         Bentley J.L., Friedman J.H. (1979) Data structures for range searching. ACM
                      Computing Surveys. 11(4).
            •         Guttman A. (1984) R-trees : a dynamic index structure for spatial searching. Proc.
                      ACM SIGMOD Int. Symposium on the Management of Data. Pp. 45-67.
            •         Nievergelt J., Hinterger H., Sevcik K.C. (1994) The grid file : an adaptable symetric
                      multikey file structure. ACM Trans. on Databases Systems. 9(1). pp. 38-71.
            •         Samet H. (1990) Application of spatial data structure. Addison-Wesley Publ. 9(1).



© J.Y. Antoine — 32

Contenu connexe

En vedette

Passive sentences (intermediate)
Passive sentences (intermediate)Passive sentences (intermediate)
Passive sentences (intermediate)pauleta97
 
Bli lyst bi - informasjonsmøter
Bli lyst   bi - informasjonsmøterBli lyst   bi - informasjonsmøter
Bli lyst bi - informasjonsmøterUnni Myklevoll
 
Refleksjon over egen læring rett
Refleksjon over egen læring rettRefleksjon over egen læring rett
Refleksjon over egen læring rettLine Larsen
 
Untitled presentation[1]
Untitled presentation[1]Untitled presentation[1]
Untitled presentation[1]dinokitty_69
 
Frenchpowerpoint
FrenchpowerpointFrenchpowerpoint
FrenchpowerpointUserlee
 
Blog tv3. el convidat
Blog tv3. el convidatBlog tv3. el convidat
Blog tv3. el convidatLaraGJ
 
Para la nena q mas amo en este mundo... TANIA
Para la nena q mas amo en este mundo... TANIAPara la nena q mas amo en este mundo... TANIA
Para la nena q mas amo en este mundo... TANIAtonerzito
 
Process Servers: Don't Sell on Price
Process Servers: Don't Sell on PriceProcess Servers: Don't Sell on Price
Process Servers: Don't Sell on PriceLawgical
 

En vedette (10)

Passive sentences (intermediate)
Passive sentences (intermediate)Passive sentences (intermediate)
Passive sentences (intermediate)
 
Bli lyst bi - informasjonsmøter
Bli lyst   bi - informasjonsmøterBli lyst   bi - informasjonsmøter
Bli lyst bi - informasjonsmøter
 
Refleksjon over egen læring rett
Refleksjon over egen læring rettRefleksjon over egen læring rett
Refleksjon over egen læring rett
 
Untitled presentation[1]
Untitled presentation[1]Untitled presentation[1]
Untitled presentation[1]
 
Frenchpowerpoint
FrenchpowerpointFrenchpowerpoint
Frenchpowerpoint
 
Blog tv3. el convidat
Blog tv3. el convidatBlog tv3. el convidat
Blog tv3. el convidat
 
Ioa ui
Ioa uiIoa ui
Ioa ui
 
Mantis
MantisMantis
Mantis
 
Para la nena q mas amo en este mundo... TANIA
Para la nena q mas amo en este mundo... TANIAPara la nena q mas amo en este mundo... TANIA
Para la nena q mas amo en este mundo... TANIA
 
Process Servers: Don't Sell on Price
Process Servers: Don't Sell on PriceProcess Servers: Don't Sell on Price
Process Servers: Don't Sell on Price
 

Sig Cm Iv

  • 1. Systèmes d’Information Géographique Jean-Yves Antoine Université François Rabelais de Tours www.info.univ-tours.fr/~antoine © J.Y. Antoine — 1
  • 2. Systèmes d’Information Géographique 4. INTERROGATION DES SIG requêtes en mode vectoriel et indexation © J.Y. Antoine — 2
  • 3. Sommaire • SIG : implémentation pour requêtes spatiales optimisées 4 • Requêtes en mode vectoriel : cas d’école 7 • Requêtes attributaires : SQL 9 • Requêtes spatiales : SQL étendu 11 • Index spatiaux 16 © J.Y. Antoine — 3
  • 4. SIG : implémentation Modélisation de l’information géogrphique (rappel) Route 1,n SEMANTIQUE Eléments #N° 1,1 Tronçon Carrefour 2,2 2,n Km_deb Extrémité #N° Km_fin 1,1 1,1 Représenté Représenté GEOGRAPHIE Segment par par 1,1 #Id_arc Début 1,1 Fct_Arc 1,1 Point 0,n 1,1 Fin #Id_point 1,1 Polyligne 0,n Longitude 0,n 1,2 Eléments Latitude 0,n Point #Id_ligne Orientation d’appui Dte / Gche En théorie – MCD représentable dans un SGBD relationnel En pratique – Peu adapté à la représentation de la partie géographique : • Pas d’optimisation pour l’accès à l’information spatiale • Requêtes spatiales de trop bas niveau © J.Y. Antoine — 4
  • 5. SIG : implémentation SIG : couplage SBGD-R / SI spatial - SGBD-R : information sémantique + lien vers l’information géographique - SI spatial : information géométrique Route Requêtes dans les SIG : extension de SQL #N° 1,n - types abstraits de données (point, ligne, zone ….) Eléments - Fonctions d’interrogation spatiales 1,1 Tronçon Troncon Km_deb { Km_fin num_troncon : integer, 1,1 num_route : integer, km deb : integer, Représenté km fin : integer, par obj_geom : ligne } 1,1 MapInfo Polyligne obj #Id_ligne Dte / Gche CREATE TABLE Troncon … © J.Y. Antoine — 5
  • 6. SIG : implémentation SQL étendu : exemples de fonctions spatiales MapInfo Professional  PointInZone(zone,point) → booleen Within LineInZone(zone,zone) → booleen Contains {Entire} ZoneInZone(zone,zone) → booleen IntersectZone(zone,zone) → booleen Intersect IntersectLineZone(zone,zone) → booleen Adjacent(zone,zone) → booleen Surface(zone) → real Area Perimeter(zone) → real Perimeter Intersection(zone, zone) → zone Centroid(zone) → zone Centroid PointInLine(zone,point) → booleen IntersectLineZone(zone,zone) → booleen Length(zone) → real Distance(point,point) → real Distance © J.Y. Antoine — 6
  • 7. Requêtes en mode vectoriel : cas d’école Id Long Trafic obj Type obj Id_parcelle Proprietaire Surface N14 173 Nationale 4 500 * * 041_345 Ant_1_66_12 483 Cadastre Voirie Id Type Superficice obj Id Nom Dep Pop obj 041_26 Mairie 483 * 41000 Blois 41 51500 * Bâti Communes © J.Y. Antoine — 7
  • 8. Requêtes en mode vectoriel : cas d’école Exemples de requêtes AT RE IB 1. Quelle est la longueur de la nationale 14 ? TR Q UT UA ET IR 2. Quelle est le trafic moyen des routes départementales ? ES ES 3. Quelle est la ville la plus peuplée du Loir-et-Cher ? 4. Quelle est la taille moyenne des villes dans chaque département ? 5. Quelles sont les routes qui croisent la nationale 14 ? RE A 6. Quelles communes disposent encore d’une église ? SP Q TI A UL 7. Quelles sont les communes traversées par la nationale 14 ? ET E ES S 8. Combien y-a-t-il d’écoles dans la ville de Blois ? 9. Combien y-a-t-il de propriétés cadastrales à Blois ? © J.Y. Antoine — 8
  • 9. Requêtes attributaires : SQL Requêtes attributaires unitables Id Long Trafic obj Type N14 173 Nationale 4 500 * Voirie Quelle est la longueur de la nationale 14 ? SELECT Long FROM Voirie WHERE Id= ‘N14’; Quel est le trafic moyen des routes départementales ? AVG(Trafic) SELECT Voirie FROM Type = ‘Departementale’; WHERE © J.Y. Antoine — 9
  • 10. Requêtes attributaires : SQL Jointures et fonctions d’agrégat Id Nom Dep Pop obj 41000 Blois 41 51500 * Communes Quelle est la ville la plus peuplée du Loir-et-Cher ? Nom SELECT Communes FROM Pop IN ( WHERE SELECT Max(Pop) FROM Communes); Quelle est la taille moyenne des villes dans chaque département ? Dep, AVG(Pop) SELECT Communes FROM Pop > 3000 WHERE GROUP BY Dep; © J.Y. Antoine — 10
  • 11. Requêtes spatiales : SQL étendu Opérateurs spatiaux Id Long Trafic obj Type Nationale 4 500 * N14 173 Voirie Quelles sont les routes qui croisent la nationale 14? SELECT Id FROM Voirie WHER obj Intersect( SELECT obj FROM Voirie WHERE Id = quot;N14quot;) ); © J.Y. Antoine — 11
  • 12. Requêtes spatiales : SQL étendu Jointure spatiale Id Type Superficice obj 041_26 Mairie 483 * Quelles communes possèdent une église ? Bati SELECT Nom FROM Communes WHERE obj Contains( SELECT obj Id Nom Dep Pop obj FROM Batiments 41000 Blois 41 51500 * WHERE Type = quot;Eglise« ) ); Communes SELECT Communes.Nom FROM Communes, Bati WHERE Communes.obj Contains Bati.obj Bati.Type = quot;Eglise« ; AND Quelles sont les communes traversées par la nationale 14 ? Requête semblable à la précédente : la jointure se fait ici avec INTERSECT © J.Y. Antoine — 12
  • 13. Requêtes spatiales : SQL étendu Jointure spatiale et fonction d’agrégats Id Nom Dep Pop obj Id Type Superficice obj 41000 Blois 41 51500 * 041_26 Mairie 483 * Communes Bati Combien y-a-t-il d’écoles dans la ville de Blois ? SELECT Count(Bati.obj) FROM Communes, Bati WHERE Communes.obj Contains Bati.obj Bati.Type = quot;Eglise« AND Communes.Nom = quot;Bloisquot; ; AND Combien y-a-t-il de propriétés cadastrales dans la ville de Blois ? Requête semblable à la précédente avec les tables Cadastre et Communes © J.Y. Antoine — 13
  • 14. Requêteurs SIG Requêteur MapInfo Professional (v. 8.0)  opérateurs spatiaux fonctions spatiales © J.Y. Antoine — 14
  • 15. Requêteurs SIG Requêteur ArcGIS Requêteur attributaire Requêteur spatial © J.Y. Antoine — 15
  • 16. Index spatiaux Optimisation de requêtes Id Nom Dep Pop obj 41000 Blois 41 51500 * Problème – Temps d’exécution d’une requête Exemples Communes • Liste des villes de plus de 10 000 habitants Index classique (SGBD-R) sur l’attribut Pop • Pointé sur une zone dans une couche donnée • Sélection de zone dans un rectangle donné Problème : Comparer les coordonnées de la sélection avec celles de tous les objets de la couche : nombreux tests à faire et test unitaire d’appartenance très coûteux en temps de calcul Index spatial © J.Y. Antoine — 16
  • 17. Index spatiaux Principes Idée – Partitionner l’espace pour limiter la recherche aux objets d’une sous-zone considérée index spatial défini sur ces zones α γ α,γ α γ β,γ δ δ δ,γ δ β Index spatial – Liste des objets en intersection (inclus, coupant, ou contenant) avec chaque zone. Plus précisément, indexation de leur rectangle englobant minimal (rem). © J.Y. Antoine — 17
  • 18. Index spatiaux Sélection d’objets avec indexation : cas du pointage 1. Détermination de la zone concernée par le pointage 2. L’index donne les rem correspondant 3. Recherche des rem englobant bien le point désigné 4. Test d’appartenance du point à l’objet du rem. γ α α,γ γ δ β,γ δ,γ δ β Principales techniques d’indexation spatiale Seule la constitution des zones d’indexation varient d’une technique à l’autre • Structures en grille (grid index) • Arbres quaternaires (Quadtrees) • Arbres R (R trees) © J.Y. Antoine — 18
  • 19. Index spatiaux Index à grille régulière [Bentley & Friedman. 1979] Structure d’indexation la plus simple : on partitionne une fois pour toute l’espace par une grille régulière. Implémentation – Coordonnées grille + tableau 2D de pointeurs vers des pages mémoires décrivant tous les rem de chaque zone de la grille α,γ β,γ Ajout d’un objet – Ajout dans les pages des zones concernées. Si page déjà pleine, page(s) de débordement Pointage – Accès à l’index aisé à partir des coordonnées du point désigné Efficacité – Puissant si répartition homogène des objets et grille adaptée à la taille des pages. Bien moins performant sinon © J.Y. Antoine — 19
  • 20. Index spatiaux Index à grille adaptative [Nivergelt et. al. 1994] Idée – Redécoupage dynamique de la grille si trop grande densité d’objets dans une zone donnée Exemple : index à grille adaptative avec un maximum de 3 éléments par zone 2 1 1,2 2 2,5 5 4 2,3 2,4 2,4,5 4 3 4,6 6 Pointage – Aussi aisé que pour une grille fixe (découpage à instant t connu) © J.Y. Antoine — 20
  • 21. Index spatiaux Index à grille adaptative [Nivergelt et. al. 1994] Implémentation – Index composé de trois structures de données : • Tableau Grille pointant sur les pages de zone comme pour une grille régulière • Vecteurs Tx et Ty donnant les abcisses et ordonnées de découpage. Exemple : index à grille adaptative avec un maximum de 3 éléments par zone Pages Ty y2 Grille 1,2 P1 y2 P1 P2 2 1 22,5 2,5 P2 y1 5 P3 P41 P4 y1 2,3 P3 y3 y0 P3 P42 y3 2,4,5 2,4,5 2,4 4 3 P4 1 y0 x0 x1 x2 4,6 P42 6 Tx y0 x0 x2 x1 © J.Y. Antoine — 21
  • 22. Index spatiaux Index à arbre quaternaire (quadtree) [Samet 1990] Idée – Découpage dynamique : toute zone saturée est redivisée en 4 Implémentation – Découpage décrit par une structure d’arbre Exemple : index quadtree avec un maximum de 3 éléments par zone Quadtree 2 1 5 6 4 3 Pages 1,3,5 1,3 2,4,5 2,4 4 3 © J.Y. Antoine — 22
  • 23. Index spatiaux Index à arbre quaternaire (quadtree) [Samet 1990] Idée – Découpage dynamique : toute zone saturée est redivisée en 4 Implémentation – Découpage décrit par une structure d’arbre Exemple : index quadtree avec un maximum de 3 éléments par zone Quadtree 2 1 5 6 4 3 1,3,5 2,5 4 3 2,6 4,6 2,4 © J.Y. Antoine — 23
  • 24. Index spatiaux Index à arbre quaternaire (quadtree) [Samet 1990] Pointage – Détermination de la zone de pointage par parcours de l’arbre (un seul chemin jusqu’à la bonne feuille) Intérêt et limite – Assez bien adapté aux distributions non homogènes d’objets. Peu cependant conduire à des arbres déséquilibrés. Arbre équilibré : index R © J.Y. Antoine — 24
  • 25. Index spatiaux Index à arbre R (R tree) [Guttman 1984] Principes – Index dynamique avec arbre équilibré 1. Partition incomplète de l’espace : simples zones englobant tous les objets 2. Organisation hiérarchique des zones suivant un arbre équilibré Chaque zone est le rem des éléments (rem ou objet) englobées 2 1 5 6 3 4 7 3,7 1,2,5 4,6 Sélection (pointé) – Plusieurs parcours à étudier dans l’arbre R © J.Y. Antoine — 25
  • 26. Index spatiaux Index à arbre R (R tree) [Guttman 1984] Arbre R – Arbre équilibré de degré n fixé avec : • Le nœud racine possède entre 2 et n fils • Tout nœud interne a entre m et n fils, avec m entier inférieur à n/2. Construction dynamique de l’arbre R – Ajout d’un nouvel élément à l’index non oui L’objet est-il inclus dans une zone ? Intégration à la zone dont l’extension du rem est minimale : rem étendue Intégration à la zone non oui La zone est-elle saturée ? Réorganisation de l’arbre R : éclatement de la Ajout de la référence à feuille en plusieurs feuilles. Propagation l’élément dans la page éventuelle aux nœuds parents d’index concernée analogue arbre B : cf. cours BD Avancées © J.Y. Antoine — 26
  • 27. Index spatiaux Index à arbre R (R tree) [Guttman 1984] Construction dynamique de l’arbre R – Ajout d’un nouvel élément à l’index Exemple : arbre R de degré 3 10 9 2 1 5 6 [3,7,8] [1,2,5] [4,6] [3,7] [4,6,9] 8 3 7 4 © J.Y. Antoine — 27
  • 28. Index spatiaux Index à arbre R (R tree) [Guttman 1984] Construction dynamique de l’arbre R Exemple : arbre R de degré 3 10 [3,7,8] [1,10] [2,5] [4,6,9] 9 2 1 5 6 8 3 7 4 © J.Y. Antoine — 28
  • 29. Index spatiaux Index à arbre R (R tree) [Guttman 1984] Construction dynamique de l’arbre R Exemple : arbre R de degré 3 10 [3,7,8] [1,10] [2,5] [4,6,9] 9 2 1 5 6 8 3 7 4 [3,7,8] [1,10] [2,5] [4,6,9] © J.Y. Antoine — 29
  • 30. Index spatiaux Index à arbre R (R tree) [Guttman 1984] Construction dynamique de l’arbre R – Suppression d’un élément à l’index Idem arbre B : fusion éventuelle si une zone a moins de m éléments. Construction statique de l’arbre R Lors de la création d’une BD, il est préférable de construire l’index avec une vision globale plutôt que de s’en remettre à un ajout des objets un à un. Stratégies en envisageables : • Minimiser le nombre des recouvrements de zone à un niveau de l’arbre, pour limiter les parcours multiples ensuite, • Minimiser la surface totale des zones, pour éviter de couvrir des zones sans objets • Maximiser le nombre de fils à chaque nœud, afin de limiter la profondeur du graphe et accélérer son parcours. •… © J.Y. Antoine — 30
  • 31. Index spatiaux Comparaison des différents index Grille Grille Arbre Arbre R statique dynamique quaternaire Complexité 7 7 7 d’implantation Tolérance à 7 la distribution des objets Performance 7 7 7 7 sélection Situation Distributions Compromis Performances d’utilisation homogènes simplicité / en toutes situations efficacité © J.Y. Antoine — 31
  • 32. Bibliographie Ouvrages de référence • Scholl M., Voisard A., Peloux J.P., Raynal L., Rigaux Ph. (1996) SGBD Géographiques : spécificité. Int. Thomson Publ., Paris, France. Chap. 4 Travaux cités • Bentley J.L., Friedman J.H. (1979) Data structures for range searching. ACM Computing Surveys. 11(4). • Guttman A. (1984) R-trees : a dynamic index structure for spatial searching. Proc. ACM SIGMOD Int. Symposium on the Management of Data. Pp. 45-67. • Nievergelt J., Hinterger H., Sevcik K.C. (1994) The grid file : an adaptable symetric multikey file structure. ACM Trans. on Databases Systems. 9(1). pp. 38-71. • Samet H. (1990) Application of spatial data structure. Addison-Wesley Publ. 9(1). © J.Y. Antoine — 32