Ir para o conteúdo

Modelo entidade relacionamento
Iniciativa Extra

Introdução

  O Modelo de Entidade relacionamento também conhecido como MER, é um modelo conceitual usado para descrever as entidades em um domínio de negócio, assim listando suas características e como elas se relacionam entre si. No geral esse modelo é utilizado para representar uma forma abstrata da estrutura que possuirá o banco de dados da aplicação. Assim, posteriormente conseguimos construir um artefato DER com as relações criadas aqui no MER.

  "O MER baseia-se na observação de que o mundo pode ser percebido como um conjunto de objetos, denominados entidades, e pelo conjunto dos relacionamentos entre essas entidades. As entidades são caracterizadas por um conjunto de atributos" (MAIA, 2013; Alvarenga, 2013)[4]

Metodologia

  Para realizar essa especificação inicial do modelo, primeiramente foram definidas todas as entidades mais concretas que estarão presentes no banco de dados. Dessa forma, para cada entidade, foi preenchida uma tabela com as seguintes colunas:

  • Atributos: todos os atributos necessários para representar uma instância da entidade;
  • Propriedades: o que caracteriza aquele atributo, podendo ser uma chave primária, estrangeira, um atributo obrigatório ou opcional;
  • Tipo: basicamente se refere ao tipo de dado do atributo em questão;
  • Descrição: uma breve explicação sobre o que o atributo representa.

  Feito isso, foram descritas e analisadas as relações entre as entidades e suas respectivas cardinalidades. Sendo assim, ao final foi possível concluir sobre a modelagem do banco de dados de forma que possibilite uma representação gráfica coerente com o escopo do projeto e as necessidades do desenvolvimento.

Entidades

  A seguir estão descritas as entidades conforme citado anteriormente. Os nomes das entidades e seus atributos estarão em Inglês no padrão CamelCase para já iniciar e introduzir uma padronização do que será implementado no código.

Guardian

Atributos Propriedade Tipo Descrição
IdGuardian Chave primária Inteiro Identificação do responsável
Name Obrigatório String Nome do responsável
CPF Obrigatório String CPF do responsável
Email Obrigatório String Email do responsável
Password Obrigatório String Senha do responsável
Address Obrigatório String Endereço do responsável

Adm

Atributos Propriedade Tipo Descrição
IdAdm Chave primária Inteiro Identificação do administrador
Name Obrigatório String Nome do administrador
CPF Obrigatório String CPF do administrador
Email Obrigatório String Email do administrador
Password Obrigatório String Senha do administrador
Registration Obrigatório Inteiro Registro do administrador

Teacher

Atributos Propriedade Tipo Descrição
IdTeacher Chave primária Inteiro Identificação do professor
Name Obrigatório String Nome do professor
CPF Obrigatório String CPF do professor
Email Obrigatório String Email do professor
Password Obrigatório String Senha do professor
Registration Obrigatório Inteiro Registro do professor

Child

Atributos Propriedade Tipo Descrição
IdChild Chave primária Inteiro Identificação da criança
IdResponsavel Chave estrangeira Inteiro Identificação do responsável
IdClass Chave estrangeira Inteiro Identificação da turma
Name Obrigatório String Nome da criança
Registration Obrigatório Inteiro Registro da criança

Class

Atributos Propriedade Tipo Descrição
IdClass Chave primária Inteiro Identificação da turma
IdTeacher Chave estrangeira Inteiro Identificação do professor
IdChild Chave estrangeira Inteiro Identificação da criança
Code Obrigatório String Codigo da turma
Capacity Obrigatório Inteiro Capacidade da turma

Event

Atributos Propriedade Tipo Descrição
IdEvent Chave primária Inteiro Identificação do evento
IdAdm Chave estrangeira Inteiro Identificação do administrador
IdClass Chave estrangeira Inteiro Identificação da turma
Description Obrigatório String Descrição do evento
Title Obrigatório String Título do evento
Date Obrigatório Date Data do evento

Activity

Atributos Propriedade Tipo Descrição
IdActivity Chave primária Inteiro Identificação da atividade
IdTeacher Chave estrangeira Inteiro Identificação do professor
Title Obrigatório String Título da atividade
Description Obrigatório String Descrição da atividade
Date Obrigatório Date Data da atividade

Anotation

Atributos Propriedade Tipo Descrição
IdAnotation Chave primária Inteiro Identificação da anotação
IdTeacher Chave estrangeira Inteiro Identificação do professor
IdChild Chave estrangeira Inteiro Identificação da criança
Title Obrigatório String Título da anotação
Description Obrigatório String Descrição da anotação

Board

Atributos Propriedade Tipo Descrição
IdBoard Chave primária Inteiro Identificação do mural
IdChild Chave estrangeira Inteiro Identificação da criança
IdAnotation Chave estrangeira Inteiro Identificação da anotação
IdActivity Chave estrangeira Inteiro Identificação da atividade
IdEvent Chave estranfeira Inteiro Identificação do evento

EC

Atributos Propriedade Tipo Descrição
IdEC Chave primária Inteiro Identificação do centro educacional
IdAdm Chave estrangeira Inteiro Identificação do administrador
IdTeacher Chave estrangeira Inteiro Identificação do professor
IdClass Chave estrangeira Inteiro Identificação da turma
Name Obrigatório String Nome do centro educacional
Adress Obrigatório String Endereço do centro educacional
Description Obrigatório String Descrição do centro educacional

Report

Atributos Propriedade Tipo Descrição
IdReport Chave primária Inteiro Identificação do relatório
IdAdm Chave estrangeira Inteiro Identificação do administrador
Title Obrigatório String Título do relatório
Description Obrigatório String Descriçaõ do relatório

Chat

Atributos Propriedade Tipo Descrição
IdChat Chave primária Inteiro Identificação do chat
IdGuardian Chave estrangeira Inteiro Identificação do responsável
IdRecipiente Chave estrangeira Inteiro Identificação do administrador ou do professor
IdMensage Chave estrangeira Inteiro Identificador das mensagens do chat

Mensage

Atributos Propriedade Tipo Descrição
IdMensage Chave primária Inteiro Identificador das mensagens
IdChat Chave estrangeira Inteiro Identificação do chat
SentBy Chave estrangeira Inteiro Identificador do usuário que enviou a mensagem
Body Obrigatório String Corpo do texto da mensagem
Date Obrgatório Data Data de envio

Presence

Atributos Propriedade Tipo Descrição
IdPresence Chave primária Inteiro Identificador da presença
IdClass Chave estrangeira Inteiro Identificação da turma
IdChild Chave estrangeira Inteiro Identificação da criança
Date Obrigatório Data Data da presença ou falta da criança
Status Obrigatório Integer Presente = 1, falta=0

Relacionamentos

  1. RESPONSÁVEL -- possui -- CRIANÇA: Um responsável possui crianças e uma criança está atrelada a responsáveis.
    (Cardinalidade: n:m)

  2. ADMINISTRADOR -- registra -- TURMA: Um administrador registra turmas e uma turma é registrada por uma administrador.
    (Cardinalidade: 1:n)

  3. ADMINISTRADOR -- gera -- RELATÓRIO: Um administrador gera relatórios e um relatório é gerado por um administrador.
    (Cardinalidade: 1:n)

  4. CENTRO EDUCACIONAL -- possui -- ADMINISTRADOR: O centro educacional possui ao menos um administrador e os administradores estão atrelados a um centro educacional.
    (Cardinalidade: 1:n)

  5. CENTRO EDUCACIONAL -- possui -- PROFESSOR: O centro educacional possui professores e os professores estão atrelados a um centro educacional.
    (Cardinalidade: 1:n)

  6. CENTRO EDUCACIONAL -- possui -- TURMA: O centro educacional possui turmas e as turmas possuem um centro educacional.
    (Cardinalidade: 1:n)

  7. PROFESSOR -- cria -- ATIVIDADE: Um professor cria atividades e uma atividade é criada por um professor.
    (Cardinalidade: 1:n)

  8. TURMA -- contém-- CRIANÇA: Uma turma contém crianças e uma criança está contida em uma turma.
    (Cardinalidade: 1:n)

  9. TURMA -- contém -- PROFESSOR: Uma turma contém professores e os professores estão contidos em turmas.
    (Cardinalidade: n:m)

  10. TURMA -- participa -- EVENTO: Uma turma participa de eventos e um evento contém a participação das turmas.
    (Cardinalidade: n:m)

  11. TURMA -- aplica -- ATIVIDADE: Uma turma aplica atividades e uma atividade é aplicada nas turmas.
    (Cardinalidade: n:m)

  12. CRIANÇA -- possui -- MURAL : Uma criança possui um mural e um mural está atrelado a uma criança.
    (Cardinalidade: 1:1)

  13. MURAL -- apresenta -- EVENTO: Um mural mostra os últimos eventos para a turma da criança e um evento está presente nos murais das crianças das turmas contempladas.
    (Cardinalidade: n:m)

  14. MURAL -- apresenta -- ATIVIDADE: Um mural mostra as últimas atividades da turma da criança e uma atividade está presente nos murais das crianças.
    (Cardinalidade: n:m)

  15. MURAL -- apresenta -- ANOTAÇÃO: Um mural mostra as últimas anotações da criança e uma anotação está presente em um mural.
    (Cardinalidade: 1:n)

  16. CHAT -- contém -- MENSAGEM: Um chat contém mensagens e as mensagens estão contidas em um chat.
    (Cardinalidade: 1:n)

Conclusão

  Tendo em vista as entidades e os relacionamentos aqui demonstrados, pode-se notar a necessidade da criação de tabelas associativas para melhor representar as relações de cardinalidade n:m apresentados nos relacionamentos 1, 9, 10, 11, 13 e 14. Além disso, nota-se que, pela cardinalidade do relacionamento 12, que a entidade Mural deve ser acoplada a entidade criança, tendo seus atributos e relacionamentos transferidos.

Bibliografia

Versionamento

Versão Data Modificação Autor
0.1 18/08/2021 Definição de entidades e relacionamentos Daniel Porto, Francisco Emanoel
1.0 18/08/2021 Abertura do documento e adição da Metodologia, das entidades, dos relacionamentos e da conclusão Daniel Porto, Francisco Emanoel
1.1 19/08/2021 Adicionando descrição das entidades e a introdução do documento Daniel Porto, Francisco Emanoel
1.2 20/08/2021 Adição dos léxicos Daniel Porto
1.3 20/08/2021 Adição das entidades chat, mensage, presence e seus relacionamentos Daniel Porto
1.4 21/08/2021 Revisão por pares Mateus O. Patrício, Edson Soares
1.5 21/09/2021 Revisão segundo feedback da professora (entrega 2) Edson Soares, Nilo Medonça