Basi di Dati Spaziali - Dipartimento di Matematica e ... · PDF file verso una o...

Click here to load reader

  • date post

    22-May-2020
  • Category

    Documents

  • view

    0
  • download

    0

Embed Size (px)

Transcript of Basi di Dati Spaziali - Dipartimento di Matematica e ... · PDF file verso una o...

  • 1

    Corso Corso di di

    Basi di Dati SpazialiBasi di Dati Spaziali

    Angelo Montanari Angelo Montanari

    Donatella GubianiDonatella Gubiani

    La progettazione fisica: La progettazione fisica:

    gli indici spaziali gli indici spaziali -- 22

    22

    IndiciIndici datadata--drivendriven •• GliGli indiciindici datadata--driven driven sisi adattanoadattano allaalla distribuzionedistribuzione degli degli oggettioggetti ((rettangolirettangoli) ) sulsul pianopiano

    •• Ad Ad ogniogni nodonodo èè associatoassociato un un rettangolorettangolo, , dettodetto Directory RectangleDirectory Rectangle (DR), (DR), cheche rappresentarappresenta l'MBBl'MBB deidei rettangolirettangoli deidei nodinodi figlifigli (o degli (o degli oggettioggetti ad ad essoesso associatiassociati))

    •• Per Per accedereaccedere ad un ad un rettangolorettangolo delladella collezionecollezione indicizzataindicizzata, , sisi percorrepercorre l'alberol'albero dalladalla radiceradice verso verso unauna o o pipiùù fogliefoglie, , verificandoverificando, per , per ogniogni Directory Rectangle Directory Rectangle incontratoincontrato, le , le relazionirelazioni didi sovrapposizionesovrapposizione o o didi inclusioneinclusione

    33

    TipologieTipologie didi indiciindici

    •• La La strutturastruttura originariaoriginaria

    RR--alberialberi

    •• Diverse Diverse variantivarianti, , tratra le le qualiquali

    R*R*--alberialberi

    RR++--alberialberi

    44

    RR--alberialberi •• SonoSono unauna estensioneestensione multidimensionale multidimensionale deidei BB++-- alberialberi ((strutturastruttura ad ad alberoalbero bilanciatabilanciata e e paginatapaginata))

    •• OgniOgni nodonodo rappresentarappresenta un un rettangolorettangolo. I . I nodinodi sonosono organizzatiorganizzati in base in base allaalla relazionerelazione didi inclusioneinclusione::

    –– ogniogni nodonodo fogliafoglia contienecontiene un un vettorevettore didi entry entry [MBB,OID] e [MBB,OID] e rappresentarappresenta un un contenitorecontenitore didi oggettioggetti

    –– ogniogni nodonodo internointerno contienecontiene un un vettorevettore didi entry [DR,NODEID] e entry [DR,NODEID] e rappresentarappresenta la la pipiùù piccolapiccola area area rettangolarerettangolare (MBB) (MBB) cheche contienecontiene gligli oggettioggetti rappresentatirappresentati daidai corrispondenticorrispondenti nodinodi figlifigli

    55

    StrutturaStruttura delldell’’RR--alberoalbero

    –– per per ogniogni nodonodo dell'alberodell'albero, ad , ad eccezioneeccezione delladella radiceradice, , ilil numeronumero didi entry entry èè compresocompreso frafra m ed M con m m ed M con m ∈∈ [0,M/2][0,M/2]

    –– ogniogni nodonodo internointerno N N contienecontiene entry entry delladella forma forma

    [DR,NODEID], dove DR [DR,NODEID], dove DR èè un Directory Rectangle un Directory Rectangle didi un un

    nodonodo figliofiglio didi N e NODEID N e NODEID èè ll’’indirizzoindirizzo delladella paginapagina

    corrispondentecorrispondente

    –– ogniogni nodonodo fogliafoglia N N contienecontiene entry entry delladella forma forma

    [MBB,OID], dove MBB [MBB,OID], dove MBB èè un minimal bounding box un minimal bounding box delladella

    geometriageometria delldell’’oggettooggetto memorizzatomemorizzato allall’’indirizzoindirizzo OIDOID

    –– la la radiceradice ha ha almenoalmeno due entry (due entry (assumendoassumendo cheche ll’’alberoalbero

    contengacontenga almenoalmeno due entry)due entry)

    –– tuttetutte le le fogliefoglie sisi trovanotrovano allaalla stessastessa profonditprofonditàà

    66

    RegioniRegioni: clipping : clipping vs. overlappingvs. overlapping

    •• DatoDato un un poligonopoligono, , gligli RR--alberialberi assegnanoassegnano tale tale poligonopoligono ad ad unauna regioneregione in base in base allaalla tecnicatecnica didi overlapping overlapping delledelle regioniregioni

    •• A A differenzadifferenza didi quantoquanto accadeaccade neinei metodimetodi spacespace-- driven, un driven, un poligonopoligono èè assegnatoassegnato ad ad unauna sola sola regioneregione. Le . Le regioniregioni delldell’’indiceindice possonopossono, , peròperò, , sovrapporsisovrapporsi

  • 2

    77

    EsempioEsempio 11

    88

    EsempioEsempio 22

    RR--alberoalbero con m=2 ed M=4 (i con m=2 ed M=4 (i rettangolirettangoli delledelle fogliefoglie sonosono rappresentatirappresentati dada lineelinee punteggiatepunteggiate))

    99

    Inserimenti/cancellazioniInserimenti/cancellazioni

    •• Le Le proprietproprietàà delldell’’RR--alberoalbero sonosono preservatepreservate dalledalle operazionioperazioni didi inserimentoinserimento e e cancellazionecancellazione

    •• La La strutturastruttura sisi adattaadatta allaalla distribuzionedistribuzione deidei datidati: a un : a un grangran numeronumero didi oggettioggetti presentepresente in in unauna certacerta regioneregione spazialespaziale corrispondecorrisponde un un grangran numeronumero didi fogliefoglie ((vicinevicine) ) delldell’’RR--alberoalbero

    1010

    Un Un esempioesempio realereale

    •• Directory rectangle Directory rectangle delledelle fogliefoglie didi un Run R--alberoalbero costruitocostruito per per raccogliereraccogliere i i datidati idrograficiidrografici dellodello StatoStato del Connecticutdel Connecticut

    1111

    DimensionamentoDimensionamento didi un Run R--alberoalbero

    •• Il Il numeronumero massimomassimo M M didi entry in un entry in un nodonodo dipendedipende ovviamenteovviamente dalledalle dimensionidimensioni delldell’’entryentry e e delladella paginapagina

    •• Come Come neinei BB++--alberialberi, M , M puòpuò assumereassumere un un valorevalore diversodiverso neinei nodinodi interniinterni e e neinei nodinodi fogliafoglia (OID (OID èè ll’’indirizzoindirizzo didi un record un record appartenenteappartenente ad ad unauna data data paginapagina ed ed èè, , didi normanorma, , pipiùù grandegrande didi NODEID, NODEID, indirizzoindirizzo didi unauna paginapagina))

    •• La La sceltascelta del del valorevalore didi m m dipendedipende dalledalle strategiestrategie didi splitting splitting deidei nodinodi

    1212

    Point query in un RPoint query in un R--alberoalbero •• VieneViene eseguitaeseguita in due in due passipassi::

    –– PRIMO PASSO: PRIMO PASSO: selezionaseleziona tuttitutti i i figlifigli delladella radiceradice

    ilil cui Directory Rectangle cui Directory Rectangle contienecontiene ilil puntopunto P. P.

    RipeteRipete tale tale operazioneoperazione per per tuttitutti nodinodi individuatiindividuati, ,

    ad ad ogniogni livellolivello, , finofino a a raggiungereraggiungere ilil livellolivello delledelle

    fogliefoglie

    In In ogniogni nodonodo internointerno visitatovisitato N, N, sisi possonopossono

    presentarepresentare due due situazionisituazioni::

    •• se non se non esisteesiste alcunaalcuna entry entry ilil cui cui rettangolorettangolo

    contengacontenga P, la P, la ricercaricerca terminatermina (P (P cadecade nellonello

    spaziospazio mortomorto del del nodonodo))

    •• se P se P èè contenutocontenuto nelnel rettangolorettangolo didi unauna o o pipiùù entry, entry,

    sisi visitavisita il/iil/i corrispondente/icorrispondente/i sottoalbero/isottoalbero/i

  • 3

    1313

    Point query in un RPoint query in un R--alberoalbero -- 2 2 –– SECONDO PASSO: SECONDO PASSO: l'insiemel'insieme delledelle fogliefoglie individuate individuate al al terminetermine del primo del primo passopasso vieneviene esaminatoesaminato per per stabilirestabilire se se ilil loroloro MBB MBB contienecontiene PP

    NOTA.NOTA. Le window query Le window query sonosono moltomolto similisimili allealle point point query (query (dettaglidettagli omessiomessi))

    1414

    Point query: Point query: algoritmoalgoritmo -- 1 1 RTRT--PPOINTOINTQQUERYUERY ((P:point):set(oidP:point):set(oid))

    beginbegin

    result = result = ∅∅ ##passopasso 1: 1: attraversaattraversa l'alberol'albero dalladalla radiceradice e e calcolacalcola #SL, #SL, insiemeinsieme delledelle fogliefoglie ilil cui DR cui DR contienecontiene PP SL = RSL = RTREETREETTRAVERSALRAVERSAL(root,P)(root,P) ##passopasso 2: 2: scorrescorre le le fogliefoglie e e determinadetermina le entry le entry ##cheche contengonocontengono PP forfor eacheach L L inin SL SL dodo

    ##scansionescansione entry entry nellanella fogliafoglia LL forfor eacheach e e inin L L dodo

    ifif ((e.mbbe.mbb contains P) contains P) then then result+= {result+= {e.oide.oid}} end forend for

    end forend for

    returnreturn resultresult endend

    1515

    Point query: Point query: algoritmoalgoritmo -- 2 2 RRTREETREETTRAVERSALRAVERSAL ((nodeid:PageIDnodeid:PageID, P:point): set of leaves, P:point): set of leaves

    beginbegin

    result = result = ∅∅ ##restituiscerestituisce la la paginapagina associataassociata al al nodonodo N = N = RREADEADPPAGEAGE(nodeid(nodeid)) ifif (N is a leaf) (N is a leaf) thenthen returnreturn {N}{N} elseelse

    ##scorrescorre le entry le entry didi N e N e visitavisita quellequelle ##cheche contengonocontengono PP forfor eacheach e e inin N N dodo

    ifif ((e.dre.dr contains P) contains P) thenthen result+= result+= RRTREETREETTRAVERSALRAVERSAL(e.nodeid,P(e.nodeid,P)) end ifend if

    end forend for

    end ifend if

    returnreturn resultresult endend

    1616

    InserimentoInserimento

    ••