Vous êtes sur la page 1sur 2

Universidade Federal de Sergipe Centro de Cincia Exatas e Tecnologia Departamento de Cincia da Computao e Estatstica DISCIPLINA BANCO DE DADOS (2011/1)

) Prof. Fabrinio Andes Santana Lemos

Exerccio Prtico - I Unidade


O esquema de dados proposto neste estudo de caso visa oferecer um mecanismo de controle de funcionrios, os histricos de salrios e advertncias que os funcionrios venham receber. Este esquema foi proposto com base nas seguintes caractersticas:

A composio das tabelas a seguinte: Funcio (Matricula,Nome,Chefe,sexo) Funcao(codFuncao,Descricao) Salario (Matricula,DtAumento,vlSalario) Advertencia (codAdvertencia,Matricula,Descricao,Chefe) Sobre o esquema de dados proposto formule, em lgebra relacional, as expresses que resolvam as seguintes consultas: 1. Listar para cada Chefe a quantidade de funcionrios que esto subordinados a ele. Deve ser listado o nome do chefe e a quantidade de subordinados 2. Listar a quantidade de funcionrios por funo e a mdia salarial de cada funo dentro da empresa. Deve ser listado o cdigo da funo, a descrio da funo, a quantidade de funcionrios por Funo e a mdia salarial de cada funo. 3. Listar para cada funcionrio o maior salrio recebido at a data de 10/08/1983 deve ser listado o nome do funcionrio, a funo do funcionrio e o valor do maior salrio. 4. Listar para cada Chefe, a quantidade de funcionrios, a quantidade de advertncias emitidas. Deve ser listado o nome do Chefe, a descrio da Funo, a quantidade de advertncias aplicadas e a quantidade de funcionrios que levaram advertncia. 5. Exclua todos os funcionrios que tiveram mais que 5 advertncias em uma mesma Funo. 6. Excluir todos os funcionrios que receberam mais que 50 % de aumento no ultimo salrio. E os funcionrios que tiverem um aumento de 20 % no ultimo salrio devem ter seus salrios ajustados em 10 % do maior salrio da mesma funo, onde esta no tenha recebido nenhuma advertncia. 1) Funcio2.Nome count(Funcio1.Matricula) ( Funcio1.Chefe = Funcio2.Matricula (pFuncio1(Funcio) x pFuncio2(Funcio)))

Funcio.CodFuncao, Funcao.Descricao Count(Funcio.Codigo), AVG(Funcio.vlSalario) (Funcio |x| Funcao)


3) MaiorSalario (Matricula, VlRecebido) Funcio.Matricula MAX(Salario.VlSalario) ( DtAumento <= 10/08/1983 (Funcio |x| Salario))

Funcio.Nome,Funcio.CodFuncao,MaiorSalario.VlRecebido (Funcio |x| MaiorSalario)

Universidade Federal de Sergipe Centro de Cincia Exatas e Tecnologia Departamento de Cincia da Computao e Estatstica DISCIPLINA BANCO DE DADOS (2011/1) Prof. Fabrinio Andes Santana Lemos
4) QuantidadeAdvertencia(Chefe , Quantidade) Advertencia.Chefe, Count(Advertencia.codAdvertencia) (Advertencia) QuantidadeFuncionarios(Chefe, qtdFuncio) Advertencia.Chefe Count(Funcio.Matricula) (Advertencia |x| Funcio) FuncaoChefe(Chefe, DescricaoFuncao) Funcio.Matricula, Funcao.Descricao (QuantidadeAdvertencia.Chefe = Funcio.Matricula) QuantidadeAdvertencia x Funcio) | x| Funcao

QuantidadeAdvertencia.chefe,FuncaoChefe.Descricao, QuantidadeFuncionarios.qtdFuncio,
QuantidadeAdvertencia.Quantidade (QuantidadeAdvertencia |x| QuantidadeFuncionarios |x| FuncaoChef ) 5) FuncioAdver(Matricula,CodFuncao, Quantidade) Funcio.Matricula, Funcio.CodFuncao Count(Advertencia.codAdvertencia) (Funcio |x| Advertencia) Funcio Funcio Matricula,Nome,Chefe,sexo ( FuncioAdver.Quantidade > 4 Funcio |x| FuncioAdver 6) MaiorSalario (matricula,VlMaxSalario) Matricula Max(vlSalario) (Salario) UltimoSalario (matricula,VlSalario) MaiorSalario.Matricula Max(Salario.vlSalario) ( Salario.VlSalario < MaiorSalario.VlMaxSalario (Salario |x| MaiorSalario)) PorcentoAumento (matricula,Porcento) matricula, ((MaiorSalario.VlMaxSalario UltimoSalario.VlSalario) * 100) / UltimoSalario.VlSalario (MaiorSalario |x| UltimoSalario) Funcio Funcio - Matricula,Nome,Chefe,sexo,CodFuncao ( PorcentoAumento.Porcento > 50 (Funcio|x|PorcentoAumento)) MaiorSalarioFuncao (CodFuncao,vlSalarioFuncao) Funcio.CodFuncao Max(Salario.vlSalario) (Funcio |X| Salario)) HistoricoFuncao (CodFuncao, total) Funcio.codFuncao Count(Advertencia.codAdvertencia)(Advertencia |x| Funcio) Salario Salario U (unio) Funcio.Matricula, '18/04/2011', MaiorSalario.VlMaxSalario + ((MaiorSalarioFuncao.vlSalarioFuncao * 10)/ 100) ( PorcentoAumento.Porcento <= 20 HistoricoFuncao.total = 0 (PorcentoAumento |X| Salario |X| MaiorSalario |X| Funcio |X| MaiorSalarioFuncao |x| HistoricoFuncao))