Questão de Banco de Dados — SQL — CESPE / CEBRASPE 2023
- Código
- ce163357
- Banca
- CESPE / CEBRASPE
- Órgão
- TBG
- Ano
- 2023
- Nível
- Superior
- Cargo
- Ênfase: Desenvolvimento de Software

- CCerto
- EErrado

GabaritoE — Errado
Gabarito: Errado (E). A coluna IdDepartamento da tabela Funcionario pode ser nula, pois a cardinalidade (0,1) do lado de Departamento indica que o relacionamento é opcional — um funcionário pode não estar associado a nenhum departamento. O simples fato de um atributo ser chave estrangeira não o torna obrigatório; a obrigatoriedade só existiria se a cardinalidade mínima fosse 1 (relacionamento obrigatório), o que não é o caso no diagrama.
A chave estrangeira (FK) é o mecanismo que implementa relacionamentos em bancos de dados relacionais: ela é um atributo (ou conjunto de atributos) de uma tabela que referencia a chave primária (ou candidata) de outra tabela, criando uma ligação lógica entre elas. Por padrão, uma FK aceita valores nulos — declarar um atributo como chave estrangeira não exige que ele seja preenchido em todas as linhas. A nulidade da FK é determinada pela cardinalidade do relacionamento, não pela natureza da chave em si.
A cardinalidade expressa o número mínimo e máximo de ocorrências de uma entidade associadas a uma ocorrência da outra. Quando a cardinalidade mínima é 0 (como em (0,1) ou (0,n)), o relacionamento é opcional: a entidade pode existir sem estar associada a nenhuma ocorrência da outra. Nesse caso, a FK que implementa o relacionamento deve aceitar NULL, para representar corretamente os registros não associados. Quando a cardinalidade mínima é 1 (como em (1,1) ou (1,n)), o relacionamento é obrigatório: toda ocorrência precisa estar associada, e a FK deve ser declarada como NOT NULL para garantir a integridade.
Vamos aplicar isso ao caso concreto. O diagrama mostra o relacionamento entre Funcionario e Departamento com cardinalidade (0,1) do lado de Departamento. Isso significa que um funcionário pode estar associado a zero ou um departamento. Se um funcionário pode existir sem departamento, então o valor de IdDepartamento nesse registro precisa ser NULL — não há departamento para referenciar. Portanto, a afirmação de que a coluna "não pode ser nula" está errada, pois contraria a cardinalidade opcional do modelo.
A pegadinha da banca está em associar automaticamente "chave estrangeira" a "obrigatório". O candidato que não conhece a relação entre cardinalidade e nulidade tende a marcar "Certo", mas a regra é clara: FK não implica NOT NULL; a obrigatoriedade vem da cardinalidade mínima do relacionamento. Se o diagrama mostrasse (1,1) do lado de Departamento, aí sim a FK seria obrigatória e NOT NULL seria necessário. Como mostra (0,1), a FK é opcional e pode ser nula.
A banca explora a confusão entre "ser chave estrangeira" e "ser obrigatório". Muitos candidatos assumem que toda FK é NOT NULL, mas isso é falso: a nulidade é definida pela cardinalidade mínima do relacionamento. Veja o diagrama: (0,1) do lado de Departamento significa que o funcionário pode ter zero departamentos — logo, IdDepartamento pode ser NULL. Se fosse (1,1), aí sim seria obrigatório. Guarde: cardinalidade mínima 0 → FK opcional (aceita NULL); cardinalidade mínima 1 → FK obrigatória (NOT NULL).
A afirmação de que IdDepartamento "não pode ser nula, uma vez que ela é a chave estrangeira" está errada por dois motivos: (1) o simples fato de ser FK não impõe nulidade — por padrão, FK aceita NULL; (2) a cardinalidade (0,1) do lado de Departamento indica relacionamento opcional, permitindo que um funcionário não tenha departamento associado, o que exige que a FK aceite NULL. A obrigatoriedade só existiria com cardinalidade mínima 1, o que não ocorre no diagrama.
Gabarito: Errado (E).
Link permanente: /questoes/ce163357