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.

<strong>de</strong> malha <strong>de</strong> procura proposto pelo algoritmo PipeSort, a partir da qual <strong>de</strong>termina quais os cubói<strong>de</strong>s que<br />

po<strong>de</strong>m ser obtidos a partir <strong>de</strong> outros no sentido <strong>de</strong> minimizar o número <strong>de</strong> caminhos que é necessário<br />

percorrer para cobrir todos os nós. Assim, para cada cubo o algoritmo toma um caminho e or<strong>de</strong>na a<br />

relação em memória tendo em conta a or<strong>de</strong>nação dos atributos no nó inicial. Seguidamente, os dados<br />

são percorridos, sendo os agregados acumulados à medida que o caminho percorre os vários níveis <strong>de</strong><br />

granularida<strong>de</strong>.<br />

Os resultados mostram que o algoritmo faz o número mínimo possível <strong>de</strong> or<strong>de</strong>nações e consegue tirar<br />

partido dos prefixos comuns <strong>de</strong> diferentes agregados <strong>de</strong> forma a optimizar o custo a nível <strong>de</strong><br />

processamento. Além disso, os únicos custos <strong>de</strong> entrada/saída inerentes são os <strong>de</strong> entrada <strong>de</strong> dados e<br />

saída dos resultados, o que faz com que a carga total <strong>de</strong>ste tipo <strong>de</strong> operações seja linear em relação ao<br />

número <strong>de</strong> atributos envolvidos, sempre que a relação possa estar em memória.<br />

2.4.3 Algoritmos baseados em arrays<br />

Nos sistemas do tipo MOLAP, os dados são armazenados em arrays, o que faz com que as técnicas do<br />

tipo or<strong>de</strong>nação e dispersão não sejam aplicáveis. O próprio facto <strong>de</strong> ser utilizado outro tipo <strong>de</strong> estrutura<br />

<strong>de</strong> dados faz com que seja necessário ter em conta uma série <strong>de</strong> factores relacionados com o<br />

carregamento e armazenamento eficientes <strong>de</strong> arrays <strong>de</strong> gran<strong>de</strong>s dimensões e muito esparsos.<br />

O algoritmo Multi-Way Array Cubing, proposto por Zhao et al segue os princípios do paradigma MOLAP<br />

na medida em que o seu objectivo é percorrer as células dos arrays <strong>de</strong> tal forma que não seja necessário<br />

repetir a operação para calcular cada um dos sub-agregados. Por questões <strong>de</strong> <strong>de</strong>sempenho, os arrays<br />

têm que ser armazenados divididos em arrays <strong>de</strong> menor dimensão, recorrendo-se a uma estratégia<br />

<strong>de</strong>signada <strong>de</strong> chunking [Zhao1997].<br />

DS fonte <strong>de</strong> dados<br />

c chunk<br />

chunkSize tamanho do chunk<br />

O {D 1,D 2,...,D n : |D 1|≤|D 2|≤...≤|D n|}<br />

T MMST para or<strong>de</strong>m O<br />

m número <strong>de</strong> elementos <strong>de</strong> O<br />

para cada c no nivel m do array<br />

carregar dados para c a partir <strong>de</strong> DS<br />

i n<br />

para cada D i<br />

para cada posição <strong>de</strong> c<br />

val valor da posição<br />

fazer<br />

nextLevel m-1<br />

para cada nó em nextLevel<br />

remover posição não utilizada em nó<br />

agregar valor no nó<br />

até<br />

nextLevel≥0<br />

i i-1<br />

Figura 13 <strong>–</strong> Pseudocódigo genérico do algoritmo Multi-Way<br />

29

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

Saved successfully!

Ooh no, something went wrong!