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
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
algoritmo Multi-Way se <strong>de</strong>teriora quando aumenta o número <strong>de</strong> dimensões em consequência do elevado<br />
custo associado à construção da MMST [Tam1998].<br />
2.5 Variantes ao problema tradicional<br />
Os trabalhos mais recentes na área <strong>de</strong> OLAP e geração <strong>de</strong> hipercubos inci<strong>de</strong>m sobre uma variante do<br />
problema tradicional da computação <strong>de</strong> cubos. Como se viu, o problema tradicional consiste, muito<br />
resumidamente, em calcular todos os agregados da forma mais eficiente possível, tendo em conta que o<br />
problema é exponencial em relação ao número <strong>de</strong> dimensões consi<strong>de</strong>radas. Além disso, há que ter em<br />
atenção que o tamanho <strong>de</strong> cada agregado <strong>de</strong>pen<strong>de</strong> da cardinalida<strong>de</strong> das dimensões que o compõem.<br />
Como os dados reais ten<strong>de</strong>m a ser <strong>de</strong> natureza esparsa, uma estratégia para aumentar o <strong>de</strong>sempenho<br />
dos algoritmos nessas situações passa por i<strong>de</strong>ntificar antes da computação quais os subconjuntos <strong>de</strong><br />
interesse [Beyer1999] apresentaram uma variante ao problema tradicional da geração <strong>de</strong> cubos a que<br />
<strong>de</strong>ram o nome <strong>de</strong> cubos iceberg (iceberg cubes). O problema icerberg-CUBE consiste em computar<br />
todas as agregações para todas as combinações <strong>de</strong> atributos que satisfazem uma <strong>de</strong>terminada<br />
condição, à semelhança da cláusula HAVING numa interrogação SQL. Tendo em conta o contexto <strong>de</strong><br />
dados esparsos, a condição envolvida estabelece que uma partição <strong>de</strong>ve ter pelo menos N tuplos, sendo<br />
N <strong>de</strong>signado como o suporte mínimo da partição.<br />
2.5.1 Computação da base para o topo (bottom-up computation)<br />
Beyer e Ramakrishnan propuseram o algoritmo BUC como resposta ao problema dos cubos iceberg.<br />
Este algoritmo procura combinar a eficiência a nível <strong>de</strong> entradas/saídas do algoritmo Partitioned-Cube<br />
com a possibilida<strong>de</strong> <strong>de</strong> recorrer a filtragem em função do suporte mínimo pretendido [Beyer1999]. A sua<br />
<strong>de</strong>signação <strong>de</strong>ve-se ao facto do algoritmo começar nos agregados mais pequenos e prosseguir até aos<br />
agregados maiores, ao contrário da maioria dos restantes algoritmos. Cada dimensão é lida e dividida<br />
segundo o número <strong>de</strong> ocorrências para cada um dos valores <strong>de</strong>ssa dimensão, sendo as restantes<br />
dimensões computadas recursivamente para cada partição.<br />
O algoritmo recorre à estratégia dividir para conquistar (divi<strong>de</strong>-and-conquer) uma vez que, após uma<br />
<strong>de</strong>terminada partição ter sido calculada, todos os cubói<strong>de</strong>s <strong>de</strong>scen<strong>de</strong>ntes são calculados antes do<br />
algoritmo passar à partição seguinte. O movimento da base para o topo, ou seja, no sentido dos<br />
agregados mais pequenos para os agregados maiores, permite que seja realizada uma filtragem<br />
recorrendo à proprieda<strong>de</strong> anti-monotónica empregue no algoritmo Apriori, usado na <strong>de</strong>scoberta <strong>de</strong><br />
associações frequentes entre objectos [Agrawal1994] que estabelece que, se a contagem numa célula c<br />
<strong>de</strong> um cubói<strong>de</strong> A é inferior a um limite mínimo estabelecido, então o valor para qualquer uma das células<br />
que partilhem com essa célula um prefixo comum nunca será superior ao limite pré-estabelecido; logo,<br />
essas células <strong>de</strong>scen<strong>de</strong>ntes não precisam <strong>de</strong> ser calculadas.<br />
42