Saltar para o conteúdo

Agrupamento e agregação (álgebra relacional)

Origem: Wikipédia, a enciclopédia livre.

O operador de agrupamento γ (gama) faz parte do conjunto de operadores estendidos da Álgebra relacional. É utilizado para representar operações a serem aplicadas sobre conjuntos de tuplas de uma relação. O operador de agrupamento reúne as tuplas em grupos sobre os quais podem ser aplicadas funções agregadas. As funções de agregação mais comuns são SOMA (SUM), MÉDIA(AVG), MÁXIMO(MAX), MÍNIMO(MIN) e CONTAR(COUNT).

Uma expressão de agrupamento é formada de um conjunto de colunas agrupadoras, um conjunto de colunas projetadas e uma relação, no seguinte formato:

<colunas agrupadoras> γ <colunas projetadas> (<Relação>)

Em que:

<colunas agrupadoras> é um conjunto com nenhuma ou mais colunas a serem utilizadas para agrupamento

<colunas projetadas> é um conjunto com nenhuma ou mais colunas que serão retornadas pela expressão. Nesta lista, as colunas podem ser envolvidas por funções a serem aplicadas às mesmas. As colunas e as funções projetadas podem também ser renomeadas, através da adição de uma seta seguida do novo nome, fazendo com que a relação resultante tenha como nome de coluna o novo nome atribuído.

<Relação> é uma relação da álgebra relacional que possui as colunas utilizadas na lista de colunas projetadas e na lista de funções agregadoras.

Considerando a relação: R1 (C1, C2,C3), o agrupamento pode ser aplicado da seguinte maneira:

C1 γ C1, SUM(C2) (R1)

Expressão a ser resolvida conforme os passos a seguir:

As tuplas da relação R1 são particionadas em grupos, conforme o valor de C1. Ou seja, as tuplas que possuírem o mesmo valor em C1 serão reunidas em um grupo. Caso não exista coluna informada na lista de colunas agrupadoras, apenas um grupo com todas as tuplas da relação é formado.

Para cada grupo, uma nova tupla é produzida. Caso nenhuma coluna projetada ou função tenha sido informada, a tupla será composta apenas pelos valores resultantes do agrupamento. Caso contrário, a nova tupla será composta por:

As colunas projetadas.

A aplicação das funções agrupadoras ao grupo. No exemplo, para cada grupo, a coluna C2 será somada, produzindo o valor da nova tupla.

Outros exemplos:

C3 γ (R1)

Produz uma nova relação agrupando os valores da coluna C3.

γ MAX(C3) (R1)

Produz uma nova relação com apenas uma tupla, contendo o maior valor da coluna C3.

C1 γ C1, SUM(C3)→SOMA (R1)

Produz uma nova relação a partir do agrupamento das tuplas a partir da coluna C1, contento a coluna C1 e o resultado da soma da coluna C3 renomeado para SOMA.

Exemplos com tabelas

[editar | editar código-fonte]

Considerando a tabela FUNCIONARIO, com a seguinte estrutura:

Coluna Tipo de dado
NOME texto
SETOR texto
ANO_CONTRATACAO números inteiros
SALARIO números reais

Considerando também que esta tabela possui os seguintes dados:

NOME SETOR ANO_CONTRATACAO SALARIO
Ana Recepção 2000 900,00
Pedro Administração 1999 2000,00
Maria Administração 2001 1500,00
Tiago Linha de produção 2000 1700,00

Diversas informações podem ser extraídas destes dados através da aplicação de funções de agregação. Por exemplo:

Para contar quantos funcionários há em cada setor, a seguinte expressão pode ser aplicada:

SETOR γ SETOR, count(NOME)

Produzindo como saída:

SETOR count(NOME)
Recepção 1
Administração 2
Linha de produção 1

Para obter o maior salário e o nome do funcionário de maior salário, a seguinte expressão pode ser aplicada:

γ NOME, max(SALARIO)

Produzindo como saída:

NOME max(SALARIO)
Pedro 2000,00

Para obter a média de salários por setor e renomeando o resultado da função para MEDIA_SALARIO, a seguinte expressão pode ser aplicada:

SETOR γ SETOR, avg(SALARIO) → MEDIA_SALARIO

Produzindo como saída:

SETOR MEDIA_SALARIO
Recepção 900,00
Administração 1750,00
Linha de Produção 1700,00

Elmasri, Ramez e Shamkant B. Navathe. Sistemas de banco de dados. 6.ed.,São Paulo:Pearson Addison Wesley, 2011.

Garcia-Molina, Hector. Implementação de sistemas de bancos de dados. Rio de Janeiro:Campus,2001.

Eliminação de duplicatas

Banco de dados