Você está na página 1de 3

BD-I - Prof. Guilherme Tavares de Assis

Exercício – Álgebra Relacional

Tavares de Assis Exercício – Álgebra Relacional • Esquema relacional "Empresa": Empregado

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, 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

BD-I - Prof. Guilherme Tavares de Assis

Exercício – Álgebra Relacional

Tavares de Assis Exercício – Álgebra Relacional 1. Recuperar o nome (primeiro e último nome) e

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))

32

BD-I - Prof. Guilherme Tavares de Assis

Exercício – Álgebra Relacional

Tavares de Assis Exercício – Álgebra Relacional 2. Recuperar o nome (primeiro e último nome) e

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)

33

BD-I - Prof. Guilherme Tavares de Assis

Exercício – Álgebra Relacional

Tavares de Assis Exercício – Álgebra Relacional 3. Para cada projeto localizado no 'Centro',

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

← ProjsCentro ∗ Departamento GersDeps ← Empregado NumEmpregado=NumGerente DepsProjs R ← π

NumEmpregado=NumGerente

DepsProjs

R π NumProj,DepsProjs.NumDepto,PrimeiroNome,UltimoNome,Endereco,

DataNascimento (GersDeps)

34

BD-I - Prof. Guilherme Tavares de Assis

Exercício – Álgebra Relacional

Tavares de Assis Exercício – Álgebra Relacional 4. Recuperar o nome (primeiro e último nome) dos

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)

35

BD-I - Prof. Guilherme Tavares de Assis

Exercício – Álgebra Relacional

Tavares de Assis Exercício – Álgebra Relacional 5. Recuperar o número dos projetos que envolvam um

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

Departamento) ProjsGerSilva ← π NumProj (DepsGerSilva Projeto) R ProjsSilva ProjsGerSilva

∗ Projeto) R ← ProjsSilva ∪ ProjsGerSilva NumEmpregado=NumGerente 36 BD-I - Prof. Guilherme Tavares de

NumEmpregado=NumGerente

36

BD-I - Prof. Guilherme Tavares de Assis

Exercício – Álgebra Relacional

Tavares de Assis Exercício – Álgebra Relacional 6. Recuperar o nome (primeiro e último nome) dos

6. Recuperar o nome (primeiro e último nome) dos empregados que tenham dependentes.

EmpsDeps Empregado

empregados que tenham dependentes. EmpsDeps ← Empregado NumEmpregado=NumEmpregado Dependente R ← π

NumEmpregado=NumEmpregado Dependente

R π PrimeiroNome,UltimoNome (EmpsDeps)

37

BD-I - Prof. Guilherme Tavares de Assis

Exercício – Álgebra Relacional

Tavares de Assis Exercício – Álgebra Relacional 7. Recuperar o nome (primeiro e último nome) dos

7. Recuperar o nome (primeiro e último nome) dos empregados que tenham dois ou mais dependentes.

QteDepsEmps (NumEmpregado,QteDeps)

NumEmpregado Count NomeDependente (Dependente)

EmpsMais2Deps ← σ

R ← π PrimeiroNome,UltimoNome (EmpsMais2Deps Empregado)

(QteDepsEmps)

QteDeps 2

38

BD-I - Prof. Guilherme Tavares de Assis

Exercício – Álgebra Relacional

Tavares de Assis Exercício – Álgebra Relacional 8. Recuperar o nome (primeiro e último nome) dos

8. Recuperar o nome (primeiro e último nome) dos empregados que não tenham dependentes.

TodosEmps ← π NumEmpregado (Empregado) EmpsComDeps ← π NumEmpregado (Dependente) EmpsSemDeps TodosEmp – EmpsComDeps R ← π PrimeiroNome,UltimoNome (EmpsSemDeps Empregado)

39

BD-I - Prof. Guilherme Tavares de Assis

Exercício – Álgebra Relacional

Tavares de Assis Exercício – Álgebra Relacional 9. Recuperar o nome (primeiro e último nome) dos

9. Recuperar o nome (primeiro e último nome) dos gerentes que tenham dependentes.

Gerentes (NumEmpregado) ← π NumGerente (Departamento) EmpsComDeps ← π NumEmpregado (Dependente) GersComDeps Gerentes EmpsComDeps R ← π PrimeiroNome,UltimoNome (GersComDeps Empregado)

40