Você está na página 1de 29

Laboratorio de Banco de Dados

Agrupamento

Raphael de Souza, Allan Goncalves de


Oliveira
IC/UFMT
Roteiro

1 Agrupamento

2 Exerc
cios

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 2 / 16
Agrupamento

Definicao
Reune as tuplas em grupos sobre os quais podem ser aplicadas
funcoes agregadas

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 3 / 16
Agrupamento

O operador de agrupamento (gama) faz parte do conjunto de


operadores estendidos da A lgebra relacional

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 4 / 16
Agrupamento

O operador de agrupamento (gama) faz parte do conjunto de


operadores estendidos da A lgebra relacional
Sobre os agrupamentos e possvel executar as funcoes de ca
agrega sendo as mais utilizadas: o,

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 4 / 16
Agrupamento

O operador de agrupamento (gama) faz parte do conjunto de


operadores estendidos da A lgebra relacional
Sobre os agrupamentos e possvel executar as funcoes de ca
agrega sendo as mais utilizadas: o,
I SUM
I AVG
II MAX
I MIN
COUNT

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 4 / 16
Agrupamento

A representacao desta cao na algebra relacional


opera e:
<colunas agrupadoras> <colunas projetadas> (<Relacao>)

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 5 / 16
Agrupamento

A representacao desta cao na algebra relacional


opera e:
<colunas agrupadoras> <colunas projetadas> (<Relacao>)

Onde:
I <colunas agrupadoras> e um conjunto com nenhuma ou mais colunas
a serem utilizadas para agrupamento

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 5 / 16
Agrupamento

A representacao desta cao na algebra relacional


opera e:
<colunas agrupadoras> <colunas projetadas> (<Relacao>)

Onde:
I <colunas agrupadoras> e um conjunto com nenhuma ou mais colunas
a serem utilizadas para agrupamento
I <colunas projetadas> e um conjunto com nenhuma ou mais colunas
que serao retornadas pela expressao

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 5 / 16
Agrupamento

Considerando a relacao: R1 (C1,


C2,C3)

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 6 / 16
Agrupamento

Considerando a relacao: R1 (C1,


C2,C3)
C1 C1, SUM(C2) (R1)

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 6 / 16
Agrupamento

Considerando a relacao: R1 (C1, C2,C3)


C1 C1, SUM(C2) (R1)
A expressao e resolvida da seguinte
maneira:
I As tuplas da relacao R1 sao particionadas em grupos, conforme o

de C1 valor

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 6 / 16
Agrupamento

Considerando a relacao: R1 (C1, C2,C3)


C1 C1, SUM(C2) (R1)
A expressao e resolvida da seguinte
maneira:
I As tuplas da relacao R1 sao particionadas em grupos, conforme o

de C1 valor
I Ou seja, as tuplas que possurem o mesmo valor em C1 serao
reunidas
em um grupo.

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 6 / 16
Agrupamento

Considerando a relacao: R1 (C1, C2,C3)


C1 C1, SUM(C2) (R1)
A expressao e resolvida da seguinte
maneira:
I As tuplas da relacao R1 sao particionadas em grupos, conforme o

de C1 valor
I Ou seja, as tuplas que possurem o mesmo valor em C1 serao
reunidas
I em um grupo.
Para cada grupo, uma nova tupla e produzida com as
colunas projetadas

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 6 / 16
Agrupamento

Considerando a relacao: R1 (C1, C2,C3)


C1 C1, SUM(C2) (R1)
A expressao e resolvida da seguinte
maneira:
I As tuplas da relacao R1 sao particionadas em grupos, conforme o

de C1 valor
I Ou seja, as tuplas que possurem o mesmo valor em C1 serao
reunidas
I em um grupo.
Para cada grupo, uma nova tupla e produzida com as
I colunas projetadas
Entao e realizado a aplicacao das funcoes agrupadoras ao grupo.

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 6 / 16
Agrupamento

Considerando a relacao: R1 (C1, C2,C3)


C1 C1, SUM(C2) (R1)
A expressao e resolvida da seguinte
maneira:
I As tuplas da relacao R1 sao particionadas em grupos, conforme o

de C1 valor
I Ou seja, as tuplas que possurem o mesmo valor em C1 serao
reunidas
I em um grupo.
Para cada grupo, uma nova tupla e produzida com as
I colunas projetadas
I Entao e realizado a aplicacao das funcoes agrupadoras ao grupo.
No exemplo, para cada grupo, a coluna C2 sera somada, produzindo
o valor da nova tupla

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 6 / 16
Agrupamento

Considere a seguinte estrutura de tabela denominada


FUNCIONARIO:
Coluna Tipo de dado
NOME texto
SETOR texto
ANO numeros
CONTRATACAO
SALARIO inteiros nu
meros reais

Raphael de Souza, Allan Goncalves de Oliveira Laboratorio de 7 / 16


Agrupamento

Dado os seguintes dados:

NOME SETOR ANO CONTRATACAO SALARI


Ana Recepca 2000 O
900.00
Ped o
Administraca 1999 2000.00
ro o
Administraca 2001 1500.00
Mar o
Linha de produca 2000 1700.00
ia o
Tia
go

Raphael de Souza, Allan Goncalves de Oliveira Laboratorio de 8 / 16


Agrupamento

Para contar quantos funcionarios ha em cada setor, a


seguinte
expressao pode ser aplicada:

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 9 / 16
Agrupamento

Para contar quantos funcionarios ha em cada setor, a


seguinte
expressao pode ser aplicada:
SETOR SETOR, count(NOME)

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 9 / 16
Agrupamento

Para contar quantos funcionarios ha em cada setor, a


seguinte
expressao pode ser aplicada:
SETOR SETOR, count(NOME)
Produzindo: SETOR count(NOME)
Recepcao 1
Administraca 2
Linha de o 1
producao

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 9 / 16
Agrupamento

Para realizar esse tipo de consulta em SQL tem-se a seguinte sintaxe:

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 10 / 16
Agrupamento

Para realizar esse tipo de consulta em SQL tem-se a seguinte sintaxe:

S E L EC T coluna_1 , f u n c a o _ d e _ a g r e g a c a o ( c o l u n a _ 2 )
FROM < TABELA >
GROUP BY col una_1

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 10 / 16
Agrupamento

Assim para realizar a operacao do exemplo anterior


temos:
S E L E C T setor , co unt ( nome )

FROM f u n c i o n a r i o

GR OUP BY set or

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 11 / 16
Agrupamento

Dado o exemplo anterior o que ira retornar do seguinte


SQL
S E L E C T a n o _ c o n t r at ac a o , co unt ( nome )

FROM f u n c i o n a r i o

GR OUP BY a n o _ c o n t r a t a c a o

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 12 / 16
Agrupamento

Dado o exemplo anterior o que ira retornar do seguinte


SQL
S E L E C T setor , sum ( sa la r i o )

FROM f u n c i o n a r i o

GR OUP BY set or

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 13 / 16
Agrupamento

Dado o exemplo anterior o que ira retornar do seguinte


SQL
S E L E C T a n o _ c o n t r at ac a o , max ( s a l a r io ) , min (

sa la r i o )

FROM f u n c i o n a r i o

GR OUP BY a n o _ c o n t r a t a c a o

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 14 / 16
Exerccio
Dado as relacoes Livro x Assunto x Editora:
Livro:
I Codigo
I Ttulo
I Editora
I Assunto
Assunto:
Codigo
I

Sigla
II
Descric
ao
Editora:
I Codigo
I Nome
Faca as consultas para responder as seguintes
questoes
I A quantidade de livro por cada editora, ordenado do maior para o

menor
I A quantidade de livro por cada assunto, ordenado do menor para
omaior
Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)
Laboratorio de 15 / 16
Exerc
cio

Crie um conjunto de relacoes Cliente x Venda x


Produto:
Faco
I Aas consultastotal
quantidade paraderesponder
vendas porascada
seguintes
cliente, questoes
sendo que deve aparecer
o nome do cliente, o total ordenado por aquele que comprou mais para
o que comprou menos
I Crie um relatorio que mostre a quantidade o total de cada
produto comprado por cada cliente.
Ex: Cliente1, 10, Lapis
Cliente1, 5, Borrachas

Raphael de Souza, Allan Goncalves de Oliveira (IC/UFMT)


Laboratorio de 16 / 16