Questão de Banco de Dados — Banco de Dados Relacionais — CESPE / CEBRASPE 2026
Banco de Dados›Banco 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.Com 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.
Acriar uma chave primária no campo id_cliente da tabela CLIENTE e um índice único no campo id_cliente da tabela PEDIDO
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
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
Dcriar uma chave primária no campo id_cliente da tabela PEDIDO
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:
Chave primária na tabela referenciada (CLIENTE): identifica unicamente cada cliente. É o alvo da referência.
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.