Questão nº 31

Questão de Informática · FCC TRT6 2018 (nº 31)

FCC2018Analista Judiciário – Área Apoio Especializado – Especialidade Tecnologia da InformaçãoInformática
Gabarito: Cver comentário ↓

Considere hipoteticamente a existência de empresas que terceirizam o fornecimento de Recursos Humanos a outras empresas. Cada funcionário pode ser cadastrado em várias dessas empresas terceirizadas, nos mesmos cargos ou em cargos diferentes. Um modelo abstrato de dados dessa relação entre Empresa_Terceirizada_RH e Funcionario é mostrado abaixo.

Figura da questão de Informática

Para um Analista especializado em Tecnologia da Informação implementar o modelo mostrado na figura, em um Sistema Gerenciado de Banco de Dados relacional, terá que

Resposta comentada

Gabarito Alternativa C

Em bancos de dados relacionais, um relacionamento N:M (muitos para muitos) não pode ser implementado diretamente e precisa ser transformado em dois relacionamentos 1:N (um para muitos) através de uma tabela intermediária.

  • A) Incorreta: A linguagem SQL não possui o parâmetro CROSS REFERENCES para estabelecer relações N:M. Relacionamentos entre tabelas são definidos principalmente com chaves estrangeiras (FOREIGN KEY) para relações 1:N ou N:1, e N:M exige uma tabela adicional.
  • B) Incorreta: Mover cargoFuncionario para a tabela Empresa_Terceirizada_RH está incorreto. O enunciado diz que "Cada funcionário pode ser cadastrado em várias dessas empresas terceirizadas, nos mesmos cargos ou em cargos diferentes". Isso significa que o cargo é específico para a combinação de funcionário e empresa, não um atributo exclusivo da empresa ou do funcionário isoladamente. Se estivesse na Empresa_Terceirizada_RH, significaria que a empresa tem um único cargo para todos os funcionários, o que não faz sentido. A armadilha aqui é pensar que o cargo é da empresa, quando na verdade ele qualifica o vínculo entre funcionário e empresa.
  • C) Correta: Esta é a forma padrão de implementar um relacionamento N:M em um banco de dados relacional. Cria-se uma tabela de ligação (também chamada de tabela associativa ou intermediária) que conterá as chaves primárias das duas entidades originais (Empresa_Terceirizada_RH e Funcionario) como chaves estrangeiras. Essas chaves estrangeiras, juntas, formam a chave primária da tabela de ligação. Isso "fragmenta" o relacionamento N:M em dois relacionamentos 1:N (um da Empresa_Terceirizada_RH para a tabela de ligação, e outro do Funcionario para a tabela de ligação). O atributo cargoFuncionario é um atributo do relacionamento (pois o cargo varia de acordo com a empresa em que o funcionário está alocado), e, portanto, deve ser colocado como um atributo simples nessa tabela de ligação.
  • D) Incorreta: Embora seja verdade que relacionamentos N:M não são implementados diretamente, a fragmentação ocorre em dois relacionamentos 1:N (um para muitos), e não 1:1 (um para um). A tabela de ligação é a solução para implementar N:M.
  • E) Incorreta: O atributo cargoFuncionario não pode ser excluído. A informação de que "cada funcionário poderá ter um cargo diferente em cada empresa terceirizada" é crucial e precisa ser armazenada. Excluí-lo resultaria na perda de dados importantes sobre o vínculo do funcionário com a empresa.

Fonte: FCC TRT6 2018 Analista Judiciário – Área Apoio Especializado – Especialidade Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho