Categorias: Concursos Públicos

Prova da Semana – Comentário da prova da TRE-PR – Análise de Sistemas – Banco de dados e BI

Abaixo comentamos as questões de banco de dados e business intelligence da prova de Analista Judiciário – Especialidade Análise de Sistemas do TRE-PR

  1. Ano: 2017 Banca: FCC Órgão: TRE-PR Cargo: Análise de Sistemas Questão: 37

Considere a tabela ItemPedido abaixo, onde a chave primária é composta pelos campos NumeroPedido e NumeroItemPedido.

É correto afirmar que

(A) para esta tabela estar na 2FN a chave primária não pode ser composta.

(B) NumeroPedido não pode conter valores repetidos, pois é parte da chave primária.

(C) para esta tabela estar na 3FN a coluna TotalPedido deve ser excluída.

(D) esta tabela está na 3FN porque não tem dependência transitiva de colunas.

(E) esta tabela está na 1FN porque a chave primária é composta.

Comentário: Questão bem interessante. Trata dos conceitos básicos de normalização. Para respondermos a questão precisamos observar se os requisitos das formas normais são atendidos. Iniciamos pelas primeira forma normal. Veja que nenhum dos atributos são compostos ou multivalorados. Logo, a 1FN é atendida. A segunda forma normal diz que não deve existir dependência parcial. Observe que todos os atributos não chave são plenamente dependentes da chave primária. Logo, a 2FN também é atendida. Por fim, vamos para a terceira forma normal. Vejam que o atributo TotalPedido é uma dependência transitiva estabelecida da seguinte forma:

NumeroPedido, NumeroItemPedido à Quantidade, Preco à TotalPedido

Sendo assim observamos que “para esta tabela estar na 3FN a coluna TotalPedido deve ser excluída” visto que ela é um atributo derivado. Ou seja, TotalPedido é um atributo derivado. Logo nosso gabarito está na alternativa C.

Gabarito: C.

  1. Ano: 2017 Banca: FCC Órgão: TRE-PR Cargo: Análise de Sistemas Questão: 38

A Data Warehouse supports Online Analytical Process − OLAP providing a flexible and analytical manner of storing data. In a Data Warehouse, data are stored in

(A) unidimensional structures, named cubes or datamarts that contain all data in the database.

(B) bidimensional structures, named facts, that contains information about all data from data source.

(C) multidimensional structures that contain a specific piece of data from the database.

(D) heterogeneous structures, named blocks, that contains the main information of the piece of data you want to store.

(E) multidimensional structures, named tuples that are composed by a star table and many different dimensions.

Comentário: Primeiramente não ache estranho o fato da questão aparecer com todos o seu texto em inglês. Foi assim que veio na prova da FCC. Mas nada que impossibilite, com o nosso conhecimento, de responder a questão corretamente. Devemos primeiramente lembrar que as estruturas de um DW podem ser armazenadas em tabelas, usando o modelo relacional, logo são bidimensionais. Neste caso temos uma tabela fato e um conjunto de tabelas dimensões.

A outro opção é a utilização dos cubos de dados. Neste caso os modelos são constituídos por matrizes multidimensionais. Cada cubo contem parte dos dados relacionadas a um contexto de análise específico. Sendo assim, podemos observar que a alternativa C seria a nossa resposta.

Gabarito: C

  1. Ano: 2017 Banca: FCC Órgão: TRE-PR Cargo: Análise de Sistemas Questão: 39

O gerenciamento de transações em um banco de dados deve considerar um conjunto de propriedades conhecidas pela sigla ACID.

  1. Uma transação interrompida ao meio pode deixar o banco de dados em um estado inconsistente. O banco de dados deve prover recursos para remoção dos efeitos de transações incompletas, garantindo assim a autenticidade.
  2. A consistência tem por objetivo garantir que o banco de dados antes da transação esteja consistente e que após a transação permaneça consistente. Todas as regras devem ser aplicadas às modificações da transação para manter toda a integridade dos dados.

III. Modificações feitas por transações simultâneas devem ser isoladas das modificações feitas por qualquer outra transação simultânea. O isolamento deve garantir que duas transações, executadas de forma concorrente, devem ter o mesmo resultado que teria se fossem executadas em ordem serial.

  1. O SGBD mantém um registro (log) das ações executadas pelo usuário para que, se ocorrer queda do sistema antes que todas as mudanças tenham sido feitas em disco, este log seja usado para restaurar o estado do banco de dados quando o sistema for reiniciado, garantindo assim a disponibilidade.

As propriedades ACID sublinhadas que estão corretamente definidas são as que constam APENAS em

(A) II, III e IV.

(B) I e III.

(C) I e IV.

(D) II e III.

(E) II e IV.

Comentário: Vamos analisar cada uma das alternativas acima. A afirmação I começa apresentando uma ideia de atomicidade e termina relacionando tal conceito com autenticidade. Neste caso, temos um erro crasso que torna a alternativa incorreta.

Já a alternativa II apresenta a ideia de consistência e associa esse conceito a serialização (seriação). O sistemas de banco de dados deve controlar a execução concorrente de transações para assegurar que o estado do BD permaneça consistente. Para isso, um plano de execução paralelo, deve ser equivalente, ou seja, produzir o mesmo resultado, de um plano de execução serial. Desta forma, a alternativa II está correta.

Na alternativa III temos a descrição do isolamento das transações. Elas não devem ter o conhecimento uma das outras e seu resultado deve ser consistente. Sendo assim, temos mais uma afirmação correta.

A última alternativa começa com um discurso bem coerente, contudo, termina falando de disponibilidade, quando na realidade deveria tratar de durabilidade. Temos, portanto, uma afirmação incorreta.

Ao avaliar o conjunto das afirmações podemos encontrar o gabarito na alternativa D.

Gabarito: D

  1. Ano: 2017 Banca: FCC Órgão: TRE-PR Cargo: Análise de Sistemas Questão: 40

Um Database Administrator − DBA Oracle deseja conceder à usuária Maria os privilégios para criar sessão de conexão no banco de dados e criar tabelas, permitindo ainda que ela possa estender seus privilégios para outros usuários. O comando que o DBA deverá utilizar é:

(A) GRANT CREATE SESSION, CREATE TABLE TO Maria WITH RESTRICTED OPTION;

(B) GRANT CREATE SESSION, CREATE TABLE TO Maria WITH ADMIN OPTION;

(C) GRANT PRIVILEGE CREATE SESSION, CREATE TABLE TO Maria WITH GRANT OPTION;

(D) GRANT ADMIN CREATE SESSION, CREATE TABLE TO Maria;

(E) GRANT CREATE SESSION, CREATE TABLE TO Maria WITH GRANT OPTION;

Comentário:  Essa é uma questão que aprofundou um pouco o conhecimento de permissões no Oracle. Ela trata do repasse de permissões aos usuários de forma que estes tenham a possibilidade de redistribuir as permissões adquiridas. Quando estamos garantindo privilégios de sistemas, por exemplo, CREATE, temos que usar o ADMIN OPTION. Por outro lado, quando estamos preocupados em conceder privilégios de objetos, por exemplo, SELECT podemos usar o WITH GRANT OPTION.

Desta forma, o nosso gabarito encontra-se na alternativa B.

Gabarito: B

  1. Ano: 2017 Banca: FCC Órgão: TRE-PR Cargo: Análise de Sistemas Questão: 41

Considere a existência de um procedure escrito em PL/SQL denominado verifica_votacao, que aceita dois parâmetros: um para a string do ID do candidato e outro para o número de votos obtidos em uma eleição.

CREATE OR REPLACE PROCEDURE verifica_votacao(id_do_cand NUMBER, num_vot_cand NUMBER) IS

/* implementação do restante do procedure */

 Um DBA Oracle criou um trigger verifica_votacao_trg na tabela candidatos que é acionado antes de uma operação INSERT ou UPDATE. Em cada linha o trigger deve chamar o procedure verifica_votacao para executar a lógica de negócios e deve especificar o novo ID de candidato e o novo número de votos para os parâmetros do procedure.

CREATE OR REPLACE TRIGGER verifica_votacao_trg

…… I INSERT OR UPDATE OF id_cand, num_vot

ON candidatos

FOR EACH ROW

BEGIN

 verifica_votacao(……

II );

END;

/

SHOW ERRORS

 As lacunas I e II devem ser preenchidas, correta e respectivamente, por

(A) INSTEAD OF − id_cand, num_vot

(B) INSTEAD OF − new.id_cand, new.num_vot

(C) PRIOR − :new.id_cand, :new.num_vot

(D) BEFORE − new id_cand, new num_vot

(E) BEFORE − :new.id_cand, :new.num_vot

Comentário: Essa questão trata na sintaxe de TRIGGER. Perceba que temos algumas opções de execução: AFTER, INSTEAD OF e BEFORE. Cada uma dessas palavras faz com que o gatilho seja executado depois, ao invés de e depois do comando. Na questão o DBA especificou que o comando deve ser executado antes de cada operação de INSERT ou UPDATE. Sendo assim temos que optar pelo BEFORE.

O outro ponto que podemos observar é quanto ao uso dos valores das respectivas tuplas atualizadas. Podemos usar os valores anteriores ou novos, para tal, usamos as palavras reservadas :old e :new. Pelo texto da questão, foi solicitado o uso da referência ao novo valor, sendo portanto, utilizado os termos :new.id_cand e :new.num_vot, separados por vírgula.

Gabarito: E.

Espero que tenham gostado, em breve voltaremos com as demais provas do TRE-PR.

Forte abraço e bons estudos,

Thiago Cavalcanti

Thiago Rodrigues Cavalcanti

Ver comentários

Posts recentes

Concurso Câmara de Candeias: edital tem 59 vagas; confira!

Atenção, corujas! Mais uma oportunidade na área legislativa: saiu o edital do concurso Câmara de…

2 horas atrás

Requisitos Funcionais e Não Funcionais para CEF (TI)

Olá pessoal, tudo bem? Este artigo apresenta um resumo de Engenharia de Requisitos, focando em…

2 horas atrás

Concurso TJ CE: comissão formada; edital até julho!

O Tribunal de Justiça do Ceará (TJ CE) pode ter seus novos editais publicados em breve…

2 horas atrás

Concurso Registro Educação: provas em junho!

A Prefeitura de Registro, em São Paulo, publicou um novo edital de concurso público com…

3 horas atrás

Concurso Muzambinho MG: 327 vagas e inicial até R$ 20 mil!

Estão abertas as inscrições para o novo concurso da Prefeitura de Muzambinho, localizada no estado…

3 horas atrás

Concurso Cidreira: novo cronograma na próxima semana!

Em razão da extrema situação de calamidade pública que atinge o estado do Rio Grande…

3 horas atrás