Banco de Dados Exercícios
a) Descreva sucintamente a função dos comandos GRANT e REVOKE. Dê, pelo menos, um exemplo de uso de cada
comando, com sua sintaxe.
R:
GRANT - Conceder permissões em uma determinada tabela a um ou mais usuários.
GRANT SELECT, INSERT, UPDATE, DELETE ON EMPRESA TO USER01;
REVOKE - Revogar permissões de uma determinada tabela de um ou mais usuários.
GRANT UPDATE, DELETE ON EMPRESA FROM USER01;
b) Quantas conexões um mesmo usuário pode ter ao mesmo tempo com o mesmo SGBD?
R:
Quantas o SGBD permitir. Por default nada, o SQL Server não limita o usuário de possuir mais de uma conexão ativa
ao mesmo tempo.
c) Quantas operações podem ser executadas numa mesma transação? Existe uma ordem ou elas ocorrem em paralelo?
R:
Não existe um limite de número de operações. Elas ocorrem sequencialmente.
d) Em um ambiente de trabalho, o usuário A preparou uma query de inserção em uma tabela e o usuário B preparou
uma query de atualização que utiliza três tabelas. Os dois usuário executam sua transação exatamente no mesmo
instante. Ambos os usuários conseguirão executar sua transação com sucesso? Nenhum? Se os dois, qual primeiro?
Responda explicando como se comporta o SGBD em relação ao controle de transações e o lock de tabelas.
R:
1a situação: a tabela utilizada pelo usuário A não é nenhuma das utilizadas pelo usuário B.
Nesse caso ambos conseguirão executar sua transação, sem que haja nenhum tipo de interferência entre as transações
2a situação: a tabela utilizada pelo usuário A é uma das tabelas utilizadas pelo usuário B.
Nesse caso conseguirá executar primeiro a transação que chegar primeiro no SGBD, podendo ser A ou B. A transação
que chegar primeiro terá o lock da tabela e a outra ficará aguardando a liberação do lock da tabela. Assim que o lock
estiver disponível a segunda transação, que estava aguardando numa fila, consegue o lock e é