Em geral, a definição de chaves estrangeiras em bancos de da...
Em geral, a definição de chaves estrangeiras em bancos de dados relacionais pode vir acompanhada da especificação de procedimentos adicionais a serem adotados quando da exclusão/alteração de valores nos registros da tabela estrangeira.
create table R2 (
a int not null primary key,
b int null,
x int not null,
constraint FK foreign key (x) references
R1(x)
)
Considerando o script acima, as opções complementares
compatíveis para a definição da chave estrangeira FK são:
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: B - on delete cascade on update cascade
Vamos abordar o conceito de chaves estrangeiras e ações de integridade referencial para entender por que a alternativa B é a correta.
Uma chave estrangeira é uma coluna ou conjunto de colunas em uma tabela que referencia a chave primária de outra tabela. A integridade referencial é um conceito chave em bancos de dados relacionais que garante a consistência entre as tabelas. Quando definimos uma chave estrangeira, pode-se especificar ações que indiquem o que deve acontecer se o valor referenciado for excluído ou alterado. Estas ações ajudam a manter a integridade dos dados.
- on delete cascade: Se um registro referenciado for excluído, todos os registros que o referenciam também serão excluídos.
- on update cascade: Se um registro referenciado for atualizado, todos os registros que o referenciam terão seus valores atualizados para corresponder à nova chave.
A alternativa B está correta porque a opção on delete cascade assegura que a exclusão de uma linha na tabela referenciada resultará na exclusão de todas as linhas na tabela que contém a chave estrangeira que correspondem ao registro excluído. Similarmente, a opção on update cascade garante que se a chave que está sendo referenciada for atualizada, a mudança será propagada para a tabela que contém a chave estrangeira, atualizando todos os registros correspondentes e mantendo a consistência dos dados.
Essas opções são compatíveis entre si e são uma escolha comum quando se deseja uma manutenção automática da integridade referencial, sem deixar dados órfãos na base de dados em caso de atualizações ou exclusões.
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
Utilizando o cascade eu asseguro que quando os valores forem alterados ou excluídos, se aplicará a todas as chaves relacionadas com a tabela.
A coluna x deve ser um inteiro não nulo. Logo, não faz sentido inserir a cláusula "on update set null", o que nos leva a eliminar todas as alternativas, exceto a B).
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo