-
Eu não tenho certeza absoluta da minha explicação mas vou tentar ajudar.
A letra A e letra C, você pode matar imaginando que essas chaves primárias já estão cadastradas previamente no banco de dados.
A letra B e D, caso apaguem uma linha da tabela deixarão a base inconsistente porque a FK ficará com a referência perdida.
Por exemplo, caso eu delete a placa do veículo na tabela VEÍCULO, a tabela ALUGUEL que possui uma FK referenciando a tabela VEÍCULO será perdida.
-
Comentado em : http://www.itnerante.com.br/group/bancodedados/forum/topics/bndes-2013-sql?xg_source=activity
-
O item não é tão fácil quanto parece. Veja que o examinador pede para identificarmos o comando que será executado com sucesso, de forma independente do estado das tabelas - ou seja, o comando que nunca produzirá erro, seja qual for o dado que esteja armazenado nas tabelas.
Nesse caso, podemos eliminar os itens A e C, pois embora sintaticamente corretos, fazem inserções que teoricamente podem produzir erro, se o valor da chave primária inserido por eles já estiver presente nas tabelas.
A letra B está errada porque o comando EXISTS só confere se não existe algum veículo atualmente alugado (A.data_dev IS NOT NULL) que pertence à categoria. No entanto, o comando abre margem para que se remova uma categoria que é referenciada por algum veículo existente na frota da locadora (tabela Veículo, chave estrangeira COD_CAT). Nesse caso, se eliminarmos a categoria antes de eliminarmos os veículos associados a essa categoria, teremos um erro de integridade referencial.
A letra D está incorreta por um motivo parecido. Nesse caso, o EXISTS confere se existe um veículo atualmente alugado (A.data_dev IS NOT NULL). Se existe, a remoção do veículo não poderia acontecer, pois o registro de aluguel faz referência ao veículo.
Por fim, a letra E é a nossa resposta, pois simplesmente altera o valor do campo COD_CAT, e o comando só é executado caso exista algum veículo pertencente à categoria xs atualmente alugado. Nenhuma restrição de integridade relativa aos valores armazenados na tabela irá impedir esse comando de rodar!
-
O item não é tão fácil quanto parece. Veja que o examinador pede para identificarmos o comando que será executado com sucesso, de forma independente do estado das tabelas - ou seja, o comando que nunca produzirá erro, seja qual for o dado que esteja armazenado nas tabelas.
Nesse caso, podemos eliminar os itens A e C, pois embora sintaticamente corretos, fazem inserções que teoricamente podem produzir erro, se o valor da chave primária inserido por eles já estiver presente nas tabelas.
A letra B está errada porque o comando EXISTS só confere se não existe algum veículo atualmente alugado (A.data_dev IS NOT NULL) que pertence à categoria. No entanto, o comando abre margem para que se remova uma categoria que é referenciada por algum veículo existente na frota da locadora (tabela Veículo, chave estrangeira COD_CAT). Nesse caso, se eliminarmos a categoria antes de eliminarmos os veículos associados a essa categoria, teremos um erro de integridade referencial.
A letra D está incorreta por um motivo parecido. Nesse caso, o EXISTS confere se existe um veículo atualmente alugado (A.data_dev IS NOT NULL). Se existe, a remoção do veículo não poderia acontecer, pois o registro de aluguel faz referência ao veículo.
Por fim, a letra E é a nossa resposta, pois simplesmente altera o valor do campo COD_CAT, e o comando só é executado caso exista algum veículo pertencente à categoria xs atualmente alugado. Nenhuma restrição de integridade relativa aos valores armazenados na tabela irá impedir esse comando de rodar!
Gabarito: E
Professor Arthur Mendonça