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).
Sintaxe
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.
Exemplos
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
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
|
Referências
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.
Ver também
Eliminação de duplicatas
Banco de dados