Questão de Banco de Dados — Conceitos e Fundamentos de Modelo Relacional — FCC 2025
Banco de Dados›Conceitos e Fundamentos de Modelo Relacional
Código
fc150359
Banca
FCC
Órgão
SEFAZ PI
Ano
2025
Cargo
AFFE ( )
Um Departamento Estadual está projetando um banco de dados para gerenciar o Imposto sobre Propriedade de Veículos Automotores (IPVA). O sistema deve incluir as tabelas:
Proprietarios: Dados dos proprietários de veículos (CPF, nome, endereco). Veiculos: Informações dos veículos (placa, modelo, ano, CPF). Pagamentos_IPVA: Registro dos pagamentos do IPVA (Codigo_pagamento, valor, data_pagamento, veiculo_associado).
A configuração correta de chaves primárias (PKs) e estrangeiras (FKs) para esse sistema é
APK de Proprietarios: CPF; PK de Veiculos: Placa; PK de Pagamentos_IPVA: Codigo_pagamento; sem FK nas tabelas.
BPK de Proprietarios: CPF; PK de Veiculos: Placa; PK de Pagamentos_IPVA: Data de Pagamento; FK em Veiculos: CPF (ref. Proprietarios); FK em Pagamentos_IPVA: Ano (ref. Veiculos).
CPK de Proprietarios: Nome; PK de Veiculos: Modelo; PK de Pagamentos_IPVA: Data_Pagamento; FK em Veiculos: Nome (ref. Proprietarios); FK em Pagamentos_IPVA: Modelo (ref. Veiculos).
DPK de Proprietarios: CPF; PK de Veiculos: Placa; PK de Pagamentos_IPVA: Codigo_pagamento; FK em Veiculos: CPF (ref. Proprietarios); FK em Pagamentos_IPVA: Placa (ref. Veiculos).
EPK de Proprietarios: CPF; PK de Veiculos: Placa; PK de Pagamentos_IPVA: Codigo_pagamento; FK em Veiculos: Placa (ref. Pagamentos_IPVA); FK em Pagamentos_IPVA: CPF (ref. Proprietarios).
Revelar gabarito e comentário▾
GabaritoD — PK de Proprietarios: CPF; PK de Veiculos: Placa; PK de Pagamentos_IPVA: Codigo_pagamento; FK em Veiculos: CPF (ref. Proprietarios); FK em Pagamentos_IPVA: Placa (ref. Veiculos).
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”.
Modelo Relacional: Chaves Primárias e Estrangeiras
Gabarito: letra D. A configuração correta exige que cada tabela tenha uma chave primária que identifique unicamente seus registros e que as chaves estrangeiras estabeleçam os relacionamentos entre as tabelas: Proprietarios (PK: CPF), Veiculos (PK: Placa, FK: CPF referenciando Proprietarios) e Pagamentos_IPVA (PK: Codigo_pagamento, FK: Placa referenciando Veiculos). A alternativa D é a única que combina corretamente todas as chaves primárias e estrangeiras, respeitando a integridade referencial do modelo relacional.
No modelo relacional, uma chave primária (PK) é um atributo ou conjunto de atributos que identifica de forma única cada tupla (linha) de uma tabela. Já a chave estrangeira (FK) é um atributo em uma tabela que referencia a chave primária de outra tabela, estabelecendo um relacionamento entre elas. A FK garante a integridade referencial, ou seja, que um valor referenciado exista na tabela-pai.
No sistema de IPVA, temos três entidades com relacionamentos claros:
Proprietarios e Veiculos: um proprietário pode ter vários veículos (relacionamento 1:N). Para representar isso, a tabela Veiculos deve conter uma FK (CPF) que referencia a PK de Proprietarios (CPF).
Veiculos e Pagamentos_IPVA: um veículo pode ter vários pagamentos de IPVA (relacionamento 1:N). Para representar isso, a tabela Pagamentos_IPVA deve conter uma FK (Placa) que referencia a PK de Veiculos (Placa).
A escolha das chaves primárias deve recair sobre atributos que sejam únicos e não nulos. O CPF é um identificador natural único para proprietários; a Placa é um identificador natural único para veículos; e o Codigo_pagamento é um identificador artificial (surrogate key) que garante a unicidade de cada pagamento, já que um mesmo veículo pode ter vários pagamentos e a data de pagamento não é única.
A alternativa D é a única que segue corretamente esses princípios. As demais alternativas ou omitem as chaves estrangeiras necessárias, ou usam atributos inadequados como chaves primárias, ou invertem a direção dos relacionamentos.
Critério
Alternativa D (correta)
Alternativa A
Alternativa B
Alternativa C
Alternativa E
PK de Proprietarios
CPF
CPF
CPF
Nome (inadequado)
CPF
PK de Veiculos
Placa
Placa
Placa
Modelo (inadequado)
Placa
PK de Pagamentos_IPVA
Codigo_pagamento
Codigo_pagamento
Data_Pagamento (inadequado)
Data_Pagamento (inadequado)
Codigo_pagamento
FK em Veiculos
CPF → Proprietarios
Ausente (incorreto)
CPF → Proprietarios
Nome → Proprietarios (inadequado)
Placa → Pagamentos_IPVA (invertida)
FK em Pagamentos_IPVA
Placa → Veiculos
Ausente (incorreto)
Ano → Veiculos (inadequado)
Modelo → Veiculos (inadequado)
CPF → Proprietarios (invertida)
Integridade referencial
Respeitada
Violada (sem FKs)
Violada (FK não referencia PK)
Violada (PKs não únicas)
Violada (relacionamentos invertidos)
Alternativa A — ❌ Incorreta
A alternativa A define corretamente as chaves primárias (CPF, Placa, Codigo_pagamento), mas omite as chaves estrangeiras. Sem as FKs, não há como estabelecer os relacionamentos entre as tabelas, violando a integridade referencial. O sistema não conseguiria associar um veículo ao seu proprietário nem um pagamento ao seu veículo.
Alternativa B — ❌ Incorreta
A alternativa B erra ao definir a PK de Pagamentos_IPVA como Data_Pagamento. A data de pagamento não é um atributo único — um mesmo veículo pode ter vários pagamentos na mesma data, e veículos diferentes também podem ter pagamentos na mesma data. Além disso, a FK em Pagamentos_IPVA referencia Ano (de Veiculos), que não é a chave primária de Veiculos (a PK é Placa). A FK deve referenciar a PK da tabela-pai.
Alternativa C — ❌ Incorreta
A alternativa C erra ao usar Nome como PK de Proprietarios e Modelo como PK de Veiculos. Nomes de proprietários podem se repetir (homônimos), e modelos de veículos também não são únicos (vários carros podem ter o mesmo modelo). Atributos não únicos não podem ser chaves primárias. Além disso, as FKs (Nome em Veiculos e Modelo em Pagamentos_IPVA) referenciam atributos que não são chaves primárias, o que é inválido.
Alternativa D — ✅ Correta ⟵ GABARITO
A alternativa D está correta porque:
PK de Proprietarios: CPF — identifica unicamente cada proprietário.
PK de Veiculos: Placa — identifica unicamente cada veículo.
PK de Pagamentos_IPVA: Codigo_pagamento — identifica unicamente cada pagamento.
FK em Veiculos: CPF (ref. Proprietarios) — estabelece o relacionamento 1:N entre proprietário e veículos.
FK em Pagamentos_IPVA: Placa (ref. Veiculos) — estabelece o relacionamento 1:N entre veículo e pagamentos.
Essa configuração respeita a integridade referencial e modela corretamente o domínio do problema.
Alternativa E — ❌ Incorreta
A alternativa E inverte a direção dos relacionamentos. Ela coloca uma FK Placa em Veiculos referenciando Pagamentos_IPVA, o que é logicamente incorreto: um veículo não deve referenciar um pagamento, mas sim o contrário (um pagamento deve referenciar o veículo). Além disso, coloca uma FK CPF em Pagamentos_IPVA referenciando Proprietarios, o que pula a tabela Veiculos e cria uma associação direta entre pagamento e proprietário, sem passar pelo veículo — o que não faz sentido no domínio (o pagamento é do veículo, não do proprietário diretamente).