Considere o seguinte esquema de dados relacional que represe...

Próximas questões
Com base no mesmo assunto
Q252656 Banco de Dados
Considere o seguinte esquema de dados relacional que representa departamentos e seus empregados.

DEPARTAMENTO (CodDepto, NomeDepto)
EMPREGADO (CodEmp, NomeEmp, CodDepto)

Considere também a seguinte restrição de integridade referencial para esse esquema: EMPREGADO.CodDepto é chave estrangeira de DEPARTAMENTO.CodDepto com as opções ON DELETE SET NULL e ON UPDATE CASCADE

Todas as sentenças abaixo respeitam essa restrição de integridade, EXCETO:

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa Correta: D

Nesta questão, você precisa compreender a restrição de integridade referencial, que assegura que os relacionamentos entre tabelas em um banco de dados relacional sejam mantidos e consistentes. A restrição ON DELETE SET NULL e ON UPDATE CASCADE especificam o que acontece quando uma chave referenciada é deletada ou atualizada, respectivamente.

A alternativa D sugere que para remover um registro na tabela DEPARTAMENTO, é necessário primeiramente remover todas as linhas referenciadas na tabela EMPREGADO que possuam o mesmo CodDepto. Esse comportamento contraria a restrição de ON DELETE SET NULL, que estipula que quando um departamento é deletado, os empregados que pertenciam a esse departamento não são deletados, mas têm o seu campo CodDepto modificado para NULL, para refletir que o departamento ao qual pertenciam não existe mais. Portanto, não é necessária a remoção prévia dos empregados.

Entender essas relações é fundamental para garantir que o banco de dados funcione corretamente, mantendo a integridade dos dados mesmo diante de alterações na estrutura ou nos registros. As alternativas A, B e C estão alinhadas com as ações automáticas que essas restrições proporcionam, enquanto a alternativa D não respeita a ação automática definida pela restrição ON DELETE SET NULL.

Clique para visualizar este gabarito

Visualize o gabarito desta questão clicando no botão abaixo

Comentários

Veja os comentários dos nossos alunos

EM principio no departamento existem empregos, é claro que para remover departamento deve-se remover os empregos...
A condição ON DELETE SET NULL permite que se remova uma linha de DEPARTAMENTO sem ter que remover os Empregados associados, colocando no NULL no campo correspondente para esses Empregados que ficaram SEM DEPARTAMENTO, somente nesse caso como a regra especificou.
A letra D realmente está "menos errada". Entretanto, a letra C poderia ser falsa, pois, é possível que uma chave estrangeira tenha valores NULOS indo contra o "deve ser garantido que esse valor ocorra em DEPARTAMENTO.CodDepto". Inclusive, na questão ele utiliza essa regra para garantir que caso seja deletado um departamento, todos os empregados da tabela empregado onde o mesmo fazia referencia tenham seus códigos de departamento alterados para NULL.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo