- Este tópico contém 13 respostas, 4 vozes e foi atualizado pela última vez 12 anos, 9 meses atrás por rman.
-
AutorPosts
-
10 de fevereiro de 2012 às 5:02 pm #102749rafaaaParticipante
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çoCADASTRO 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çãoOBSERVAÇÕ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
10 de fevereiro de 2012 às 5:13 pm #102750rmanParticipante@rafaaa
Meia hora da pra fazer com bastante calma…
Em que parte você está com dificuldade ?
10 de fevereiro de 2012 às 5:16 pm #102752rafaaaParticipantecara, 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.
10 de fevereiro de 2012 às 5:53 pm #102755EmersonmartinsParticipanteEntã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..
10 de fevereiro de 2012 às 5:54 pm #102756rafaaaParticipanteNa verdade eu queria entregar isso hoje, se eu tivese pronto ja mandava. Final de semana vou ficar soh estudando isso.
10 de fevereiro de 2012 às 6:41 pm #102758rmanParticipante@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…
10 de fevereiro de 2012 às 6:45 pm #102759rafaaaParticipanteo 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 🙂
10 de fevereiro de 2012 às 7:04 pm #102761Thiago VilhenaParticipante[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.
10 de fevereiro de 2012 às 7:11 pm #102762rmanParticipante@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);
10 de fevereiro de 2012 às 8:32 pm #102767rafaaaParticipanteRafael, 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?
10 de fevereiro de 2012 às 8:58 pm #102769rmanParticipante@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.
10 de fevereiro de 2012 às 9:04 pm #102771rafaaaParticipantesaquei, mas se eu fosse utilizar uma trigger, como eu faria?
to lendo sobre isso, mas nao tem nenhum exemplo interesante
10 de fevereiro de 2012 às 9:21 pm #102776rafaaaParticipanteÉ 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.10 de fevereiro de 2012 às 9:37 pm #102777rmanParticipante@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…
-
AutorPosts
- Você deve fazer login para responder a este tópico.