Pular para o conteúdo principal

Questão de Banco de Dados — Conceitos e Fundamentos de Modelo Relacional — CESPE / CEBRASPE 2024

Banco de DadosConceitos e Fundamentos de Modelo Relacional
Código
ce403611
Banca
CESPE / CEBRASPE
Órgão
INPI
Ano
2024
Cargo
APGIPI ( )
Julgue o seguinte item, relacionados a modelagem de dados.   O fato de haver um campo de chave estrangeira com o valor NULL não viola a restrição de chave estrangeira.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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

Chave Estrangeira e Valor NULL no Modelo Relacional

Gabarito: Certo. A afirmação está correta: a presença de um campo de chave estrangeira com valor NULL não viola a restrição de chave estrangeira (integridade referencial). A restrição de integridade referencial exige que, quando o valor da chave estrangeira não é NULL, ele deve corresponder a um valor existente na chave primária (ou candidata) da tabela referenciada. Valores NULL são permitidos e representam a ausência de associação.

A chave estrangeira é um atributo (ou conjunto de atributos) em uma tabela que cria uma ligação lógica com a chave primária (ou candidata) de outra tabela, permitindo a associação de registros entre elas. Essa é a base do conceito de integridade referencial: uma tupla em uma relação que referencia outra relação deve se referir a uma tupla existente na relação referenciada. Em outras palavras, uma chave estrangeira de uma relação deve existir como chave na relação referenciada — mas apenas quando o valor não for NULL.

Vamos entender com um exemplo prático. Considere uma tabela PESSOA com os campos (CPF, nome, cpf_conjuge). O atributo cpf_conjuge é uma chave estrangeira que associa uma pessoa a outra pessoa da mesma tabela (autorrelacionamento). Imagine os registros:

  • (123, João, 456) — João é casado com Maria (CPF 456).

  • (456, Maria, 123) — Maria é casada com João (CPF 123).

  • (789, Pedro, NULL) — Pedro não é casado; o valor de cpf_conjuge é NULL.

No caso de Pedro, o valor NULL indica que ele não possui cônjuge. Isso não viola a restrição de chave estrangeira, pois a restrição só se aplica quando há um valor não nulo. Se Pedro tivesse um valor 999 que não existisse na coluna CPF, aí sim haveria violação da integridade referencial.

A confusão comum é pensar que a chave estrangeira, por ser uma "chave", não pode ser NULL. Mas a regra é diferente: a chave primária não pode ser NULL (por definição, ela identifica unicamente cada tupla), enquanto a chave estrangeira pode ser NULL, justamente para representar a ausência de relacionamento. Essa distinção é essencial e frequentemente cobrada em provas.

NÃO CAIA NESSA!

A banca explora a confusão entre chave primária e chave estrangeira. A chave primária não pode ter valor NULL (restrição de integridade de entidade), mas a chave estrangeira pode ter valor NULL (representa ausência de associação). Lembre-se: a restrição de integridade referencial só exige que o valor da chave estrangeira exista na tabela referenciada quando o valor não for NULL.

Alternativa C — ✅ Certo ⟵ GABARITO

A afirmação está correta. A restrição de chave estrangeira (integridade referencial) estabelece que um valor não nulo em uma coluna de chave estrangeira deve corresponder a um valor existente na chave primária (ou candidata) da tabela referenciada. Se o valor for NULL, significa que não há associação, o que é permitido e não viola a restrição. O exemplo da tabela PESSOA com cpf_conjuge NULL para Pedro ilustra exatamente isso: a ausência de cônjuge é representada por NULL, sem violar a integridade referencial.

Alternativa E — ❌ Errado

A afirmação está errada porque inverte o conceito. A chave estrangeira pode ter valor NULL; quem não pode ter valor NULL é a chave primária. A restrição de integridade referencial não proíbe NULL na chave estrangeira — ela apenas exige que, quando o valor não for NULL, ele exista na tabela referenciada. Portanto, a alternativa E está incorreta.

Gabarito: Certo (alternativa C).

Link permanente: /questoes/ce403611