Sunteți pe pagina 1din 8

Baze de date spaţiale

1. Structuri de date pentru reprezentarea şi indexarea datelor spaţiale


Datele spaţiale sunt stocate în structuri de date spaţiale. Dintre acestea, un loc important îl
ocupă cele ierarhice care sunt bazate pe principiul descompunerii recursive. Avantajele acestor tipuri
de structuri rezultă din faptul că sunt compacte, depind de natura datelor şi permit realizarea
operaţiilor de interogare în mod eficient. O astfel de structură de date este quadtree şi are la bază
principiul descompunerii recursive, similar metodei divide-and-conquer. Ea se poate utiliza la
descrierea mai multor elemente aparţinînd clasei datelor spaţiale ca de exemplu: puncte, linii,
poligoane etc.
O dată spaţială ce exprimă o regiune poate fi reprezentată fie prin interiorul ei, fie prin conturul
ei. Se presupune, în descrierea procesului de construire a arborelui, plecînd de la o imagine, că o
regiune este reprezentată de interiorul ei (figura 1).
0 0 0 1 1 0 0 0
0 0 0 1 1 0 0 0
0 0 0 1 1 0 0 0
0 0 0 1 1 1 1 0
1 1 1 1 0 0 0 0
1 1 1 1 0 0 0 0
1 1 1 1 0 0 0 0
1 1 1 1 0 0 0 0
(a) imagine (b) reprezentarea binară
Figura 1 Reprezentarea binară a unei imagini
Structura quadtree se bazează pe subdivizarea succesivă a unei imagini în patru cadrane de
mărimi egale. Dacă un cadran nu conţine numai valoarea 1 sau numai valoarea 0, el va fi din nou
subdivizat în patru cadrane şi aşa mai departe pînă sunt obţinute cadrane ce au fie valoarea 1 fie 0.
Valorile 1 respectiv 0 semnifică faptul că zona aparţine sau nu regiunii respective. Pentru
exemplificare se va considera imaginea din figura 1a şi reprezintarea ei binară (bitmap) în figura 1b.
Prin împărţirea succesivă în cadrane, figura 2a se observă că zonele astfel obţinute (cadranele) fie
aparţin regiunii fie nu. De exemplu, dacă regiunea este omogenă din punct de vedere a culorii atunci
cadranele care acoperă regiunea trebuie să aibă aceeaşi culore.

I IV

II III

(a)
Descompunerea unei imagini în cadrane

Niveluri

1
3 O
I II III IV
2 O  O O

1 O O O O O O O O

0 OOOO OOOOOO

(b)
Quadtree

Figura 2 Descompunerea imaginii


Cadranele obţinute în urma procesului de divizare a spaţiului se pot reprezenta prin intermediul
unui arbore numit quadtree. Structura quadtree este în esenţă un arbore oarecare ce conţine noduri
avînd semnificaţiile:
- rădăcina corespunde imaginii în ansamblu;
- nodurile frunză corespund acelor blocuri pentru care nu mai sunt necesare subdivizări;
blocurile fie aparţin regiunii (1) fie sunt în afara ei (0);
- celelalte noduri reprezintă cîte un cadran al regiunii care a necesitat o subdivizare.
Pentru orice nod ce nu este frunză, fii lui corespund cadranelor în ordinea NE (I), SE (II), SV
(III), NV (IV).
Structura quadtree poate fi diferită în funcţie de:
a) Tipul de dată pe care o reprezintă şi care poate fi: punctul, linia, curba, suprafaţa şi regiunea.
b) Principiul care stă la baza procesului de descompunere care se poate face în părţi egale la
fiecare nivel (descompunere regulată) sau în m părţi de mărimi diferite în funcţie de data iniţială;
c) Rezoluţia descompunerii care poate fi variabilă
Această structură poate fi de asemenea utilizată la reprezentarea imaginilor în trei sau mai
multe dimensiuni. Varianta cu trei dimensiuni se numeşte octree.
Modelul de construire a acestui arbore presupune ca imaginea să fie încadrată într-un cub care
va fi recursiv subdivizat în 8 cuburi egale şi aşa mai departe pînă cînd sunt obţinute regiuni uniforme
din punct de vedere a culorii ori se ajunge la un anumit nivel predefinit de descompuneri.
Dezvoltarea unei structuri ierarhice este avantajoasă deoarece se poate folosi la procesele de
interogare a datelor spaţiale dar şi pentru că se economiseşte spaţiul de memorie necesar reprezentării
unor astfel de date.
Reprezentarea originală a structurii quadtree a fost aceea de arbore care utiliza pointeri. In
acest fel, spaţiul de memorie consumat este destul de mare, de aceea s-au propus, pentru a îmbunătăţi
acestă variantă, două modalităţi.
Prima tratează imaginea ca pe o colecţie de noduri frunză, unde fiecare nod este reprezentat
printr-o pereche de numere. Există un număr în baza 4, numit codul locaţiei, care corespunde
secvenţei direcţionale ce localizează frunza şi stabileşte astfel calea de la rădăcină şi un număr ce
indică adîncimea la care nodul frunză este regăsit.
A doua modalitate reprezintă imaginea în forma unei traversări a structurii quadtree. Ea este
foarte compactă dar nu este uşor de folosit cînd se doreşte accesul aleator la un anumit nod.

2
Reprezentarea punctelor se face în funcţie de operaţiile care urmează să se execute cu aceste
date. Dintre multiplele moduri de reprezentare a punctelor, adecvată este structura de date PR
quadtree (P pentru puncte şi R pentru regiuni), deci o adaptare a structurii quadtree la tipuri bine
precizate de date spaţiale. Această structură se bazează pe o descompunere regulată care urmăreşte
asocierea unui punct cu un cadran. Procesul de construire este similar cu cel al structurii quadtree,
diferenţa este că nodurile frunză fie nu conţin nimic, fie conţin puncte prin valorile coordonatelor lor.
In figura 3 se poate observa corespondenţa dintre puncte şi cadrane care stă la baza construirii
arborescenţei.
Dezavantajul metodei constă în faptul că, dacă punctele sunt foarte apropiate, atunci nivelul
maxim de descompunere poate fi foarte mare. Avantajul este că structura devine atractivă în cazul în
care prelucrarea datelor spaţiale implică operaţii de căutare. Un exemplu tipic de folosire a arborelui îl
constituie determinarea oraşelor din nord-estul ţării. Oraşele vor fi căutate în regiunile care compun
cadranul NE al imaginii (Suceava şi Iaşi), lucru uşor de realizat avînd în vedere modul de construire a
structurii quadtree.
(0,100) (100,100)
Suceava

• Iaşi
Sebeş
• • Braşov
• Timişoara
• Năvodari
•Bucureşti
• Mangalia
(0,0) (100,0)

Figura 3 Descompunerea în cadrane a imaginii


pentru construirea structurii PR quadtree

In concluzie, se poate spune că structura quadtree este dinamică în sensul că poate fi adaptată
cu uşurinţă la mai multe tipuri de date spaţiale.
Pentru manipularea datelor spaţiale este nevoie ca acestea să fie reprezentate în diferite forme.
O modalitate constă în a utiliza structuri de date bazate pe ocuparea spaţială a datelor. Acestă metodă
presupune descompunerea spaţiului în regiuni numite partiţii. De aceea, metoda este cunoscută sub
numele de metoda partiţionării. Partiţionarea datelor spaţiale se bazează pe conceptul minimizării ariei
ocupate de partiţie. In acest caz, obiectele spaţiale sunt grupate în ierarhii şi apoi ele sunt stocate în
alte structuri de date. Structurile de indexare a datelor spaţiale multidimensionale au la bază două
abordări:
- prima se bazează pe observaţia că data spaţială ocupă un subspaţiu a spaţiului
multidimensional;
- cea de-a doua se bazează pe faptul că data fiind multidimensională, un număr mic de
dimensiuni stochează majoritatea informaţiei.
Structura arborescentă R (Rectangle tree), face parte din prima categorie şi este similară ca
reprezentare şi mod de exploatare cu arborele B. Ea are mai multe variante proiectate în scopul
organizării unei colecţii de date spaţiale prin reprezentarea lor în dreptunghiuri n dimensionale.

3
Fiecare nod în arbore corespunde celui mai mic dreptunghi n dimensional care include fii lui. Nodurile
frunză conţin pointeri ce referă datele spaţiale din baza de date. Obiectele sunt reprezentate prin cele
mai mici dreptunghiuri care le conţin.
Arborele R este aplicat unei tabele cu tupluri reprezentînd date spaţiale, fiecare tuplu avînd un
unic identificator care poate fi utilizat la regăsirea lui.
Arborele R conţine noduri frunză de forma ( I, i_id ),
unde:
I - un dreptunghi n dimensional ce reprezintă o cutie ce mărgineşte obiectul indexat;
i_id - identificatorul tuplului şi se referă la înregistrarea din tabelă ce conţine obiectul
mărginit de I.
I = ( I 0 , I 1, - - -, I n-1 ),
unde:
n - numărul de dimensiuni;
Ii - un interval închis [a, b] ce precizează extinderea obiectului pe dimensiunea i. Astfel,
I i poate avea una sau ambele limite egale cu ∞ indicînd faptul că obiectul se extinde la ∞.
Nodurile ce nu sunt frunze în arborele R au următoarea formă: ( I, pfiu),
unde:
pfiu - adresa nodului mai mic în arborele R;
I - un dreptunghi ce acoperă toate dreptunghiurile din intrarea nodurilor mai mici.
Se presupune că un nod conţine maxim M elemente iar m≤ M/2 este un parametru ce specifică
numărul minim de elemente dintr-un nod. Un arbore are proprietatea că un nod trebuie să conţină între
m şi M elemente dacă el nu este rădăcină. Ca exemplu, se consideră colecţia de segmente dată în figura
4.
a
b
h
g e

i
d f
c

Figura 4 Colecţie de segmente


In figura 5 se prezintă arborele R asociat colecţiei de segmente din figura 4, nodurile avînd
capacitatea de maxim două elemente. Se poate observa în figura 5a modul de partiţionare a spaţiului în
vederea încadrării obiectelor spaţiale şi relaţia de incluziune dintre partiţii iar în figura 5b este descrisă
aceeaşi relaţie de partiţionare şi includere prin intermediul structurii arborescente R.
Din figura 5 reiese că, din partiţionarea spaţiului nu rezultă regiuni disjuncte. Zona de
intersecţie reprezintă procentul din volum care este acoperit de mai mult de un dreptunghi. Dacă un
nod al unui arbore R conţine n dreptunghiuri {R 1 ,...,R n }, zona de intersecţie poate fi definită formal ca
în relaţia 1.

4

i, j∈{1,...,n},i ≠ j
( Ri  R j )
Zona de intersectie = (1)

i∈{1,..., n}
Ri

unde, || A|| - indică volumul acoperit de A.

R1 R3
h b
R4 a

g e
R5
d i
f R6
c
R2

(a)

R1 R2

R3 R4 R5 R6

a b d g h c i e f

(b)

Figura 5 Arborele R
Un alt concept legat de intersecţia suprafeţelor este greutatea intersecţiei care reprezintă
procentul de obiecte care aparţin porţiunii de intersecţie din spaţiu.

{p / p ∈  ( Ri  R j )}
i , j∈{1,..., n}, i ≠ j
Greutatea intersectiei = (2)
{p / p ∈  Ri }
i∈{1,..., n}

unde:
- |A| , indică numărul de obiecte conţinute în A;
- p, obiect spaţial.
O dată spaţială se asociază cu un singur dreptunghi, de exemplu, în figura 5, segmentul i este
asociat dreptunghiului R5 cu toate că şi partiţiile R1, R2 şi R4 partajează o suprafaţă din R5. In aceste
condiţii dacă se doreşte să se determine care obiect este asociat cu un punct particular vor fi necesare
mai multe căutări în baza de date datorită faptului că acel punct poate fi conţinut în mai multe partiţii.

5
Algoritmii de căutare, inserare şi ştergere sunt construiţi folosind aceleaşi principii utilizate la
implementarea structurii arborescente B+. Informaţiile ce se manipulează se referă la marcarea
dreptunghiului r, la cheia tuplului, respectiv la pointerul la subarborele corespunzător.

O problemă dificilă ţinînd cont de particularitatea datelor spaţiale este aceea a divizării
nodului. Fiind dată o pagină ce conţine M elemente este necesar să se dividă colecţia de M+1
elemente între două noduri.
Divizarea unui nod S={r 1 ,...,r n } în două subnoduri S 1 ={r i1 ,...,r is1 } şi S 2 ={r i2 ,...,r is2 }, (S 1 ≠∅ şi
S 2 ≠∅) este definită ca:
Diviz(S)={ (S 1 ,S 2 ) / S=S 1 ∪S 2 ∧S 1 ∩S 2 =∅ }.
In urma procesului de divizare a nodului pot apare cazurile:
1. zonă de intersecţie minimală, dacă || r(S 1 ) ∩ r(S 2 ) || este minimă;
2. zonă de intersecţie inexistentă, dacă || r(S 1 ) ∩ r(S 2 ) || = 0;
3. echilibru dacă -ε ≤ |S 1 | − |S 2 | ≤ ε.
Deoarece decizia de a vizita un nod depinde dacă dreptunghiul aferent lui include zona căutată,
rezultă că aria totală de acoperire a celor două dreptunghiuri după divizare trebuie să fie minimă.
Comparînd figurile 6 a şi b se realizează o mai bună încadrare avînd în vedere criteriul enunţat în
figura 6a.
In literatura de specialitate sunt prezentaţi mai mulţi algoritmi ce realizează acest lucru avînd
performanţe diferite.
Algoritmul de divizare Quadratic este recunoscut datorită eficienţei sale şi distribuie un set de
M+1 elemente între două noduri.

a b

Figura 6 Incadrarea zonelor de acoperire


In primul pas se vor alege două elemente din cele M+1 ce vor fi puse, cîte unul, în cele două
noduri. In acest sens, se va calcula ineficienţa grupării pentru toate elementele. Astfel, pentru fiecare
pereche r i , r j , se compune un dreptunghi R incluzînd ariile r i , r j . Se calculează:
d = aria (R) - aria (r i ) - aria(r j ) şi se alege în final perechea pentru care rezultă cea mai mare valoare d.
In al doilea pas se controlează dacă toate elementele au fost distribuite la cele două noduri. In
caz afirmativ algoritmul se opreşte. Altfel, dacă un nod are puţine elemente, restul rămase nedistribuite
vor fi asignate la el pentru a avea numărul minim m şi în acest caz algoritmul se opreşte.
In al treilea pas se selectează următorul element pentru a fi asignat la unul dintre noduri.
Pentru fiecare element rămas r se calculează d 1 aria mărită necesară pentru includerea dreptunghiurilor
elementelor din primul nod plus zona dată prin r. Se calculează d 2 similar pentru elementele nodului al
doilea. Se găseşte astfel elementul cu cea mai mare preferinţă pentru un grup. Se alege acela pentru
care diferenţa între d 1 şi d 2 este maximă. Acesta se va adăuga la grupul al cărui dreptunghi acoperitor
va trebui să fie cel mai puţin mărit pentru a cuprinde elementul. Legătura se rezolvă şi prin adăugarea

6
elementelor la nodul cu o arie mai mică de cuprindere sau la unul cu mai puţine intrări. Apoi se
continuă cu pasul doi.
Acest algoritm nu garantează găsirea celui mai mic dreptunghi posibil de încadrare dar
performanţele lui sunt destul de bune luînd în considerare necesarul de timp de prelucrare pentru
obţinerea rezultatului.
Partiţionarea spaţiului în partiţii disjuncte a dus la crearea unei structuri derivate din arborele R
şi anume R+ . Deoarece regiunile sunt disjuncte, înseamnă că pot fi obiecte care nu se încadrează doar
într-o singură partiţie. De aceea, ele se vor descompune în subobiecte, fiecare aparţinînd unor regiuni
diferite. Devine, astfel, important să se determine partiţiile care conţin o anumită dată spaţială.
In figura 7 se prezintă un arbore tip R+ pentru aceeaşi colecţie de segmente (prezentată în
figura 4). Se observă că fiecare obiect este asociat cu toate partiţiile care-l intersectează deci, pot fi mai
multe căi de la rădăcină pînă la unul şi acelaşi obiect. De exemplu, în figura 7 segmentele c şi f apar în
două noduri diferite, în timp ce segmentul i apare în trei noduri.

b
R5
R3 a
h
g e

d i
f
R6 R2
R4 c
R1

(a)

R1 R2

R3 R4 R5 R6

d g h i c a b e i f c i f

(b)
Figura 7 Arborele R+
In literatura de specialitate s-a demonstrat că structurile de indexare bazate pe arbori R nu sunt
adecvate pentru date spaţiale reprezentate într-un spaţiu multidimensional.
O structură performantă de indexare a datelor spaţiale multidimensionale cu număr mare de
dimensiuni este arborele X (eXtended node tree). Structura arborelui X este prezentată în figura 8.
Se observă că el conţine trei tipuri de noduri:
- noduri de date care sunt la nivelul frunzelor şi fac legăura cu datele spaţiale care se
indexează;
- noduri directoare normale ce au rol în a dirija căutarea prin arbore şi sunt similare nodurilor
interne dintr-un arbore R; şi

7
- supernoduri care sunt în fapt noduri directoare de mărime variabilă.
Scopul principal al acestor supernoduri este să evite divizarea nodurilor directoare, care ar avea
ca rezultat construirea unei structuri ierarhice ineficiente. Arborele X este diferit de arborele R cu
noduri de dimensiuni mari prin faptul că el conţine noduri de dimensiuni mai mari doar dacă este
necesar. Supernodurile sunt create în timpul inserării cînd capacitatea unui nod trebuie depăşită şi nu
se poate evita acest lucru prin alte procedee.
Pentru un arbore X sunt două cazuri extreme:
1. nici un nod director nu este supernod;
2. există doar un singur supernod ce formează rădăcina arborelui, în rest sunt doar noduri de
date.

- nod director normal

- supernod

- nod de date

Figura 8 Structura unui arbore X


In primul caz, arborele X are o organizare complet ierarhică a nodurilor directoare şi este
similar unui arbore R. In al doilea caz, supernodul rădăcină corespunde nivelului celui mai de jos din
ierarhia nodurilor directoare ale unui arbore R. Performanţele unui astfel de arbore depinde de viteza
de prelucrare secvenţială a supernodului.

S-ar putea să vă placă și