Problème des données spatialesIndex spatialBibliographie
Références
Bases de données spatialesIntérêt et problèmes d’indexation
Guillaume [email protected]
2015
1 / 19
Problème des données spatialesIndex spatialBibliographie
Références
I - Problème des données spatialesII - Index spatialIII - Efforts de standardisationIV - Expérimentation avec MySQLV - Ouverture - Bibliographie
2 / 19
Problème des données spatialesIndex spatialBibliographie
Références
Indexation
Facile à indexer :
EntiersTexteDate
Type de requêtes visées :
Recherche d’un élémentÉnumération d’un intervalleSimilarité / proximité
3 / 19
Problème des données spatialesIndex spatialBibliographie
Références
Requêtes difficiles/spécifiques : filtrage
Éléments dont l’id est premierÉléments dont le nom comporte exactement 3 voyelles
Difficile à indexer :
Images, sons (requêtes de similarité - Shazam, reverse imagesearch)Fichiers binaires (requêtes de similarité - Par exemplesynchronisation de fichiers dépacés et modifiés)Géométrie
4 / 19
Problème des données spatialesIndex spatialBibliographie
Références
Problème des données spatiales
Données spatiales :
Géographiques (cartes, localisation, ...)Tridimensionnelles (scan 3d, imagerie médicale, ...)
5 / 19
Problème des données spatialesIndex spatialBibliographie
Références
Problème : trouver rapidement une donnée à partir de sa positionapprochée →métrique
Applications : trouver les clusters, les points proches, le voisinagepour des transformations locales d’objets 3D, ...
Un index ne suffit pas ! Problème de base de la rastérisation
Exemple : masque de convolution [4]6 / 19
Problème des données spatialesIndex spatialBibliographie
Références
Index spatial
En 1D : arbre binaire
En 2D : arbre quad (quadtree)
En 3D : arbre 8-aire (octree)
Problème : en 1D, on aime bien faire des arbres n-aires (pourremplir un bloc) !
7 / 19
Problème des données spatialesIndex spatialBibliographie
Références
Arbre R [2]
8 / 19
Problème des données spatialesIndex spatialBibliographie
Références
Arbre R
Équilibrage complexe (heuristiques pour les dépassements)Faible remplissage minimal (environ 30% contre 50% pour lesarbres B)
Arbre R* →minimation du recouvrement (overlap) [1]
9 / 19
Problème des données spatialesIndex spatialBibliographie
Références
Autres index spatiaux - Z-curve
Interlacement des bits decoordonnéesGénéralisable en ndimensionsConversion facile en arbreR équilibré
10 / 19
Problème des données spatialesIndex spatialBibliographie
Références
Arbre R de Hilbert [3]
Courbe de Hilbert
Donne un ordre total surRn
11 / 19
Problème des données spatialesIndex spatialBibliographie
Références
Arbre R de Hilbert
Les sous-rectangles sont triés par abscisse de Hilbert du centrede leur MBR (=minimal bounding rectangle)Remplissage aussi important que souhaité
12 / 19
Problème des données spatialesIndex spatialBibliographie
Références
Efforts de standardisation
Open Geospatial Consortium, ’94
Simple Features standard, ’04
Définit les formats standard d’échange de données spatialessimples (points, polygones, ...)
13 / 19
Problème des données spatialesIndex spatialBibliographie
Références
Expérimentation avec MySQLGénération d’un grand nombre de données aléatoires (106
enregistrements créés en 5 minutes)
CREATE PROCEDURE ‘InsertRand‘(IN NumRows INT, IN MinVal INT, IN MaxVal INT)
BEGINDECLARE i INT;SET i = 1;START TRANSACTION;WHILE i <= NumRows DO
INSERT INTO test (location) VALUES(POINT(RAND(),RAND()));
SET i = i + 1;END WHILE;COMMIT;
END 14 / 19
Problème des données spatialesIndex spatialBibliographie
Références
SELECT SQL_NO_CACHE AsText(location)FROM ‘test‘ IGNORE INDEX(loc)WHERE MBRContains(
GeomFromText(’LINESTRING(0.39 0.39,0.4 0.4)’),location)
119 total, Query took 0.4115 seconds
15 / 19
Problème des données spatialesIndex spatialBibliographie
Références
Expérimentation avec MySQL
SELECT SQL_NO_CACHE AsText(location)FROM ‘test‘WHERE MBRContains(
GeomFromText(’LINESTRING(0.39 0.39,0.4 0.4)’),location)
119 total, Query took 0.0012 seconds (300 fois moins !)
16 / 19
Problème des données spatialesIndex spatialBibliographie
Références
mysql> EXPLAIN (...IGNORE INDEX(loc)...)+----+-------------+-------+------+---------------+---------+| id | select_type | table | type | possible_keys | rows |+----+-------------+-------+------+---------------+---------+| 1 | SIMPLE | test | ALL | NULL | 1100008 |+----+-------------+-------+------+---------------+---------+1 row in set (0.01 sec)
mysql> EXPLAIN (...)+----+-------------+-------+--------+---------------+---------+| id | select_type | table | type | possible_keys | rows |+----+-------------+-------+--------+---------------+---------+| 1 | SIMPLE | test | range | loc | 225 |+----+-------------+-------+--------+---------------+---------+1 row in set (0.01 sec)
17 / 19
Problème des données spatialesIndex spatialBibliographie
Références
Conclusion/ouverture
Espaces de grande dimension →reconnaissance d’images/desons, clusteringReprésentation de données linéiques →base de donnéesorientée graphes
18 / 19
Problème des données spatialesIndex spatialBibliographie
Références
Bibliographie
[1] H. P. ; Schneider R. ; Seeger B. Beckmann, N. ; Kriegel. Ther*-tree : an efficient and robust access method for points andrectangles.
[2] A. Guttman. R-trees : A dynamic index structure for spatialsearching.
[3] I. Kamel and C. Faloutsos. Hilbert r-tree : An improved r-treeusing fractals.
[4] George Politis. Scan line rendering of convolutions.
19 / 19
Top Related