Você está na página 1de 12

Avaliação

1) Em um banco de dados de uma loja virtual os usuários serão gerenciados pela


tabela USUARIOS, e terão o seu e-mail utilizado como chave primária desta tabela.
Se fosse para validar via trigger os dados enviados ao banco para evitar usuários
com e-mails duplicados, em qual momento esta validação deveria ser realizada,
levando em conta a escolha de somente um tipo de trigger?
BEFORE DELETE (alternativa incorreta)
AFTER INSERT (alternativa incorreta)
BEFORE INSERT (alternativa correta)
AFTER DELETE (alternativa incorreta)
AFTER UPDATE (alternativa incorreta)
BEFORE UPDATE (alternativa incorreta)

Resposta incorreta!
Para evitar que dois registros possuam o mesmo e-mail, é importante saber que o
próprio banco de dados impedeeste tipo de situação se a coluna em questão for chave
primária, gerando um erro neste caso. Mas se for necessárioimplementar esse tipo de
validação utilizando triggers, é antes do registro ser inserido que a validação
deveocorrer (BEFORE INSERT).

2) Sobre triggers é correto afirmar:


* Marque todas as alternativas que respondem o enunciado da questão
É um mecanismo de disparo de códigos SQL baseado em invocações direta do
usuário. (alternativa incorreta)
Triggers devem ser utilizados apenas em bancos de dados de grande
porte. (alternativa incorreta)
É um recurso que permite executar códigos SQL a partir de determinadas situações
ou eventos. (alternativa correta)
Um trigger pode executar um código SQL a partir de um registro que foi incluído
em determinada tabela. (alternativa correta)

Resposta correta!
Triggers devem ser utilizados em bancos de dados de qualquer tamanho que
demandem suas funcionalidades. Seus benefícios não estão ligados ao tamanho do
banco. Triggers são iniciadas a partir de eventos ocorridos no banco de dados, e não
a partir de invocações de usuários.

3) Em um banco de dados de uma loja virtual existe uma tabela PRODUTOS. Toda
vez que um determinado produto estiver com menos de 5 unidades em estoque, é
desejado que seja inserido na tabela COMPRAS_REPOSICAO um registro com a
descrição do produto para que o dono da loja possa providenciar o aumento do
estoque. Qual o melhor tipo de trigger para criar na tabela PRODUTOS para atender
esta situação, levando em conta a escolha de somente um tipo de trigger?
AFTER DELETE (alternativa incorreta)
AFTER INSERT (alternativa incorreta)
BEFORE INSERT (alternativa incorreta)
AFTER UPDATE (alternativa correta)
BEFORE DELETE (alternativa incorreta)
BEFORE UPDATE (alternativa incorreta)

Resposta correta!
Para que um aviso de produto no final de estoque seja implementado corretamente, é
necessário realizar a rotina SQL que faça essa validação execute sempre que a
tabela PRODUTOS seja alterada. Assim, sempre que um item sair do estoque, a rotina
em questão irá procurar por produtos com menos de 5 itens no estoque, por exemplo.

4) Sobre stored procedures é correto afirmar:


* Marque todas as alternativas que respondem o enunciado da questão
Uma de suas desvantagens é que a manutenção do código fica
descentralizada. (alternativa incorreta)
São blocos de código SQL armazenados no banco de dados. (alternativa correta)
Aumentam o tráfego de dados e o número de conexões com o banco se comparado
com o mesmo código sendo invocado a partir de uma linguagem de
programação. (alternativa incorreta)
Facilita o compartilhamento de rotinas do banco de dados entre diferentes
aplicações. (alternativa correta)
Resposta incorreta!
A manutenção de código é centralizada no caso das Stored Procedures, e não
descentralizada. Isso facilita a manutenção e também o compartilhamento destes
recursos.O uso de Stored Procedures reduz o tráfego de rede e as conexões com o
banco de dados, pois ao invés de diversas conexões e comandos serem enviados ao
banco para serem realizados por uma linguagem de programação, apenas a instrução
de invocação da Stored Procedure é enviada.
Avaliação
1) Sobre transações ACID, é correto afirmar:
* Marque todas as alternativas que respondem o enunciado da questão
Garantem que o banco de dados permaneça íntegro. (alternativa correta)
São conjuntos de operações SQL. (alternativa correta)
Devem ser utilizadas somente em tabelas com muitas colunas. (alternativa
incorreta)
Devem ser utilizadas somente em bancos de dados de grande porte. (alternativa
incorreta)
Não devem ser utilizadas em bancos de dados multi-usuários por tornar lento o
processamento. (alternativa incorreta)

Resposta correta!
Transações ACID garantem que o banco permaneça íntegro se utilizadas
corretamente. São conjuntos de operações SQL, e devem ser utilizadas sempre em
bancos de dados multi-usuários, de qualquer porte, independente do número de
colunas, mas sim, dependendo da complexidade dos processos envolvidos na
aplicação que utiliza as tabelas em questão.

2) A propriedade que especifica que o resultado das operações de uma transação


será definitivo se completado com sucesso é:
Durabilidade. (alternativa correta)
Isolamento. (alternativa incorreta)
Atomicidade. (alternativa incorreta)
Todas as alternativas. (alternativa incorreta)
Consistência. (alternativa incorreta)

Resposta correta!
É a propriedade de durabilidade que torna permanente as alterações realizadas pelas
transações finalizadas com sucesso.

3) A propriedade que especifica que as regras de dados do banco serão respeitadas


é:
Durabilidade. (alternativa incorreta)
Todas as alternativas. (alternativa incorreta)
Isolamento. (alternativa incorreta)
Atomicidade. (alternativa incorreta)
Consistência. (alternativa correta)

Resposta correta!
É a propriedade de consistência que especifica que as regras das tabelas dos bancos
de dados não serão corrompidas.

4) A propriedade que especifica que toda uma transação será executada ou por
completo ou abortada completamente é:
Durabilidade. (alternativa incorreta)
Consistência. (alternativa incorreta)
Todas as alternativas. (alternativa incorreta)
Isolamento. (alternativa incorreta)
Atomicidade. (alternativa correta)

Resposta correta!
É a propriedade de atomicidade que especifica que uma transação deverá ter todas as
suas instruções executadas, ou abortadas, tornando o conjunto de operações
indivisível.

5) A propriedade que especifica que as operações de uma transação serão


executadas sem a interferência de outras transações é:
Consistência. (alternativa incorreta)
Todas as alternativas. (alternativa incorreta)
Durabilidade. (alternativa incorreta)
Atomicidade. (alternativa incorreta)
Isolamento. (alternativa correta)
Resposta correta!
É a propriedade de isolamento que especifica que enquanto uma transação opera com
determinadas estruturas, outras transações não poderão ter acesso as informações
destas estruturas.
Avaliação
1) Baseado no código a seguir, e considerando existirem no banco a tabela e o
usuário em questão, é correto afirmar que:
1 GRANT ALL ON VEICULOS TO 'André';
Nenhuma das alternativas. (alternativa incorreta)
O usuário André está recebendo acesso para ler dados na
tabela VEICULOS. (alternativa incorreta)
O usuário André está recebendo acesso para excluir dados na
tabela VEICULOS. (alternativa incorreta)
O usuário André está recebendo acesso total para manipular os
dados da tabela VEICULOS. (alternativa correta)
O usuário André está recebendo acesso para alterar dados na
tabela VEICULOS. (alternativa incorreta)

Resposta incorreta!
A expressão GRANT em questão está atribuindo acesso total para manipulação de
dados (ALL) para o usuário André na tabela VEICULOS.

2) Baseado no código a seguir, e considerando existirem no banco a tabela e o


usuário em questão, é correto afirmar que:
1 GRANT * TO VEICULOS ON 'André';
O usuário André está recebendo acesso para ler dados na
tabela VEICULOS. (alternativa incorreta)
O usuário André está recebendo acesso total para manipular os
dados da tabela VEICULOS. (alternativa incorreta)
O usuário André está recebendo acesso para excluir dados na
tabela VEICULOS. (alternativa incorreta)
Nenhuma das alternativas. (alternativa correta)
O usuário André está recebendo acesso para alterar dados na
tabela VEICULOS. (alternativa incorreta)

Resposta correta!
A expressão GRANT em questão está escrita de forma incorreta. Para liberar acesso
total na tabela VEICULOS para o usuário André a sintaxe correta seria: GRANT ALL ON
VEICULOS TO 'André';.
3) Baseado no código a seguir, e considerando existirem no banco a tabela e o
usuário em questão, é correto afirmar que:
1 GRANT SELECT ON VEICULOS TO 'André';
O usuário André está recebendo acesso para excluir dados na
tabela VEICULOS. (alternativa incorreta)
O usuário André está recebendo acesso total para manipular os
dados da tabela VEICULOS. (alternativa incorreta)
O usuário André está recebendo acesso para alterar dados na
tabela VEICULOS. (alternativa incorreta)
Nenhuma das alternativas. (alternativa incorreta)
O usuário André está recebendo acesso para ler dados na
tabela VEICULOS. (alternativa correta)

Resposta correta!
A expressão GRANT em questão está atribuindo acesso de leitura (SELECT) para o
usuário André na tabela VEICULOS.

4) Baseado no código a seguir, e considerando existirem no banco a tabela e o


usuário em questão, é correto afirmar que:
1 REVOKE ALL ON VEICULOS TO 'André';
Nenhuma das alternativas. (alternativa correta)
O usuário André perderá acesso de excluir dados na
tabela VEICULOS. (alternativa incorreta)
O usuário André perderá acesso total de manipular os dados da
tabela VEICULOS. (alternativa incorreta)
O usuário André perderá acesso de alterar dados na
tabela VEICULOS. (alternativa incorreta)
O usuário André perderá acesso de ler dados na
tabela VEICULOS. (alternativa incorreta)

Resposta incorreta!
A expressão REVOKE em questão só executará com sucesso se o atributo TO for
alterado pelo atributo FROM.
5) Baseado no código a seguir, e considerando existirem no banco a tabela e o
usuário em questão, é correto afirmar que:
1 REVOKE UPDATE ON VEICULOS FROM 'André';
O usuário André perderá acesso total de manipular os dados da
tabela VEICULOS. (alternativa incorreta)
O usuário André perderá acesso de ler dados na
tabela VEICULOS. (alternativa incorreta)
Nenhuma das alternativas. (alternativa incorreta)
O usuário André perderá acesso de alterar dados na
tabela VEICULOS. (alternativa correta)
O usuário André perderá acesso de excluir dados na
tabela VEICULOS. (alternativa incorreta)

Resposta correta!
A expressão REVOKE em questão removerá o acesso de atualização de dados do
usuário André na tabela VEICULOS.
Avaliação
1) Supondo existir a tabela VEICULOS, e supondo o campo ID ser chave primária,
marque a alternativa verdadeira com relação ao código abaixo:
1 UPDATE VEICULOS SET ID = 3 WHERE ID = 1;
Nenhuma das alternativas. (alternativa incorreta)
O código não executa pois está faltando o parâmetro FROM na
cláusula UPDATE. (alternativa incorreta)
O código executa com sucesso alterando o campo ID do registro,
mesmo que haja outro registro com o ID igual a 3. (alternativa
incorreta)
O código executa com sucesso alterando o campo ID do registro, se
não houver outro registro com o ID igual a 3. (alternativa correta)
O código não executa pois não é possível alterar o valor de um
campo chave primária. (alternativa incorreta)

Resposta correta!
O código executa com sucesso alterando o campo ID do registro, se somente não
houver outro registro com o ID igual a 3. É possível alterar o campo chave primária
dos registros, desde que não gere um registro com valor duplicado para o campo em
questão no banco de dados.

2) Supondo existir a tabela VEICULOS, marque a alternativa verdadeira com


relação ao código abaixo:
1 DELETE FROM VEICULOS;
Nenhuma das alternativas. (alternativa incorreta)
O código executa se somente o atributo FROM for removido e se o
atributo WHERE for adicionado. (alternativa incorreta)
O código executa se somente o atributo FROM for removido. (alternativa
incorreta)
O código não executa pois não há o atributo WHERE informando os
critérios de exclusão. (alternativa incorreta)
O código executa com sucesso. (alternativa correta)

Resposta incorreta!
O código executa com sucesso e remove todos os registros da tabela VEICULOS.
3) Supondo existir a tabela VEICULOS, marque a alternativa verdadeira com
relação ao código abaixo:
1 DELETE FROM VEICULOS ID = 1;
O código executa se for inserido um atributo SET. (alternativa
incorreta)
O código executa com sucesso. (alternativa incorreta)
O código executa se for inserido um atributo INTO. (alternativa
incorreta)
Nenhuma das alternativas. (alternativa correta)
O código executa se for removido o atributo FROM. (alternativa
incorreta)

Resposta correta!
O comando em questão não executa pois deveria constar um atributo WHERE entre o
nome da tabela e o critério de exclusão.

4) Supondo existir a tabela VEICULOS, marque a alternativa verdadeira com


relação ao código abaixo:

1 INSERT INTO VEICULOS (ID, VEICULO) VALUES (1, 'Automóvel') WHERE ID


= 0;
O código insere um novo registro na tabela VEICULOS. (alternativa incorreta)
O código somente substituirá os valores informados se existir na tabela um registro
com ID igual a 0. (alternativa incorreta)
O código não executa. (alternativa correta)
Nenhuma das alternativas. (alternativa incorreta)
O código substitui o registro de ID = 0 para o ID = 1 e VEICULO =
'Automóvel'. (alternativa incorreta)

Resposta correta!
O código em questão não executa pois o parâmetro WHERE não pode ser utilizado
com o comando INSERT.
5) Supondo existir a tabela VEICULOS e seus campos, entre eles o campo ID, marque
a alternativa verdadeira com relação ao código abaixo:
1 SELECT *, ID FROM VEICULOS;
O código executa e retorna todos os campos da tabela, trazendo duas
vezes a coluna ID no resultado. (alternativa correta)
Nenhuma das alternativas. (alternativa incorreta)
O código executa e retorna todos os campos da tabela, sem repetir a
coluna ID. (alternativa incorreta)
O código não executa pois ao solicitar todos os campos por meio do
caracter asterisco (*) não podemos especificar outros
campos. (alternativa incorreta)
O código não executa pois não há o atributo WHERE no comando em
questão. (alternativa incorreta)

Resposta incorreta!
O código executa e retorna todos os campos da tabela, trazendo duas vezes a
coluna ID no resultado, pois o símbolo de asterisco (*) solicita todos os campos, mas
é possível fazer mais solicitações na expressão SQL.

Você também pode gostar