img

Clique aqui para ler todos os artigos desta edição

Questões de banco de dados do concurso da ELETRONORTE

 

Em 2006 a companhia estatal do setor energético ELETRONORTE (Centrais Elétricas do Norte do Brasil S/A) abriu um concurso público para preencher vagas de diversos cargos. Nesta seleção, 827 vagas estiveram em disputa. Dessas, 416 vagas são postos de trabalho situados em Brasília, sendo que os demais aprovados devem trabalhar nos estados do Pará, Maranhão, Tocantins, Amapá, Roraima, Acre, Rondônia e Mato Grosso. A prova ficou a cargo do o Núcleo de Computação Eletrônica da Universidade Federal do Rio de Janeiro (NCE/UFRJ).

 O total de inscritos neste concurso chegou a quase 27 mil. Os novos funcionários, com nível fundamental completo, embolsarão R$ 819. Postos de nível médio contaram com vencimentos situados entre R$ 967,00 e R$ 1.157,00. Os aprovados portadores de diploma de graduação em nível superior disputaram cargos com vencimentos entre R$ 2.294,00 e R$ 2.753,00.

A seleção, realizada inicialmente em 21 de maio de 2006, foi cancelada pelo presidente da ELETRONORTE, Carlos Nascimento, para evitar denúncias de fraude. Nascimento tomou a decisão após descobrir que o então diretor de Gestão do órgão, Hércio Ramos Brandão, e seus familiares haviam prestado o concurso, em uma investigação chamada de CPI dos Castores. Apesar de não haver ilegalidade na participação de Brandão, a anulação das provas visava garantir a lisura do processo. Uma segunda aplicação da prova, com questões diferentes, foi realizada em 3 de setembro de 2006.

Neste artigo será apresentada a correção de algumas questões relacionadas ao conteúdo de banco de dados da prova para a carreira de Analista de Sistemas (código ANA69) referente à primeira aplicação da prova. As questões são apresentadas, corrigidas e comentadas junto com o gabarito oficial.

No edital do concurso podemos ver que os principais conceitos da teoria de bancos de dados, sistemas de informações e Bussiness Inteligence podem ser cobrados além de conceitos de bancos de dados do mercado.

 

Questões da prova

As principais questões de banco de dados da prova se basearam em um único modelo. As questões 36 até 46 utilizaram os dados de um banco de dados simplificado, apresentado pelas tabelas CLIENTE, PEDIDO e ITEM, mostrados na Figura 1.

Comentário: Percebam que as tabelas descrevem um modelo clássico de vendas, onde temos entidades para armazenar o cliente, o pedido e os itens de pedidos. Notem que todas as tabelas não possuem indicação das chaves primárias e estrangeiras. A tabela cliente não apresenta o nome das colunas, porém pode-se deduzir a partir das questões da prova que os nomes das colunas são id_cliente, nome e endereço.

 

36) No modelo em questão (apresentado na Figura 1), a especificação de chave primária correta é:

(A) atributo id_item na tabela Item;

(B) atributo id_loja na tabela Pedido;

(C) atributo id_pedido na tabela Item;

(D) atributo nome na tabela Cliente;

(E) atributos id_pedido, id_item na tabela Item.

 

Gabarito: Alternativa E.

Comentário: Esta questão cobra do candidato o conceito de chave primária. O mais importante aqui é lembrar que a chave primaria é uma constraint, isto é, uma restrição, que permite a identificação única de uma linha em uma tabela. A chave primária pode ser aplicada em uma ou mais colunas apenas quando o conteúdo dos valores para a(s) coluna(s) não apresenta duplicação de valores.

A alternativa A sugere o uso da chave primária na coluna id_item da tabela Item, que não pode ser aplicada devido à duplicação dos valores 1, 2 e 3. Na alternativa B, a coluna id_loja da tabela Pedido apresenta a repetição dos valores 1 e 2. Na alternativa C, a coluna id_pedido da tabela Item apresenta os valores 100 e 103 repedidos. Já a alternativa D, a coluna nome da tabela Cliente possui o valor Paulo repetido.

A alternativa E sugere a colocação da chave primária nas colunas id_pedido e id_item da tabela Item, gerando uma chave primária composta. Deste modo, o valor formado pelo conteúdo das duas colunas não se repetirá, permitindo identificar unicamente cada linha da tabela.

 

img

Figura 1. Modelo do banco de dados relacional utilizado nas questões 36 a 46.

 

37) Pode-se afirmar que os relacionamentos entre as tabelas Cliente e Pedido e entre as tabelas Pedido e Item são, respectivamente:

(A) 1:1 e 1:N

(B) 1:N e 1:1

(C) 1:N e 1:N

(D) 1:N e N:N

(E) N:N e 1:N

 

Gabarito: Alternativa C.

Comentário: Para responder a esta questão o candidato deve se lembrar dos conceitos envolvidos na modelagem de tabelas em um digrama entidade relacionamento (ER). Neste diagrama, tanto as tabelas como seus relacionamentos são modelados de acordo com os requisitos do sistema. A questão pergunta sobre a cardinalidade da relação entre as tabelas Cliente e Pedido e a cardinalidade da relação entre as tabelas Pedido e Item. Basta lembrar que, para cada ocorrência (linha) de uma determinada tabela pode-se obter nenhuma, uma ou N ocorrências em outras tabelas. A cardinalidade é representada por um número, que representa a quantidade de ocorrências da tabela de origem, separado pelo caractere ‘:’ seguido por outro número, que representa a quantidade de ocorrências da tabela de destino.

Para o primeiro relacionamento, entre as tabelas Cliente e Pedido, pode-se perceber que um cliente pode fazer mais de um pedido, como é o caso do cliente João que possui dois pedidos. Para generalizar, podemos dizer que para cada linha da tabela Cliente pode-se relacionar com mais de uma linha na tabela Pedido, ou seja, o relacionamento é 1:N. Isto elimina as alternativas A e E, deixando apenas as alternativas B, C e D como opções corretas.

Para o segundo relacionamento, entre as tabelas Pedido e Item, pode-se verificar que um mesmo Pedido pode possuir mais de um item, como é o caso do pedido 100, que possui os itens 1,2 e 3 (cama, colchão e TV, respectivamente). Deste modo, o relacionamento entre as tabelas Pedido e Item também é 1:N.

Alguns candidatos podem argumentar sobre o uso relacionamento N:N. Neste modelo, pode-se notar que o relacionamento entre as tabelas Cliente e Itens possui a cardinalidade N:N, pois é necessário uma tabela adicional, que no caso é a tabela Pedido, para implementar fisicamente este relacionamento.

 

38) O comando SQL que produz os identificadores e nomes dos clientes que têm pedidos, em ordem alfabética é (ver as alternativas nas Listagens 1, 2, 3, 4 e 5):

 

Listagem 1. Alternativa (A).

...

Quer ler esse conteúdo completo? Tenha acesso completo