Pular para o conteúdo
Visualizando 14 posts - 1 até 14 (de 14 do total)
  • Autor
    Posts
  • #102749
    rafaaa
    Participante

      1 – Uma empresa lhe contratou para auxiliá-la no desenvolvimento de um novo sistema de controle interno. Tendo como objetivo principal, controlar o setor de Help Desk e suporte de infra-estrutura da empresa.

      No final do projeto deverá ser apresentado à empresa um modelo E/R (Entidade/Relacionamento) da estrutura das tabelas, além dos SQL’s executados para a criação das mesmas.

      PROPOSTA DE PROJETO:

      A empresa necessita controlar todas as solicitações de ajuda dos usuários, para isso deverá ser criadas as seguintes tabelas:

      CADASTRO DE FUNCIONÁRIOS
      a) Deverá existir uma tabela de cadastro de funcionários, contendo:
      a. Número do crachá do funcionário;
      b. Nome;
      c. Setor da empresa;
      d. Telefone;
      e. CPF;
      f. Endereço

      CADASTRO DE SETORES
      b) Deverá existir uma tabela de cadastro de setores, contendo:
      a. Código do Setor;
      b. Descrição;

      CADASTRO DE SOLICITAÇÕES DE AJUDA.
      c) Deverá existir uma tabela que armazene as solicitações de ajuda.
      a. Número da solicitação
      b. Número do crachá do funcionário que abriu a solicitação
      c. Descrição do problema
      d. Campo para Observação

      OBSERVAÇÕES COMPLEMENTARES:

      a) O Número do crachá deverá ser único dentre os registros da tabela de funcionários;
      b) Criar relacionamento que garanta que somente possa informar um setor na tabela de funcionários, se o mesmo estiver previamente cadastrado na tabela de Setores;
      c) O campo NOME, CPF e ENDEREÇO não poderão ser NULOS
      d) O campo TELEFONE deverá ter o valor padrão 0 (zero);
      e) O Código do Setor deverá ser único dentre os registros da tabela de setores;
      f) O Número da solicitação deverá ser fornecido automaticamente pelo banco de dados;
      g) Os funcionários informados na tabela de solicitações deverão estar previamente cadastrados na tabela de funcionários.

      quanto tempo vcs levariam pra fazer? alguem pode me ajudar? vlw

      #102750
      rman
      Participante

        @rafaaa

        Meia hora da pra fazer com bastante calma…

        Em que parte você está com dificuldade ?

        #102752
        rafaaa
        Participante

          cara, sou iniciante. Soh sei mexer um pouco com mysql.

          a principio instalei o oracle aqui.

          fiz uma entrevista de emprego, e me mandaram esse exercicio como teste.

          #102755
          Emersonmartins
          Participante

            Então cara..Qual a finalidade da entrevista.Vaga para estágio ou emprego mesmo.

            Acredito q nao vai mudar muita coisa se vc utilizar o SQL ANSI mesmo.

            Outra coisa..Se fizermos por vc não estamos te ajudando e sim fazendo o que na minha opnião pode te ajudar agora e depois??

            Expões tuas dúvidas..

            #102756
            rafaaa
            Participante

              Na verdade eu queria entregar isso hoje, se eu tivese pronto ja mandava. Final de semana vou ficar soh estudando isso.

              #102758
              rman
              Participante

                @rafaaa

                Eu também tive a mesma dúvida que o @Emersonmartins

                O execício não exige nada de Oracle em especial…

                Você realmente quer a resposta pronta ? Se quiser eu posso postar, mas isso não vai agregar muito, ainda mais que é para uma entrevista, depois podem te perguntar algo da solução e você ficar sem resposta…

                #102759
                rafaaa
                Participante

                  o entrevistador passou para fazer no oracle.
                  eu ja criei as 2 primeiras tabelas.

                  se puder postar a resposta, eu agradeceria.

                  eu entendo oque querem dizer sobre eu pegar a resposta pronta, e depois me complicar. mas tranquilos, até la eu ja tenho sobre controle 🙂

                  #102761
                  Thiago Vilhena
                  Participante

                    [quote=”rafaaa”:j4abgf0e]o entrevistador passou para fazer no oracle.
                    eu ja criei as 2 primeiras tabelas.

                    se puder postar a resposta, eu agradeceria.

                    eu entendo oque querem dizer sobre eu pegar a resposta pronta, e depois me complicar. mas tranquilos, até la eu ja tenho sobre controle 🙂 [/quote]

                    Velho, vai estudar um pouco de modelagem e ve com a galera aí se alguem conhece alguma ferramente de modelagem tipo um enterprise architect que voce modela e já te dá o SQL básico para criar as tabelas e os relacionamentos.

                    #102762
                    rman
                    Participante

                      @rafaaa

                      Segue a solução, qualquer dúvida posta.


                      CREATE TABLE SETORES(
                      ID NUMBER(8)
                      ,NOME VARCHAR2(64)
                      );

                      ALTER TABLE SETORES ADD CONSTRAINT PK_SETORES PRIMARY KEY(ID);

                      CREATE TABLE FUNCIONARIOS(
                      ID NUMBER(8) --NUMERO CRACHA
                      ,NOME VARCHAR2(64) NOT NULL
                      ,SETOR_ID NUMBER(8)
                      ,TELEFONE VARCHAR2(14) DEFAULT '0'
                      ,CPF VARCHAR2(14) NOT NULL
                      ,TIPOLOGRADOURO VARCHAR2(8) NOT NULL
                      ,LOGRADOURO VARCHAR2(64) NOT NULL
                      ,NUMERO NUMBER(8) NOT NULL
                      ,BAIRRO VARCHAR2(64) NOT NULL
                      ,CIDADE VARCHAR2(64) NOT NULL
                      ,UF VARCHAR2(2) NOT NULL
                      );

                      ALTER TABLE FUNCIONARIOS ADD CONSTRAINT PK_FUNCIONARIOS PRIMARY KEY(ID);

                      ALTER TABLE FUNCIONARIOS ADD CONSTRAINT FK_FUNCIONARIOS_SETORES FOREIGN KEY(SETOR_ID) REFERENCES SETORES(ID);

                      CREATE TABLE SOLICITACOES(
                      ID NUMBER(8)
                      ,FUNCIONARIO_ID NUMBER(8)
                      ,DESCRICAO VARCHAR2(4000)
                      ,OBSERVACAO VARCHAR2(4000)
                      );

                      CREATE SEQUENCE SOLICITACAO_SEQ MINVALUE 1 MAXVALUE 999999999 START WITH 1 INCREMENT BY 1 CACHE 20;

                      ALTER TABLE SOLICITACOES ADD CONSTRAINT PK_SOLICITACOES PRIMARY KEY(ID);

                      ALTER TABLE SOLICITACOES ADD CONSTRAINT FK_SOLICITACOES_FUNCIONARIOS FOREIGN KEY(FUNCIONARIO_ID) REFERENCES FUNCIONARIOS(ID);

                      #102767
                      rafaaa
                      Participante

                        Rafael, para que o banco atualize a sequência automaticamente, não basta criar a sequence, é preciso utiliza-la em uma trigger.
                        Tente criar este objeto, se tiver dificuldades me avise.

                        agora que fodeu =

                        esse mensagem de cima foi o entrevistador que mandou.

                        alguem pode me ajudar com isso?

                        #102769
                        rman
                        Participante

                          @rafaaa

                          Na verdade não é necessário criar uma trigger pra isso, a trigger pode ser uma solução para o problema. Eu particularmente não resolvo isso com trigger. Basta no momento da inserção passar a sequence.


                          INSERT INTO SOLICITACOES(ID,FUNCIONARIO_ID,DESCRICAO,OBSERVACAO) VALUES(SOLICITACAO_SEQ.NEXTVAL,1,'DESCRICAO','OBSERVACAO');

                          Na minha opinião usar trigger para isso é aumentar a complexidade de algo simples.

                          #102771
                          rafaaa
                          Participante

                            saquei, mas se eu fosse utilizar uma trigger, como eu faria?

                            to lendo sobre isso, mas nao tem nenhum exemplo interesante

                            #102776
                            rafaaa
                            Participante

                              É que se você não tiver uma trigger para atualizar o campo ID, precisará passar o ID como parâmetro em todo comando de INSERT, o que não precisaria fazer se tivesse a trigger.
                              Esta é a idéia.

                              #102777
                              rman
                              Participante

                                @rafaaa


                                CREATE OR REPLACE TRIGGER T_GERA_ID_SOLICITACAO
                                BEFORE INSERT ON SOLICITACOES
                                FOR EACH ROW
                                BEGIN
                                SELECT SOLICITACAO_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
                                END T_GERA_ID_SOLICITACAO;


                                INSERT INTO SETORES(ID,NOME) VALUES(1,'CONTABILIDADE');

                                INSERT INTO FUNCIONARIOS(ID,NOME,SETOR_ID,TELEFONE,CPF,TIPOLOGRADOURO,LOGRADOURO,NUMERO,BAIRRO,CIDADE,UF)
                                VALUES(1,'RAFAEL',1,'(11) 3245-4466','521.154.156-54','AVENIDA','BRASIL',1543,'CENTRO','SÃO PAULO','SP');

                                INSERT INTO SOLICITACOES(FUNCIONARIO_ID,DESCRICAO,OBSERVACAO) VALUES(1,'DESCRICAO','OBSERVACAO');

                                INSERT INTO SOLICITACOES(FUNCIONARIO_ID,DESCRICAO,OBSERVACAO) VALUES(1,'DESCRICAO 2','OBSERVACAO 2');
                                COMMIT;

                                Como eu já disse eu particularmente não utilizo a trigger como solução deste problema…

                              Visualizando 14 posts - 1 até 14 (de 14 do total)
                              • Você deve fazer login para responder a este tópico.
                              plugins premium WordPress