Questão de Banco de Dados — Sublinguagens SQL (DDL, DML, DQL, DCL e DTL) — INSTITUTO AOCP 2024
Banco de Dados›Sublinguagens SQL (DDL, DML, DQL, DCL e DTL)
Código
qa630639
Banca
INSTITUTO AOCP
Órgão
MGI
Ano
2024
Cargo
Esp ( )
Você exerce o cargo de especialista em desenvolvimento de software pelo Ministério da Gestão e da Inovação e recebeu a tarefa de apoiar e monitorar o desenvolvimento de um sistema de banco de dados para gerenciar informações sobre projetos e recursos. Durante a fase de definição do banco de dados, é necessário criar as tabelas, definir suas relações e assegurar a integridade dos dados. A equipe está utilizando a Linguagem de Definição de Dados (DDL – Data Definition Language) do SQL para essa tarefa.
Com base nos conceitos de Linguagem de Definição de Dados (DDL) em SQL, qual das seguintes alternativas apresenta corretamente uma prática eficaz na criação e gerenciamento das tabelas do sistema de banco de dados?
ADefinir uma chave primária (PRIMARY KEY) em uma tabela para garantir que cada registro seja único e não nulo.
BUtilizar o comando ALTER TABLE para adicionar uma nova tabela ao banco de dados.
CUsar o comando DROP INDEX para excluir uma tabela do banco de dados.
DAplicar o comando CREATE INDEX para criar uma nova tabela no banco de dados.
EUtilizar o comando RENAME TABLE para modificar os dados em uma tabela existente.
Revelar gabarito e comentário▾
GabaritoA — Definir uma chave primária (PRIMARY KEY) em uma tabela para garantir que cada registro seja único e não nulo.
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Sublinguagens SQL: DDL e a criação de tabelas
Gabarito: letra A. A alternativa A está correta porque a definição de uma chave primária (PRIMARY KEY) é uma prática fundamental da DDL para garantir a unicidade e a não nulidade de cada registro em uma tabela. As demais alternativas apresentam erros conceituais sobre os comandos SQL, confundindo as funções de comandos como ALTER TABLE, DROP INDEX, CREATE INDEX e RENAME TABLE.
A Linguagem de Definição de Dados (DDL) é a sublinguagem do SQL responsável por definir e gerenciar a estrutura dos objetos do banco de dados, como tabelas, índices, visões e esquemas. Enquanto a DML (Data Manipulation Language) lida com os dados em si (inserir, consultar, atualizar, excluir), a DDL trabalha com a estrutura que armazena esses dados. Os comandos básicos da DDL são CREATE, ALTER e DROP, que permitem, respectivamente, criar, modificar e excluir objetos. A definição de uma chave primária é uma das operações mais importantes na criação de uma tabela, pois garante a integridade dos dados ao assegurar que cada linha seja única e identificável.
A chave primária é um conceito central do modelo relacional. Ela é uma coluna (ou conjunto de colunas) cujos valores identificam de forma única cada registro da tabela. As propriedades fundamentais de uma chave primária são a unicidade (não pode haver valores duplicados) e a não nulidade (não pode haver valores nulos). Ao definir uma chave primária, o SGBD automaticamente cria um índice único para acelerar as buscas e impede a inserção de registros duplicados ou com valores nulos na coluna chave. Essa é uma prática essencial para garantir a integridade e a consistência dos dados em qualquer sistema de banco de dados relacional.
Para ilustrar, imagine a criação de uma tabela para armazenar informações de projetos. A definição da chave primária seria feita da seguinte forma:
CREATE TABLE Projetos (
id_projeto INT PRIMARY KEY,
nome_projeto VARCHAR(100),
data_inicio DATE
);
Neste exemplo, a coluna id_projeto é definida como chave primária, garantindo que cada projeto tenha um identificador único e não nulo. Essa é a prática correta e eficaz na criação de tabelas, conforme descrito na alternativa A.
A banca explora a confusão entre os comandos das diferentes sublinguagens do SQL. É comum que candidatos confundam as funções de comandos como ALTER TABLE, DROP INDEX, CREATE INDEX e RENAME TABLE, atribuindo-lhes funções que não possuem. A pegadinha aqui é que todas as alternativas incorretas usam comandos que existem no SQL, mas com funções trocadas ou inadequadas para o contexto de criação e gerenciamento de tabelas. O candidato que não domina a função exata de cada comando pode facilmente cair em uma dessas armadilhas.
Guarde a distinção fundamental: a DDL define a estrutura (CREATE, ALTER, DROP), a DML manipula os dados (INSERT, UPDATE, DELETE, SELECT), a DCL controla o acesso (GRANT, REVOKE) e a DTL gerencia transações (COMMIT, ROLLBACK). É exatamente essa fronteira que separa as alternativas corretas das incorretas nesta questão.
Comando
Função correta
O que a alternativa afirma
Sublinguagem
ALTER TABLE
Modificar estrutura de tabela existente
Adicionar nova tabela (B)
DDL
DROP INDEX
Excluir um índice
Excluir uma tabela (C)
DDL
CREATE INDEX
Criar índice em tabela existente
Criar nova tabela (D)
DDL
RENAME TABLE
Renomear tabela existente
Modificar dados da tabela (E)
DDL
PRIMARY KEY
Garantir unicidade e não nulidade dos registros
Definir chave primária (A)
DDL
Alternativa A — ✅ Correta ⟵ GABARITO
A alternativa A está correta porque define corretamente a função de uma chave primária (PRIMARY KEY) na criação de uma tabela. A chave primária é um conceito fundamental da DDL que garante a unicidade e a não nulidade de cada registro, assegurando a integridade dos dados. Essa é uma prática eficaz e essencial na criação e gerenciamento de tabelas em um banco de dados relacional.
Alternativa B — ❌ Incorreta
A alternativa B está incorreta porque o comando ALTER TABLE é utilizado para modificar a estrutura de uma tabela existente, como adicionar, excluir ou modificar colunas e restrições. Para adicionar uma nova tabela ao banco de dados, o comando correto é CREATE TABLE, não ALTER TABLE. A banca troca a função de modificar pela de criar, uma confusão clássica entre os comandos da DDL.
Alternativa C — ❌ Incorreta
A alternativa C está incorreta porque o comando DROP INDEX é utilizado para excluir um índice, não uma tabela. Para excluir uma tabela do banco de dados, o comando correto é DROP TABLE. A banca troca o objeto alvo do comando DROP: em vez de excluir um índice, a alternativa afirma que ele exclui uma tabela, o que é um erro conceitual.
Alternativa D — ❌ Incorreta
A alternativa D está incorreta porque o comando CREATE INDEX é utilizado para criar um índice em uma tabela existente, com o objetivo de acelerar as consultas. Para criar uma nova tabela, o comando correto é CREATE TABLE. A banca troca a função de criar um índice pela de criar uma tabela, confundindo dois comandos distintos da DDL.
Alternativa E — ❌ Incorreta
A alternativa E está incorreta porque o comando RENAME TABLE é utilizado para renomear uma tabela existente, não para modificar os dados dentro dela. Para modificar os dados de uma tabela, o comando correto é UPDATE, que faz parte da DML (Data Manipulation Language). A banca troca a função de renomear pela de modificar dados, misturando comandos de diferentes sublinguagens.
NÃO CAIA NESSA!
A banca adora trocar as funções dos comandos SQL para confundir o candidato. Nesta questão, todas as alternativas incorretas usam comandos que existem, mas com funções trocadas: ALTER TABLE não cria tabela, DROP INDEX não exclui tabela, CREATE INDEX não cria tabela e RENAME TABLE não modifica dados. O candidato que não domina a função exata de cada comando pode facilmente cair em uma dessas armadilhas. Com treino, você enxerga essas trocas de longe 💪.
PEGA ESSA DICA!
Para memorizar as funções dos comandos, associe cada um à sua sublinguagem: DDL (CREATE, ALTER, DROP) define a estrutura; DML (INSERT, UPDATE, DELETE, SELECT) manipula os dados; DCL (GRANT, REVOKE) controla o acesso; DTL (COMMIT, ROLLBACK) gerencia transações. Quando a questão perguntar sobre a função de um comando, pergunte-se: "isso define estrutura, manipula dados, controla acesso ou gerencia transações?" Essa pergunta resolve a maioria das questões sobre sublinguagens SQL.