Bases de données spatiales

Post on 12-Apr-2017

431 views 4 download

Transcript of Bases de données spatiales

Problème des données spatialesIndex spatialBibliographie

Références

Bases de données spatialesIntérêt et problèmes d’indexation

Guillaume Matheronguillaume.matheron@ens.fr

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