Pular para o conteúdo principal

Questão de Banco de Dados — Modelo relacional — FCC 2017

Banco de DadosModelo relacional
Código
fc037989
Banca
FCC
Órgão
TRE-PR
Ano
2017
Nível
Médio
Cargo
Técnico Judiciário - Programação de Sistemas
Considere hipoteticamente que em um Tribunal cada Juiz conta com a ajuda de vários Assistentes, de acordo com o volume de processos que precisa analisar e julgar. Cada Assistente, por sua vez, auxilia vários Juízes, de acordo com a demanda de trabalho. Se Juiz e Assistente forem entidades de um modelo de dados relacional, a cardinalidade entre elas será n:m. Na criação das tabelas a partir do modelo,
  1. Aa chave primária da tabela Juiz será chave estrangeira na tabela Assistente e a chave primária da tabela Assistente será chave estrangeira na tabela Juiz.
  2. Bserá necessário criar uma tabela de ligação entre Juiz e Assistente e o relacionamento n:m dará lugar a dois relacionamentos 1:n.
  3. Cserá estabelecido um relacionamento bidirecional entre as tabelas Juiz e Assistente, com cardinalidade 1:1.
  4. Dpara que a relação n:m seja mantida, as chaves primárias das tabelas Juiz e Assistente deverão ser compostas pelo Id do Juiz e pelo Id do Assistente.
  5. Eserá necessário criar uma tabela de ligação entre Juiz e Assistente, gerando assim dois relacionamentos 1:1.
Revelar gabarito e comentário

GabaritoB — será necessário criar uma tabela de ligação entre Juiz e Assistente e o relacionamento n:m dará lugar a dois relacionamentos 1:n.

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: implementação de relacionamento muitos-para-muitos

Gabarito: letra B. Um relacionamento de cardinalidade n:m (muitos-para-muitos) no modelo relacional é implementado por meio de uma tabela de ligação (tabela associativa), que decompõe o relacionamento original em dois relacionamentos 1:n (um-para-muitos). As demais alternativas descrevem incorretamente a solução.

A questão testa o conhecimento da transformação de um relacionamento muitos-para-muitos do modelo entidade-relacionamento para o modelo relacional (tabelas). Conforme a teoria do modelo relacional, quando duas entidades possuem um relacionamento n:m, é necessário criar uma nova tabela (tabela de associação) que conterá chaves estrangeiras referenciando as chaves primárias das duas entidades originais, formando dois relacionamentos 1:n: uma entidade 1 → n tabela de ligação, e a outra entidade 1 → n tabela de ligação.

Alternativa A — ❌ Incorreta

Afirma que a chave primária de Juiz será chave estrangeira na tabela Assistente e vice-versa. Isso caracterizaria um relacionamento 1:1 (se as chaves estrangeiras forem únicas) ou 1:n (se não forem únicas), mas não um n:m. Em um n:m, cada tupla de Juiz pode se relacionar com vários Assistentes e vice-versa; colocar chave estrangeira diretamente em uma das tabelas não permite representar essa multiplicidade sem duplicação ou redundância.

Alternativa B — ✅ Correta ⟵ GABARITO

A solução correta para implementar um relacionamento muitos-para-muitos é criar uma tabela de ligação que contenha, no mínimo, as chaves estrangeiras referenciando as chaves primárias das duas tabelas envolvidas. Dessa forma, o relacionamento n:m original é decomposto em dois relacionamentos 1:n: um entre Juiz e a tabela de ligação, e outro entre Assistente e a tabela de ligação. Isso é exatamente o que a alternativa descreve.

Alternativa C — ❌ Incorreta

Estabelecer um relacionamento bidirecional 1:1 entre Juiz e Assistente não reflete a cardinalidade n:m. A cardinalidade 1:1 seria adequada se cada Juiz estivesse associado a no máximo um Assistente e vice-versa, o que não é o caso.

Alternativa D — ❌ Incorreta

Dizer que as chaves primárias de Juiz e Assistente devem ser compostas por IdJuiz e IdAssistente é um equívoco. A chave primária de cada tabela deve ser um identificador único da própria entidade (ex.: IdJuiz em Juiz, IdAssistente em Assistente). A composição das duas chaves ocorre na tabela de ligação (como chave primária composta ou simples), não nas tabelas originais.

Alternativa E — ❌ Incorreta

Criar uma tabela de ligação é a ação correta, mas o resultado são dois relacionamentos 1:n (um-para-muitos), e não dois relacionamentos 1:1 (um-para-um). A tabela de ligação terá, para cada Juiz, várias tuplas (um para cada Assistente), e para cada Assistente, várias tuplas (um para cada Juiz), caracterizando 1:n de cada lado.

PEGA ESSA DICA!

Lembre-se sempre: no modelo relacional, relacionamentos muitos-para-muitos (n:m) exigem uma tabela extra (tabela associativa ou de ligação). As chaves primárias das tabelas originais permanecem simples; a tabela de ligação recebe ambas como chaves estrangeiras e, normalmente, a chave primária é a combinação delas (chave composta). Esse é um dos conceitos mais cobrados em modelagem de banco de dados.

Gabarito: letra B.

Link permanente: /questoes/fc037989