De que se trata o artigo:

Apresentar a correção das questões com conteúdo de banco de dados do concurso público do IBGE para a carreira de Análise de sistemas/Desenvolvimento de aplicações.


Para que serve:

O conteúdo apresentado neste artigo serve para treinar candidatos e estudantes de banco de dados para futuras provas e concursos.


Em que situação o tema é útil:

A resolução das questões apresentadas neste artigo é útil para o candidato que almeja seguir a carreira de servidor público em um dos diversos cargos relacionados à área de tecnologia da informação, mais especificamente para aqueles que precisam estudar o conteúdo de banco de dados voltados para a programação de sistemas.

O instituto Brasileiro de Geografia e Estatística (IBGE), um órgão ligado ao governo federal, abriu concurso público em outubro de 2009 para preencher vagas de diversos cargos. Os cargos de tecnologia deste concurso incluem vagas para Analistas de sistemas, com especialidades em Desenvolvimento de Aplicações, Suporte, Suporte de rede e Suporte de comunicação.

A vaga para o cargo de Análise de Sistemas com especialidade no Desenvolvimento de aplicações contava com remuneração de até R$ 7.409,29 mensais por 40 horas semanais de trabalho. Os candidatos a esta vaga deveriam possuir um diploma, devidamente registrado, de conclusão de curso de nível superior na área de Informática, fornecido por uma instituição de ensino superior reconhecida pelo Ministério da Educação. No total o concurso possuía 37 vagas para postos de trabalho no Rio de Janeiro, sendo que 3 vagas foram destinadas a portadores de necessidades especiais.

A instituição organizadora do concurso foi a CESGRANRIO. A prova para o cargo de Desenvolvimento de aplicações continha 10 questões que cobravam conhecimentos de língua portuguesa, 10 questões de língua inglesa, 10 questões de raciocínio Lógico Quantitativo e 30 questões que cobravam conhecimentos específicos. A prova foi dividida em 60 questões dissertativas (com alternativas de A a E) e 5 questões discursivas. Todas as questões possuíam pontuações diferenciadas. A prova foi realizada em fevereiro de 2010 e teve duração máxima de 5 horas.

O edital indicou que os candidatos ao cargo de Desenvolvimento de aplicações deveriam possuir conhecimentos em processos de desenvolvimento de software (CMMI e RUP), modelagem, teoria de banco de dados OLAP e OLTP, programação em Java, C#, Delphi e PHP para dispositivos móveis, desktop e para Web, dentre outros conhecimentos especificados no edital. No que diz respeito à parte prática de banco de dados, o edital destacou o uso do Oracle e do PostgreSQL.

Neste artigo será apresentada a correção das questões com conteúdo de banco de dados para a carreira de Desenvolvimento de aplicações. As questões serão apresentadas, corrigidas e comentadas junto com o gabarito oficial.

Questões dissertativas

31) Analise o script da Listagem 1, ainda em construção, utilizado para criar uma função na linguagem PL/SQL do Oracle.

Listagem 1. Script contendo a criação de uma função no Oracle.

CREATE OR REPLACE FUNCTION cs_fmt_versao
  (v_nome IN varchar, v_versao IN varchar)
  RETURN varchar IS
  BEGIN
  IF v_versao IS NULL THEN
  RETURN v_nome;
  END IF;
  RETURN v_nome || ‘/’ || v_versao;
  END;
  /
  show errors;

A Listagem 2 apresenta o mesmo script que está sendo migrado por um analista para o PL/pgSQL do PostgreSQL 8.0.0.

Listagem 2. Script contendo a criação de uma função no PostgreSQL.

CREATE OR REPLACE FUNCTION cs_fmt_versao
  (v_nome varchar, v_versao varchar)
  BEGIN
  IF v_versao IS NULL THEN
  RETURN v_nome;
  END IF;
  RETURN v_nome || ‘/’ || v_versao;
  END;
  $ LANGUAGE plpgsql;

A linha RETURN varchar IS ainda não foi migrada e não está representada no script da Listagem 2. Para completar a migração, a linha RETURN varchar IS deve ser implementada no script acima como:

a) RETURN varchar AS

b) RETURN varchar OUT $$

c) RETURNS varchar AS

d) RETURNS varchar AS $$

e) RETURNS varchar OUT $$

Gabarito: Alternativa D.

Comentário: Esta questão cobra do candidato um aspecto específico da implementação do plpgsql, a linguagem de programação PL/SQL adaptada para o PostgreSQL.

Inicialmente a questão mostra o código fonte de uma função chamada cs_fmt_versao implementada no PL/SQL puro do Oracle (Listagem 1). O candidato deve notar que esta função está completa. Em seguida, o enunciado da questão mostra a mesma função implementada no plpgsql do PostgreSQL (Listagem 2), porém desta vez a função está incompleta porque falta a especificação do tipo de retorno da função. Esta especificação do tipo de retorno é definida como RETURN varchar IS no PL/SQL do Oracle e deve ser colocada antes da cláusula Begin.

A questão pede que o candidato indique como o retorno deve ser especificado no código fonte em plpgsql a ser inserido na Listagem 2. O candidato deve notar que na Listagem 1 não é preciso especificar uma linguagem, pois o PL/SQL é a linguagem padrão de programação no Oracle.

De acordo com a documentação oficial do PostgreSQL, é preciso indicar qual linguagem de programação foi utilizada na função que foi codificada. No exemplo da Listagem 2 a linha $$ language plpgsql, colocada após o código fonte da função, cria um identificador $$ associado à linguagem plpgsql. Portanto, o tipo de dados de retorno será um varchar do plpgsql e isso é indicado colocando o comando RETURNS varchar AS $$ antes da instrução begin. Notem que o $$ está associado à linguagem plpgsql e recebe o nome de language_handler. Dessa forma, o candidato deve marcar a alternativa d, pois ela contém o comando correto RETURNS varchar AS $$.

32) Algumas regras de heurísticas vinculadas à álgebra relacional, como “execute as operações de seleção o mais cedo possível”, “execute antes as projeções” e “evite os produtos cartesianos”, são usualmente empregadas em sistemas gerenciadores de bancos de dados para a implementação de:

a) otimização de consultas;

b) índices do tipo bit map;

...

Quer ler esse conteúdo completo? Tenha acesso completo