Baixe o app para aproveitar ainda mais
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, 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 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)) 32 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) 33 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) ← ∗ 34 DepsProjs← ProjsCentro ∗ Departamento GersDeps← Empregado NumEmpregado=NumGerente DepsProjs R ← pi NumProj,DepsProjs.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) 35 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) 36 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. EmpsDeps← Empregado NumEmpregado=NumEmpregado Dependente R ← pi PrimeiroNome,UltimoNome (EmpsDeps) 37 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) 38 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 39 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 40 GersComDeps← Gerentes ∩ EmpsComDeps R ← pi PrimeiroNome,UltimoNome (GersComDeps ∗ Empregado)
Compartilhar