11
respostas

DÚVIDA_01_Modelagem de bancos (Entidades, etc) / Nomenclatura: Resumo

Prezado(a).

Venho informar outra inconsistência na aula : https://cursos.alura.com.br/course/modelagem-banco-relacional-entidade-relacionamento-atributo/task/73027

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Neste momento de aula, o prefossor afirma o seguinte:

[03:33] Então ele não é um atributo em que eu vou dizer quanto vale, ele é derivado da relação trabalha para, de quantas ligações, por exemplo, chegam aqui em departamento.

Entretanto, em aula do bloco anterior (https://cursos.alura.com.br/course/modelagem-banco-relacional-entidade-relacionamento-atributo/task/73025), o próprio professor afirma que o atributo de relacionamento SEMPRE vai para a entidade que tiver o valor 1 de cardinalidade máxima.

Considerando o que me foi explicado nessa dúvida (https://cursos.alura.com.br/forum/topico-duvida_02_modelagem-de-bancos-cardinalidade-171922) baseado exclusivamente pelo formato A e as limitações dadas pelo exemplo em aula, a figura terminaria da seguinte forma:

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Desta forma, ficam dúvidas:

1) Como o atributo de relacionamento do professor pode ter ficado em departamento, se o N está no lado de departamento? 2) Mesmo que o atributo de relacionamento tenha ficado no departamento (tanto no meu raciocínio quanto no da aula), o professor não está misturando conceitos entre as aulas diversas vezes e fazendo uma salada mista numa organização lógica de aula?

OBSERVAÇÃO: está muito CANSATIVO E IMPRODUTIVO estudar isso por causa de tantas modificações de raciocínio.

11 respostas

Olá Thiago, tudo bem?

Na realidade o atributo Número De Funcionarios não é um atributo que estava no relacionamento trabalha para e foi migrado para a entidade departamento, ele é um atributo derivado. Veja bem, neste modelo todos os atributos de relacionamento, ainda estão representados nos relacionamentos, ainda não foram migrados:

Modelo utilizado na atividade 01 Revisão do modelo

O atributo Número De Funcionarios é um atributo derivado, ou seja, ele depende de outro atributo, relacionamento ou entidade para ter seu valor definido.

O instrutor explicou sobre os atributos derivados, na aula 02 entidades, na atividade 04 Entidades e atributos a partir do momento [6:10], o instrutor até chega a utilizar um exemplo bem semelhante a este do modelo:

Trecho da atividade 04 entidades e atriburos sobre a explicação de entidades derivadas

Na atividade seguinte, a atividade 02 Nomenclatura o instrutor explica qual o símbolo utilizamos para representar os atributos derivados:

explicação sobre o simbolos da atividade 02 nomenclaturas

Espero ter ajudado, qualquer nova dúvida é só falar e bons estudos!

Danielle.

Tentarei ser mais claro. Temos, cronologicamente, 3 aulas em questão:

1) https://cursos.alura.com.br/course/modelagem-banco-relacional-entidade-relacionamento-atributo/task/73025

3) https://cursos.alura.com.br/course/modelagem-banco-relacional-entidade-relacionamento-atributo/task/73027

5) https://cursos.alura.com.br/course/modelagem-banco-relacional-entidade-relacionamento-modelo-relacional/task/75139

1º PROBLEMA:

Comparando o mesmo esquema de relacionamento da aula 2 e 3 temos:

AULA 2: Relação Funcionário x Departamento é 1:N

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

AULA 3: Relação Funcionário x Departamento é N:1

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Considerando o que me foi explicado nessa dúvida (https://cursos.alura.com.br/forum/topico-duvida_02_modelagem-de-bancos-cardinalidade-171922) e baseado exclusivamente pelo formato A , a figura da aula 3 me parece a correta.

DÚVIDA: está ou não incoerente? Qual é o correto?

PROBLEMA 2

Nos módulos da aula 01 e 03 temos o tema sobre atributos. Principalmente no módulo da aula 3 é explicado sobre direcionamento de atributos:

A) de entidades e

B) de relacionamentos com suas entidades

Pelo o que entendi da aula 03, em relaçao ao item B, o direcionamento dos atributos deve considerar se o relacionamento é 1:1 ou 1:N / N:1.Com isso, o professor conclui na aula que o atributo de relacionamento e entidades deve SEMPRE estar na entidade que tiver o valor N de cardinalidade máxima.

DÚVIDA: considerando o problema 01 e o raciocínio descrito acima, onde o atributo "número de funcionários" deveria estar corretamente alocado?

CONCLUSÃO

Está IMPOSSÍVEL extrair algum conhecimento desse módulo de aula se TODA HORA há entendimento na entrelinhas que só está na cabeça do professor e de vocês que são técnicos.

A sensação que tenho é que estou pagando por conhecimento nenhum e tempo perdido.

Olá Thiago, peço desculpa pela demora em ti retornar, agradeço pelo detalhamento na sua explicação, assim consegui compreender melhor o que está gerando a sua dúvida.

Sobre as suas dúvidas:

DÚVIDA: está ou não incoerente? Qual é o correto?

Sim, está realmente incoerente, não apenas o relacionamento entre Funcionário e Departamento está com a cardinalidade invertida, mas sim, todos os relacionamentos estão. Porém os dois diagramas estão corretos, a primeira imagem, que foi retirada da aula 2, está utilizando a notação notação MIN/MAX ou forma B.

Diagrama ER apresentado pelo instrutor na aula 04 nomenclatura, na atividade 01 revisão do modelo ER, onde é utilizado a notação minima e maxima para representar a cardinalidade

Já a segunda imagem retirada da aula 3, está utilizando a notação de razão de cardinalidade/linha simples/linha dupla ou forma A.

Diagrama ER apresentado pelo instrutor na aula 02 Transformando um Diagrama ER em Modelo Relacional, na atividade 07 Relacionamentos binários 1:N, onde é utilizado a notação de razão de cardinalidade/linha simples/linha dupla para representar a cardinalidade

Por este motivo, você encontrou divergências nestes modelos. Então, você pode considerar apenas a imagem da aula 3, que é a forma A e que foi escolhida por você para trabalhar.

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.

Relacionamento entre funcionario trabalha em departamento, onde é utilizado a notação minima e maxima para representar a cardinalidade

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.

Relacionamento entre funcionario trabalha para departamento, onde é utilizado a notação de razão de cardinalidade/linha simples/linha dupla para representar a cardinalidade  utiliza

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.

Relacionamento entre funcionario trabalha para  departamento

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.

Danielle.

Infelizmente, compreendi NADA do que você explicou e começo a achar que estou entendo mais nada desse curso. Ficou muito confuso com a utilização de fotos invertidas e mil explicações pelas mais diversas formas. Podemos simplificar?! Só quero saber a forma correta de fazer.

Por favor, esqueça o que o professor fez em aula e não tente explica-lo.

OBS: Para responder as dúvidas abaixo, favor:

1) Usar dois exemplos: o exemplo do professor e um exemplo novo.

2) Progredir e descrever todo o passo a passo (com figuras), desde a montagem da cardinalidade pela forma A até o rearanjo dos atributos derivados e de relacionameto.

Minhas perguntas são:

1º PROBLEMA:

1) Qual a diferença entre atributo derivado (tal como o "numero de funcionários") e atributo de relaciomento (tal como o "data _inicio") ???

2) Como direcionar o atributo derivado e o atributo de relacionamento corretamente em um esquema?

2º PROBLEMA:

1) O atributo de relacionamento e de entidades deve SEMPRE estar na entidade que tiver o valor N da cardinalidade máxima? Sim ou não?

Thiago, a título de simplicidade, como pedido por você, vou responder às suas perguntas de forma direta, para que te norteie sobre como elaborar.

1) Qual a diferença entre atributo derivado (tal como o "numero de funcionários") e atributo de relacionamento (tal como o "data _inicio") ???

  • Atributos Derivados:

São atributos de entidades que o seu valor depende/deriva do valor de outra entidade/relacionamento para ser gerado.

  • Atributos Migrados:

São atributos de relacionamento que são migrados para as entidades, mas o seu valor não depende de uma entidade/relacionamento ou atributo para ser gerado.

2) Como direcionar o atributo derivado e o atributo de relacionamento corretamente em um esquema?

Atributos derivados, não seguem uma regra para serem representados, este atributo é ligado diretamente à entidade. Ele é definido normalmente como os outros atributos da entidade, definimos que ele é derivado, pelo fato de no momento de obter o seu valor, identificarmos que ele depende de outra entidade/relacionamento ou atributo.

Vamos utilizar como exemplo o atributo idade de uma entidade cliente. Quando vamos definir a idade de uma pessoa, precisamos saber inicialmente a sua data de nascimento, então a idade é considerada um atributo derivado, pois para gerar o seu valor, precisamos do valor do atributo data de nascimento.

Os atributos migrados são diretamente ligados a um relacionamento, então quando vamos realizar a migração do atributo de um relacionamento para uma entidade, ele é migrado para a entidade que recebe apenas uma ocorrência do relacionamento.

Vamos utilizar como exemplo o atributo data de início. Este atributo deve receber um único valor, então precisamos migra-lo para a entidade que recebe apenas uma ligação/ocorrência do relacionamento.

1) O atributo de relacionamento e de entidades deve SEMPRE estar na entidade que tiver o valor N da cardinalidade máxima? Sim ou não?

O atributo é migrado para entidade que recebe apenas uma ocorrência do relacionamento.Então, considerando apenas a forma A, que foi a escolhida por você para trabalhar. Desta forma, o atributo será migrado para o lado N da relação.

Tudo bem até aqui? Ficou mais claro suas dúvidas? Caso sim, farei o detalhamento posterior conforme pedido, onde deseja mais exemplos e passo a passo com figuras.

Danielle.

A)

Você poderia seguir a recomendação que coloquei anteriormente (figura abaixo em vermelho) ?

Peço isso com o objetivo de compreender melhor toda as dúvidas levantadas de uma vez e conjuntamente.

Infelizmente, preciso que desenhe e descreva todo o passo a passo do raciocínio em etapas. =/

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

B)

Somada a questão A:

1) não consegui visualizar sua explicação abaixo (marcação verde, rosa e azul) em um esquema hipotético.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

2) sua explicação abaixo (marcação azul), ao meu ver, ficou conflitante.

Motivo: você afirma na mensagem anterior que pela Forma A o atributo deve ir para o lado N da relacionamento. Entretanto, na mensagem abaixo (marcada em azul) é afrimado que deve ser migrado para a entidade que recebe apenas uma ligação.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Favor utilizar os exemplos para concretizar com suas explicações das marcações que coloquei acima.

Abraços.

  • Vamos utilizar como exemplo o relacionamento entre a entidade funcionário e a entidade departamento, vamos inserir no relacionamento trabalha para o atributo data entrada:

Temos a entidade funcionario e a entidade departamento ligadas ao relacionamento trabalha para, que tem um atributo data entrada ligado a ele

Agora vamos definir a cardinalidade:

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.

Temos a entidade funcionario com a cardinalidade minima definida como 1 representado ao lado de departamento e a entidade departamento com a cardinalidade minima definida como 1 representado ao lado de funcionário, ligadas ao relacionamento trabalha para, que tem um atributo data entrada ligado a ele

1) Um funcionário pode trabalhar em quantos departamentos? UM.

2) Um departamento pode ter quantos funcionários trabalhando? VÁRIOS.

Temos a entidade funcionario com a cardinalidade minima definida como 1 e a cardinalidade maxima definida como 1, representado ao lado de departamento e a entidade departamento com a cardinalidade minima definida como 1 e a cardinalidade maxima definida como N,representado ao lado de funcionário,  ligadas ao relacionamento trabalha para, que tem um atributo data entrada ligado a ele

Simplificando a cardinalidade:

Temos a entidade funcionario com a cardinalidade simplificada para o valor da cardinalidade maxima definida como 1, representado ao lado de departamento e a entidade departamento com a cardinalidade simplificada para o valor da cardinalidade maxima definida como N,representado ao lado de funcionário,  ligadas ao relacionamento trabalha para, que tem um atributo data entrada ligado a ele

Ao lermos novamente a cardinalidade:

  • Um funcionário trabalha apenas para um departamento, ou seja, recebe apenas uma ocorrência por vez do relacionamento.

  • Um departamento pode ter vários funcionários, ou seja, recebe várias ocorrências do relacionamento.

Sendo assim, migramos o atributo para o lado N da relação, para a entidade funcionário, pois esta entidade recebe apenas uma ocorrência por vez do relacionamento, pois o atributo Data entrada só irá armazenar um valor para cada funcionário.

Temos a entidade funcionario com a cardinalidade simplificada para o valor da cardinalidade maxima definida como 1, representado ao lado de departamento e a entidade departamento com a cardinalidade simplificada para o valor da cardinalidade maxima definida como N,representado ao lado de funcionário,  ligadas ao relacionamento trabalha para, onde o seu atributo data entrada foi migrado para a entidade funcionário

  • Vamos utilizar como segundo exemplo, um relacionamento entre a entidade curso e a entidade aluno, e o relacionamento tem, que possui o atributo data matrícula:

Temos a entidade curso e a entidade aluno ligadas ao relacionamento tem, e o atributo data matrícula está ligado a ele

Agora vamos definir a cardinalidade:

1) Um curso pode existir sem ter um aluno matriculado? NÃO. Pois, para um curso existir é preciso ter alunos matriculados.

2) Um aluno pode existir sem estar matriculado em um curso? NÃO. Pois, para o aluno existir, ele precisa estar matriculado em um curso.

Temos a entidade curso com a cardinalidade mínima definida como 1 representado ao lado da entidade aluno e a entidade aluno com a cardinalidade mínima definida como 1 representado ao lado da entidade curso, ligadas ao relacionamento tem,  e o atributo data matrícula está ligado a ele

1) Um curso pode ter quantos alunos matriculados? VÁRIOS.

2) Um aluno pode estar matriculado em quantos cursos? UM.

Temos a entidade curso com a cardinalidade mínima definida como 1 e a cardinalidade máxima definida como N, representado ao lado de Aluno e a entidade Aluno com a cardinalidade mínima definida como 1 e a cardinalidade máxima definida como 1,representado ao lado de Curso, ligadas ao relacionamento tem, que tem um atributo data matrícula ligado a ele

Simplificando a cardinalidade:

Temos a entidade curso com a cardinalidade simplificada para o valor da cardinalidade máxima definida como N, representado ao lado de Aluno e a entidade aluno com a cardinalidade simplificada para o valor da cardinalidade máxima definida como 1,representado ao lado de curso, ligadas ao relacionamento tem, que tem um atributo data matrícula ligado a ele

Ao lermos novamente a cardinalidade:

  • Um curso pode ter vários alunos matriculados, ou seja, recebe várias ocorrências do relacionamento.

  • Um aluno pode estar matriculado em um único curso, ou seja, recebe apenas uma ocorrência por vez do relacionamento.

Sendo assim, migramos mais uma vez o atributo para o lado N da relação, para a entidade aluno, pois esta entidade recebe apenas uma ocorrência por vez do relacionamento, pois o atributo data matricula, recebe apenas um valor para cada aluno.

Temos a entidade curso com a cardinalidade simplificada para o valor da cardinalidade máxima definida como N, representado ao lado de aluno e a entidade aluno com a cardinalidade simplificada para o valor da cardinalidade máxima definida como 1,representado ao lado de curso,  ligadas ao relacionamento tem, onde o seu atributo data matrícula foi migrado para a entidade aluno

Fique a vontade para postar suas dúvidas aqui no fórum, que terei o prazer em te ajudar.

Fico à disposição

Danielle.

Seus exemplos acima ficaram top e bateram todos com o que tinha entendido. Os desenhos passo a passo me ajudam muito! Teagradeço muito.

Entretanto, fiquei com uma duvida:

1) Os exemplos acima foram feitos com atributos migrados, certo? Se sim, como ficaria com atributo derivado os exemplos?

OBS: Tenho ainda o link abaixo em aberto há tempos. Se puder ver, agradeço.

https://cursos.alura.com.br/forum/topico-duvida_01_consultas-avancadas-sql-server-2017-04-visao-174670

Não existe uma regra a ser seguida para os atributos derivados, eles são ligados diretamente à entidade, assim como os atributos simples, compostos e multivalorados. Da mesma forma que identificamos se um atributo é simples ou composto, também identificamos se ele é derivado.

Vamos utilizar como exemplo a entidade cliente, ao levantar as regras de negócio, identificamos que teríamos a entidade cliente com os seguintes atributos: Nome, CPF, idade, data de nascimento, endereço e telefone.

Depois de levantarmos os atributos desta entidade, passamos a identificar os tipos de cada um, como por exemplo:

  • O atributo CPF é um atributo simples, pois ele não pode ser dividido em partes menores para formar outros atributos, ele é indivisível.

  • O atributo endereço é um atributo composto, pois ele pode ser subdividido em atributos menores, como, por exemplo, cidade, estado,rua, CEP.

  • O atributo telefone é um atributo multivalorado, pois um cliente pode ter um ou vários telefones.

  • O atributo idade é um atributo derivado, pois podemos determinar o valor atual do atributo idade através do valor do atributo data de nascimento.

Representando a entidade cliente e os seus atributos no diagrama:

Entidade cliente, com os atributos simples CPF, NOME e Data de nascimento, atributo composto Endereço, atributo multivalorado telefone e atributo derivado idade

Identificamos e tratamos o atributo derivado como os outros atributos, pois ele também é um atributo da entidade, assim como os atributos simples, compostos e multivalorados.

A título de curiosidade, caso queria ler um pouco a respeito de MER (Modelo Entidade Relacionamento) e DER (Diagrama Entidade-Relacionamento), entidades e atributos, recomendo a leitura do artigo MER e DER: Definições, Banco de Dados e Exemplos que escrevi para o blog da Alura.

Fico à disposição e bons estudos!