Questão nº 43
Questão de Banco de Dados · FCC TRT24 2016 (nº 43)
Considere, hipoteticamente, uma relação de trabalho em que um funcionário pode trabalhar em várias empresas, sendo registrado em todas elas. Esta relação é representada na figura abaixo.

Nesta relação, cada funcionário pode ocupar cargos diferentes em cada empresa onde trabalha recebendo, inclusive, salários diferentes por jornadas de trabalho variáveis. Nestas condições, quando o modelo for implementado em um Sistema Gerenciador de Banco de Dados relacional,
- Ase for incluído um campo `salário` este deverá ser colocado na tabela `Funcionário`.
- Bsomente as tabelas `Funcionário` e `Empresa` serão criadas e relacionadas com cardinalidade `n:n`.
- Co relacionamento `n:n` deverá ser desmembrado em dois relacionamentos `1:1`, sendo `Trabalha` a entidade de ligação entre `Funcionário` e `Empresa`.
- Dse for incluído um campo `cargo` este deverá ser colocado na tabela associativa identificada como `Trabalha`. (alternativa correta)
- Ese for incluído um campo `CargaHoráriaMensal` ele deverá ser colocado na tabela `Empresa`.
Resposta comentada
Gabarito Alternativa D
Quando duas entidades (como "Funcionário" e "Empresa") têm uma relação N:N (muitos para muitos), significa que um item de uma pode se ligar a vários da outra, e vice-versa. Para representar isso em um banco de dados relacional, cria-se uma tabela associativa (ou tabela de ligação) que conecta as duas entidades originais e armazena atributos que descrevem o próprio relacionamento.
(A) Incorreta: O problema afirma que o funcionário pode receber "salários diferentes" em cada empresa. Se o campo `salário` estivesse na tabela `Funcionário`, ele só poderia ter um salário único, o que contradiz a condição. Este atributo pertence à relação específica entre funcionário e empresa.
(B) Incorreta: Em um banco de dados relacional, relacionamentos N:N não podem ser implementados diretamente. Eles precisam ser desmembrados em uma tabela associativa, resultando em pelo menos três tabelas (`Funcionário`, `Empresa` e a tabela associativa `Trabalha`).
(C) Incorreta: O relacionamento N:N é desmembrado em dois relacionamentos 1:N (um para muitos), não 1:1. A entidade `Trabalha` é a tabela associativa que faz essa ligação.
(D) Correta: O problema especifica que "cada funcionário pode ocupar cargos diferentes em cada empresa". Isso significa que o `cargo` é uma característica da relação entre um funcionário específico e uma empresa específica. Portanto, ele deve ser armazenado na tabela associativa (`Trabalha`), que representa essa ligação.
(E) Incorreta: O problema menciona "jornadas de trabalho variáveis", indicando que a `CargaHoráriaMensal` pode ser diferente para cada funcionário em cada empresa. Se estivesse na tabela `Empresa`, todos os funcionários daquela empresa teriam a mesma carga horária, o que contradiz a condição. Este atributo também pertence à relação.
Fonte: FCC TRT24 2016 Técnico Judiciário - Área Apoio Especializado - Especialidade Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.