Pular para o conteúdo principal

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

Banco de DadosBanco de Dados Relacionais
Código
fc025880
Banca
FCC
Órgão
TRT - 3ª Região (MG)
Ano
2015
Nível
Superior
Cargo
Analista Judiciário - Tecnologia da Informação
Participando do projeto de modelagem de um banco de dados utilizando o MER, um analista de TI identificou na modelagem lógica duas entidades ligadas entre si em um relacionamento muitos-para-muitos (n:m): a entidade Processo e a entidade Advogado, cujos atributos são apresentados abaixo.Processo (NumeroProcesso, Ano, NumeroVara, NumeroTribunalOrigem) Advogado (NumeroOABAdvogado, Nome, Telefone)Cada advogado pode estar relacionado a vários processos diferentes, ora com status de advogado de acusação, ora com status de advogado de defesa, e cada processo, pode ter vários advogados de acusação e/ou de defesa. Nestas condições, para criar as tabelas no banco de dados real este relacionamento n:m terá que ser desmembrado em dois relacionamentos 1:n com uma tabela de ligação contendo os campos
  1. ACodigoLigacao, StatusAdvogadoProcesso, Data, com chave primária composta pelo campo CodigoLigacao.
  2. BNumeroProcesso, NumeroOABAdvogado e StatusAdvogadoProcesso, com chave primária composta pelos campos NumeroProcesso e NumeroOABAdvogado.
  3. CNumeroProcesso e NumeroOABAdvogado, apenas, com ambos os campos sendo chave primária e estrangeira ao mesmo tempo.
  4. DCodigoLigacao, NumeroProcesso, NumeroOABAdvogado e StatusAdvogadoProcesso, com chave primária composta pelo campo CodigoLigacao e chave estrangeira formada pelos campos NumeroProcesso e NumeroOABAdvogado.
  5. ENumeroProcesso, NumeroOABAdvogado e StatusAdvogadoProcesso, com chave primária composta pelos campos NumeroProcesso e NumeroOABAdvogado e chave estrangeira formada pelo campo StatusAdvogadoProcesso.
Revelar gabarito e comentário

GabaritoB — NumeroProcesso, NumeroOABAdvogado e StatusAdvogadoProcesso, com chave primária composta pelos campos NumeroProcesso e NumeroOABAdvogado.

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

Implementação de relacionamento N:M no modelo relacional

Gabarito: letra B. O relacionamento muitos-para-muitos entre Processo e Advogado, com o atributo StatusAdvogadoProcesso dependente do par, exige uma tabela associativa cuja chave primária é composta por NumeroProcesso e NumeroOABAdvogado, incluindo StatusAdvogadoProcesso como coluna adicional. Alternativa B descreve corretamente essa estrutura.

No modelo relacional, um relacionamento N:M (muitos-para-muitos) é implementado por meio de uma tabela associativa (ou de ligação) que desmembra o relacionamento em dois relacionamentos 1:N. A chave primária dessa tabela é naturalmente composta pela junção das chaves primárias das entidades participantes. Atributos que pertencem ao relacionamento (como StatusAdvogadoProcesso) são incluídos como colunas comuns na tabela associativa, sem fazer parte da chave primária.

Conceito fundamental: "O relacionamento N:M se consuma nos bancos de dados relacionais através de uma tabela de ligação que faz a correspondência de ambos os lados com relacionamento 1 para N para cada lado. A chave primária surge de forma natural, e é composta pela junção das chaves primárias das tabelas interligadas." (Conteúdo de apoio)

Critério

Alternativa A

Alternativa B (Gabarito)

Alternativa C

Alternativa D

Alternativa E

Campos da tabela associativa

CodigoLigacao, StatusAdvogadoProcesso, Data

NumeroProcesso, NumeroOABAdvogado, StatusAdvogadoProcesso

NumeroProcesso, NumeroOABAdvogado

CodigoLigacao, NumeroProcesso, NumeroOABAdvogado, StatusAdvogadoProcesso

NumeroProcesso, NumeroOABAdvogado, StatusAdvogadoProcesso

Chave primária

CodigoLigacao (surrogate)

Composta: NumeroProcesso + NumeroOABAdvogado

Composta: NumeroProcesso + NumeroOABAdvogado

CodigoLigacao (surrogate)

Composta: NumeroProcesso + NumeroOABAdvogado

Chave estrangeira

Não declarada

NumeroProcesso e NumeroOABAdvogado (implícitas)

Ambos os campos (primária e estrangeira simultaneamente)

NumeroProcesso e NumeroOABAdvogado

StatusAdvogadoProcesso (incorreto)

Inclusão do atributo StatusAdvogadoProcesso

Sim

Sim

Não

Sim

Sim

Correção conceitual (modelo relacional)

❌ Chave surrogate desnecessária; omite chaves estrangeiras

✅ Chave composta natural; atributo do relacionamento incluso

❌ Omite atributo do relacionamento

❌ Chave surrogate desnecessária

❌ Chave estrangeira incorreta (StatusAdvogadoProcesso não é FK)

Alternativa A — ❌ Incorreta

Utiliza uma chave primária substituta (CodigoLigacao) em vez da composição natural das chaves estrangeiras. Embora seja possível tecnicamente, a modelagem relacional padrão preconiza a chave composta natural quando não há necessidade de surrogate, especialmente quando o par (NumeroProcesso, NumeroOABAdvogado) já é único. Além disso, a alternativa omite que NumeroProcesso e NumeroOABAdvogado devem ser chaves estrangeiras.

Alternativa B — ✅ Correta ⟵ GABARITO

A tabela associativa contém os campos NumeroProcesso, NumeroOABAdvogado (ambos como chave estrangeira e compondo a chave primária) e StatusAdvogadoProcesso (atributo do relacionamento). A chave primária composta por NumeroProcesso e NumeroOABAdvogado atende ao princípio de que cada combinação de processo e advogado é única, e o atributo de relacionamento é corretamente alocado.

Alternativa C — ❌ Incorreta

Falta o campo StatusAdvogadoProcesso. O enunciado explicita que cada advogado pode atuar com status de acusação ou defesa em cada processo, portanto esse atributo do relacionamento precisa ser registrado na tabela associativa. Sem ele, perde-se informação essencial.

Alternativa D — ❌ Incorreta

Similar à alternativa A, utiliza uma chave substituta CodigoLigacao desnecessária. Além disso, a chave estrangeira é descrita como composta por NumeroProcesso e NumeroOABAdvogado, mas estes também deveriam compor a chave primária natural. A modelagem com surrogate acrescenta complexidade sem ganho.

Alternativa E — ❌ Incorreta

Erro conceitual: coloca StatusAdvogadoProcesso como chave estrangeira. StatusAdvogadoProcesso não é uma referência a outra tabela; é um atributo descritivo do relacionamento. Deve ser coluna comum, não chave estrangeira.

Conclusão: A modelagem correta da associação N:M com atributo de relacionamento exige exatamente o que está descrito na alternativa B. Gabarito: letra B.

Link permanente: /questoes/fc025880