Aluno: Lucas Antunes Tambara
Matrícula: 2710246
E-mail: ltambara@inf.ufsm.br
Disciplina: Fundamentos de Bancos de Dados (ELC119)
Semestre: 2/2008
.:: Consultas em álgebra relacional usando WinRDBI ::.
Eunciados: link.
Resolução:
-Obter nomes de empregados com salario > 30000:
project nomeEmp (select salarioEmp>30000 (empregado));
-Obter nomes de empregados que trabalham no projeto 'Transmogrifador'.
trabalhaEmProj := (trabalhaEm) njoin (projeto);
empTrasmo := project nomeEmp (select tituloProj='Transmogrifador' ((empregado) njoin (trabalhaEmProj)));
-Obter nomes e endereços de todos os empregados que trabalham no departamento de 'Pesquisa'.
empPesquisa := project nomeEmp, enderecoEmp (select nomeDepto='Pesquisa' ((empregado) njoin (departamento)));
-Obter códigos dos projetos do departamento 5.
codProjDepto5 := project codProj (select codDepto=5 (projeto));
-Obter códigos dos empregados que trabalham em projetos do departamento 5.
codProjDepto5 := project codProj (select codDepto=5 (projeto));
codEmpProjDepto5 := project codEmp ((trabalhaEm) njoin (codProjDepto5));
-Obter nomes dos empregados que trabalham em projetos do departamento 5.
codProjDepto5 := project codProj (select codDepto=5 (projeto));
codEmpProjDepto5 := project codEmp ((trabalhaEm) njoin (codProjDepto5));
nomeEmpProjDepto5 := project nomeEmp ((empregado) njoin (codEmpProjDepto5));
-Obter nomes de empregados que não têm dependentes.
empSemDependentes := project nomeEmp (empregado njoin ((project codEmp (empregado)) difference (project codEmp (dependente))));
-Obter nomes de empregados sem dependentes que trabalham em projetos do departamento 5.
empSemDependentes := project nomeEmp (select codDepto=5 (empregado njoin ((project codEmp (empregado)) difference (project codEmp (dependente)))));
-Obter nomes de empregados que são do departamento 4 ou supervisionam diretamente um empregado do departamento 4.
superv(codEmp) := project codSuperv (select codDepto=4 (empregado));
empSuperv := (superv) union (project codEmp (select codDepto=4 (empregado)));
emps :=project nomeEmp ((empregado) njoin (empSuperv));