Pular para o conteúdo principal

Questão de Banco de Dados — Banco de Dados Relacionais — FCC 2017

Banco de DadosBanco de Dados Relacionais
Código
fc038478
Banca
FCC
Órgão
TRE-SP
Ano
2017
Nível
Médio
Cargo
Técnico Judiciário – Operação de Computadores
Um Técnico do TRE-SP deparou-se, hipoteticamente, com o seguinte problema:Um banco de dados relacional, modificado por outro profissional, começou a apresentar anomalias. As entidades conceituais que embasaram o banco, originalmente, eram Processo e Cidadão. Os requisitos especificavam que o relacionamento entre tais entidades atendesse ao fato de que um processo poderia relacionar-se com um único cidadão e um cidadão, claramente, poderia relacionar-se com mais de um processo. Isto para o caso do relacionamento denominado Autoria. Já, em outro relacionamento entre as mesmas entidades, denominado Participação, o processo poderia ter a participação de mais de um cidadão e cada um deles também poderia participar de mais de um processo. Ora, após a modificação do banco, quando os usuários tentaram entrar com mais de um cidadão na atualização de participação de um determinado processo, apesar de na tela ter o espaço para tal, o programa apresentava erro de consistência, não aceitando mais de um cidadão participante. Nesse caso, especificamente, ocorreu a implementação do relacionamento
  1. AParticipação (Processo Participação de Cidadão, nesta ordem) como n:1.
  2. BAutoria (Processo Autoria de Cidadão, nesta ordem) como n:m.
  3. CParticipação (Processo Participação de Cidadão, nesta ordem) como 1:n.
  4. DAutoria (Processo Autoria de Cidadão, nesta ordem) como n:1.
  5. EParticipação (Processo Participação de Cidadão, nesta ordem) como n:m.
Revelar gabarito e comentário

GabaritoA — Participação (Processo Participação de Cidadão, nesta ordem) como n:1.

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

Modelagem Entidade-Relacionamento: Cardinalidade e Implementação

Gabarito: letra A. A implementação incorreta do relacionamento Participação como n:1 (na ordem Processo → Cidadão) restringiu cada processo a no máximo um cidadão, gerando o erro de consistência ao tentar inserir mais de um participante. O requisito original era muitos-para-muitos (n:m), mas a modificação introduziu uma cardinalidade que vincula cada processo a um único cidadão.

A chave para resolver a questão é entender como a cardinalidade se reflete na implementação relacional. No relacionamento Participação, a notação "n:1" significa que muitos Processos podem se associar a um único Cidadão. Isso é implementado colocando uma chave estrangeira na tabela Processo referenciando a tabela Cidadão. Cada registro de Processo carrega o identificador de um Cidadão, permitindo que diversos Processos apontem para o mesmo Cidadão, mas um Processo só pode apontar para um único Cidadão. Essa é exatamente a restrição que causou o erro: o programa não aceitou mais de um cidadão por processo porque o modelo lógico não o permite.

Em contraste, a implementação correta (n:m) exigiria uma tabela associativa entre Processo e Cidadão, sem restrição de cardinalidade máxima de cada lado.

NÃO CAIA NESSA!

A banca confunde a notação de cardinalidade. Lembre-se: na ordem "A relacionamento B como n:1", entende-se que muitos registros de A se ligam a um registro de B. Portanto, o lado "1" é o que sofre a restrição de singularidade. Aqui, o lado B (Cidadão) é o lado "1", o que implica que cada Processo só pode ter um Cidadão, gerando o erro descrito.

Alternativa A — ✅ Correta ⟵ GABARITO

Descreve exatamente a implementação que causa o erro: Participação como n:1 (Processo → Cidadão). Na prática, isso vincula cada processo a um único cidadão, impedindo múltiplos participantes.

Alternativa B — ❌ Incorreta

Autoria como n:m. O relacionamento Autoria, por definição, é 1:n (um processo tem um autor; um cidadão pode ser autor de vários processos). Implementá-lo como n:m seria um erro, mas não é o erro relatado no problema.

Alternativa C — ❌ Incorreta

Participação como 1:n. Essa cardinalidade significaria que um Processo pode ter muitos Cidadãos (1 processo → n cidadãos) e um Cidadão teria apenas um Processo. Isso permitiria múltiplos cidadãos por processo, ou seja, seria a implementação desejada (correta) e não causaria o erro.

Alternativa D — ❌ Incorreta

Autoria como n:1. Novamente, Autoria deveria ser 1:n; implementar como n:1 inverteria a cardinalidade, mas não é o relacionamento que apresentou problema.

Alternativa E — ❌ Incorreta

Participação como n:m. Essa é a cardinalidade correta para o relacionamento muitos-para-muitos. Se implementada assim, o programa aceitaria vários cidadãos por processo e o erro não ocorreria.

Gabarito: letra A.

Link permanente: /questoes/fc038478