Skip to content

Latest commit

 

History

History
90 lines (63 loc) · 4.83 KB

topico-12.md

File metadata and controls

90 lines (63 loc) · 4.83 KB

[Tópico T12] - Álgebra Relacional - Divisão, Função Agregada, Agrupamento

by Prof. Plinio Sa Leitao-Junior (INF/UFG)

Para ilustrar as operações da Álgebra Relacional, considere os esquemas (conceitual e lógico) do BD Empresa.

Operação DIVISÃO (DIVISION)

A figura abaixo ilustra a operação DIVISÃO.

A operação DIVISÃO é usualmente referida como "para todas":

  • Em T ← R ÷ S na figura:
    • o conjunto de atributos de R é XR = {A, B};
    • o conjunto de atributos de S é XS = {A};
    • os atributos de S são um subconjunto dos atributos de R, isto é, XS ⊆ XR;
    • o conjunto de atributos de T é XR - XS = {B};
    • cada tupla em T se refere às tuplas de R que existem "para todas" as tuplas de S, conforme ilustrado na figura.

DIVISÃO Exemplo 1:

Qual o nome dos funcionários que trabalham em todos os projetos que o "João Silva" trabalha?

Expressão Operação
SILVA ← σPnome=‘João’ AND Unome=‘Silva’(FUNCIONARIO) RENOMEAÇÃO, SELEÇÃO
PROJETOS_SILVA ← πPnr(TRABALHA_EM ⋈Fcpf=CpfSILVA) RENOMEAÇÃO, EQUIJUNÇÃO, PROJEÇÃO
PROJETOS_TODOS_FUNCS ← πFcpf, Pnr(TRABALHA_EM) RENOMEAÇÃO, PROJEÇÃO
FUNC(Cpf) ← PROJETOS_TODOS_FUNCS ÷ PROJETOS_SILVA RENOMEAÇÃO, DIVISÃO
RESULT ← πPnome, Unome(FUNC * FUNCIONARIO) RENOMEAÇÃO, JUNÇÃO NATURAL, PROJEÇÃO

DIVISÃO Exemplo 2:

Qual o nome dos funcionários que possui o mesmo salário do "João Silva"?
escreva a consulta em álgebra relacional...

FUNÇÃO AGREGADA (AGGREGATE FUNCTION) e AGRUPAMENTO (GROUPING)

As FUNÇÕES AGREGADAS usam funções matemáticas para cálculos estatísticos simples nos conjuntos do banco de dados:

  • O símbolo ℑ identifica a operação (F Script).
  • A funções agregadas são CONTA (COUNT), SOMA (SUM), MÉDIA (AVERAGE), MÁXIMO (MAXIMUM) e MÍNIMO (MINIMUM).
  • Alguns exemplos de aplicação das funções agregadas são:
    • qual a média dos salários dos funcionários?
    • qual a soma dos salários dos funcionários?
    • qual o número (a quantidade) de funcionários?

FUNÇÃO AGREGADA e AGRUPAMENTO Exemplo 1:

Qual a quantidade de funcionários bem como a soma e a média de salários da empresa?
■ ℑ CONTA Cpf, SOMA Salario, MÉDIA Salario (FUNCIONARIO)

O AGRUPAMENTO envolve o agrupamento de tuplas em uma relação, a partir do valor um ou mais atributos:

  • Os atributos usados para estabelecer o agrupamento de tuplas são denominados atributos de agrupamento.
  • Cada grupo é formado pelas tuplas que possuem o mesmo valor para os atributos de agrupamento.
  • A sintaxe genérica para o agrupamento é:
    • atributos-de-agrupamentolista-de-funções-agregadas (R)
  • A relação resultante é formada pelos valores dos atributos de agrupamento e pelos valores das funções agregadas.

FUNÇÃO AGREGADA e AGRUPAMENTO Exemplo 2:

Qual a quantidade de funcionários e média salarial por departamento da empresa?
Dnr ℑ CONTA Cpf, MÉDIA Salario (FUNCIONARIO)
OU
■ ρ RESULT (Identificacao_do_departamento, Quantidade_de_empregados, Salario_medio) (Dnr ℑ CONTA Cpf, MÉDIA Salario (FUNCIONARIO))

FUNÇÃO AGREGADA e AGRUPAMENTO Exemplo 3:

Qual o nome dos funcionários que possuem dois ou mais dependentes?

Expressão Operação
RESUMO(Cpf, Qtde_depend)← Fcpf ℑ CONTA Fcpf (DEPENDENTE) RENOMEAÇÃO, FUNÇÃO AGREGADA, AGRUPAMENTO
RESUMO_DOIS ← σ Qtde_depend >= 2 (RESUMO) RENOMEAÇÃO, SELEÇÃO
RESULT ← π Pnome, Unome (RESUMO_DOIS * FUNCIONARIO) RENOMEAÇÃO, JUNÇÃO NATURAL, PROJEÇÃO

Atividade (data limite: 05/09/2021 23h59min59s)

Criar uma issue no projeto https://github.com/plinioleitao/bd-2021-1-bia, com o título "Tópico 12", para responder:

Escreva em álgebra relacional as seguintes consultas ao BD Empresa:

  1. Qual o nome dos departamentos que possuem três ou mais empregados que trabalham para o departamento?
  2. Qual o nome dos departamentos cujo salário médio dos empregados que trabalham para o departamento é superior a 2000 reais?

IMPORTANTE: Use a sintaxe da Álgebra Relacional conforme os exemplos apresentados.

Artefatos

  1. Issue criada no projeto https://github.com/plinioleitao/bd-2021-1-bia, cujo título é "Tópico 12", para praticar operações da álgebra relacional.