Artigo

Prova da Semana – Comentário da prova do TRE-SP – 2017 – Programação de Sistemas – BD

Apresentamos abaixo as questões da prova do TRE-SP devidamente comentadas para o cargo de técnico judiciário de TI, especialidade Programação de sistemas.

  1. Ano: 2017 Banca: FCC Órgão: TRE-SP Cargo: Técnico Judiciário de TI – Q.  

57. Considere as entidades abaixo que são integrantes de um modelo de banco de dados relacional.

Candidato                        Candidato_Concurso                  Concurso

idCandidato(pk)               idCandidato (pk, fk)                   idConcurso(pk)

nomeCandidato                idConcurso (pk, fk)                    nomeConcurso

Analisando-se as entidades, tem-se que

(A) estas entidades estabelecem dois relacionamentos n:m não-identificados (non-Identifying).

(B) se for incluído um atributo pontuacao, ele terá que ser incluído na entidade Candidato.

(C) se for incluído o atributo dataInscricaoCandidato, ele terá que ser incluído na entidade Candidato_Concurso.

(D) para que a entidade Candidato esteja na 1a forma normal, a entidade Candidato_Concurso precisa estar normalizada.

(E) a entidade Candidato_Concurso nunca estará na 2a forma normal porque ela possui chave primária composta

Comentário: Vamos comentar cada uma das alternativas.

Para respondermos com certeza a alternativa A precisamos ter o conhecimento de relacionamento identificado e não-identificado. Percebam que a tabela Candidato_concursos recebeu os atributos chaves das outras tabelas do modelo. Se esses atributos fizerem parte da chave da relação, no caso, Candidado_Concurso, temos um relacionamento identificado, caso contrário, se eles forem apenas atributos não chaves teríamos um relacionamento não identificado. Desta forma, não podemos falar de relacionando não identificado, pois os atributos são considerados chave primária da relação Candidato_Concurso.

Já na alternativa B temos uma suposição, se formos incluir um novo atributo no modelo denominado pontuação, em qual relação ele deveria ser incluído. Perceba que a inclusão deve ser feita na tabela que representa o relacionamento Candidato_concurso, na mais razoável, visto que, você recebe uma pontuação quando participa de um concurso.

Perceba que na alternativa C temos outra suposição, só que desta vez, o novo atributo, dataInscriçãoCandidato, está inserido na relação correta. Desta forma essa é a nossa resposta!

A normalização de uma entidade ou relação não depende da normalização da outra. Desta forma a alternativa D está incorreta.

A alternativa E apresenta um conceito incorreto. O fato de ter um atributo (veja que é atributo e não chave) composto fere a primeira forma normal. A 1FN exige que todos os atributos sejam atómicos. A segunda forma norma trata de eliminar as dependências parciais. Vejam que a alternativa apresente um texto totalmente desconexo.

Gabarito: C.

  1. Ano: 2017 Banca: FCC Órgão: TRE-SP Cargo: Técnico Judiciário de TI – Q. 58

No Oracle PL/SQL, a instrução

SELECT TRUNC(65.923,2), TRUNC (65.923), TRUNC(65.923,-1) FROM DUAL;

exibirá os valores:

(A) 65.92 65 60

(B) 65.92 65 0

(C) 65.9 65,923 65,92

(D) 65.92 65,923 60

(E) 65 65,923 65

Comentário: A função TRUNC (número) possui dois parâmetros: n1 e n2, conforme descrito na figura abaixo. O termo n2 é opcional. A função retorna n1 truncado em n2 casas decimais. Se n2 for omitido, então n1 é truncado para 0 casas. O valor de n2 pode ser negativo para truncar (fazer zero) n2 dígitos à esquerda do ponto decimal.

Esta função tem como argumento qualquer tipo de dados numérico, ou qualquer tipo de dados não numérico, que pode ser implicitamente convertido para um tipo de dados numérico. Se você omitir n2, a função retornará o mesmo tipo de dados como o tipo de dados numérico do argumento. Se você incluir n2, a função retornará NUMBER. Vejamos agora cada uma das alternativas:

TRUNC(65.923,2) à Trunca em duas casas: 65.92

TRUNC (65.923) à Trunca em zero casas: 65

TRUNC(65.923,-1) à Transforma em zero a primeira casa a direita do ponto: 60

Analisando os valores acima, podemos encontrar a resposta na alternativa A.

Gabarito: A.

  1. Ano: 2017 Banca: FCC Órgão: TRE-SP Cargo: Técnico Judiciário de TI – Q. 59  

Os pacotes PL/SQL permitem agrupar tipos PL/SQL, variáveis, estruturas de dados, exceções e subprogramas relacionados.

Estes pacotes

(A) devem ter uma especificação, mas o corpo é opcional.

(B) não podem ter subprogramas com o mesmo nome, mesmo que esses subprogramas utilizem parâmetros diferentes.

(C) devem ter todas as estruturas públicas declaradas nos seus corpos, e as privadas, nas suas especificações.

(D) não podem ser compartilhados com outras aplicações após terem sido criados e compilados.

(E) permitem que o servidor Oracle leia apenas um objeto na memória de cada vez.

Comentário: A questão verifica nosso conhecimento sobre pacotes (package) do PL/SQL. Um pacote é uma coleção de objetos PL/SQL agrupados logicamente sob o nome de pacote. Os pacotes podem incluir procedures, functions, cursores, declarações, tipos e também variáveis.

Os pacotes geralmente possuem duas partes, uma que se refere a especificação e o corpo. A especificação é o que chamamos de interface para o pacote. É nela que declaramos os tipos, variáveis, constantes, exceções, cursores e subprogramas que poderão ser referenciados a partir de partes externas ao pacote. Por outro lado, no corpo definimos consultas para os cursores e o código para os subprogramas. Em alguns casos, é possível que não haja a necessidade de se ter um corpo, sendo este, portanto, opcional.

Analisando o texto acima, podemos marcar nossa resposta na alternativa A.

Sobre os parâmetros públicos e privados definidos na alternativa C temos uma inversão de conceito. Com os pacotes, podemos especificar quais tipos, itens e subprogramas serão públicos (visíveis e acessíveis) ou privados (escondido e inacessível). Por exemplo, se um pacote contém quatro subprogramas, três poderão ser públicos e um deles privado. O pacote esconde a implementação de subprogramas privados para que somente o próprio pacote (e não a sua aplicação) seja afetado se houver mudanças de implementação. Isso simplifica a manutenção e o aprimoramento no desenvolvimento. Além disso, ao esconder os detalhes da implementação dos usuários, isso remete a proteger a integridade dos pacotes.

Gabarito: A.

Deixe seu comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Veja os comentários
  • Nenhum comentário enviado.