Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Relacionais — CESPE / CEBRASPE 2026

Banco de DadosBanco de Dados Relacionais
Código
ce228770
Banca
CESPE / CEBRASPE
Órgão
TCE-MG
Ano
2026
Nível
Superior
Cargo
Analista de Controle Externo - Especialidade: Ciência da Computação
As tabelas CLIENTE e PEDIDO a seguir ainda não têm definição de chaves, índices ou quaisquer instrumentos de integridade além dos explicitamente declarados.Q38.png 290×173Com base nos efeitos diretos da criação de instrumentos de banco de dados relacionais, assinale a opção que apresenta a ação que garante a integridade referencial no atributo id_cliente da tabela PEDIDO.
  1. Acriar uma chave primária no campo id_cliente da tabela CLIENTE e um índice único no campo id_cliente da tabela PEDIDO
  2. Bcriar uma chave primária no campo id_cliente da tabela PEDIDO e uma chave estrangeira no campo id_cliente da tabela CLIENTE, referenciando o campo id_cliente da tabela PEDIDO
  3. Ccriar uma chave primária no campo id_cliente da tabela CLIENTE e uma chave estrangeira no campo id_cliente da tabela PEDIDO, referenciando o campo id_cliente da tabela CLIENTE
  4. Dcriar uma chave primária no campo id_cliente da tabela PEDIDO
  5. Ecriar uma chave primária no campo id_cliente da tabela CLIENTE
Revelar gabarito e comentário

GabaritoC — criar uma chave primária no campo id_cliente da tabela CLIENTE e uma chave estrangeira no campo id_cliente da tabela PEDIDO, referenciando o campo id_cliente da tabela CLIENTE

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”.

Integridade referencial no modelo relacional

Gabarito: letra C. A integridade referencial no atributo id_cliente da tabela PEDIDO é garantida pela combinação de uma chave primária em id_cliente na tabela CLIENTE (tabela referenciada/pai) e uma chave estrangeira em id_cliente na tabela PEDIDO (tabela referenciadora/filha), que referencia a chave primária da CLIENTE. É exatamente essa estrutura que a alternativa C descreve.

A integridade referencial é uma das restrições de integridade fundamentais do modelo relacional. Ela estabelece que um valor de chave estrangeira em uma tabela deve corresponder a um valor de chave primária (ou chave candidata) existente na tabela referenciada, ou ser nulo (se a coluna permitir). Em outras palavras, não pode haver um pedido apontando para um cliente que não existe. Essa regra garante a consistência dos relacionamentos entre tabelas.

Para implementar essa restrição, é necessário definir dois elementos:

  1. Chave primária na tabela referenciada (CLIENTE): identifica unicamente cada cliente. É o alvo da referência.

  2. Chave estrangeira na tabela referenciadora (PEDIDO): o atributo id_cliente em PEDIDO, que armazena o identificador do cliente dono daquele pedido. A chave estrangeira cria o vínculo lógico com a chave primária da CLIENTE.

A direção da referência é crucial: a chave estrangeira fica na tabela que contém a informação dependente (PEDIDO), e aponta para a tabela que contém a informação base (CLIENTE). Inverter essa direção — colocar a chave estrangeira na CLIENTE referenciando a PEDIDO — seria um erro conceitual, pois cada cliente poderia ter vários pedidos, e a chave estrangeira deveria estar no lado "muitos" do relacionamento.

Um exemplo concreto: imagine que o cliente de id_cliente = 5 seja "Maria". Se alguém tentar inserir um pedido com id_cliente = 99 (que não existe na tabela CLIENTE), o SGBD, com a restrição de integridade referencial ativa, rejeitará a operação. Da mesma forma, se tentar excluir o cliente 5, o SGBD bloqueará a exclusão (ou aplicará a ação definida na cláusula ON DELETE, como CASCADE ou SET NULL), a menos que não haja pedidos associados.

A pegadinha desta questão está em confundir o papel de cada chave. A chave primária sozinha garante a unicidade e a integridade de entidade (não nula e única), mas não cria vínculo entre tabelas. A chave estrangeira é o instrumento que materializa o relacionamento e, portanto, a integridade referencial. A alternativa C é a única que combina corretamente os dois elementos na direção certa.

Guarde a fronteira: chave primária = identidade dentro da própria tabela; chave estrangeira = vínculo com outra tabela. É exatamente nessa distinção que as alternativas se dividem.

Critério

Alternativa A

Alternativa B

Alternativa C (✅)

Alternativa D

Alternativa E

Chave primária em CLIENTE.id_cliente

✅ Sim

❌ Não (coloca em PEDIDO)

✅ Sim

❌ Não

✅ Sim

Chave estrangeira em PEDIDO.id_cliente

❌ Não (usa índice único)

❌ Não (coloca em CLIENTE)

✅ Sim

❌ Não

❌ Não

Referência correta (PEDIDO → CLIENTE)

❌ Não

❌ Não (invertida)

✅ Sim

❌ Não

❌ Não

Garante integridade referencial

❌ Não

❌ Não

✅ Sim

❌ Não

❌ Não

Alternativa A — ❌ Incorreta

Criar chave primária na CLIENTE e um índice único no id_cliente da PEDIDO não garante integridade referencial. O índice único apenas impede valores duplicados na coluna id_cliente da PEDIDO, mas não verifica se o valor existe na CLIENTE. Um pedido poderia referenciar um cliente inexistente sem violar essa estrutura. A integridade referencial exige uma chave estrangeira, não um índice.

Alternativa B — ❌ Incorreta

Inverte completamente a direção do relacionamento. Coloca a chave primária em id_cliente na PEDIDO (o que faria cada pedido ter um id único, mas não é o papel correto aqui) e a chave estrangeira na CLIENTE referenciando a PEDIDO. Isso significaria que cada cliente apontaria para um pedido, o que é semanticamente errado: um cliente pode ter vários pedidos, e a chave estrangeira deve estar no lado "muitos" (PEDIDO), não no lado "um" (CLIENTE).

Alternativa C — ✅ Correta ⟵ GABARITO

Esta é a definição clássica de integridade referencial: chave primária em id_cliente na CLIENTE (tabela pai) e chave estrangeira em id_cliente na PEDIDO (tabela filha), referenciando a chave primária da CLIENTE. Com isso, o SGBD garante que todo valor de id_cliente em PEDIDO exista em CLIENTE, mantendo a consistência do relacionamento.

Alternativa D — ❌ Incorreta

Criar apenas uma chave primária em id_cliente na PEDIDO garante a unicidade dos pedidos, mas não cria nenhum vínculo com a tabela CLIENTE. Não há referência a outra tabela, logo não há integridade referencial.

Alternativa E — ❌ Incorreta

Criar apenas uma chave primária em id_cliente na CLIENTE garante a unicidade dos clientes (integridade de entidade), mas não estabelece nenhuma relação com a tabela PEDIDO. Sem a chave estrangeira em PEDIDO, nada impede que um pedido referencie um cliente inexistente.

NÃO CAIA NESSA!

A banca explora a confusão entre os papéis das chaves. Muitos candidatos marcam a alternativa A, achando que um índice único na PEDIDO "garante" a referência, ou invertem a direção na B. Lembre-se: chave estrangeira é o único instrumento que cria o vínculo entre tabelas, e ela deve estar na tabela que contém a informação dependente (PEDIDO), apontando para a chave primária da tabela base (CLIENTE).

PEGA ESSA DICA!

Para questões de integridade referencial, identifique primeiro qual tabela é a "pai" (referenciada) e qual é a "filha" (referenciadora). A chave primária fica na pai; a chave estrangeira fica na filha, apontando para a pai. Se a alternativa não tiver esses dois elementos na direção correta, está errada.

Gabarito: letra C

Link permanente: /questoes/ce228770