Buscar

Solucao Exercicio Álgebra Relacional

Prévia do material em texto

BD-I - Prof. Guilherme Tavares de Assis
Exercício – Álgebra Relacional
• Esquema relacional "Empresa":
Empregado (PrimeiroNome, InicialMeio, UltimoNome, NumEmpregado, 
DataNascimento, Endereco, Sexo, Salario, NumSupervisor, NumDepto)
Departamento (NomeDepto, NumDepto, NumGerente, DataInicioGerencia)
Localizacao_Depto (NumDepart, Localizacao)
Projeto (NomeProj, NumProj, Localizacao, NumDepto)
Trabalha_em (NumEmpregado, NumProj, Horas)Trabalha_em (NumEmpregado, NumProj, Horas)
Dependente (NumEmpregado, NomeDependente, Sexo, DataAniversario, Parentesco)
Empregado [NumSupervisor] �{n} Empregado [NumEmpregado]
Empregado [NumDepto] �{b} Departamento [NumDepto]
Departamento [NumGerente] �{b} Empregado [NumEmpregado]
Localizacao_Depto [NumDepart] �{p} Departamento [NumDepto]
Projeto [NumDepto] �{b} Departamento [NumDepto]
Trabalha_em [NumEmpregado] �{p} Empregado [NumEmpregado]
Trabalha_em [NumProj] �{p} Projeto [NumProj]
Dependente [NumEmpregado] �{p} Empregado [NumEmpregado] 30
BD-I - Prof. Guilherme Tavares de Assis
Exercício – Álgebra Relacional
1. Recuperar o nome (primeiro e último nome) e o endereço dos 
empregados que trabalham para o departamento de número 5.
R ← pi PrimeiroNome,UltimoNome,Endereco (σ NumDepto=5 (Empregado))
31
BD-I - Prof. Guilherme Tavares de Assis
Exercício – Álgebra Relacional
2. Recuperar o nome (primeiro e último nome) e o endereço dos 
empregados que trabalham para o departamento 'Pesquisa'.
DepPesq← σ NomeDepto = 'Pesquisa' (Departamento)
R ← pi PrimeiroNome,UltimoNome,Endereco (DepPesq ∗ Empregado)
32
BD-I - Prof. Guilherme Tavares de Assis
Exercício – Álgebra Relacional
3. Para cada projeto localizado no 'Centro', recuperar o número do 
projeto, o número do departamento controlador e o nome 
(primeiro e último nome), o endereço e a data de nascimento do 
gerente do departamento.
ProjsCentro← σ Localizacao = 'Centro' (Projeto)
← ∗
33
DepsProjs← ProjsCentro ∗ Departamento
GersDeps← Empregado NumEmpregado=NumGerente DepsProjs
R ← pi NumProj,NumDepto,PrimeiroNome,UltimoNome,Endereco,DataNascimento
(GersDeps)
BD-I - Prof. Guilherme Tavares de Assis
Exercício – Álgebra Relacional
4. Recuperar o nome (primeiro e último nome) dos empregados 
que trabalham em todos os projetos controlados pelo 
departamento de número 5.
ProjsDep5 ← pi NumProj (σ NumDepto=5 (Projeto))
EmpsProjs← pi NumEmpregado,NumProj (Trabalha_em)
34
NumEmpregado,NumProj
EmpsProjsDep5 ← EmpsProjs ÷ ProjsDep5
R ← pi PrimeiroNome,UltimoNome (EmpsProjsDep5 ∗ Empregado)
BD-I - Prof. Guilherme Tavares de Assis
Exercício – Álgebra Relacional
5. Recuperar o número dos projetos que envolvam um empregado 
cujo sobrenome seja 'Silva', como sendo um trabalhador ou 
como um gerente do departamento que controla o projeto.
Silva ← pi NumEmpregado (σ UltimoNome = 'Silva' (Empregado))
ProjsSilva← pi NumProj (Trabalha_em ∗ Silva)
35
NumProj
DepsGerSilva← pi NumDepto (Silva NumEmpregado=NumGerente
Departamento)
ProjsGerSilva← pi NumProj (DepsGerSilva ∗ Projeto)
R ← ProjsSilva ∪ ProjsGerSilva
BD-I - Prof. Guilherme Tavares de Assis
Exercício – Álgebra Relacional
6. Recuperar o nome (primeiro e último nome) dos empregados 
que tenham dependentes.
R ← pi PrimeiroNome,UltimoNome (Empregado ∗ Dependente)
36
BD-I - Prof. Guilherme Tavares de Assis
Exercício – Álgebra Relacional
7. Recuperar o nome (primeiro e último nome) dos empregados 
que tenham dois ou mais dependentes.
QteDepsEmps (NumEmpregado,QteDeps) ←
NumEmpregado ℑ Count NomeDependente (Dependente)
EmpsMais2Deps ← σ QteDeps ≥ 2 (QteDepsEmps)
37
EmpsMais2Deps ← σ QteDeps ≥ 2 (QteDepsEmps)
R ← pi PrimeiroNome,UltimoNome (EmpsMais2Deps ∗ Empregado)
BD-I - Prof. Guilherme Tavares de Assis
Exercício – Álgebra Relacional
8. Recuperar o nome (primeiro e último nome) dos empregados 
que não tenham dependentes.
TodosEmps← pi NumEmpregado (Empregado)
EmpsComDeps← pi NumEmpregado (Dependente)
EmpsSemDeps← TodosEmp – EmpsComDeps
38
EmpsSemDeps← TodosEmp – EmpsComDeps
R ← pi PrimeiroNome,UltimoNome (EmpsSemDeps ∗ Empregado)
BD-I - Prof. Guilherme Tavares de Assis
Exercício – Álgebra Relacional
9. Recuperar o nome (primeiro e último nome) dos gerentes que 
tenham dependentes.
Gerentes (NumEmpregado) ← pi NumGerente (Departamento)
EmpsComDeps← pi NumEmpregado (Dependente)
GersComDeps← Gerentes ∩ EmpsComDeps
39
GersComDeps← Gerentes ∩ EmpsComDeps
R ← pi PrimeiroNome,UltimoNome (GersComDeps ∗ Empregado)

Continue navegando