Prévia do material em texto
Pergunta 1
0,5 em 0,5 pontos
A tabela que armazena os dados dos empregados de uma empresa está definida
como:
Empregado (Código, Nome, Cargo, Salário).
Uma das linhas dessa tabela é a do empregado José da Silva, conforme descrito
abaixo.
(101, 'José da Silva', 'Analista Jr', 2000.00).
A transação de atualização será executada da seguinte maneira:
update Empregado set salario = salario * 1.1 where codigo = 101;
update Empregado set cargo = 'Analista Senior' where codigo = 101;
delete Empregado where cargo = 'Analista Jr';
commit;
O que se pode afirmar sobre os efeitos da execução dessa transação de
atualização, considerando que o banco de dados não utiliza auto-commit?
Resposta
Selecionada:
c.
O conteúdo da linha com os dados de José da Silva será
(101, 'José da Silva', 'Analista Senior', 2200.00).
Respostas: a.
O segundo comando update será executado, mas o
comando delete ficará em estado de espera.
b.
O segundo comando update ficará em estado de espera.
c.
O conteúdo da linha com os dados de José da Silva será
(101, 'José da Silva', 'Analista Senior', 2200.00).
d.
O conteúdo da linha da tabela com os dados de José da
Silva será (101, 'José da Silva', 'Analista Jr', 2200.00).
e.
A linha com os dados de José da Silva será excluída da
tabela.
Feedback
da resposta:
Resposta: C
Comentário: As duas primeiras atualizações são executadas,
alterando a linha em questão para (101, 'José da Silva', 'Analista
Senior', 2200.00). O comando de exclusão não altera a linha em
questão. Por fim, o comando commit efetiva as alterações no
banco de dados.
Pergunta 2
0,5 em 0,5 pontos
Com relação a conceitos de orientação a objetos, julgue os seguintes itens.
I. As variáveis ou métodos declarados com modificador de acesso private só
são acessíveis a métodos da classe em que são declarados.
II. Uma classe deve possuir uma única declaração de método construtor.
III. Uma instância de uma classe abstrata herda atributos e métodos de sua
superclasse direta.
IV. O polimorfismo permite substituir a lógica condicional múltipla (lógica
switch ou faça caso).
Estão certos os itens:
Resposta Selecionada: c.
I e IV.
Respostas: a.
I e II.
b.
I e III.
c.
I e IV.
d.
II e III.
e.
II e IV.
Feedback
da resposta:
Resposta: C
Comentário: I – As variáveis private somente são acessíveis a
métodos da classe em que são declarados. É a definição de
variáveis private. IV - O polimorfismo permite substituir a
lógica condicional múltipla (lógica switch ou faça caso).
Pergunta 3
0,5 em 0,5 pontos
Considere o diagrama de classe a seguir.
Com base no diagrama e nos seus conhecimentos, assinale a alternativa correta.
Resposta
Selecionada:
e.
É possível persistir a herança em um modelo relacional,
incluindo as classes mais especializadas junto às suas
superclasses.
Respostas: a.
Não é possível persistir uma generalização de classes.
b.
Não é possível persistir a herança.
c.
É possível persistir a herança, mas não em um modelo
relacional.
d.
É possível persistir a herança em um modelo relacional
somente nos últimos níveis da generalização, isto é, nas
classes concretas, mas não nas suas superclasses.
e.
É possível persistir a herança em um modelo relacional,
incluindo as classes mais especializadas junto às suas
superclasses.
Feedback
da
resposta:
Resposta: E
Comentário: Mesmo que um banco de dados relacional não
implemente o relacionamento de herança, existem diversas
técnicas para se resolver este problema. Por exemplo, pode-se
criar uma tabela para cada classe, associando-as com
relacionamentos “um-para-um” para modelar a generalização.
Também pode-se repetir os atributos de Pessoa em PessoaFisica
e PessoaJuridica. Este é um problema típico do mapeamento
objeto-relacional, chamado Impedância.
Pergunta 4
0,5 em 0,5 pontos
Considere o diagrama de entidades e relacionamentos a seguir, onde as chaves
primárias de cada entidade se encontram na parte superior dos retângulos. As
entidades fortes são representadas por retângulos e as entidades fracas são
representadas por retângulos com cantos arredondados.
O diagrama atende às seguintes restrições:
I. entre Ent1 e Ent2 tem-se um relacionamento muitos para muitos;
II. entre as Entidades Ent2 e Ent3 tem-se um relacionamento de um para
nenhum, um ou muitos;
III. entre Ent1 e Ent5 tem-se um relacionamento de zero ou um para zero, um
ou muitos;
IV. entre Ent3 e Ent4 tem-se um relacionamento de muitos para muitos.
Aplicando a terceira forma normal ao modelo, qual será o total de colunas que
deve ser criado para representar as chaves estrangeiras?
Resposta Selecionada: d.
8.
Respostas: a.
3.
b.
5.
c.
7.
d.
8.
e.
9.
Feedback
da
resposta:
Resposta: D
Comentário: Entre as entidades Ent1 e Ent2 deve ser criada uma
tabela associativa relacionando todas as chaves primárias delas,
definindo 3 chaves estrangeiras. Entre as entidades Ent3 e Ent4
também se cria uma tabela associativa, dessa vez com 2 chaves
estrangeiras. A tabela Ent5 deve definir 2 chaves estrangeiras
relacionadas às duas chaves primárias de Ent1. A tabela Ent3
deve receber uma chave estrangeira associada à chave primária
de Ent2. No total, foram criadas 8 chaves estrangeiras.
Pergunta 5
0,5 em 0,5 pontos
O paradigma de programação orientado a objetos tem sido largamente utilizado
no desenvolvimento de sistemas.
Considerando o conceito de herança, avalie as afirmações abaixo:
I. Herança é uma propriedade que facilita a implementação de reuso.
II. Quando uma subclasse é criada, ela herda todas as características da
superclasse, não podendo possuir propriedades e métodos próprios.
III. Herança múltipla é uma propriedade na qual uma superclasse possui
diversas subclasses.
IV. Extensão é uma das formas de se implementar herança.
É correto o que se afirma em:
Resposta Selecionada: c.
I e IV.
Respostas: a.
I.
b.
III.
c.
I e IV.
d.
II e III.
e.
II e IV.
Feedback
da
resposta:
Resposta: C
Comentário: I - Herança é uma propriedade que facilita a
implementação de reuso, pois podemos utilizar uma classe
inicial existente e criar várias outras classes a partir dela. IV - A
herança torna a extensão ou especialização de classe existente.
Extensão é uma das formas de se implementar herança.
Pergunta 6
0,5 em 0,5 pontos
Pedro foi contratado como desenvolvedor de software de uma empresa. Em seu
primeiro dia de trabalho ele se deparou com o DER (Diagrama Entidade-
Relacionamento), que representa os dados de um sistema de controle de
malotes. Foi solicitado a Pedro relatório para o sistema contendo os seguintes
dados: o nome de todos os funcionários que enviaram os malotes, o código dos
malotes enviados, a descrição de seus conteúdos e a situação dos malotes. Para
a geração do relatório, Pedro tem que fazer uma consulta utilizando o comando
SELECT da linguagem SQL.
Conhecidos o modelo conceitual de dados e os dados necessários para a tarefa
de Pedro, o comando SELECT que ele deve executar para realizar a consulta e
produzir o relatóriocorretamente é:
Resposta
Selecionada:
d.
SELECT NOME, CODIGO_MALOTE, DESCRICAO,
SITUACAO_MALOTE FROM MALOTES INNER JOIN
CONTEUDOS ON (MALOTES.CODIGO_CONTEUDO =
CONTEUDOS.CODIGO_CONTEUDO) INNER JOIN
FUNCIONARIOS ON(MALOTES.MATRICULA =
FUNCIONARIOS.MATRICULA).
Respostas: a.
SELECT NOME, CODIGO_MALOTE, DESCRICAO,
SITUACAO_MALOTE FROM MALOTES INNER JOIN
CONTEUDOS ON (CODIGO_CONTEUDO =
CODIGO_CONTEUDO) INNER JOIN FUNCIONARIOS
ON (MATRICULA = MATRICULA).
b.
SELECT NOME, CODIGO_MALOTE, DESCRICAO,
SITUACAO_MALOTE FROM MALOTES, CONTEUDOS,
FUNCIONARIOS WHERE (CODIGO_CONTEUDO =
CODIGO_CONTEUDO) AND (MATRICULA =
MATRICULA).
c.
SELECT NOME, CODIGO_MALOTE, DESCRICAO,
SITUACAO_MALOTE FROM MALOTES INNER JOIN
CONTEUDOS INNER JOIN FUNCIONARIOS
ON(MALOTES.CODIGO_CONTEUDO =
CONTEUDOS.CODIGO_CONTEUDO)
ON(MALOTES.MATRICULA =
FUNCIONARIOS.MATRICULA).
d.
SELECT NOME, CODIGO_MALOTE, DESCRICAO,
SITUACAO_MALOTE FROM MALOTES INNER JOIN
CONTEUDOS ON (MALOTES.CODIGO_CONTEUDO =
CONTEUDOS.CODIGO_CONTEUDO) INNER JOIN
FUNCIONARIOS ON(MALOTES.MATRICULA =
FUNCIONARIOS.MATRICULA).
e.
SELECT NOME, CODIGO_MALOTE, DESCRICAO,
SITUACAO_MALOTE FROM MALOTES, CONTEUDOS,
FUNCIONARIOS INNER JOIN WHERE
(MALOTES.CODIGO_CONTEUDO =
CONTEUDOS.CODIGO_CONTEUDO) AND
(MALOTES.MATRICULA =
FUNCIONARIOS.MATRICULA).
Feedback
da resposta:
Resposta: D
Comentário: Deve-se fazer uma junção interna (INNER JOIN)
entre as tabelas Malotes e Conteudos, para então fazer outra
junção interna com a tabela Funcionarios. As cláusulas ON que
definem os critérios de junção são codificados logo após seus
respectivos INNER JOINs.
Pergunta 7
0,5 em 0,5 pontos
Um mercado que comercializa alimentos hortifrutigranjeiros faz compras
diárias de diversas fazendas e enfrenta prejuízos decorrentes da falta de
controle relacionada ao prazo de validade de seus produtos. Para resolver esse
problema, o proprietário resolve investir em informatização, que proporcionará
o controle do prazo de validade a partir da data da compra do produto. A
modelagem de dados proposta pelo profissional contratado apresenta três
tabelas, ilustradas a seguir, sendo que o atributo Código nas tabelas Produto e
Fazenda são unívocos.
A partir das informações acima, é correto concluir que:
Resposta
Selecionada:
a.
o relacionamento entre as tabelas Produto e Estoque é do
tipo um-para-muitos.
Respostas: a.
o relacionamento entre as tabelas Produto e Estoque é do
tipo um-para-muitos.
b.
o campo Produto na tabela Estoque não pode fazer parte da
chave nesta tabela e corresponde ao campo Descrição na
tabela Produto.
c.
o campo Fazenda na tabela Estoque deverá ser a chave
primária nesta tabela e corresponde ao campo Código na
tabela Fazenda.
d.
o campo Código é chave primária na tabela Produto e
identifica a fazenda fornecedora do produto.
e.
a tupla {produto, fazenda} deverá ser usada como a chave
primária da tabela Estoque.
Feedback da
resposta:
Resposta: A
Comentário: O relacionamento entre Produto e Estoque é “1-
para-muitos”, resultante de um lado da resolução da relação
“muitos-para-muitos” entre Produto e Fazenda.
Pergunta 8
0,5 em 0,5 pontos
Uma instituição de auxílio a desabrigados tem a preocupação de fornecer uma
alimentação equilibrada a seus pensionistas. Para atingir esse objetivo, decidiu
empregar um sistema informatizado e contratou um analista para projetá-lo. O
analista, que deveria empregar UML na modelagem do sistema, recebeu as
informações a seguir acerca das refeições.
• Café da manhã: dois tipos de carboidrato, duas vitaminas e duas proteínas.
• Almoço: dois tipos de carboidrato e de proteínas, quatro tipos de vitamina e
um tipo de lipídio.
• Jantar: um tipo de carboidrato, uma proteína e uma vitamina.
Cada tipo de alimento deve ser acompanhado por seu nome, sua porção
recomendável, por refeição, e seu valor calórico, por porção. O cálculo para
descobrir a quantidade de calorias para cada pensionista é dado pelo produto do
fator de atividade (FA) pela taxa de metabolismo basal (TMB). Esses dois
valores são obtidos nas tabelas I e II a seguir.
O cardápio de cada pensionista deve ser gerado, a cada dia, com base no
cálculo da quantidade de calorias recomendada para cada um deles e, depois,
deve ser encaminhado para a cozinheira.
Considerando as necessidades da instituição no que se refere ao cardápio diário
e a aspectos da modelagem conceitual com UML, julgue os itens a seguir,
acerca da classe Refeição.
I. Para o cálculo do TMB, são precondições que a idade seja um valor maior do
que 30 anos e que seja relacionada uma das descrições da tabela II para o valor
de FA.
II. Essa classe tem um método denominado montarCardápioDiário() que será
sobrescrito nas subclasses.
III. Suas subclasses não implementam o método para calcular a quantidade de
calorias, utilizando a implementação já definida na classe pai.
IV. Essa classe possui associações um-para-um com a classe Pensionista e
agregação com a classe Alimento.
V. O conceito de acoplamento é um critério importante durante a modelagem
da classe Refeição, pois diminui a quantidade de seus relacionamentos, o que
contribui para o seu reuso.
Estão certos os itens:
Resposta Selecionada: c.
II, III e V.
Respostas: a.
I e II.
b.
I e IV.
c.
II, III e V.
d.
III, IV e V.
e.
I, IV e V .
Feedback
da
resposta:
Resposta: C
Comentário: II - Como cada cardápio é diferente, o método
montarCardapio() da superclasse (Refeição) tem que ser
sobrescrito em cada subclasse (Café da Manhã, Almoço e
Jantar). III - O cálculo da quantidade de calorias não varia em
função do tipo de cada refeição, portanto pode ficar na
superclasse sem necessidade de ser sobrescrita nas subclasses. V
- O acoplamento é um critério muito importante durante a
modelagem. Um baixo acoplamento diminui a quantidade dos
relacionamentos de uma classe e contribui enormemente para
que ela seja reusável.
Pergunta 9
0,5 em 0,5 pontos
Uma livraria usa um sistema informatizado para realizar vendas pela Internet.
Optou-se por um sistema gerenciador de banco de dados, no qual aplicaram-se
regras de corretude e integridade. Cada cliente se cadastra, faz login no sistema
e escolhe títulos. Os livros são colocados em um carrinho de compras até que o
cliente confirme ou descarte o pedido. As tabelas do sistema são: clientes,
livros, carrinho, vendas. Dois clientes acessam o sítio no mesmo horário e
escolhem alguns livros. O estado do sistema nesse instante é representado na
tabela seguir.
A livraria possui um único exemplar do livro Estatística básica. O computador
usado por Alice sofre uma pane de energia antes que ela confirme o pedido. No
mesmo instante também ocorre uma pane de energia no computador da loja.
Em seguida, o computador de Alice e o computador da loja voltam a ter energia
e a funcionar. Ela volta ao sistema e retoma seu carrinho de compras intacto.
Com relação a essa situação, julgue os itens seguintes.
I. A consistência de uma tabela do banco de dados foi violada
temporariamente, para disponibilizar dois exemplares do livro Estatística
básica.
II. Como o pedido de Alice continuou válido apesar da interrupção, o sistema
gerenciador de banco de dados não emprega atomicidade.
III. Todas as transações devem ser fechadas depoisdo retorno da energia, para
que os clientes possam recuperar seus carrinhos de compras.
Assinale a opção correta.
Resposta Selecionada: e.
Nenhum item está certo.
Respostas: a.
Apenas um item está certo.
b.
Apenas os itens I e II estão certos.
c.
Apenas os itens I e III estão certos.
d.
Apenas os itens II e III estão certos.
e.
Nenhum item está certo.
Feedback
da
resposta:
Resposta: E
Comentário: I - Vários clientes podem colocar um exemplar do
livro no carrinho, desde que seu estoque não esteja zerado.
Como não é possível saber qual cliente vai finalizar o processo
de compra, é permitido que qualquer um possa colocá-lo em seu
carrinho. Essa regra de negócio pode fazer com que um livro,
com apenas uma unidade disponível em estoque, seja colocado
simultaneamente em vários carrinhos de compra, sem que haja
qualquer violação de consistência. II - O fato de Alice não iniciar
uma transação para completar o processo de compra (fazer o
check-out) não significa que o gerenciador de banco de dados
não emprega atomicidade. Uma afirmação não leva à outra. III -
Nenhuma transação foi aberta para a inclusão de itens no
carrinho de compras, portanto não precisa ser fechada. Para os
clientes recuperarem os dados do carrinho de compras, é preciso
apenas que o sistema preveja um armazenamento temporário
desses dados e sua posterior recuperação. Por exemplo, podem
ser usados cookies sem nenhuma necessidade de acessar o banco
de dados.
Pergunta 10
0,5 em 0,5 pontos
Uma pizzaria fez uma ampliação de suas instalações e o gerente aproveitou
para melhorar o sistema informatizado, que era limitado e não atendia a todas
as funções necessárias. O gerente, então, contratou uma empresa para ampliar o
software. No desenvolvimento do novo sistema, a empresa aproveitou partes do
sistema antigo e estendeu os componentes de maneira a usar código validado,
acrescentando as novas funções solicitadas.
Que conceito de orientação a objetos está descrito na situação hipotética acima?
Resposta Selecionada: b.
Herança.
Respostas: a.
Sobrecarga.
b.
Herança.
c.
Sobreposição.
d.
Abstração.
e.
Mensagem.
Feedback da
resposta:
Resposta: B
Comentário: A herança aproveita tudo que foi desenvolvido e
aprovado na superclasse, possibilitando o uso nas subclasses
como código já testado e validado.