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
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>de</strong> dados, frequentemente mantidos para outros fins, e que na maioria dos casos os utilizadores não<br />
conseguem estabelecer um objectivo <strong>de</strong>finido. Isto leva a que as interrogações colocadas impliquem a<br />
agregação <strong>de</strong> gran<strong>de</strong>s quantida<strong>de</strong>s <strong>de</strong> dados, o que impossibilita a rapi<strong>de</strong>z <strong>de</strong>sejada na resposta. O<br />
objectivo do sistema proposto seria, portanto, conseguir que as ferramentas <strong>de</strong> data mining<br />
trabalhassem em conjunto com as ferramentas <strong>de</strong> OLAP <strong>de</strong> uma data warehouse por forma a aumentar<br />
a qualida<strong>de</strong> e rentabilida<strong>de</strong> da experiência para o utilizador, numa perspectiva a que foi dado o nome <strong>de</strong><br />
OLAP mining. Um dos principais <strong>de</strong>safios na criação <strong>de</strong> um sistema <strong>de</strong>stes é a necessida<strong>de</strong> <strong>de</strong> uma<br />
implementação eficiente do mecanismo <strong>de</strong> computação e construção do cubo, que permita uma<br />
capacida<strong>de</strong> <strong>de</strong> resposta rápida. Com base no operador CUBE [Gray1997] e no algoritmo Multi-Way<br />
[Zhao1997], Tam propôs um algoritmo <strong>de</strong> computação <strong>de</strong> agregados cujas principais características são<br />
o facto <strong>de</strong> percorrer a relação uma única vez, computar um agregado a partir do menor agregado já<br />
computado, computar simultaneamente o maior número <strong>de</strong> agregados possível e retirar os agregados <strong>de</strong><br />
memória o mais cedo possível <strong>de</strong> forma a libertar memória para a computação <strong>de</strong> outros agregados<br />
[Tam1998]. Em traços gerais, o algoritmo proposto baseia-se no conceito <strong>de</strong> um cubo baseado em<br />
chunks, em que o cubo é armazenado sob a forma uma tabela relacional e os seus chunks armazenados<br />
como tuplos. Para cada chunk, as células são mapeadas para um en<strong>de</strong>reço <strong>de</strong> memória que po<strong>de</strong> ser<br />
guardado como um dos campos do tuplo, <strong>de</strong> forma a que não seja necessário utilizar mecanismos <strong>de</strong><br />
in<strong>de</strong>xação para ace<strong>de</strong>r aos chunks. No fundo, são combinadas características <strong>de</strong> sistemas ROLAP e<br />
MOLAP num único algoritmo.<br />
No trabalho realizado por Tam, o conceito <strong>de</strong> cubo foi <strong>de</strong>senhado tendo em conta um contexto dirigido<br />
por interrogações (query-driven), no qual o número <strong>de</strong> dimensões do cubo não é conhecido enquanto a<br />
interrogação não é submetida. Por essa razão, conceptualmente o cubo é multidimensional mas é<br />
implementado como um array unidimensional. Sendo D0, D1, ..., DN-1 as dimensões <strong>de</strong> um cubo N-<br />
dimensional, é adicionado o valor ALL a cada dimensão Di, tal como <strong>de</strong>scrito por [Gray1997], o que faz<br />
com que qualquer célula em que o valor ALL faça parte do seu en<strong>de</strong>reço corresponda a um agregado.<br />
Este tipo <strong>de</strong> células é <strong>de</strong>signado como célula cubói<strong>de</strong> (cuboid cell), enquanto as restantes células são<br />
consi<strong>de</strong>radas células nucleares (core cells). Os valores <strong>de</strong> cada dimensão são mapeados para<br />
coor<strong>de</strong>nadas <strong>de</strong> tal forma que a dimensão Di corresponda aos valores {di0, di1, ..., di|Di|-1, diALL}. A posição<br />
<strong>de</strong> cada célula do cubo é <strong>de</strong>notada no espaço multidimensional pelo vector V(v0, v1, ..., vN-1), sendo a<br />
magnitu<strong>de</strong> <strong>de</strong> cada vector equivalente ao número <strong>de</strong> dimensões do cubo. Portanto, para uma célula<br />
cubói<strong>de</strong>, o seu en<strong>de</strong>reço contém pelo menos um componente vj tal que vj = |Dj|, j ≥ 0 e j < N. Assim, a<br />
célula cujo en<strong>de</strong>reço é dado pelo vector V(|D0|, ..., |DN-1|) trata-se da célula cubói<strong>de</strong> correspon<strong>de</strong>nte ao<br />
agregado vazio ALL [Tam1998]. Tomando o cubo C tridimensional na figura 12, verifica-se que existem<br />
três dimensões, em que |D0| = 5, |D1| = 4, |D2| = 3, e que os valores para cada dimensão são di0 = 0, di1 =<br />
1 e assim sucessivamente para i = 0,1, 2. A célula cubói<strong>de</strong> com o en<strong>de</strong>reço V(5, 4, 3) correspon<strong>de</strong>,<br />
então, à célula (ALL, ALL, ALL). Seguindo ainda esta notação, a célula com o en<strong>de</strong>reço V(5, 0, 0) guarda<br />
o resultado da soma das medidas das células {V(0, 0, 0), V(1, 0, 0), V(2, 0, 0), V(3, 0, 0), V(4, 0, 0)},<br />
35