A empresa RTL, no intuito de otimizar seu banco de dados, d...

Próximas questões
Com base no mesmo assunto
Q739347 Banco de Dados
A empresa RTL, no intuito de otimizar seu banco de dados, deseja eliminar apenas o SCHEMA de banco de dados PORTIFOLIO, excluindo também todas as suas tabelas, domínios e quaisquer outros elementos. Nesse caso, que comando seria o mais adequado?
Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a C - DROP SCHEMA "PORTIFOLIO" CASCADE;. Vamos entender o porquê disso e analisar as demais alternativas.

O tema central da questão é a administração de banco de dados, mais especificamente o uso do comando DROP SCHEMA. Esse comando é utilizado para remover um esquema de banco de dados. Quando falamos em remover um esquema, estamos nos referindo à exclusão de todos os objetos que pertencem a ele, como tabelas, domínios, funções, e outros elementos. Para isso, o uso da cláusula CASCADE é essencial, pois ela indica que todos os objetos dependentes do esquema também serão removidos.

Agora, vamos justificar a escolha da alternativa correta e explicar o porquê das demais alternativas estarem incorretas:

Alternativa C - DROP SCHEMA "PORTIFOLIO" CASCADE: Esta é a alternativa correta, pois o comando DROP SCHEMA remove o esquema "PORTIFOLIO" e a cláusula CASCADE garante que todos os objetos associados ao esquema sejam excluídos, o que corresponde exatamente ao desejado pela empresa RTL.

Alternativa A - DROP SCHEMA "PORTIFOLIO" DISTINCT: Esta alternativa está incorreta porque a cláusula DISTINCT não é utilizada no comando DROP SCHEMA. DISTINCT é uma cláusula que se aplica em comandos de seleção de dados, como SELECT, para eliminar duplicatas nos resultados.

Alternativa B - DELETE SCHEMA "PORTIFOLIO" RESTRICT: Esta alternativa está errada por dois motivos. Primeiro, o comando correto para remover um esquema é DROP, não DELETE. Segundo, a cláusula RESTRICT impede a exclusão do esquema se ele contiver objetos dependentes, o que é o oposto do que se deseja.

Alternativa D - DELETE SCHEMA "PORTIFOLIO" CASCADE: Similar à alternativa B, o uso do comando DELETE é incorreto para esquemas. DELETE é utilizado para excluir linhas de uma tabela, não para remover estruturas de banco de dados como esquemas.

Alternativa E - DROP ALL SCHEMA "PORTIFOLIO": Esta alternativa está errada porque a sintaxe DROP ALL SCHEMA não é válida. O comando correto é apenas DROP SCHEMA seguido do nome do esquema e, se necessário, a cláusula CASCADE.

Gostou do comentário? Deixe sua avaliação aqui embaixo!

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

DROP SCHEMA "PORTIFOLIO" CASCADE.

O cascade serve para informar ao BD que deve tentar propagar (efeito cascata) a exclusão, excluindo tuplas que referenciam aquela que está sendo excluída. Já a opção restrict, indica que deve rejeitar a exclusão caso haja referencia.

Sintaxe:

DROP SCHEMA [ IF EXISTS ] name [, ...] [ CASCADE | RESTRICT ]

Exemplos:

1- Exclusão simples de esquema.

DROP SCHEMA TSTSCHEMA1;

2 - Exclusão apenas se o esquema existir utilizando a cláusula IF EXISTS.

DROP SCHEMA IF EXISTS TSTSCHEMA2;

3 - Exclusão de mais de um esquema ao mesmo tempo.

DROP SCHEMA TSTSCHEMA3, TSTSCHEMA4;

4 - Exclusão de esquema com cláusula RESTRICT retorna erro caso existam tabelas e/ ou outros objetos dentro do esquema. Mesmo omitida, a cláusula RESTRICT é utilizada como padrão pelo banco.

DROP SCHEMA TSTSCHEMA5 RESTRICT;

5 - Exclusão de esquema com cláusula CASCADE elimina também qualquer tabelas ou outros objetos dentro do esquema automaticamente. Deve ser utilizada com parcimônia pois pode remove dados e objetos indiscriminadamente.

DROP SCHEMA TSTSCHEMA6 CASCADE;

C) DROP SCHEMA "PORTIFOLIO" CASCADE;

C) DROP SCHEMA "PORTIFOLIO" CASCADE;

DROP Destrói Tabelas. Não apenas exclui todos os registros nas tabelas, mas também remove a definição de tabela do catálogo.

Se desejar excluir apenas os registros, mas deixar a definição de tabela, então o comando deve ser DELETE

Clique para visualizar este comentário

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