|
O objetivo do algoritmo é reduzir um conjunto de agregações em uma única agregação. Quando se tem apenas uma agregação obter os dados é simples, basta selecionar os atributos da consulta dessa agregação.
|
|
O objetivo do algoritmo é reduzir um conjunto de agregações em uma única agregação. Quando se tem apenas uma agregação, obter os dados é simples, basta selecionar os atributos da consulta dessa agregação.
|
|
|
|
|
|
Existe uma serie de critérios para determinar em qual ordem as agregações serão unidas para evitar inconsistências e problemas com a consulta.
|
|
Existe uma série de critérios para determinar em qual ordem as agregações serão unidas para evitar inconsistências e problemas com a consulta.
|
|
|
|
|
|
## Algoritmo
|
|
## Algoritmo
|
|
|
|
|
... | @@ -10,12 +10,12 @@ O algoritmo recebe o conjunto de agregações do algoritmo da seleção, a consu |
... | @@ -10,12 +10,12 @@ O algoritmo recebe o conjunto de agregações do algoritmo da seleção, a consu |
|
2. Se mais de uma agregação existe segue, caso contrário termina a construção
|
|
2. Se mais de uma agregação existe segue, caso contrário termina a construção
|
|
3. Identifica-se quais são os atributos necessários
|
|
3. Identifica-se quais são os atributos necessários
|
|
* Atributos que estão na consulta
|
|
* Atributos que estão na consulta
|
|
* Atributos que estão em mais de uma agregações (JOIN)
|
|
* Atributos que estão em mais de uma agregação (JOIN)
|
|
* Atributos que estão um filtros não aplicados
|
|
* Atributos que estão em filtros não aplicados
|
|
4. Remove-se os atributos desnecessários
|
|
4. Remove-se os atributos desnecessários
|
|
5. Aplica filtros que forem possiveis e remove da lista de filtros não aplicados
|
|
5. Aplica filtros que forem possíveis e remove da lista de filtros não aplicados
|
|
5. Se algum atributo ou filtro foi removido retorna ao passo 2, caso contrário segue
|
|
5. Se algum atributo ou filtro foi removido retorna ao passo 2, caso contrário segue
|
|
6. Agrupa-se as agregações que possuem chaves identicas
|
|
6. Agrupa-se as agregações que possuem chaves idênticas
|
|
7. Quando os grupos possuem mais de uma agregação, faz a junção perfeita, transformando o grupo em uma agregação
|
|
7. Quando os grupos possuem mais de uma agregação, faz a junção perfeita, transformando o grupo em uma agregação
|
|
8. Se algum grupo foi transformado em agregação, retorna ao passo 2, caso contrário segue
|
|
8. Se algum grupo foi transformado em agregação, retorna ao passo 2, caso contrário segue
|
|
9. Seleciona-se as duas agregações com as chaves mais parecidas e realiza uma junção imperfeita
|
|
9. Seleciona-se as duas agregações com as chaves mais parecidas e realiza uma junção imperfeita
|
... | @@ -24,25 +24,25 @@ O algoritmo recebe o conjunto de agregações do algoritmo da seleção, a consu |
... | @@ -24,25 +24,25 @@ O algoritmo recebe o conjunto de agregações do algoritmo da seleção, a consu |
|
|
|
|
|
### Observações
|
|
### Observações
|
|
|
|
|
|
Embora esse algoritmo represente o esqueleto do algortimo de junção alguns tópicos importantes como "junção perfeita" "junção imperfeita" "problemas da junção imperfeita" não estão totalmente claros. Existe uma explicação completa como comentários no código do adaptador
|
|
Embora esse algoritmo represente o esqueleto do algortimo de junção, alguns tópicos importantes como "junção perfeita" "junção imperfeita" "problemas da junção imperfeita" não estão totalmente claros. Existe uma explicação completa como comentários no código do adaptador
|
|
|
|
|
|
## Redução / Junção
|
|
## Redução / Junção
|
|
|
|
|
|
De certa forma esse algoritmo basicamente consiste na aplicação em uma certa ordem de duas operações, Redução e Junção. Na redução ocorre a remoção de atributos desnecessários a a aplicação de filtros enquanto na junção duas ou mais agregações se transformam em uma. Há estudos para verificar quão bem espeficicadas devem ser essas operações de junção e remoção e se elas são possíveis em todos os bancos de dados.
|
|
De certa forma esse algoritmo basicamente consiste na aplicação em uma certa ordem de duas operações, Redução e Junção. Na redução ocorre a remoção de atributos desnecessários a a aplicação de filtros enquanto na junção duas ou mais agregações se transformam em uma. Há estudos para verificar quão bem espeficicadas devem ser essas operações de junção e remoção e se elas são possíveis em todos os bancos de dados.
|
|
|
|
|
|
## Junção Perfeita e Imperfeita
|
|
## Junção Perfeita e Imperfeita
|
|
|
|
|
|
O algorimo de junção é o mesmo. A junção é chamada perfeita quando as chaves são iguais e não ocorre efeito colateral, e ela é chama imperfeita quando as chaves não são iguais.
|
|
O algorimo de junção é o mesmo. A junção é chamada perfeita quando as chaves são iguais e não ocorre efeito colateral, e ela é chama imperfeita quando as chaves não são iguais.
|
|
|
|
|
|
Uma junção perfeita implica que para cada registro em uma agregação existe no **máximo um registro** na outra agregação. Ou seja na união das agregações, a quantidade de registros é igual a quantidade de registros da agregação com **menos** registros.
|
|
Uma junção perfeita implica que para cada registro em uma agregação existe no **máximo um registro** na outra agregação. Ou seja, na união das agregações, a quantidade de registros é igual a quantidade de registros da agregação com **menos** registros.
|
|
|
|
|
|
Na junção imperfeita implica que para cada registro em uma agregação pode haver **mais que um registro** na outra agregação. Ou seja na união das agregações, a quantidade de registros é igual a quantidade de registros da agregação com **mais** registros.
|
|
Na junção imperfeita implica que para cada registro em uma agregação pode haver **mais que um registro** na outra agregação. Ou seja na união das agregações, a quantidade de registros é igual a quantidade de registros da agregação com **mais** registros.
|
|
|
|
|
|
Em outras palavras é como se a agregação com menos registros houvesse **duplicado** alguns de seus registros para realizar a junção. Isso é um problema para as métricas, pois na redução uma função de agregação é aplicada **combinando registros**. Como a quantidade original de registros foi **alterada** o resultado é **inconsistente**.
|
|
Em outras palavras, é como se a agregação com menos registros houvesse **duplicado** alguns de seus registros para realizar a junção. Isso é um problema para as métricas, pois na redução uma função de agregação é aplicada **combinando registros**. Como a quantidade original de registros foi **alterada** o resultado é **inconsistente**.
|
|
|
|
|
|
Para resolver esse problema, quando uma agregação tem registros duplicados **As funções de agregações não podem ser aplicadas**. Em outras palavras essas métricas se transformam em dimensões.
|
|
Para resolver esse problema, quando uma agregação tem registros duplicados **As funções de agregações não podem ser aplicadas**. Em outras palavras essas métricas se transformam em dimensões.
|
|
|
|
|
|
Com as dimensões não ocorre problema, pois as dimensão são **agrupadas**. Quando os registros forem reduzidos o valor não será alterado.
|
|
Com as dimensões não ocorre esse problema, pois as dimensões são **agrupadas**. Quando os registros forem reduzidos o valor não será alterado.
|
|
|
|
|
|
|
|
|
|
## [Home](/)
|
|
## [Home](/)
|
... | | ... | |