Projeto Integrador 2

3.183 visualizações

Publicada em

Trabalho do projeto integrado 2 onde tivemos que abordar como funciona as procedures , functions e triggers em um SGBD

Publicada em: Turismo, Negócios
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
3.183
No SlideShare
0
A partir de incorporações
0
Número de incorporações
29
Ações
Compartilhamentos
0
Downloads
23
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Projeto Integrador 2

  1. 1. Integrantes: Antonio Carlos Dias Ricardo Andrade Torres
  2. 2. Objetivo: Este sistema tem como objetivo automatizar a área de recursos humanos de uma determinada empresa. Os empregados da empresa são admitidos e ficam lotados em departamentos. Estes departamentos controlam determinados projetos.
  3. 3. <ul><li>O que o sistema deve fazer: </li></ul><ul><li>O sistema devera inserir novos funcionarios; </li></ul><ul><li>Os empregados que são engenheiros podem trabalhar em projetos previamente criados; </li></ul><ul><li>Todo projeto possui um único empregado coordenador e este coordenador só pode ser um empregado que é do tipo administrador; </li></ul><ul><li>Se o empregado inicia algum projeto ele recebe uma gratificação de 5% sobre seu salário; </li></ul><ul><li>De acordo com sua formação escolar o empregado pode receber uma gratificação extra. ; </li></ul><ul><li>A empresa possui amplo plano de benefícios distribuídos aos funcionários e isto é armazenado no banco de dados. </li></ul><ul><li>Informações dos dependentes dos funcionários e o tipo de relação entre o funcionário e seu dependente (exemplo: esposa, filho, etc) é tambem armazenada no sistema. </li></ul><ul><li>O contra cheque dos empregados da empresa é gerado no final de cada mês com base no salário fixo e nas participações do empregado nos projetos, gerência ou coordenação de projetos. </li></ul>
  4. 4. Objetivo: .
  5. 5. Objetos Desenvolvido : Procedure Que insere um novo funcionário no banco de Dados. Voce ira informar os parâmetros da procedure e ele automaticamente ira inserir aquele funcionario no Banco. Chamada da Procedure Resultado DELIMITER $$ DROP PROCEDURE IF EXISTS `controle_pessoal`.`insere_funcionario` $$ CREATE PROCEDURE `insere_funcionario`(cod_func int(3), nome varchar(30), endereco varchar(30),telefone varchar(30),data_admissao date, data_demissao date,codsupervisor int(3),cod_form_escolar int(3),codcargo int(3), codempresa int(3),cod_depto int(3),data_nascimento date,cod_instituicao int(3)) BEGIN insert into funionario values (cod_func,nome,endereco,telefone,data_admissao,data_demissao,codsupervisor, cod_form_escolar,codcargo,codempresa,cod_depto,data_nascimento,cod_instituicao); END $$ DELIMITER ;
  6. 6. Objetos Desenvolvido : Procedure Traz o salário total que o funcionário recebeu naquele determinado ano. Voce passa o parâmetro cod_func que e o código do funcionario , data_beneficio e ele traz a soma total dos benefícios que aquele funcionario recebeu naquele parâmetro que você informou. Chamada da Procedure e resultado DELIMITER $$ DROP PROCEDURE IF EXISTS `controle_pessoal`.`recebeu_naquele_ano`$$ CREATE PROCEDURE `recebeu_naquele_ano`(cod_func int(3), ano_beneficio varchar(10)) BEGIN select sum(b.salario_liquido) from beneficios as b where b.cod_func = cod_func and b.ano_beneficio = ano_beneficio; END$$ DELIMITER ;
  7. 7. Objetos Desenvolvido : Procedure Valor total que a empresa gasta com salario dos funcionários por departamento. Chamada da Procedure e resultado DELIMITER $$ DROP PROCEDURE IF EXISTS `controle_pessoal`.`por_departamento`$$ CREATE PROCEDURE `por_departamento`(cod_depto int(3)) BEGIN select sum(b.salario_bruto),d.cod_depto from beneficios as b,funcionario as f,departamentos as d where cod_depto = d.cod_depto and b.cod_func = f.cod_func group by d.cod_depto; END$$ DELIMITER ;
  8. 8. Objetos Desenvolvido : Function Saber quantidade de projetos que um determinado funcionário participa Chamada da function e o seu resultado com o código do funcionário n 10 DELIMITER $$ DROP FUNCTION IF EXISTS `controle_pessoal`.`projeto_participa_func`CREATE FUNCTION `controle_pessoal`.`projeto_participa_func` (cod_func int(3)) RETURNS TRUE BEGIN SELECT count(p.nome_proj) FROM projetos as p where p.cod_func = cod_func; END$$ DELIMITER ;
  9. 9. Objetos Desenvolvido : Function Aumentar o percentual do funcionario em 10% Veja o salário liquido atual do funcionário numero 3 Veja a chamada da function , quando ele aumentou o salário para mais 10 % Veja já somado com o calculo de 10 % a mais DELIMITER // CREATE FUNCTION aumenta_10_por_cento (cod_func int(3)) RETURNS int(10) BEGIN declare dado1 integer; declare dado2 integer; declare dez_por_cento cursor for SELECT (b.salario_liquido * 0.10) FROM beneficios as b WHERE b.cod_func = cod_func; declare sal_liquido cursor for select salario_liquido FROM beneficios as b WHERE b.cod_func = cod_func; open dez_por_cento; open sal_liquido; fetch dez_por_cento into dado1; fetch sal_liquido into dado2; UPDATE benefícios as b SET salario_liquido = dado1 + dado2 where cod_func = b.cod_func; return dado1; return dado2; END // DELIMITER ;
  10. 10. Objetos Desenvolvido : Function Qtde de funcionários que receberam algum beneficio no 2 semetre do parametro informado. Chamada da função quando passado o parâmetro de 2008 DELIMITER // CREATE FUNCTION recebe_2semes (data_beneficio date) RETURNS int(10) BEGIN declare dado1 integer; declare declarar cursor for select count(cod_func) from beneficios where data_beneficio >= data_beneficio; open declarar; fetch declarar into dado1; return dado1; END // DELIMITER ;
  11. 11. Objetos Desenvolvido : View 1 Traz a quantidade de empregados que foram demitidos . View 2 Traz a quantidade total de projetos. CREATE VIEW `controle_pessoal`.`func_demitido` AS SELECT * FROM funcionario where data_demissao is not null; Chamando a view que traz a quantidade de empregados demitidos CREATE VIEW `controle_pessoal`.`quantidade_total_projetos` AS SELECT count(cod_projeto) FROM projetos;   Chamando a view , a quantidade de projetos do banco de dados
  12. 12. Objetos Desenvolvido : Trigger Quando um funcionário do departamento 10 (engenharia) inicia um projeto ele ganha gratificação de 5% do salário liquido . Resultado: CREATE TRIGGER aumenta_gratificacao_engenheiro AFTER INSERT ON PROJETOS FOR EACH ROW declare salario_liquid float (10,2) cinco_por_cento float (10,2) gratificacao_eng float (10,2) BEGIN SELECT (b.salario_liquido * 0.05) INTO cinco_por_cento FROM beneficios as b, funcionario as f, WHERE f.cod_func = b.cod_func and b.cod_depto = 10; select b.salario_liquido into salario_liquid FROM beneficios as b , funcionario as f WHERE b.cod_func = f.cod_func and b.cod_depto = 10; gratificacao_eng := cinco_por_cento + salario_liquid; UPDATE BENEFICIOS SET SALARIO_LIQUIDO = gratificacao_eng WHERE COD_DEPTO = 10; END;
  13. 13. Objetos Desenvolvido : Trigger Quando um funcionário entra na empresa ele ganha gratificação de auxilio supermercado no valor de 100.00 Inserindo um funcionário Resultado na tabela de benefícios quando foi inserido um funcionário no banco automaticamente e inserido na tabela de benefícios o “Auxilio supermercado no valor de 100 reais” . DELIMITER $$ DROP TRIGGER IF EXISTS `controle_pessoal`.`add_beneficio_supermercado`$$ CREATE TRIGGER add_beneficio_supermercado AFTER INSERT ON funcionario FOR EACH ROW BEGIN INSERT INTO beneficios SET codbene=NEW.cod_func,descontos = 0,data_beneficio =NEW.data_admissao,cod_func=NEW.cod_func, salario_bruto = 100.00,salario_liquido=100.00, cod_tipo_bene = 9,ano_benefico='0'; END$$ DELIMITER ;
  14. 14. Objetos Desenvolvido : Trigger Trigger que automaticamente quando um funcionario troca de setor , automaticamente e inserido na tabela de historico do funcionario . Observe o UPDATE do funcionario Renato do cargo 4 para o 5 Depois de alterado o cargo do funcionario obtemos este resultado: DELIMITER $$ DROP TRIGGER IF EXISTS `controle_pessoal`.`func_troca_setor`$$ CREATE TRIGGER func_troca_setor AFTER UPDATE ON funcionario FOR EACH ROW BEGIN INSERT INTO historico_func SET codhistfunc = NEW.cod_func, cod_func = NEW.cod_func,data_trasferencia=data_admissao, cod_cargo=NEW.codcargo; END$$ DELIMITER ;
  15. 15. Objetos Desenvolvido : Trigger Quando um funcionario troca de departamento , automaticamente ele gera na tabela de historico de funcionario . Resultado: FIM DELIMITER $$ DROP TRIGGER IF EXISTS `controle_pessoal`.`func_troca_departamento`$$ CREATE TRIGGER func_troca_departamento AFTER UPDATE ON funcionario FOR EACH ROW BEGIN INSERT INTO historico_func SET codhistfunc = NEW.cod_func, cod_func = NEW.cod_func,data_trasferencia=data_admissao, cod_depto=NEW.cod_depto; END$$ DELIMITER ;

×