BD-I - Prof. Guilherme Tavares de Assis
BD-I - Prof. Guilherme Tavares de Assis
Exercício – Álgebra Relacional
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)
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]
1. Recuperar o nome (primeiro e último nome) e o endereço dos
empregados que trabalham para o departamento de número 5.
R ← π PrimeiroNome,UltimoNome,Endereco (σ NumDepto=5 (Empregado))
30
BD-I - Prof. Guilherme Tavares de Assis
31
BD-I - Prof. Guilherme Tavares de Assis
Exercício – Álgebra Relacional
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 ← π PrimeiroNome,UltimoNome,Endereco (DepPesq ∗ Empregado)
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)
DepsProjs ← ProjsCentro ∗ Departamento
GersDeps ← Empregado
NumEmpregado=NumGerente DepsProjs
R ← π NumProj,NumDepto,PrimeiroNome,UltimoNome,Endereco,DataNascimento
(GersDeps)
32
33
BD-I - Prof. Guilherme Tavares de Assis
BD-I - Prof. Guilherme Tavares de Assis
Exercício – Álgebra Relacional
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 ← π NumProj (σ NumDepto=5 (Projeto))
EmpsProjs ← π NumEmpregado,NumProj (Trabalha_em)
EmpsProjsDep5 ← EmpsProjs ÷ ProjsDep5
R ← π PrimeiroNome,UltimoNome (EmpsProjsDep5 ∗ Empregado)
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 ← π NumEmpregado (σ UltimoNome = 'Silva' (Empregado))
ProjsSilva ← π NumProj (Trabalha_em ∗ Silva)
DepsGerSilva ← π NumDepto (Silva
NumEmpregado=NumGerente
Departamento)
ProjsGerSilva ← π NumProj (DepsGerSilva ∗ Projeto)
R ← ProjsSilva ∪ ProjsGerSilva
34
BD-I - Prof. Guilherme Tavares de Assis
35
BD-I - Prof. Guilherme Tavares de Assis
Exercício – Álgebra Relacional
Exercício – Álgebra Relacional
6. Recuperar o nome (primeiro e último nome) dos empregados
que tenham dependentes.
R ← π PrimeiroNome,UltimoNome (Empregado ∗ Dependente)
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)
R ← π PrimeiroNome,UltimoNome (EmpsMais2Deps ∗ Empregado)
36
37
BD-I - Prof. Guilherme Tavares de Assis
BD-I - Prof. Guilherme Tavares de Assis
Exercício – Álgebra Relacional
Exercício – Álgebra Relacional
8. Recuperar o nome (primeiro e último nome) dos empregados
que não tenham dependentes.
9. Recuperar o nome (primeiro e último nome) dos gerentes que
tenham dependentes.
TodosEmps ← π NumEmpregado (Empregado)
EmpsComDeps ← π NumEmpregado (Dependente)
EmpsSemDeps ← TodosEmp – EmpsComDeps
R ← π PrimeiroNome,UltimoNome (EmpsSemDeps ∗ Empregado)
Gerentes (NumEmpregado) ← π NumGerente (Departamento)
EmpsComDeps ← π NumEmpregado (Dependente)
GersComDeps ← Gerentes ∩ EmpsComDeps
R ← π PrimeiroNome,UltimoNome (GersComDeps ∗ Empregado)
38
39
Download

Exercício – Álgebra Relacional Exercício – Álgebra