Bases de données spatiales Intérêt et problèmes d`indexation

publicité
Problème des données spatiales
Index spatial
Bibliographie
Références
Bases de données spatiales
Intérêt et problèmes d’indexation
Guillaume Matheron
[email protected]
2015
1 / 19
Problème des données spatiales
Index spatial
Bibliographie
Références
I - Problème des données spatiales
II - Index spatial
III - Efforts de standardisation
IV - Expérimentation avec MySQL
V - Ouverture - Bibliographie
2 / 19
Problème des données spatiales
Index spatial
Bibliographie
Références
Indexation
Facile à indexer :
Entiers
Texte
Date
Type de requêtes visées :
Recherche d’un élément
Énumération d’un intervalle
Similarité / proximité
3 / 19
Problème des données spatiales
Index spatial
Bibliographie
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 image
search)
Fichiers binaires (requêtes de similarité - Par exemple
synchronisation de fichiers dépacés et modifiés)
Géométrie
4 / 19
Problème des données spatiales
Index spatial
Bibliographie
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 spatiales
Index spatial
Bibliographie
Références
Problème : trouver rapidement une donnée à partir de sa position
approchée →métrique
Applications : trouver les clusters, les points proches, le voisinage
pour 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 spatiales
Index spatial
Bibliographie
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 (pour
remplir un bloc) !
7 / 19
Problème des données spatiales
Index spatial
Bibliographie
Références
Arbre R [2]
8 / 19
Problème des données spatiales
Index spatial
Bibliographie
Références
Arbre R
Équilibrage complexe (heuristiques pour les dépassements)
Faible remplissage minimal (environ 30% contre 50% pour les
arbres B)
Arbre R* →minimation du recouvrement (overlap) [1]
9 / 19
Problème des données spatiales
Index spatial
Bibliographie
Références
Autres index spatiaux - Z-curve
Interlacement des bits de
coordonnées
Généralisable en n
dimensions
Conversion facile en arbre
R équilibré
10 / 19
Problème des données spatiales
Index spatial
Bibliographie
Références
Arbre R de Hilbert [3]
Courbe de Hilbert
Donne un ordre total sur
Rn
11 / 19
Problème des données spatiales
Index spatial
Bibliographie
Références
Arbre R de Hilbert
Les sous-rectangles sont triés par abscisse de Hilbert du centre
de leur MBR (=minimal bounding rectangle)
Remplissage aussi important que souhaité
12 / 19
Problème des données spatiales
Index spatial
Bibliographie
Références
Efforts de standardisation
Open Geospatial Consortium, ’94
Simple Features standard, ’04
Définit les formats standard d’échange de données spatiales
simples (points, polygones, ...)
13 / 19
Problème des données spatiales
Index spatial
Bibliographie
Références
Expérimentation avec MySQL
Gé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)
BEGIN
DECLARE 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 spatiales
Index spatial
Bibliographie
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 spatiales
Index spatial
Bibliographie
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 spatiales
Index spatial
Bibliographie
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 spatiales
Index spatial
Bibliographie
Références
Conclusion/ouverture
Espaces de grande dimension →reconnaissance d’images/de
sons, clustering
Représentation de données linéiques →base de données
orientée graphes
18 / 19
Problème des données spatiales
Index spatial
Bibliographie
Références
Bibliographie
[1] H. P. ; Schneider R. ; Seeger B. Beckmann, N. ; Kriegel. The
r*-tree : an efficient and robust access method for points and
rectangles.
[2] A. Guttman. R-trees : A dynamic index structure for spatial
searching.
[3] I. Kamel and C. Faloutsos. Hilbert r-tree : An improved r-tree
using fractals.
[4] George Politis. Scan line rendering of convolutions.
19 / 19
Téléchargement