Buscar

quiz programação banco de dados

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 30 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Status
	Completada
	Resultado da tentativa
	4 em 10 pontos  
	Tempo decorrido
	1 minuto
	Resultados exibidos
	Todas as respostas, Respostas enviadas, Respostas corretas, Comentários
· Pergunta 1
1 em 1 pontos
	
	
	
	Considere a seguinte sequência de comandos:
 
SET @chave = UNHEX(SHA2('%s', 512));
SELECT AES_DECRYPT(sigiloso, @chave) as descriptografado FROM dados;
 
Considere agora as seguintes afirmações:
 
I – A sequência de comandos realiza a desencriptação da coluna sigiloso da tabela dados; a chave utilizada é uma chave privada, que deve ser correspondente à chave pública usada na função AES_ENCRYPT, que criptografou os dados.
 
II – A sequência de comandos realiza a desencriptação da coluna sigiloso da tabela dados; a chave utilizada é uma chave simétrica, que deve ser igual à chave usada na função AES_ENCRYPT, que criptografou os dados.
 
III – SHA e AES são padrões criptográficos bem estabelecidos, utilizados mundialmente e disponíveis em uma ampla gama de ambientes, não somente nos bancos de dados.
 
IV – O valor passado para a função SHA2, para a criação da chave, deve ser a senha do usuário.
 
Assinale a alternativa que indica as afirmações verdadeiras.
	
	
	
	
		Resposta Selecionada:
	c. 
II e III.
	Respostas:
	a. 
II, III e IV.
	
	b. 
I e III.
	
	c. 
II e III.
	
	d. 
I, III e IV.
	
	e. 
II e IV.
	Comentário da resposta:
	SHA é um padrão de função hash, que nos ajuda a gerar uma chave simétrica a partir de um certo segredo, que não tem relação nenhuma com a senha do usuário. Já o AES é um padrão criptográfico de chave simétrica, o que significa que a mesma chave utilizada para criptografar os dados é a chave utilizada para desencriptá-los. Assim, as afirmações verdadeiras são a II e a III.
	
	
	
· Pergunta 2
0 em 1 pontos
	
	
	
	
Considere a seguinte tabela login:
+------------+----------+------+-----+---------+-------+
| Field      | Type     | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+-------+
| data_hora  | datetime | YES  |     | NULL    |       |
| id_cliente | int             | YES  |     | NULL    |       |
+------------+----------+------+-----+---------+-------+
 Considere agora o comando:
 SELECT HOUR(data_hora) as hora, id_cliente FROM login GROUP BY hora;
Qual o problema com o comando acima?
	
	
	
	
		Resposta Selecionada:
	d. 
O alias hora não funciona no GROUP BY; seria preciso escrever GROUP BY HOUR(data_hora).
	Respostas:
	a. 
Há um erro de sintaxe.
	
	b. 
HOUR não pode ser usada com o GROUPY BY, pois não é uma função agregadora.
	
	c. 
A seleção da coluna id_cliente é incompatível com o agrupamento por hora, já que é um valor que varia dentro de um mesmo grupo.
	
	d. 
O alias hora não funciona no GROUP BY; seria preciso escrever GROUP BY HOUR(data_hora).
	
	e. 
Não há nenhum problema com o comando.
	Comentário da resposta:
	Em uma seleção com agrupamento, os campos selecionados devem ou fazer parte da definição do agrupamento ou serem funções que agregam cada grupo. Não é o caso de seleção de id_cliente. O comando produz a seguinte saída:
ERROR 1055 (42000): Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'brasil.login.id_cliente' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
	
	
	
· Pergunta 3
1 em 1 pontos
	
	
	
	Operadores aritméticos: Divisão
mysql> SELECT 3/5;
-> 0.60
A divisão por zero produz um resultado NULL:
mysql> SELECT 102/(1-1);
  -> NULL
Uma divisão é calculada com aritmética BIGINT apenas se realizada em um contexto em que seu resultado é convertido em um inteiro.
DIV
Divisão inteira. Descarta do resultado da divisão qualquer parte fracionária à direita da vírgula decimal.
Se qualquer operando tiver um tipo não inteiro, os operandos serão convertidos em DECIMAL e divididos usando a aritmética DECIMAL antes de converter o resultado em BIGINT. Se o resultado exceder a faixa BIGINT, ocorrerá um erro.
mysql> SELECT 5 DIV 2, -5 DIV 2, 5 DIV -2, -5 DIV -2;
-> 2, -2, -2, 2
(Traduzido da documentação oficial do MySQL. Disponível em: https://dev.mysql.com/doc/refman/8.0/en/arithmetic-functions.html. Acesso em: 18 out. 2020.)
Considere os seguintes comandos:
(I) SELECT 42/2;
(II) SELECT 42 DIV 2;
(III) SELECT 43/2;
(IV) SELECT 43 DIV 2;
(V) SELECT 42/0;
(VI) SELECT 42 DIV 0;
Assinale a alternativa que traça a correspondência correta entre os comandos e as saídas.
	
	
	
	
		Resposta Selecionada:
	e. 
(I) 21.0000
(II) 21
(III) 21.5000
(IV) 21
(V) NULL
(VI) NULL
	Respostas:
	a. 
(I) 21.0000
(II) 21
(III) 21.5000
(IV) 21
(V) NULL
(VI) syntaxe error
	
	b. 
(I) 21.0000
(II) 21
(III) 21.5000
(IV) 21.5000
(V) NULL
(VI) NULL
	
	c. 
(I) 21.0000
(II) 21
(III) 21.5000
(IV) 21
(V) 0
(VI) 0
	
	d. 
(I) 21.0000
(II) syntaxe error
(III) 21.5000
(IV) syntaxe error
(V) NULL
(VI) NULL
	
	e. 
(I) 21.0000
(II) 21
(III) 21.5000
(IV) 21
(V) NULL
(VI) NULL
	Comentário da resposta:
	Cada um dos comandos (I-VI) produz os seguintes resultados, com as respectivas justificativas:
(I) SELECT 42/2; -- retorna 21.0, pois / é divisão fracionária
(II) SELECT 42 DIV 2; -- retorna 21, pois DIV é divisão inteira
(III) SELECT 43/2; -- retorna 21.5, pois / é divisão fracionária
(IV) SELECT 43 DIV 2; -- retorna 21, pois DIV é divisão inteira
(V) SELECT 42/0; -- divisão por zero retorna NULL
(VI) SELECT 42 DIV 0; -- divisão por zero retorna NULL
	
	
	
· Pergunta 4
0 em 1 pontos
	
	
	
	Funções de data e tempo: HOUR(tempo)
Retorna a hora para tempo. O intervalo do valor de retorno é de 0 a 23 para valores de horas do dia. No entanto, o intervalo de valores TIME é, na verdade, muito maior, então HOUR pode retornar valores maiores do que 23.
mysql> SELECT HOUR('10:05:03');       
-> 10
mysql> SELECT HOUR('272:59:59');       
-> 272
(Traduzido da documentação oficial do MySQL. Disponível em: https://dev.mysql.com/doc/refman/8.0/en/date-and-time-functions.html. Acesso em: 18 out. 2020.)
 
Considere a seguinte tabela login:
+------------+----------+------+-----+---------+-------+
| Field      | Type     | Null | Key | Default | Extra |
+------------+----------+------+-----+---------+-------+
| data_hora  | datetime | YES  |     | NULL    |       |
| id_cliente | int             | YES  |     | NULL    |       |
+------------+----------+------+-----+---------+-------+
Considere agora o comando:
SELECT HOUR(data_hora) as hora, count(*) FROM login GROUP BY hora;
 Assinale a alternativa que melhor descreve uma possível intenção para a execução do comando acima.
	
	
	
	
		Resposta Selecionada:
	c. 
Descobrir o dia, e a hora desse dia, em que mais houve acessos ao sistema.
	Respostas:
	a. 
Descobrir qual a última data-hora em que o sistema foi acessado.
	
	b. 
Investigar quais são os horários mais movimentados de uso do sistema.
	
	c. 
Descobrir o dia, e a hora desse dia, em que mais houve acessos ao sistema.
	
	d. 
Investigar quais são os horários mais movimentados de uso do sistema para um determinado dia.
	
	e. 
Contar há quantas horas o sistema está funcionando.
	Comentário da resposta:
	O comando produz um resultado no formato:
+------+----------+
| hora | count(*) |
+------+----------+
|   12 |        3 |
|   13 |        4 |
|   14 |        1 |
+------+----------+
Dessa forma, percebemos, ao longo de toda a vida do sistema, quantos logins (acessos) foram feitos em cada faixa de horário, sendo cada faixa uma das 24 horas do dia. Note que, no comando e na saída, não há nenhuma menção ao dia do login.
	
	
	
· Pergunta 5
0 em 1 pontos
	
	
	
	Considere o seguinte procedimento:
DELIMITER $$
CREATE PROCEDURE insere_usuarios(IN quantidade int)
BEGIN
    DECLARE i INT DEFAULT 1;
    WHILE i <= quantidade DO
        INSERT INTO usuario (nome) VALUES (CONCAT('Usuário ', i));
        IF i < 10 THEN
            SET i = i + 1;
        END IF;
    END WHILE;
END$$
DELIMITER ;
Considere agora as seguintes execuções do procedimento acima:
· Execução 1:
CALL insere_usuarios(9);
· Execução 2:
CALL insere_usuarios(10);Considere agora as seguintes afirmações:
(I) A execução 1 insere 9 registros na tabela.
(II) As execuções 1 e 2 continuarão em execução para sempre ou até serem interrompidas ou até exaurirem os recursos do sistema.
(III) A execução 2 continuará em execução para sempre ou até ser interrompida ou até exaurir os recursos do sistema. Isto pode ocasionar a inserção de mais de 10 registros na tabela usuário.
(IV) A execução 2 continuará em execução para sempre ou até ser interrompida ou até exaurir os recursos do sistema. Nessa situação, como o fim do procedimento não é atingido, nenhum registro é de fato inserido na tabela.
Assinale a alternativa que contenha todas as afirmações verdadeiras.
	
	
	
	
		Resposta Selecionada:
	b. 
II; III.
	Respostas:
	a. 
II; IV.
	
	b. 
II; III.
	
	c. 
I.
	
	d. 
I; IV.
	
	e. 
I; III.
	Comentário da resposta:
	A execução 1 insere exatamente 9 registros e nunca entrará em loop infinito.
A execução 2 entra em loop infinito. Se for disparada fora do contexto de uma transação, cada INSERT insere um registro na tabela, e os registros vão sendo inseridos até que a execução seja interrompida ou que os recursos do sistema sejam exauridos.
	
	
	
· Pergunta 6
0 em 1 pontos
	
	
	
	Considere as seguintes tabelas pet e dono:
> describe pet;
+---------+-------------+------+-----+---------+----------------+
| Field   | Type        | Null | Key | Default | Extra          |
+---------+-------------+------+-----+---------+----------------+
| id      | int         | NO   | PRI | NULL    | auto_increment |
| nome    | varchar(20) | NO   | UNI | NULL    |                |
| id_dono | int               | YES  |       | NULL    |                |
+---------+-------------+------+-----+---------+----------------+
 
> describe dono;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int         | NO   | PRI | NULL    | auto_increment |
| nome  | varchar(20) | NO   | UNI | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
 
 Considere agora a seguinte sequência de comandos:
 
> insert into dono (nome) values ('Leonardo');
> insert into pet (nome) values ('Brasinha');
> GET DIAGNOSTICS CONDITION 1 @msg = MESSAGE_TEXT;
> SELECT @msg;
 
Sobre o resultado dessa sequência de comandos, considere as seguintes afirmações:
 I – Se Leonardo for um dono já existente, a variável @msg terá o valor "Duplicate entry 'Leonardo' for key 'dono.nome'".
 II – Se Brasinha for um pet já existente, a variável @msg terá o valor "Duplicate entry 'Brasinha' for key 'pet.nome'".
 Assinale a alternativa verdadeira.
	
	
	
	
		Resposta Selecionada:
	b. 
Ambas as afirmações estão incorretas, uma vez que o comando GET DIAGNOSTICS foi utilizado sem um handler.
	Respostas:
	a. 
Somente a afirmação II está correta, uma vez que o comando GET DIAGNOSTICS só recupera os detalhes do erro ocorrido na linha imediatamente anterior.
	
	b. 
Ambas as afirmações estão incorretas, uma vez que o comando GET DIAGNOSTICS foi utilizado sem um handler.
	
	c. 
Somente a afirmação II está correta, uma vez que o comando GET DIAGNOSTICS só recupera os detalhes do primeiro erro ocorrido ainda não tratado.
	
	d. 
Ambas as afirmações estão corretas, uma vez que o comando GET DIAGNOSTICS recupera os detalhes do último erro ocorrido. Obs.: no caso de o pet e o dono forem repetidos, a mensagem fará menção ao último erro; no caso, o erro do pet.
	
	e. 
Ambas as afirmações estão incorretas, devido a erros de sintaxe nos comandos.
	Comentário da resposta:
	Somente a afirmação II está correta, pois o comando GET DIAGNOSTICS só recupera os detalhes do erro ocorrido na linha imediatamente anterior.
	
	
	
· Pergunta 7
1 em 1 pontos
	
	
	
	Considere a seguinte tabela usuario e sua tabela de auditoria usuario_auditoria:
 
> describe usuario;
+-------+------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra          |
+-------+------+------+-----+---------+----------------+
| id    | int  | NO   | PRI | NULL    | auto_increment |
| nome  | text | YES  |     | NULL    |                |
| papel | text | YES  |     | NULL    |                |
+-------+------+------+-----+---------+----------------+
 
> describe usuario_auditoria;
+----------------+----------+------+-----+---------+----------------+
| Field          | Type     | Null | Key | Default | Extra          |
+----------------+----------+------+-----+---------+----------------+
| id             | int      | NO   | PRI | NULL    | auto_increment |
| data_hora_acao | datetime | YES  |     | NULL    |                |
| usuario_acao   | text     | YES  |     | NULL    |                |
| id_usuario     | int      | YES  |     | NULL    |                |
| nome_antes     | text     | YES  |     | NULL    |                |
| papel_antes    | text     | YES  |     | NULL    |                |
| nome_depois    | text     | YES  |     | NULL    |                |
| papel_depois   | text     | YES  |     | NULL    |                |
+----------------+----------+------+-----+---------+----------------+
 
Considere as seguintes versões do gatilho responsável por inserir um registro de auditoria de inserção de usuário:
 
CREATE TRIGGER audita_insercao_v1 BEFORE INSERT ON usuario FOR EACH ROW
INSERT INTO usuario_auditoria (data_hora_acao, usuario_acao, id_usuario, nome_depois, papel_depois) VALUES
 (NOW(),
 CURRENT_USER(),
 NEW.id,
  NEW.nome,
  NEW.papel);
 
CREATE TRIGGER audita_insercao_v2 AFTER INSERT ON usuario FOR EACH ROW
INSERT INTO usuario_auditoria (data_hora_acao, usuario_acao, id_usuario, nome_depois, papel_depois) VALUES
 (NOW(),
 CURRENT_USER(),
 NEW.id,
  NEW.nome,
  NEW.papel);
 
Assinale a alternativa correta.
	
	
	
	
		Resposta Selecionada:
	b. 
A versão 2 está correta, enquanto que a versão 1 possui um problema: pode não registrar o ID do usuário inserido.
	Respostas:
	a. 
A versão 2 está correta, enquanto que a versão 1 sempre deixará nulos os campos id_usuario, nome_depois e papel_depois.
	
	b. 
A versão 2 está correta, enquanto que a versão 1 possui um problema: pode não registrar o ID do usuário inserido.
	
	c. 
Ambas as versões estão igualmente corretas.
	
	d. 
Ambas as versões possuem erros de sintaxe.
	
	e. 
Somente a versão 1 está correta.
	Comentário da resposta:
	A versão 1 possui tempo de ação BEFORE (antes), e antes da ação ainda não há um ID gerado para o registro (caso o ID não seja especificado no comando INSERT*). Por isso, a versão 1 pode não auditar o ID do registro inserido.
 
Exemplo: insert into usuario (nome, papel) values ('joao', 'operario');
 
Já a versão 2 (AFTER) funciona corretamente.
	
	
	
· Pergunta 8
1 em 1 pontos
	
	
	
	Considere a seguinte sequência de comandos:
1. DELIMITER $$
2. CREATE PROCEDURE intervalo_aleatorio(IN tamanho int, OUT inicio int, OUT fim int)
3. BEGIN
4.     SET inicio = ROUND(RAND()*100);
5.     SET fim = inicio + tamanho;
6. END$$
7. DELIMITER ;
8. CALL intervalo_aleatorio(10, @ini, @fim);
9. SELECT @ini, @fim;
Sobre a sequência de comandos, é correto afirmar:
	
	
	
	
		Resposta Selecionada:
	b. 
Todos os comandos serão executados com sucesso, e uma possível saída é:
+------+------+
| @ini | @fim |
+------+------+
|   46 |   56 |
+------+------+
	Respostas:
	a. 
A criação da procedure retornará um erro, pois a linha 4 deveria ser:
 SELECT ROUND(RAND()*100) INTO inicio;
	
	b. 
Todos os comandos serão executados com sucesso, e uma possível saída é:
+------+------+
| @ini | @fim |
+------+------+
|   46 |   56 |
+------+------+
	
	c. 
O comando CALL retornará um erro, pois o nome do argumento (ini) não bate com o nome do parâmetro (inicio).
	
	d. 
O comando SELECT retornará um erro, pois os arrobas devem preceder os nomes das variáveis somente na chamada do procedimento (CALL).
	
	e. 
Todos os comandos serão executados com sucesso, e uma possível saída é:
+--------+--------+| @ini   | @fim   |
+--------+--------+
|   0.46 |   0.56 |
+--------+--------+
	Comentário da resposta:
	A alternativa B é a correta, pois apresenta uma saída plausível para a execução dos comandos apresentados. O procedimento intervalo_aleatorio deve preencher a variável @ini com um valor entre 0 e 100, no caso foi 46. O procedimento intervalo_aleatorio deve preencher a variável @fim com o valor de @ini acrescido do valor do argumento tamanho. Ou seja, para @ini 46 e tamanho 10 (linha 8), @fim deve ser 46 + 10 = 56.
O SELECT INTO somente é necessário quando se quer passar o resultado de um SELECT para uma variável. Não é o caso, por isso a alternativa A está errada.
O nome do argumento não precisa bater com o nome do parâmetro. A correspondência é feita pela posição do argumento na lista de argumentos. Por isso, a alternativa C está errada.
Os arrobas foram adequadamente utilizados na sequência de comandos. Por isso, a alternativa D está errada.
A expressão ROUND(RAND()*100) retorna sempre um número inteiro entre 0 e 100, então não há como o valor de ini e fim serem fracionários. Por isso, a alternativa E está errada.
	
	
	
· Pergunta 9
0 em 1 pontos
	
	
	
	Considere as seguintes declarações:
 
CREATE TRIGGER audita_insercao BEFORE INSERT ON produto FOR EACH ROW
  INSERT INTO produto_auditoria (data_hora_alteracao, usuario, evento, id_produto) VALUES
   (NOW(), CURRENT_USER(), 'INCLUSAO', NEW.id);
 
CREATE TRIGGER audita_exclusao BEFORE DELETE ON produto FOR EACH ROW FOLLOWS audita_insercao
  INSERT INTO produto_auditoria (data_hora_alteracao, usuario, evento, id_produto) VALUES
   (NOW(), CURRENT_USER(), 'EXCLUSAO', OLD.id);
 
Sobre a execução desses comandos, é correto dizer:
	
	
	
	
		Resposta Selecionada:
	a. 
Ambas as declarações funcionam, mas audita_exclusao nunca será disparada.
	Respostas:
	a. 
Ambas as declarações funcionam, mas audita_exclusao nunca será disparada.
	
	b. 
Ambas as declarações funcionam, mas audita_exclusao dará erro quando disparada.
	
	c. 
Há um erro de sintaxe em audita_insercao.
	
	d. 
As palavras NEW e OLD foram usadas indevidamente.
	
	e. 
A declaração de audita_exclusao resulta em erro.
	Comentário da resposta:
	A palavra-chave FOLLOWS deve apontar para um gatilho que opere com a mesma tabela e comando (INSERT, UPDATE, DELETE) que o gatilho sendo declarado. Isso quer dizer que audita_exclusao não pode seguir (FOLLOWS) audita_insercao, pois são gatilhos de comandos diferentes (um é INSERT e o outro é DELETE). Assim, a alternativa correta é a “e”, pois a declaração de audita_exclusao produz o seguinte erro:
ERROR 3011 (HY000): Referenced trigger 'audita_insercao' for the given action time and event type does not exist.
	
	
	
· Pergunta 10
0 em 1 pontos
	
	
	
	Considere a seguinte tabela equacoes e o procedimento bhaskara:
 
> table equacoes;
+------+------+------+------+------+
| a    | b    | c    | x1   | x2   |
+------+------+------+------+------+
|    8 |    6 |    9 | NULL | NULL |
|   -5 |    5 |    1 | NULL | NULL |
|    4 |   -2 |   -8 | NULL | NULL |
|   10 |   -7 |   -3 | NULL | NULL |
|   -3 |    9 |   -3 | NULL | NULL |
+------+------+------+------+------+
 
DELIMITER $$
CREATE PROCEDURE bhaskara()
BEGIN
    DECLARE va, vb, vc double;
    DECLARE done int default false;
    DECLARE cursor_equacoes CURSOR FOR SELECT a, b, c FROM equacoes;
    DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE;
    OPEN cursor_equacoes;
    WHILE not done DO
     FETCH cursor_equacoes INTO va, vb, vc;
     SET @delta = vb*vb - 4*va*vc;
     SET @x1 = IF(@delta >= 0, (-vb - SQRT(@delta)) / (2*va), NULL);
     SET @x2 = IF(@delta >= 0, (-vb + SQRT(@delta)) / (2*va), NULL);
     UPDATE equacoes SET x1 = @x1, x2 = @x2 WHERE a = va and b = vb and c = vc;
    END WHILE;
    CLOSE cursor_equacoes;
END$$
DELIMITER ;
 
A tabela equacoes guarda os coeficientes de equações quadráticas (ax2 + bx + c = 0). O procedimento bhaskara se propõe a resolver cada equação (uma equação por registro) e a preencher as colunas x1 e x2 de equacoes com as soluções da equação.
 
Sobre o funcionamento do procedimento bhaskara, assinale a alternativa correta.
	
	
	
	
		Resposta Selecionada:
	a. 
O procedimento não funciona de forma adequada, pois, na última iteração do laço, o cursor já terá chegado ao fim. Dessa forma, a última execução do comando FETCH retornará um erro.
	Respostas:
	a. 
O procedimento não funciona de forma adequada, pois, na última iteração do laço, o cursor já terá chegado ao fim. Dessa forma, a última execução do comando FETCH retornará um erro.
	
	b. 
O procedimento não funciona de forma adequada, pois, na última iteração do laço, o cursor já terá chegado ao fim. Dessa forma, va, vb e vc serão preenchidos com valores nulos, o que causará erros no restante do corpo do laço.
	
	c. 
O procedimento funciona de forma adequada no sentido de que produz os resultados esperados na tabela equacoes.
	
	d. 
O procedimento não funciona de forma adequada, pois, na última iteração do laço, o cursor já terá chegado ao fim. Isso fará com que os valores de x1 e x2 do último registro não sejam preenchidos.
	
	e. 
O procedimento não funciona de forma adequada, pois há um erro de sintaxe.
	Comentário da resposta:
	É verdade que, na última iteração do laço, o cursor já terá chegado ao fim; porém, o comportamento do cursor é repetir os valores do último registro encontrado. Na prática, isso provoca uma dupla execução dos cálculos do último registro (nas duas últimas iterações do laço). Logo, essa dupla execução apenas repete o cálculo, não deixando de calcular nenhum registro. Portanto, o resultado encontrado na tabela equacoes é o esperado, o que torna a alternativa “c” correta.
	
	
	
· Pergunta 1
1 em 1 pontos
	
	
	
	Podemos afirmar que a WBS (Work Breakdown Structure), também conhecida como EAP (Estrutura Analítica do Projeto), inclui:
	
	
	
	
		Resposta Selecionada:
	a. 
as entregas tanto internas como externas.
	Respostas:
	a. 
as entregas tanto internas como externas.
	
	b. 
a alocação dos recursos às tarefas do projeto.
	
	c. 
o plano de atenuação de riscos.
	
	d. 
somente as estimativas de custos.
	Comentário da resposta:
	a) as entregas tanto internas como externas.
A WBS ou EAP tem o intuito de possibilitar a subdivisão das entregas e do trabalho de um projeto em componentes menores e, assim, mais facilmente gerenciáveis. Ou seja, é uma ferramenta para desmembrar um projeto em seus componentes e partes.
	
	
	
· Pergunta 2
1 em 1 pontos
	
	
	
	Assinale a opção correta acerca de modelos de processo de software.
I. Segundo o Manifesto Ágil os processos de desenvolvimento ágil de software valorizam mais: indivíduos e interações do que processos e ferramentas; software funcionando do que documentação extensa; colaboração do cliente do que negociação contratual; e respostas a mudanças do que planejamento seguido.
II. A programação extrema, também conhecida como Extreme Programming, ou simplesmente XP, é um processo de desenvolvimento ágil que permite a ausência do cliente em fases iniciais, como nas reuniões de planejamento de versão e planejamento de iteração.
III. A programação em pares é uma prática que está presente sempre em todos os processos de desenvolvimento ágil, como XP e Scrum.
	
	
	
	
		Resposta Selecionada:
	b. 
Apenas a afirmativa I é verdadeira.
	Respostas:
	a. 
Apenas a afirmativa II é verdadeira.
	
	b. 
Apenas a afirmativa I é verdadeira.
	
	c. 
Apenas a afirmativa III é verdadeira.
	
	d. 
Nenhumas das afirmativas é verdadeira.
	Comentário da resposta:
	b) Apenas a afirmativa I é verdadeira.
As afirmativas II e III são falsas, a colaboração com o cliente é um princípio das metodologias ágeis e a programação em pares é uma prática que pode ser adotada ou não no contexto ágil.
	
	
	
· Pergunta 3
1 em 1 pontos
	
	
	
	Assinale a alternativa correta sobre a UML:
	
	
	
	
		Resposta Selecionada:
	b. 
UML é uma notação gráfica para expressar diagramas.
	Respostas:
	a. 
Conhecimento de UML é suficiente para obterum desenvolvimento de software bem-sucedido.
	
	b. 
UML é uma notação gráfica para expressar diagramas.
	
	c. 
UML tem base nos modelos da OMT que foram normatizados pelo IEEE.
	
	d. 
A UML tem diagramas dinâmicos para expressar estruturas de sistemas.
	Comentário da resposta:
	Alternativa correta: b) UML é uma notação gráfica para expressar diagramas.
Conhecer UML não é suficiente para desenvolver sistemas. É necessário ter outros conhecimentos, tais como programação, engenharia de requisitos etc. Embora a UML tenha base no OMT, ela foi normatizada pelo OMG e não pelo IEEE. Por fim, os diagramas dinâmicos expressam aspectos comportamentais, não estruturais.
	
	
	
· Pergunta 4
1 em 1 pontos
	
	
	
	Analise as afirmativas abaixo com relação à programação orientada a objeto:
I. O paradigma Orientado a Objetos se baseia em quatro conceitos básicos: abstração, encapsulamento, herança e polimorfismo.
II. O princípio do Encapsulamento estabelece que os detalhes internos do funcionamento dos métodos de uma classe permaneçam ocultos. Desta forma, o conhecimento a respeito da implementação interna da classe é desnecessário do ponto de vista do objeto, uma vez que isso passa a ser responsabilidade dos métodos internos da classe.
III. O conceito de herança está relacionado ao princípio que define que novas classes são derivadas a partir de uma já existente. Podemos dizer que essas novas classes herdam propriedades e métodos da classe-mãe ou superclasse.
IV. Basta aplicar o paradigma de programação da Orientada a Objetos que se garante a reutilização de código-fonte.
Assinale a alternativa que indica todas as afirmativas corretas.
	
	
	
	
		Resposta Selecionada:
	b. 
São corretas apenas as afirmativas I e III.
	Respostas:
	a. 
São corretas as afirmativas I, II, III e IV.
	
	b. 
São corretas apenas as afirmativas I e III.
	
	c. 
São corretas apenas as afirmativas II, III e IV.
	
	d. 
São corretas apenas as afirmativas I e IV.
	Comentário da resposta:
	Alternativa correta: b) São corretas apenas as afirmativas I e III.
A afirmativa II é falsa uma vez que o princípio do encapsulamento trata da separação dos aspectos externos de um objeto e que são acessíveis a outros objetos e dos detalhes internos da implementação; desta forma, é possível restringir o acesso ao comportamento interno de um objeto. A afirmação IV também não é verdadeira, pois não basta aplicar o paradigma de programação Orientada a Objetos para se garantir a reutilização de código-fonte. A reutilização de software tem todo um processo sistemático para garantir a produção de um código-fonte reutilizável.
	
	
	
· Pergunta 5
1 em 1 pontos
	
	
	
	Sobre diagramas de atividades, podemos afirmar que podem ser utilizados para:
I. Modelar de processos de negócios.
II. Descrever a lógica de um caso de uso.
III. Descrever os estados de um objeto.
Assinale a alternativa que indica as afirmativas corretas.
	
	
	
	
		Resposta Selecionada:
	b. 
Somente I e II.
	Respostas:
	a. 
Somente a III.
	
	b. 
Somente I e II.
	
	c. 
Somente II e III.
	
	d. 
Todas estão corretas.
	Comentário da resposta:
	Alternativa correta: b) Somente I e II.
A afirmativa III refere-se ao diagrama máquina de estados.
	
	
	
· Pergunta 6
0 em 1 pontos
	
	
	
	O paradigma da orientação a objetos prega alguns princípios de ouro para a modelagem de sistema orientado a objetos. Um dos componentes desses princípios está relacionado a um tipo de medida do grau de dependência que existe entre os objetos, que é:
	
	
	
	
		Resposta Selecionada:
	b. 
Polimorfismo.
	Respostas:
	a. 
Herança.
	
	b. 
Polimorfismo.
	
	c. 
Acoplamento.
	
	d. 
Abstração.
	Comentário da resposta:
	Alternativa correta: c) Acoplamento.
O acoplamento é o grau de dependência que existe entre os objetos.
	
	
	
· Pergunta 7
1 em 1 pontos
	
	
	
	A engenharia de requisitos é um processo que tem como um dos produtos gerados o documento de requisitos de sistema. Sobre a engenharia de requisitos, considere as afirmativas a seguir:
I. A engenharia de requisitos, como todas as outras atividades de engenharia de software, precisa ser adaptada às necessidades do processo, do projeto, do produto e do pessoal que está fazendo o trabalho.
II. No estágio de levantamento e análise dos requisitos, os membros da equipe técnica de desenvolvimento do software trabalham com o cliente e os usuários finais do sistema para descobrir mais informações sobre o domínio da aplicação, que serviços o sistema deve oferecer, o desempenho exigido do sistema, as restrições de hardware, entre outras informações.
III. Na medida em que a informação de vários pontos de vista é coletada, os requisitos emergentes são consistentes.
IV. A validação de requisitos se ocupa de mostrar que estes realmente definem o sistema que o cliente deseja. Essa etapa é importante porque a ocorrência de erros em um documento de requisitos pode levar a grandes custos relacionados ao retrabalho.
Assinale a alternativa correta.
	
	
	
	
		Resposta Selecionada:
	c. 
Somente as afirmativas I, II e IV são corretas.
	Respostas:
	a. 
Somente as afirmativas I e II são corretas.
	
	b. 
Somente as afirmativas III e IV são corretas.
	
	c. 
Somente as afirmativas I, II e IV são corretas.
	
	d. 
Somente as afirmativas II, III e IV são corretas.
	Comentário da resposta:
	c) Somente as afirmativas I, II e IV são corretas.
A afirmativa III é falsa, na atividade de levantamento de informações de vários pontos de vista existe muita inconsistência nos requisitos emergentes, que são consistentes devido às diferentes perspectivas de cada envolvido.
	
	
	
· Pergunta 8
1 em 1 pontos
	
	
	
	O modelo em cascata é caracterizado pela execução sequencial das fases, sendo que o resultado das fases é a aprovação de um ou mais documentos. Dessa forma, a fase seguinte não deve iniciar até que a fase anterior seja concluída.
No modelo em cascata, o custo de correção é menor na fase de:
	
	
	
	
		Resposta Selecionada:
	c. 
Requisitos.
	Respostas:
	a. 
Testes.
	
	b. 
Implementação.
	
	c. 
Requisitos.
	
	d. 
Manutenção.
	Comentário da resposta:
	c) Requisitos.
Os custos de correção são muito menores nas fases iniciais do processo.
	
	
	
· Pergunta 9
1 em 1 pontos
	
	
	
	A maioria dos modelos de ciclos de vida de projeto de software compartilham diversas características em comum. Sendo assim, analise as afirmativas a seguir e assinale a alternativa correta:
I. Os níveis de custo e de pessoal são constantes do início ao fim do projeto, sendo que atingem um breve pico durante as fases intermediárias do ciclo de vida do projeto.
II. O nível de incertezas é o mais baixo e, portanto, o risco de não atingir os objetivos é menor no início do projeto. A certeza de término geralmente se torna cada vez maior conforme o projeto continua.
III. A capacidade das partes interessadas de influenciarem as características finais do produto do projeto e o custo final do projeto é mais baixa no início e torna-se cada vez maior conforme o projeto continua.
	
	
	
	
		Resposta Selecionada:
	a. 
Todas as afirmativas são falsas.
	Respostas:
	a. 
Todas as afirmativas são falsas.
	
	b. 
Apenas as afirmativas I e II são verdadeiras.
	
	c. 
Apenas as afirmativas I e III são verdadeiras.
	
	d. 
Todas as afirmativas são verdadeiras.
	Comentário da resposta:
	a) Todas as afirmativas são falsas.
Nas fases inicias do projeto as partes interessadas têm maior influência sobre as características do projeto e, também, o nível de incertezas é maior e os custos e uso de recursos não são constantes no ciclo de vida de projetos.
	
	
	
· Pergunta 10
0 em 1 pontos
	
	
	
	Os sistemas classificados como sociotécnicos incluem pessoas, hardware e software. Embora cada um destes itens sejam sistemas independentes, eles precisam interagir para garantir o sucesso do sistema. Neste sentido, podemos afirmar que:
	
	
	
	
		Resposta Selecionada:
	c. 
O sucesso do sistema está na interligação dos seus subsistemas.
	Respostas:
	a. 
Um sistema é caracterizado pela soma de suas partes, masno caso dos sistemas sociotécnicos, esta soma permite ir além desta simples soma.
	
	b. 
Cada parte do sistema é um subsistema isolado que funciona de forma independente.
	
	c. 
O sucesso do sistema está na interligação dos seus subsistemas.
	
	d. 
Os sistemas são complexos e hierárquicos. A hierarquia é definida pelos usuários deste sistema.
	Comentário da resposta:
	a) Um sistema é caracterizado pela soma de suas partes, mas, no caso dos sistemas sociotécnicos, esta soma permite ir além desta simples soma.
Os sistemas possuem propriedades que se tornam aparentes quando seus componentes são integrados.
	
	
	
· Pergunta 1
1 em 1 pontos
	
	
	
	O controle de qualidade pode ser aplicado aos artefatos de software de qual(is) fase(s) do processo de desenvolvimento?
I. Requisitos
II. Projeto
III. Implementação
IV. Teste
	
	
	
	
		Resposta Selecionada:
	d. 
Das fases I, II, III e IV.
	Respostas:
	a. 
Somente da fase I.
	
	b. 
Somente das fases II e III.
	
	c. 
Somente da fase III.
	
	d. 
Das fases I, II, III e IV.
	Comentário da resposta:
	Alternativa correta: d) Das fases I, II, III e IV.
O controle de qualidade é definido como um conjunto de atividades projetado para avaliar a qualidade de um produto desenvolvido, ou seja, pode ser aplicado para avaliar a qualidade de qualquer artefato produzido em qualquer fase do processo de desenvolvimento.
	
	
	
· Pergunta 2
0 em 1 pontos
	
	
	
	Os membros de um grupo de desenvolvimento de software estão realizando testes em um software baseando-se nos códigos-fonte. Isso envolve a realização de testes em todos os componentes de forma individual, bem como testes das interfaces entre esses componentes quando passam a ser integrados para formar o software.
Quais são os tipos de testes que estão sendo aplicados nesse contexto?
	
	
	
	
		Resposta Selecionada:
	a. 
Integração e estresse.
	Respostas:
	a. 
Integração e estresse.
	
	b. 
Integração e aceitação.
	
	c. 
Sistema e aceitação.
	
	d. 
Unidade e integração.
	Comentário da resposta:
	Alternativa correta: d) Unidade e integração.
Nesse caso, os tipos de teste são teste de unidade (testes que envolvem a realização de testes em todos os componentes de forma individual) e teste de integração (testes das interfaces entre esses componentes quando passam a ser integrados para formar o software).
	
	
	
· Pergunta 3
0 em 1 pontos
	
	
	
	Assinale a alternativa correta a que se refere à seguinte descrição:
“Adequada quando não há um conhecimento da totalidade da solução. Esta estratégia requer uma solução que de maneira geral cubra os requisitos, mas pode perder alguns detalhes. Em outras palavras, as funções são conhecidas e construídas na solução, mas os detalhes (as características) não são completamente conhecidas e implementadas”.
	
	
	
	
		Resposta Selecionada:
	a. 
Estratégia linear.
	Respostas:
	a. 
Estratégia linear.
	
	b. 
Estratégia incremental.
	
	c. 
Estratégia iterativa.
	
	d. 
Estratégia ágil.
	Comentário da resposta:
	c) Estratégia iterativa. É a estratégia iterativa, que é adequada quando temos apenas uma ideia vaga do que queremos e iremos refinar os detalhes ao longo do desenvolvimento do software.
	
	
	
· Pergunta 4
1 em 1 pontos
	
	
	
	Qual é o subproduto da gerência de projeto que é necessário para estabelecer a orientação e gerenciamento da execução de um projeto:
	
	
	
	
		Resposta Selecionada:
	d. 
Plano de Projeto.
	Respostas:
	a. 
Plano de riscos.
	
	b. 
Especificação de requisitos de software.
	
	c. 
Proposta de Projeto.
	
	d. 
Plano de Projeto.
	Comentário da resposta:
	d) Plano de Projeto.
O plano de projeto é um documento que descreve objetivo, escopo, restrições, recursos, cronograma e custo, para isso estabelece um conjunto de métodos e estratégias adotadas para definir: o quê? Como? Quando? De onde?
	
	
	
· Pergunta 5
1 em 1 pontos
	
	
	
	Assinale a opção correta acerca de modelos de processo de software.
I. Segundo o Manifesto Ágil os processos de desenvolvimento ágil de software valorizam mais: indivíduos e interações do que processos e ferramentas; software funcionando do que documentação extensa; colaboração do cliente do que negociação contratual; e respostas a mudanças do que planejamento seguido.
II. A programação extrema, também conhecida como Extreme Programming, ou simplesmente XP, é um processo de desenvolvimento ágil que permite a ausência do cliente em fases iniciais, como nas reuniões de planejamento de versão e planejamento de iteração.
III. A programação em pares é uma prática que está presente sempre em todos os processos de desenvolvimento ágil, como XP e Scrum.
	
	
	
	
		Resposta Selecionada:
	b. 
Apenas a afirmativa I é verdadeira.
	Respostas:
	a. 
Apenas a afirmativa II é verdadeira.
	
	b. 
Apenas a afirmativa I é verdadeira.
	
	c. 
Apenas a afirmativa III é verdadeira.
	
	d. 
Nenhumas das afirmativas é verdadeira.
	Comentário da resposta:
	b) Apenas a afirmativa I é verdadeira.
As afirmativas II e III são falsas, a colaboração com o cliente é um princípio das metodologias ágeis e a programação em pares é uma prática que pode ser adotada ou não no contexto ágil.
	
	
	
· Pergunta 6
1 em 1 pontos
	
	
	
	O paradigma da orientação a objetos prega alguns princípios de ouro para a modelagem de sistema orientado a objetos. Um dos componentes desses princípios está relacionado a um tipo de medida do grau de dependência que existe entre os objetos, que é:
	
	
	
	
		Resposta Selecionada:
	c. 
Acoplamento.
	Respostas:
	a. 
Herança.
	
	b. 
Polimorfismo.
	
	c. 
Acoplamento.
	
	d. 
Abstração.
	Comentário da resposta:
	Alternativa correta: c) Acoplamento.
O acoplamento é o grau de dependência que existe entre os objetos.
	
	
	
· Pergunta 7
0 em 1 pontos
	
	
	
	Uma organização de desenvolvimento de software encomenda o desenvolvimento um sistema de software para uma frente de loja de um hipermercado. O sistema será utilizado por “caixas” do hipermercado para realizarem as vendas para os clientes. A eficiência das funções do “caixa” utilizando o produto de software é crítica para o sucesso desse projeto. O hipermercado tem uma alta taxa de rotatividade de funcionários para a função de “caixa” e, por esse motivo, foi solicitado que a interface gráfica fosse intuitiva. Além disso, a direção do hipermercado, com base na prática padrão da indústria, deseja que os seus “caixas” sejam capazes de introduzir 40 itens por minuto de uma compra de um cliente para o sistema.
Qual é a melhor classificação para esses tipos de requisitos?
	
	
	
	
		Resposta Selecionada:
	a. 
Requisito de desempenho do sistema.
	Respostas:
	a. 
Requisito de desempenho do sistema.
	
	b. 
Requisito funcional do sistema.
	
	c. 
Requisito de usabilidade.
	
	d. 
Requisito de projeto.
	Comentário da resposta:
	Alternativa correta: c) Requisito de usabilidade.
A usabilidade é definida como a facilidade com que as pessoas podem usar uma ferramenta ou objeto para a realização de uma tarefa.
	
	
	
· Pergunta 8
0 em 1 pontos
	
	
	
	Considere as seguintes assertivas sobre modelos de processos de software:
I. No modelo em cascata, a fase seguinte não deve iniciar antes que a fase precedente tenha sido concluída.
II. No modelo incremental, a mudança constante tende a corromper a estrutura do software.
III. A explícita consideração dos riscos no modelo em espiral distingue este dos modelos em cascata e evolucionário.
As assertivas corretas são:
	
	
	
	
		Resposta Selecionada:
	c. 
Somente as assertivas II e III.
	Respostas:
	a. 
Somente a assertiva I.
	
	b. 
Somente as assertivas I e II.
	
	c. 
Somente as assertivas II e III.
	
	d. 
Todas as assertivas: I, II e III.
	Comentário da resposta:
	d) Todas as assertivas: I, II e III.
As três afirmações estão corretas e descrevem adequadamente as características desses modelos de processo.
	
	
	
· Pergunta 9
0 em 1 pontos
	
	
	
	O modelo de processo de software SCRUM é da metodologia ágil. É característica desse processo que na fase de construção do Scrum, o softwareé desenvolvido em uma série de ciclos iterativos denominados:
	
	
	
	
		Resposta Selecionada:
	a. 
Product Backlog.
	Respostas:
	a. 
Product Backlog.
	
	b. 
Refatoração.
	
	c. 
Sprint.
	
	d. 
Product Backlog Cycle.
	Comentário da resposta:
	c) Sprint.
Na fase de construção do Scrum, o software é desenvolvido em uma série de ciclos iterativos denominados Sprint, ou seja, a cada final de Sprint é entregue uma versão parcial do sistema que agrega valor ao negócio do cliente.
	
	
	
· Pergunta 10
1 em 1 pontos
	
	
	
	Podemos afirmar que a WBS (Work Breakdown Structure), também conhecida como EAP (Estrutura Analítica do Projeto), inclui:
	
	
	
	
		Resposta Selecionada:
	a. 
as entregas tanto internas como externas.
	Respostas:
	a. 
as entregas tanto internas como externas.
	
	b. 
a alocação dos recursos às tarefas do projeto.
	
	c. 
o plano de atenuação de riscos.
	
	d. 
somente as estimativas de custos.
	Comentário da resposta:
	a) as entregas tanto internas como externas.
A WBS ou EAP tem o intuito de possibilitar a subdivisão das entregas e do trabalho de um projeto em componentes menores e, assim, mais facilmente gerenciáveis. Ou seja, é uma ferramenta para desmembrar um projeto em seus componentes e partes.

Continue navegando