SóProvas


ID
1740694
Banca
CESPE / CEBRASPE
Órgão
MEC
Ano
2015
Provas
Disciplina
Banco de Dados
Assuntos

Julgue o item que se segue, com relação às definições e aos problemas de execução de comandos nas linguagens SQL.

Uma operação DELETE do SQL não é realizada se sua chave primária for referida por chaves estrangeiras em registros de outras tabelas no banco de dados. Assim, a fim de garantir a existência de chaves primárias para cada chave estrangeira nos bancos de dados relacionais, o SQL não apresenta nenhuma cláusula ou opção adicional que permita tal operação ocorrer nessa situação.

Alternativas
Comentários
  • Uma possibilidade seria a utilização da cláusula ON DELETE CASCADE. Mais detalhes em: https://technet.microsoft.com/pt-br/library/ms186973(v=sql.105).aspx


  • Para isso servem as "REFERENTIAL TRIGGERED ACTIONS" ou Ações Referenciais em gatilho. No caso, poderia-se usar o CASCADE, SET NULL, ou SET DEFAULT para conseguir apagar.

    O CASCADE iria apagar também as tuplas de outras tabelas  que possuem atributo que referenciam a chave primária.

    O SET NULL setaria como null nessas tuplas (o que não fere o Princípio de Integridade Referencial, pois uma chave estrangeira deve ser uma chave primária em outra Relação OU conter valores nulos).

    O SET DEFAUT setaria um valor padrão previamente estabelecido na criação do esquema relacional.

  • cascata seu banco e deus te proteja dos bugs

  • Para fazer tal procedimento, (dropa e cria) sua chave estrangeira com o parâmetro ON DELETE CASCADE. O que ocasionaria a exclusão dos registros em ambas as tabelas.

  • Tomem muito cuidado com esse DELETE CASCADE...já vi bons DBAs perderem seus empregos(e quase a vida!) por usa-lo de forma irresponsavel.