15.07.2013 Views

ISCTE – ESCOLA DE GESTÃO - Universidade Técnica de Lisboa

ISCTE – ESCOLA DE GESTÃO - Universidade Técnica de Lisboa

ISCTE – ESCOLA DE GESTÃO - Universidade Técnica de Lisboa

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

neste caso, o critério consiste em escolher para efectuar a partição o atributo que permita obter a maior<br />

sub-árvore possível a partir da árvore <strong>de</strong> custo mínimo.<br />

Tomando a árvore <strong>de</strong> cobertura mínima da figura 10 e assumindo que não há espaço em memória para<br />

calcular todos os agregados nela representados, há que efectuar a partição da árvore. Quando A é<br />

escolhido como atributo pelo qual se vai efectuar a partição, obtém-se a sub-árvore à esquerda na figura<br />

22. Para computar esta árvore, calcula-se primeiro o agregado ABCD e a partir <strong>de</strong>ste ABC, ABD e ACD;<br />

ABCD e ABD são guardados em disco, calcula-se AD a partir <strong>de</strong> ACD e ACD e AD são guardados em<br />

disco; ABC é lido para a partir <strong>de</strong>le se calcular AB e AC, sendo ABC e AC guardados em disco; por fim,<br />

AB é lido para calcular A e AB e A são guardados em disco. Depois <strong>de</strong>sta sub-árvore ter sido calculada,<br />

é removida da árvore original e são calculadas cada uma das sub-árvores restantes, à direita na figura<br />

11.<br />

Figura 11 - Sub-árvores obtidas por partição da árvore da figura 10 segundo o atributo A [Agrawal1996]<br />

Este algoritmo emprega as optimizações resultados em cache (cache-results) e amortização <strong>de</strong><br />

varrimentos (amortize-scans), pois mantém em memória todos os agregados <strong>de</strong> uma sub-árvore até que<br />

os seus filhos tenham sido calculados, assim como a optimização partilha <strong>de</strong> partições (share-partition)<br />

ao conseguir calcular a partir da mesma partição todos os agregados que contêm o atributo pelo qual se<br />

fez a partição.<br />

2.4.2 Algoritmos baseados em partição<br />

Os dados provenientes do mundo real são frequentemente <strong>de</strong> natureza esparsa, o que justifica o estudo<br />

e <strong>de</strong>senvolvimento <strong>de</strong> técnicas orientadas para esse tipo <strong>de</strong> dados. Nestas condições, a representação<br />

por meio <strong>de</strong> arrays não é uma hipótese viável visto que não é comportável em termos <strong>de</strong> memória. Os<br />

algoritmos baseados na partição dos dados usam dois princípios a que se recorre frequentemente para<br />

realizar operações complexas sobre relações amplas: efectuar a partição das relações em fragmentos<br />

que possam ser armazenados em memória e efectuar a operação sobre cada um <strong>de</strong>sses fragmentos<br />

in<strong>de</strong>pen<strong>de</strong>ntemente. Existem dois algoritmos para computação <strong>de</strong> cubos a partir <strong>de</strong> dados esparsos:<br />

27

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!