SóProvas


ID
236242
Banca
FCC
Órgão
TCE-SP
Ano
2010
Provas
Disciplina
Banco de Dados
Assuntos

Considere: Os funcionários podem usar muitos idiomas em qualquer um dentre muitos projetos. Cada projeto possui muitos funcionários com vários idiomas. Funcionário chefia funcionário na razão 1:n. Dado um projeto, é necessário que se conheça os funcionários e quais idiomas eles usam nesse projeto. Também é necessário que se saiba (independentemente do projeto) quem é o chefe de quem. A derivação para BDR (relacional) apresentará um modelo com

Alternativas
Comentários
    • Funcionário
    • Idioma
    • Projeto
    • Funcionário_Idioma (pois o texto diz "Os funcionários podem usar muitos idiomas")
    • Funcionário_Projeto (pois o texto diz "um dentre muitos projetos")
  • Devem ser criado as tabelas:
    Funcionário
    Idioma e 
    Projeto
    Para saber quais idiomas são usados e quais projeto, deve existir uma tabela que contém as chaves primária de idioma e de projetos, logo são 4 tabelas que serão apresentada no modelo.
  • Com todo respeito, corrigindo os colegas Henrique e Mara, não há tabela "Funcionario_Idioma" nem "Funcionario_Projeto", nem a tabela "Chefe", herdando de "Funcionario" é necessária. O relacionamento de 'chefia' acontece com uma chave estrangeira de Funcionário para ele mesmo (além da chave primária, cada Funcionário tem uma chave estrangeira de Funcionário, que indica quem é seu chefe - como acontece em qualquer relação 1:N, a chave estrangeira vai para o lado N, sem a necessidade da criação de uma nova tabela; só que neste caso tanto o lado 1 quanto o lado N são a mesma entidade).

    A colega Fernanda postou a resposta mais próxima, apenas esqueceu de incluir a chave primária de Funcionário na tabela que tem as chaves primárias de Idioma e Projeto, já que trata-se de uma relação ternária N:N:N.
  • Temos uma tabela Funcionario:

    { id-funcionario, nome  , ...   , id_funcionario_chefe } , dessa  forma podemos representar quem é o chefe de quem sem a necessidade de uma outra tabela.

    Temos a tabela Idioma:

    { id-idioma,   descricao }


    Temos a tabela Pro jeto

    { id-projeto, descricao }

    E temos uma quarta tabela para construir um relacionamento ternario,  informando qual idioma cada funcionario fala em qual projeto:

    Funcionario_Idioma_Projeto:

    { id-funcionario, id-idioma, id-projeto }
  • Gostei da proposta do : T. Renegado, mas só tem um errinho:

    A questão diz: "Funcionário chefia funcionário na razão 1:n"

    Sendo assim o campo: id_funcionario_chefe não pode ser chave primária, mas somente chave estrangeira, então ele NÃO deve estar sublinhado. Caso contrário, se ele for chave primária, a relação passa a ser N:M e não 1:N, pois um funcionário daí poderá ter N chefes e 1 chefe por ter N funcionários, o que está errado.
  • Na minha opinião, a questão fala da derivação do modelo Relacional a partir do modelo ER correspondente.
    As regras de transformação aplicadas a este caso são:
    1- para cada entidade do modelo ER crias-se uma tabela. Temos até aqui, então, 3 tabelas.
    2- para cada relacionamento N:N, neste caso um relacionamento ternário (FUNCIONÁRIO, IDIOMAS, PROJETOS), deve ser criada uma tabela, onde a chave primária desta será composta pelas chaves primárias das tabelas que se relacionam. Mais uma tabela. Total = 4.
    3- Os relacionamentos 1:N (FUNCIONÁRIOS, CHEFE) são mapeados adicionando os campos necessários para implementar o relacionamento no lado 1 do relacionamento. Na questão há uma especificidade deste caso, pois as duas entidades estão representadas em uma mesma tabela. Aqui, não criamos nenhuma nova tabela. Finalizamos com 4 tabelas no total.
  • Concordo com a Fernanda, em parte! O relacionamento muitos pra muitos que existe é entre as tabelas Funcionários e idiomas. Portanto a Entidade Associativa, que forma a quarta tabela, seria composta pelos atributos identificadores dessas duas tabelas! 

  • Esse tipo de questão é f...