Buscar

bd-1-slides-5-algebra-calculo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 25 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Banco de Dados I
Álgebra Relacional
Cálculo Relacional
DCC-UFLA
Prof. Denilson Alves Pereira
DCC-UFLA Prof. Denilson Alves Pereira 2
Outras Operações Relacionais
 Operações adicionais da Álgebra Relacional para 
atender solicitações comuns em SGBDRs
 Projeção Generalizada
 Funções de Agregação
 Agrupamento
 Operações OUTER JOIN (Junção Externa)
 Melhoram o poder expressivo da Álgebra Relacional 
original
DCC-UFLA Prof. Denilson Alves Pereira 3
Projeção Generalizada
 Permite que funções dos atributos sejam incluídas na 
lista de projeção
 Π
F1, F2, …, Fn
 (R)
 Exemplo:
 Π
NumEmpregado, Salario*0.25, Salario – Salario*0.25 
 (Empregado)
 Os atributos podem ser renomeados:
ρ
(NumEmp, Imposto, SalarioLiquido)
 (Π
NumEmpregado, Salario*0.25, Salario – Salario*0.25 
 (Empregado))
DCC-UFLA Prof. Denilson Alves Pereira 4
Funções de Agregação
 São funções de agregação matemática especificadas 
sobre coleções de valores do banco de dados
 Funções comuns:
 Soma (SUM), Média (AVG), Máximo (MAX), Mínimo (MIN) 
e Conta (COUNT)
DCC-UFLA Prof. Denilson Alves Pereira 5
Agrupamento
 Agrupa tuplas pelo valor de alguns de seus atributos
 Normalmente, depois do agrupamento aplica-se 
funções de agregação independentemente para cada 
grupo
 Notação: ℑ (pronuncia-se F script)
<atributos agrupamento>
ℑ
<lista de funções>
 (R)
DCC-UFLA Prof. Denilson Alves Pereira 6
Agregação e Agrupamento
 Exemplo: recuperar para cada departamento o seu 
número, o seu número de funcionários e o seu salário 
médio
 R1 ← 
NumDepart
ℑ
COUNT NumEmpregado, AVG Salário
 (Empregado)
 ρ
(NumDepto, NoEmps, SalarioMedio)
 (R1)
Resultado:
NumDepto NoEmps SalarioMedio
5 4 33250
4 3 31000
1 1 55000
DCC-UFLA Prof. Denilson Alves Pereira 7
Agregação e Agrupamento
 Exemplo: recuperar os nomes de todos os 
funcionários com dois ou mais dependentes
 R1 ← 
NumEmpregado
ℑ
COUNT NomeDependente
 (Dependente)
 R2 ← ρ
(NumEmpregado, NoDeps)
 (R1)
 R3 ← σ
NoDeps >= 2
(R2)
 R ← pi
PrimeiroNome, UltimoNome
 (R3 * Empregado)
DCC-UFLA Prof. Denilson Alves Pereira 8
Operações OUTER JOIN (Junção 
Externa)
 A junção vista anteriormente é chamada de Junção 
Interna (Inner Join). Nela, somente tuplas que 
possuem correspondentes nas duas relações 
aparecem no resultado.
 A Junção Externa (Outer Join) mantém todas as tuplas 
da primeira relação, ou todas da segunda, ou todas 
aquelas nas duas relações no resultado da junção, 
independentemente de elas possuírem ou não tuplas 
correspondentes na outra relação.
DCC-UFLA Prof. Denilson Alves Pereira 9
Operações OUTER JOIN (Junção 
Externa)
 Tipos de junção externa:
 Junção externa à esquerda, junção externa à direita e 
junção externa completa
 Exemplo: Lista todos os nomes de funcionários, bem 
como o nome dos departamentos que eles 
gerenciam, se eles gerenciarem um departamento. 
Caso não o façam, indicar isso com um valor NULL
DCC-UFLA Prof. Denilson Alves Pereira 10
Cálculo Relacional
 O cálculo relacional é outra linguagem de consulta 
formal para o modelo relacional. Divide-se em:
 Cálculo relacional de tupla
 Cálculo relacional de domínio
 É uma linguagem declarativa, especifica-se o que deve 
ser recuperado em vez de como recuperar
 Diferente da álgebra relacional, que é uma linguagem 
procedimental
 Tem o mesmo poder de expressão da álgebra 
relacional
DCC-UFLA Prof. Denilson Alves Pereira 11
Cálculo Relacional de Tupla
 É um dos alicerces da Linguagem SQL
 Variável de tupla
 Percorre determinada relação do banco de dados
 O cálculo relacional de tupla simples tem a forma:
 {t | COND(t)}
 t é uma variável de tupla
 COND(t) é expressão condicional booleana
 O resultado da consulta é o conjunto de todas as tuplas t que 
avaliam COND(t) como TRUE
DCC-UFLA Prof. Denilson Alves Pereira 12
Cálculo Relacional de Tupla
 Exemplo:
 Recuperar o nome de todos os funcionários cujo salário é 
maior que 50.000
{t.PrimeiroNome | Empregado(t) AND t.salario > 50.000}
 Uma expressão deve conter:
 Relação de intervalo R de t. É especificada por uma 
condição na forma R(t)
 Condição para selecionar combinações de tuplas
 Conjunto de atributos a serem recuperados
DCC-UFLA Prof. Denilson Alves Pereira 13
Expressões e Fórmulas
 Uma expressão geral do cálculo relacional de tupla tem a 
forma:
 Uma fórmula (ou condição) é composta de átomos do 
cálculo de predicados
 Um átomo da forma R(t
i
), onde R é um nome de relação e t
i
 uma 
variável de tupla
 Um átomo da forma t
i
.A op t
j
.B, onde op é um operador de 
comparação, A e B, atributos das relações de t
i
 e t
j
 
 Um átomo da forma t
i
.A op c, onde c é um valor constante
DCC-UFLA Prof. Denilson Alves Pereira 14
Quantificador Existencial e Universal
 Quantificador existencial (∃)
 Uma fórmula (∃t)(F) é TRUE se existir alguma tupla que 
torne F TRUE
 Quantificador universal (∀)
 Uma fórmula (∀t)(F) é TRUE se cada tupla no universo de 
tuplas tornar F TRUE
 Uma variável de tupla t é ligada se for quantificada, 
ou seja, aparecer em uma cláusula (∃t) ou (∀t); caso 
contrário, ela é livre.
DCC-UFLA Prof. Denilson Alves Pereira 15
Exemplos de Consulta
 Listar o nome e o endereço de todos os funcionários 
que trabalham para o depto 'Pesquisa'
{t.nome, t.endereço | Funcionario(t) AND (∃d)
(Departamento(d) AND d.nomeDepart='Pesquisa' AND 
d.numDepart=t.numDepart)}
 As únicas variáveis de tupla livres em uma expressão 
devem ser aquelas que aparecem à esquerda da barra (|)
DCC-UFLA Prof. Denilson Alves Pereira 16
Exemplos de Consulta
 Para cada projeto localizado em 'Houston', listar o 
número do projeto, o número do departamento que o 
controla e o nome do gerente do departamento
{p.NumProj, p.NumDepart, f.PrimeiroNome | 
Funcionario(f) AND Projeto(p) AND 
p.Localizacao='Houston' AND ((∃d)(Departamento(d) AND 
p.NumDepart=d.NumDepart AND 
d.NumGerente=f.NumEmpregado))}
DCC-UFLA Prof. Denilson Alves Pereira 17
Exemplos de Consulta
 Listar o nome dos funcionários que trabalham em 
algum projeto controlado pelo departamento de 
número 5
{f.PrimeiroNome | Funcionario(f) AND ((∃p)(∃t)(Projeto(p) 
AND Trabalha(t) AND p.NumDepart=5 AND 
t.NumEmpregado=f.NumEmpregado AND 
p.NumProj=t.NumProj))}
DCC-UFLA Prof. Denilson Alves Pereira 18
Exemplos de Consulta
 Listar os números de projetos que envolvem um funcionário cujo 
sobrenome é 'Smith', seja como um trabalhador ou como um 
gerente do departamento que controla o projeto
{p.NumProj | Projeto(p) AND (((∃f)(∃t)(Funcionario(f) AND Trabalha(t) 
AND p.NumProj=t.NumProj AND t.NumEmpregado=f.NumEmpregado 
AND f.UltimoNome='Smith'))
OR
((∃g)(∃d)(Funcionario(g) AND Departamento(d) AND 
p.NumDepart=d.NumDepart AND d.NumGerente=g.NumEmpregado 
AND g.UltimoNome='Smith')))}
DCC-UFLA Prof. Denilson Alves Pereira 19
Cálculo Relacional de Domínio
 É a base da linguagem QBE (Query-By-Example)
 Difere do cálculo relacional de tupla no tipo das 
variáveis usadas nas fórmulas
 Ao invés de percorrerem as tuplas, elas percorrem 
valores isolados dos domínios dos atributos
 Para formar uma relação de grau n, precisamos ter n 
variáveis de domínio, uma para cada atributo
DCC-UFLA Prof. Denilson Alves Pereira 20
Cálculo Relacional de Domínio
 Uma expressão do cálculo de domínio tem a forma
{x
1
, x
2
, …, x
n
 | COND(x
1
, x
2
, …, x
n
, x
n+1
, x
n+2
, …, x
n+m
)}
onde x
1
, x
2
, …, x
n
, x
n+1
, x
n+2
, …, x
n+m
 são variáveis de 
domínio que percorrem os domínios dos atributos e 
COND é uma condição ou fórmula
DCC-UFLA Prof. Denilson Alves Pereira 21
Cálculo Relacional de Domínio
 Uma fórmula é composta de átomos, variáveis e 
quantificadores
 Um átomo da forma R(x
1
, x
2
, …, x
j
), onde R é o nome de 
uma relação de grau j e cada x
i
 é uma variável de domínio
 Um átomo da forma x
i
 op x
j
, onde op é um operador de 
comparaçãoe x
i
 e x
j
 são variáveis de domínio
 Um átomo da forma x
i
 op c ou c op x
i
, onde c é um valor 
constante
 Os átomos são avaliados como TRUE ou FALSE
DCC-UFLA Prof. Denilson Alves Pereira 22
Exemplos de Consulta
 Listar a data de nascimento e o endereço do 
funcionário de nome 'Franklin Wong'
{v, w | (∃r)(∃s)(∃t)(∃u)(∃x)(∃y)(∃z)(∃q)
(Empregado(rstuvwxyzq) AND r='Franklin' AND t='Wong')}
 v e w são variáveis livres (não ligadas a um quantificador)
 Notação simplificada
 Quantifica-se somente as variáveis que realmente aparecem 
em uma condição (r e t, no exemplo)
 {v, w | (∃r)(∃t)(Empregado(rstuvwxyzq) AND r='Franklin' AND 
t='Wong')}
DCC-UFLA Prof. Denilson Alves Pereira 23
Exemplos de Consulta
 Listar o nome e o endereço de todos os funcionários 
que trabalham para o departamento 'Pesquisa'
{r, w | (∃q)(∃l)(∃m)(Empregado(rstuvwxyzq) AND 
Departamento(lmno) AND l='Pesquisa' AND m=q)}
 Para cada projeto localizado em 'Houston', listar o 
número do projeto, o número do departamento que o 
controla e o nome do gerente do departamento
{i, k, r | (∃j)(∃m)(∃n)(∃u)(Projeto(hijk) AND 
Empregado(rstuvwxyzq) AND Departamento(lmno) AND 
k=m AND j='Houston') AND n=u}
DCC-UFLA Prof. Denilson Alves Pereira 24
Exemplos de Consulta
 Listar os nomes dos funcionários que não tem 
dependentes
{r, t | (∃u)(Empregado(rstuvwxyzq) AND (NOT(∃l)
(Dependente(lmnop) AND u=l)))}
 Listar os nomes dos gerentes que têm pelo menos 
um dependente
{r, t | (∃u)(∃j)(∃l)(Empregado(rstuvwxyzq) AND 
Departamento(hijk) AND Dependente(lmnop) AND u=j 
AND u=l)}
DCC-UFLA Prof. Denilson Alves Pereira 25
Referência Bibliográfica Básica
ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de 
Bancos de Dados. Pearson Education, 6a edição, 2011. 
ISBN-978-85-7936-085-5
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18
	Slide 19
	Slide 20
	Slide 21
	Slide 22
	Slide 23
	Slide 24
	Slide 25

Outros materiais