SóProvas


ID
1112932
Banca
FCC
Órgão
AL-PE
Ano
2014
Provas
Disciplina
Banco de Dados
Assuntos

Em um banco de dados há duas tabelas, departamento e funcionario, cujos campos são:

Departamento:

DepNo - int - primary key - not null

DNome - varchar(50) - not null

DLocal - varchar(40)

Funcionario:

FunNo - int - primary key - not null

DepNo - int - foreign key - not null

FNome - varchar(50) - not null

FCargo - varchar(40)

FSal - double

Ambas as tabelas possuem muitos registros cadastrados, que não incluem valores nulos. Considere as instruções SQL a seguir:

I. select funcionario.FunNo, funcionario.FNome, departamento.DNome from funcionario INNER JOIN departamento ON funcionario.DepNo = departamento.DepNo;

II. select funcionario.FunNo, funcionario.FNome, departamento.DNome from funcionario, departamento where funcionario.DepNo = departamento.DepNo;

III. select f.FunNo, f.FNome, d.DNome from (select departamento.DepNo, departamento.DNome from departamento) as d, funcionario as f where d.DepNo = f.DepNo;

IV. select DISTINCT f.FunNo, f.FNome, d.DNome from funcionario f, departamento d;

Ao se criar uma estrutura de banco de dados complexa, envolvendo muitas tabelas com restrições de chave estrangeira, visões, gatilhos, funções, etc., cria-se, implicitamente, uma rede de dependências entre os objetos. Para garantir a integridade de toda a estrutura do banco de dados, muitos SGBDs não permitem remover um objeto quando há objetos que dependem do mesmo. Por exemplo, tentar remover a tabela departamento, onde a tabela funcionario depende dela, produz uma mensagem de erro semelhante a esta:

DROP TABLE departamento;

ERRO: não foi possível remover a tabela departamento porque outros objetos dependem dela.

Se não tiver importância remover todos os objetos dependentes, então poderá ser executado o comando DROP TABLE com uma cláusula que faz com que todos os objetos dependentes sejam removidos. A cláusula citada é a

Alternativas
Comentários
  • DROP TABLE nome_tabela {RESTRINCT/CASCADE} - O comando drop apaga uma tabela do banco de dados, se a opção RESTRINCT estiver no comando e se a tabela estiver referenciada em views ou em regras de integridade (constraints), se houver dependências, o comando drop table falhará.
     Se a cláusula CASCADE estiver especificada, então o drop funcionará e TODAS as views, gatilhos, funções e constraints associadas à tabela também serão apagadas.

  • Enunciado que enrola... tudo aquilo pra perguntar sobre a forma correta do uso de CASCADE.

  • Jurava que era o ON CASCADE