R-tree

Gli r-tree sono alberi paginati e bilanciati dove ogni nodo corrisponde a una regione triangolare detta minimal bounding box (MMB) che contiene tutte le regioni figlie

L’utilizzo dello storage da parte di un nodo varia dal a un valore minimo inferiore al (parametro tunabile)

Le foglie dell’albero sono entry nella forma (key, RID), dove il valore di chiave contiene le coordinate

possibile contenere anche oggetti con un estensione spaziale

I nodi interni dell’albero si presentano nella forma (MBB, PID), dove la chiave sono le coordinate della minimal bounding box

Concetto di MBB

La minima bounding box e definita come la regione hyper-rettangolare minima che contiene un set di punti

Per definirla e sufficiente conoscere le coordinate di due vertici opposti

R-tree vs b+tree

B+treeR-tree
bilanciato e paginatobilanciato e paginato
i dati sono contenuti nelle fogliei dati sono contenuti nelle foglie
le foglie sono ordinatenon esiste l’ordine
i dati sono organizzati in intervalli monodimensionalii dati sono organizzati in intervalli multidimensionali
la ricerca puntuale segue un solo percorso dell’alberola ricerca puntuale può seguire strade diverse all’interno dell’albero

Ricerca con r-tree

La ricerca con un r-tree consiste nel trovare tutti i punti che fanno parte della bounding box della query di ricerca

Per implementare la ricerca e necessario implementare le API previste dalla specifica GiST

  • Consistent(E,q) ritorna true solo se E e q hanno intersezione non nulla
  • Union(P) l’output e la MMB che contiene tutte le entry
  • Penalty(E1,E2) Se il punto si trova dentro la bounding box la penalty e 0 altrimenti e data dal aumento di dimensione della bounding box stessa
  • Picksplit(P) in output vengono fornite le entry e l’output e un set di due bounding box con cardinalità inferiore, lo split viene deciso minimizzando l’area complessiva delle due MBB

minimizzare la somma complessiva e un problema Np-hard

PREVIOUS NEXT