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
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.
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
O gerenciamento de transações em um banco de dados deve considerar um conjunto de propriedades conhecidas pela sigla ACID.
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.
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
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
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
Avançamos em nossa caminhada jurisprudencial. Chegou a hora do Informativo nº 829 do STJ COMENTADO. Pra…
A Fundação Carlos Chagas (FCC) organizará o novo concurso Tribunal Regional do Trabalho da 15ª…
Salários iniciais entre R$ 8.529,67 a R$ 13.994,78! A Fundação Carlos Chagas (FCC) deve ser…
O concurso UNEB (Universidade Estadual da Bahia) que teve as provas realizadas em outubro, divulgou…
Foi divulgado o resultado final da prova objetiva do concurso Câmara São Mateus, no estado…
O Instituto de Previdência Social do Município de Navegantes (NavegantesPrev) teve divulgado os gabaritos preliminares…
Ver comentários
Gostei da agilidade em comentar a prova! Obrigada
Obrigada pelo comentário da prova!
Obrigado! Qualquer dúvida estou às ordens!