DÚVIDA: considerando o problema 01 e o raciocínio descrito acima, onde o atributo "número de funcionários" deveria estar corretamente alocado?
O atributo número de funcionários é um atributo derivado, pois o seu valor depende de outra entidade/relacionamento para ser gerado, neste caso, contando-se o número de funcionários relacionados à (trabalhando para) esse departamento. Por isso, falamos que este atributo, deriva do relacionamento (trabalhando para). Atributos derivados, não seguem uma regra para serem representados, ou seja, eles não dependem da cardinalidade como os atributos migrados, este atributo é ligado diretamente à entidade, por este motivo o atributo número de funcionários, continuou sendo representado na entidade departamento, mesmo a cardinalidade sendo invertida.
Porém, os conceitos apresentados na aula 1 e na aula 3, também estão bem confusos Thiago. A regra apresentada na aula 1 está correta, mas vamos deixar de lado a cardinalidade e vamos nos atentar à quantidade de instâncias que cada entidade vai receber.
Quando vamos realizar a migração de um atributo de relacionamento 1:N, sempre vamos migra-lo para o lado que recebe apenas uma instância de relacionamento, ou seja, que recebe apenas um valor. Precisamos levar em consideração, a forma escolhida para representar a cardinalidade, se é notação de razão de cardinalidade/linha simples/linha dupla ou forma A ou se é a notação notação MIN/MAX ou forma B.
Na aula 02, o instrutor está utilizando a notação notação MIN/MAX ou forma B, onde a cardinalidade é representada sempre do lado mais próximo da entidade. Onde lemos, um funcionário trabalha para no minimo 1 e no máximo 1 departamento e um departamento tem no minimo 1 e no máximo N funcionários trabalhando.
Se neste relacionamento tivesse uma atributo, ele seria migrado para lado que recebe apenas uma instância, ou seja, funcionário, pois, cada funcionário tem apenas uma data de início, ou seja, valor único. Se o atributo data de início fosse migrado para o lado de departamento, não seria possível controlar a data de início do funcionário, já que cada departamento, pode ter N funcionários trabalhando para ele.
Já na aula 3, o instrutor está utilizando a notação de razão de cardinalidade/linha simples/linha dupla ou forma A, onde a cardinalidade é representada sempre do lado mais longe da entidade.
Onde lemos:
1) Um funcionário pode existir sem trabalhar para um departamento? NÃO. Pois, é obrigatório todo funcionário trabalhar em um departamento.
2) Um departamento pode existir sem ter um funcionário trabalhando para ele? NÃO. Pois, para o departamento existir, ele precisa ter funcionários trabalhando.
1) Um funcionário pode trabalhar em quantos departamentos? UM.
2) Um departamento pode ter quantos funcionários trabalhando? VÁRIOS.
Se neste relacionamento tivesse um atributo, ele seria migrado para lado que recebe apenas uma instância, ou seja, funcionário, pois, cada funcionário tem apenas uma data de início. Nesta representação a cardinalidade está representada do lado oposto. Então o funcionário está do lado N e o departamento do lado 1, mas como estamos representando a cardinalidade do lado oposto, então temos que:
- Um funcionário trabalha apenas para um departamento
- Um departamento pode ter N funcionários trabalhando.
Então, neste caso o atributo realmente seria migrado para o lado N, que está representado do lado de funcionário, mesmo sendo a cardinalidade de departamento, pois a entidade funcionário recebe apenas uma instância de relacionamento, ou seja, recebe apenas um valor.
Peço desculpas mais uma vez pelos problemas apresentados nos nossos cursos e pela demora no retorno Thiago, assim que a nossa equipe disponibilizar as melhorias, irei informá-lo. Fique a vontade para postar suas dúvidas aqui no fórum, que terei o prazer em te ajudar.
Fico à disposição.