Architettura dei Database Territoriali Pr. R. Laurini VIII - INDICIZZAZIONE SPAZIALE Capitolo 8° INDICIZZAZIONE SPAZIALE Indicizzazione di tipo « parole incrociate » • • • • • • • 8.1 – Importanza dell'indicizzazione spaziale 8.2 – Uso dei quadtree 8.3 – Uso delle curve di Peano 8.4 – Uso dei R-tree 8.5 – Indicizzazione nei GIS 8.6 – Indicizzazione in Oracle SDI 8.7 – Conclusioni 8.1 – Importanza dell'indicizzazione spaziale • Acceleratore d’accesso • Senza indice : – scansione totale del DB – costoso in termine di tempo • Necessità di strutture dati e di procedure di accesso adeguate Cap.8°: Indicizzazione Spaziale 1 Architettura dei Database Territoriali Pr. R. Laurini Indicizzazione nei DB relazionali Gerarchia di indici Indice livello 1 Indice livello 2 1 Chiavi Indirizzi 2 8.2 – Uso dei quadtree 0 D 4 1 A 4 Cap.8°: Indicizzazione Spaziale E C 22 1 6 59 2 89 3 3 68 11 77 12 89 15 7 13 26 15 27 22 28 ... 15 79 44 85 45 89 46 ... 07 23 09 24 11 25 Dati aaaa bbbb cccc dddd Blocco eeee gggg hhhh kkkk Blocco ... 8.3 – Uso delle curve di Peano Livello 1 8 F 33 8 42 9 59 10 01 20 03 21 05 22 Indice livello 3 …. ….. ….. …. ….. …… …... 0 05 5 11 6 22 7 5 12 Livello 2 15 G,B Livello 3 • Curva che empie lo spazio, che passa ad ogni punto nello spazio • Copertura totale • Impossibile con la geometria euclidea • Possibile con la visione peaniana 2 Architettura dei Database Territoriali Pr. R. Laurini Curve di Hilbert e di Peano Curve di Peano • Impossibile con la geometria euclidea – Punto 0D – Linea 1D – Spazio 2D • Possibile con la visione peaniana – Punto 2D – Linea 2D – Spazio 2D • Curve di Hilbert, in N di Peano Indicizzazione di un piccolo territorio Ordine en Z (Saglio) G E 5 7 13 15 B F 4 6 12 14 A 1 3 D 0 2 8 Cap.8°: Indicizzazione Spaziale Chiavi di Peano Lato Oggetti 0 4 E 0 2 D 1 1 A 4 1 F 8 2 C 15 1 B,G C 3 Architettura dei Database Territoriali Pr. R. Laurini 8.4 – Uso dei R-tree Esempio di R-tree B • Alberi di rettangoli (r-tree) A D • Alberi ammigliorati (r*-tree) G F K J E H I M N L C A B C D E F G Esempio di R*-tree H I J K L M N Indicizzazione della mappa di Europa con rettangoli I C H A D1 F D2 B E G H I A B F D1 Cap.8°: Indicizzazione Spaziale C E G D2 4 Architettura dei Database Territoriali Pr. R. Laurini 8.5 – Indicizzazione nei GIS • Metodi di accesso spaziale • ESRI - SDE • Oracle - SDO Griglia fissa 5 1 11 14 2 15 8 6 12 13 3 9 10 …. 1,2,5 2,3,6 7 16 4 File di griglia 16 …. 6 Zona principale Overflow Quadtree original 5 5 1 11 14 2 p0 p1 p2 p3 15 p4 p5 p6 p7 8 6 12 p12 p13 p14 p15 9 2 NW NE SW SE 12 13 3 52 12 8118 636 13 111512 46 15 9 p16 p17 p18 p19 10 7 Cap.8°: Indicizzazione Spaziale 15 8 6 10 4 11 14 p8 p9 p10 p11 13 3 1 16 1,5 1,2,6 5,14,6 2,3,6 7 4 16 1 3 4 7 9 13 10 16 1 11 2 52 6 5 Architettura dei Database Territoriali Pr. R. Laurini ESRI -SDE Oracle Spatial Data Option Dati 2 Metodo di accesso Indici Tabelle oggetti 3 0 1 22 23 32 33 20 21 30 31 A B 02 03 12 13 00 01 10 11 C Altri attributi Tabelle attributi B Join B B A 00 01 02 03 10 11 12 13 20 21 22 23 30 31 32 33 8.6 – Indicizzazione (Oracle) R-tree • Quadtree / R-tree Rettangoli minimi Cap.8°: Indicizzazione Spaziale Principio d'indicizzazione 6 Architettura dei Database Territoriali Quadtree Pr. R. Laurini HH codes • HHCODEs (Helical Hyperspatial Codes) • Chiavi di Peano • Longitudine/latitudine/altitudine/tempo Quadtree con chiavi di Peano (codice di Morton) Creazione d’indice Cap.8°: Indicizzazione Spaziale Selezione d'indice 7 Architettura dei Database Territoriali Pr. R. Laurini 8.6 – Conclusioni • • • • • • Importanza dei metodi di accesso Organizzazione dei dati Evoluzione verso lo spazio-temporale Evoluzione verso il 3D Evoluzione verso i fenomeni continui Uso in ORACLE Spatial Cap.8°: Indicizzazione Spaziale 8