1.2.3 Les index spatiaux
Les index sont au centre des SGBD car ils permettent d'augmenter
la performance lors des requêtes en définissant des classements
sur certaines tables.
Les trois SGBD spatiaux disposent d'un système
d'indexation spatial et recommande voire obligent l'utilisation des index pour
les colonnes qui contiennent des objets géographiques. En effet, les
données spatiales sont souvent volumineuses et demandent par
conséquent un temps de traitement important. Il convient donc de classer
ces colonnes dans l'espace en utilisant un système d'indexation afin
d'optimiser le traitement. Les trois SGBD spatiaux utilisent le système
d'indexation R-Tree 5. En dehors de R-Tree, Oracle Spatial autorise
le système d'indexation QuadTree6 alors que PostGis utilise
également le système d'indexation GIST7 [5]. Le
Tableau 1.2 présente les types d'index utilisés par chacun des
trois SGBD spatiaux.
Table 1.2 - Comparaison des SGBD spatiaux : les index
spatiaux
|
MySQL/MyGIS
|
PostgreSQL/ Post- Gis
|
Oracle/Oracle Spatial
|
Types d'indexspatiaux sup- portés
|
- R-Tree
|
- R-Tree - GIST
|
- R-Tree
- Quad-Tree
|
1.2.4 Les prédicats spatiaux
La notion de prédicats spatiaux regroupe les fonctions
et/ou opérateurs permettant de tester les relations spatiales entre les
objets. Ces prédicats utilisent souvent la notion de rectangles
englobants(bbox) des objets pour réaliser les tests afin de rendre les
calculs rapides.
La norme OGC définit un certain nombre de ces
prédicats qui renvoient une valeur booléenne ou une valeur
évaluable dans une condition booléenne. Il s'agit de :
equals : vérifie si deux objets sont
égaux;
- disjoint : vérifie si deux objets sont
disjoints;
5. R-Tree: Regional Tree : système d'indexation
qui divise l'espace en secteurs pour associer un certain nombre
d'objets à chaque secteur.
6. Quad-Tree: système d'indexation basé sur la
séparation quadratique de l'espace.
7. GIST: GeneralIzed Search Tree est une méthode
d'accès balancée à structure de type arbre.
- intersects : vérifie s'il y a une intersection
entre deux objets;
- overlaps : vérifie s'il y a un chevauchement,
une intersection entre deux objets; - contains : vérifie si un
objet contient un autre objet;
- crosses : vérifie si un objet traverse un autre
objet;
- within : vérifie si un objet est contenu dans
un autre;
- touches : vérifie si deux objets se touchent
uniquement sur leurs frontières;
- relate : identifie tous les objets qui ont une
relation particulière avec un objet donné. Oracle dispose en plus
de ces prédicats, des prédicats supplémentaires afin
d'élargir le champ d'analyse des objets, à savoir :
- SDO_COVEREDBY : pour tester si un objet est couvert par un
autre.
- SDO_COVERS : pour tester si un objet en couvre un autre.
- SDO_FILTER : pour filtrer les objets qui peuvent avoir une
relation avec un objet donné. Cette fonction utilise les
bbox8 des objets uniquement et utilise les index spatiaux
définis sur les objets.
- SDO_NN : fonction pour la recherche du plus proche voisin.
- SDO_NN_DISTANCE : fonction pour connaître la distance de
l'objet renvoyé par SDO_NN. Elle ne peut être appelée que
lors d'un appel à SDO_NN.
- SDO_ON : pour tester si un objet est sur un autre
(l'intérieur et la frontière d'un objet se trouvent sur la
frontière d'un autre objet, par exemple une ligne couvrant le contour
d'un polygone).
- SDO_WITHINDISTANCE : pour trouver les objets situés
à une certaine distance d'un objet.
Le Tableau 1.3 résume les différents
prédicats supportés par chacun des SGBD spatiaux.
8. bbox : Rectangle englobant d'une zone
géographique.
Table 1.3 - Comparaison des SGBD spatiaux : les
prédicats spatiaux
|
MySQL/MyGIS
|
PostgreSQL/ Post- Gis
|
Oracle/Oracle Spatial
|
Prédicats OGC suppor- tés
|
Supporte tous les
prédicats définis par
l'OGC mais n'agit que sur le rectangle englobant des objets et
non sur les objets eux-mêmes.
|
Supporte tous les
prédicats définis par
l'OGC
|
Supporte tous les
prédicats définis par
l'OGC mais ne res-
pecte pas le nommage
|
Autres prédi-
cats supportés
|
Néant
|
Néant
|
Dispose des prédicats
supplémentaires par
rapport à la norme
OGC
|
|