Sei sulla pagina 1di 3

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": 1. Recuperar o nome (primeiro e último nome) e o endereço dos
empregados que trabalham para o departamento de número 5.
Empregado (PrimeiroNome, InicialMeio, UltimoNome, NumEmpregado,
DataNascimento, Endereco, Sexo, Salario, NumSupervisor, NumDepto)
Departamento (NomeDepto, NumDepto, NumGerente, DataInicioGerencia) R ← π PrimeiroNome,UltimoNome,Endereco (σ NumDepto=5 (Empregado))
Localizacao_Depto (NumDepart, Localizacao)
Projeto (NomeProj, NumProj, Localizacao, NumDepto)
Trabalha_em (NumEmpregado, NumProj, Horas)
Dependente (NumEmpregado, NomeDependente, Sexo, DataNascimento, 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] 31 32

BD-I - Prof. Guilherme Tavares de Assis 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 3. Para cada projeto localizado no 'Centro', recuperar o número do
empregados que trabalham para o departamento 'Pesquisa'. projeto, o número do departamento controlador e o nome
(primeiro e último nome), o endereço e a data de nascimento do
DepPesq ← σ NomeDepto = 'Pesquisa' (Departamento) gerente do departamento.
R ← π PrimeiroNome,UltimoNome,Endereco (DepPesq ∗ Empregado)
ProjsCentro ← σ Localizacao = 'Centro' (Projeto)
DepsProjs ← ProjsCentro ∗ Departamento
GersDeps ← Empregado NumEmpregado=NumGerente DepsProjs
R ← π NumProj,DepsProjs.NumDepto,PrimeiroNome,UltimoNome,Endereco,
DataNascimento(GersDeps)

33 34
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 5. Recuperar o número dos projetos que envolvam um empregado
que trabalham em todos os projetos controlados pelo cujo sobrenome seja 'Silva', como sendo um trabalhador ou
departamento de número 5. como um gerente do departamento que controla o projeto.

ProjsDep5 ← π NumProj (σ NumDepto=5 (Projeto)) Silva ← π NumEmpregado (σ UltimoNome = 'Silva' (Empregado))


EmpsProjs ← π NumEmpregado,NumProj (Trabalha_em) ProjsSilva ← π NumProj (Trabalha_em ∗ Silva)
EmpsProjsDep5 ← EmpsProjs ÷ ProjsDep5 DepsGerSilva ← π NumDepto (Silva NumEmpregado=NumGerente
R ← π PrimeiroNome,UltimoNome (EmpsProjsDep5 ∗ Empregado) Departamento)
ProjsGerSilva ← π NumProj (DepsGerSilva ∗ Projeto)
R ← ProjsSilva ∪ ProjsGerSilva

35 36

BD-I - Prof. Guilherme Tavares de Assis 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 7. Recuperar o nome (primeiro e último nome) dos empregados
que tenham dependentes. que tenham dois ou mais dependentes.

EmpsDeps ← Empregado NumEmpregado=NumEmpregado Dependente QteDepsEmps (NumEmpregado,QteDeps) ←


R ← π PrimeiroNome,UltimoNome (EmpsDeps) NumEmpregado ℑ Count NomeDependente (Dependente)
EmpsMais2Deps ← σ QteDeps ≥ 2 (QteDepsEmps)
R ← π PrimeiroNome,UltimoNome (EmpsMais2Deps ∗ Empregado)

37 38
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 9. Recuperar o nome (primeiro e último nome) dos gerentes que
que não tenham dependentes. tenham dependentes.

TodosEmps ← π NumEmpregado (Empregado) Gerentes (NumEmpregado) ← π NumGerente (Departamento)


EmpsComDeps ← π NumEmpregado (Dependente) EmpsComDeps ← π NumEmpregado (Dependente)
EmpsSemDeps ← TodosEmp – EmpsComDeps GersComDeps ← Gerentes ∩ EmpsComDeps
R ← π PrimeiroNome,UltimoNome (EmpsSemDeps ∗ Empregado) R ← π PrimeiroNome,UltimoNome (GersComDeps ∗ Empregado)

39 40

Potrebbero piacerti anche