MER - mds-ipe-roxo/TBL GitHub Wiki
Modelo MER
O Modelo Entidade Relacionamento (também chamado Modelo ER, ou simplesmente MER), como o nome sugere, é um modelo conceitual utilizado na Engenharia de Software para descrever os objetos (entidades) envolvidos em um domínio de negócios, com suas características (atributos) e como elas se relacionam entre si (relacionamentos).
Em geral, este modelo representa de forma abstrata a estrutura que possuirá o banco de dados da aplicação. Obviamente, o banco de dados poderá conter várias outras entidades, tais como chaves e tabelas intermediárias, que podem só fazer sentido no contexto de bases de dados relacionais.
A partir das informações obtidas, esse modelo conceitual será utilizado para orientar o desenvolvimento propriamente dito, fornecendo informações sobre os aspectos relacionados ao domínio do projeto em questão. [devmedia]
Entidades e Atributos
Tags
Atributo | Tipo | Característica | Descrição |
---|---|---|---|
title | string | obrigatório | Título da tag |
slug | string | obrigatório | Usado para inserir URLs nomeadas |
News
Atributo | Tipo | Característica | Descrição |
---|---|---|---|
title | string | obrigatório | Título da notícia |
image | Image | opcional | Imagem da notícia |
created_at | date | automático | Data de criação da noticia |
link | string | opcional | Link da notícia |
content | string | obrigatório | corpo da notícia |
tags | List<Tag> | opcional | tags da notícia |
slug | string | obrigatório | Usado para inserir URLs nomeadas |
User:
Atributo | Tipo | Característica | Descrição |
---|---|---|---|
username | string | obrigatório, único | Nome de usuário para identificação do mesmo, pode ser usado para logar |
string | obrigatório, único | Email que pode ser usado como username do usuário | |
name | string | obrigatório | Nome completo do usuário |
institution | string | opcional | Universidade ou Escola que o usuário está inserido |
course | string | opcional | Curso da universidade ou período escolar |
photo | image | opcional | Foto do usuário |
is_teacher | boolean | obrigatório | Verifica se o usuário é professor ou aluno |
last_login | date | automático | Ultimo momento que o usuário logou |
is_active | boolean | obrigatório | Verifica se o usuário está ativo no sistema |
is_staff | boolean | obrigatório | Verifica se o usuário é super administrador |
created_at | date | automático | Data de criação da conta |
updated_at | date | automático | Data de modificação da informações da conta |
Discipline:
Atributo | Tipo | Característica | Descrição |
---|---|---|---|
title | string | obrigatório | Título da disciplina |
description | string | opcional | Descrição da disciplina |
course | string | obrigatório | Curso na qual pertence a disciplina |
slug | string | obrigatório | Usado para inserir URLs nomeadas |
classroom | string | obrigatório | Turmas da disciplina |
password | string | 30 caracteres, optativa | Senha para entrar na disciplina |
students_limit | inteiro positivo | valor máximo 60 e minimo 5, padrão 0 e obrigatório | Limite de estudantes na turma |
monitors_limit | inteiro positivo | valor máximo 5 e minimo 0, padrão 0 e obrigatório | Limite de monitores na turma |
is_closed | booleano | padrão falso | Verifica se a disciplina ta fechada ou não |
was_group_prodived | booleano | padrão falso | Disponibiliza os grupos para os alunos verem |
teacher | User | obrigatório | Professor da disciplina |
students | List<User> | obrigatório | Lista de estudantes da disciplina |
monitors | List<User> | obrigatório | Lista de monitores da disciplina |
created_at | date | automático | Data de criação da disciplina |
updated_at | date | automático | Data de modificação da disciplina |
Attendence:
Atributo | Tipo | Característica | Descrição |
---|---|---|---|
discipline | Discipline | obrigatório | Disciplina na qual a chamada pertence |
date | Date | obrigatório | Data da aula |
students | List<User> | opcional | Lista de estudantes que compareceram à aula |
AttendenceRate:
Atributo | Tipo | Característica | Descrição |
---|---|---|---|
discipline | Discipline | obrigatório | Disciplina na qual a chamada pertence |
student | User | obrigatório | Estudante da disciplina |
attendance_rate | float | obrigatório | Taxa de comparecimento em porcentagem |
times_attended | int | obrigatório | Quantidade de comparecimentos |
times_missed | int | obrigatório | Quantidade de faltas |
Group:
Atributo | Tipo | Característica | Descrição |
---|---|---|---|
title | string | obrigatório | Título do grupo |
discipline | Discipline | obrigatório | Disciplina na qual o grupo pertence |
students | List<User> | obrigatório | Lista de estudantes que faz parte do grupo |
students_limit | inteiro positivo | padrão 0 e obrigatório | Limite de estudantes no grupo |
created_at | date | automático | Data de criação do grupo |
updated_at | date | automático | Data de modificação do grupo |
FinalGrade:
Atributo | Tipo | Característica | Descrição |
---|---|---|---|
discipline | Discipline | obrigatório | Disciplina que a nota pertence |
student | User | obrigatório | Aluno dono da nota. |
created_at | date | automático | Data de criação da nota |
updated_at | date | automático | Data de modificação da nota |
File:
Atributo | Tipo | Característica | Descrição |
---|---|---|---|
discipline | Discipline | obrigatorio | Disciplina na qual o TBL pertence. |
title | string | obrigatório | Título do arquivo |
description | string | obrigatório | Descrição do arquivo |
extension | string | obrigatório | Extensão do arquivo, PDF, PPT, ... |
archive | File | obrigatório | Arquivo |
created_at | date | automático | Data de criação do arquivo |
updated_at | date | automático | Data de modificação do arquivo |
File:
DisciplineFile:TBLSession
Atributo | Tipo | Característica | Descrição |
---|---|---|---|
discipline | Discipline | obrigatorio | Disciplina na qual o TBL pertence. |
title | string | obrigatório | Título da sessão de TBL |
description | string | obrigatório | Descrição da sessão de TBL |
is_closed | booleano | padrão falso | Verifica se a sessão ta fechada ou não |
irat_datetime | datetime | obrigatório | Data e hora que será disponibilizado a avaliação iRAT |
irat_weight | inteiro positivo | opcional, padrão 3 | Peso da avaliação iRAT |
irat_duration | inteiro positivo | opcional, padrão 30 | Duração da avaliação iRAT em minutos |
grat_datetime | datetime | obrigatório | Data e hora que será disponibilizado a avaliação gRAT |
grat_weight | inteiro positivo | opcional, padrão 2 | Peso da avaliação gRAT |
grat_duration | inteiro positivo | opcional, padrão 30 | Duração da avaliação gRAT em minutos |
practical_available | boolean | padrão false | Verifica se a avaliação prática está visivel pelos alunos |
practical_description | string | obrigatório | Descrição da avaliação prática |
practical_weight | inteiro positivo | opcional, padrão 4 | Peso da avaliação prática |
peer_review_available | boolean | padrão false | Verifica se a avaliação em pares está visivel pelos alunos |
peer_review_weight | inteiro positivo | opcional, padrão 1 | Peso da avaliação em pares |
created_at | date | automático | Data de criação da sessão de TBL |
updated_at | date | automático | Data de modificação da sessão de TBL |
Grade:
Atributo | Tipo | Característica | Descrição |
---|---|---|---|
session | Session | obrigatório | Sessão TBL que a nota pertence |
student | User | obrigatório | Aluno dono da nota. |
group | Group | obrigatorio | Grupo a qual o estudante pertence. |
iRAT | float | automático, padrão 0 | Nota da avaliação individual do aluno |
gRAT | float | automático, padrão 0 | Nota da avaliação em grupo do aluno |
practical | float | automático, padrão 0 | Nota da avaliação prática |
peer_review | float | automático | Nota da avaliação em pares |
created_at | date | automático | Data de criação da nota |
updated_at | date | automático | Data de modificação da nota |
File:
SessionFile:Atributo | Tipo | Característica | Descrição |
---|---|---|---|
session | Session | obrigatório | Sessão TBL que o arquivo pertence |
Question:
Atributo | Tipo | Característica | Descrição |
---|---|---|---|
session | Session | obrigatório | Sessão TBL que a questão pertence |
title | string | obrigatório | Título da questão |
level | string | obrigatório | Nível de dificuldade da questão |
topic | string | obrigatório | Tópico da questão |
is_exercise | boolean | padrão true | Verifica se a questão é um exercício ou uma avaliação |
created_at | date | automático | Data de criação da questão |
updated_at | date | automático | Data de modificação da questão |
Alternative:
Atributo | Tipo | Característica | Descrição |
---|---|---|---|
question | Question | obrigatório | Questão na qual a alternativa pertence |
title | string | obrigatório | Título da alternativa |
is_correct | boolean | padrão false | Verifica se a alternativa está correta |
created_at | date | automático | Data de criação da alternativa |
updated_at | date | automático | Data de modificação da alternativa |
Submission:
Atributo | Tipo | Característica | Descrição |
---|---|---|---|
correct_alternative | string | obrigatório | Título da alternativa correta |
score | inteiro positivo | obrigatório, padrao 0 | Pontuação da alternativa |
created_at | date | automático | Data de criação da submissão |
Submission:
ExerciseSubmission:Atributo | Tipo | Característica | Descrição |
---|---|---|---|
session | Session | obrigatório | Sessão TBL que a submissão foi realizada |
question | Question | obrigatório | Questão da lista de exercicio respondida |
user | User | obrigatório | Usuário que submeteu a questão |
Submission:
IRATSubmission:Atributo | Tipo | Característica | Descrição |
---|---|---|---|
session | Session | obrigatório | Sessão TBL que a submissão foi realizada |
question | Question | obrigatório | Questão da avaliação iRAT respondida |
user | User | obrigatório | Estudante que submeteu a questão |
Submission:
GRATSubmission:Atributo | Tipo | Característica | Descrição |
---|---|---|---|
session | Session | obrigatório | Sessão TBL que a submissão foi realizada |
question | Question | obrigatório | Questão da avaliação gRAT respondida |
user | User | obrigatório | Estudante do grupo que submeteu a questão |
group | Group | obrigatório | Grupo que submeteu a questão |
Relacionamentos entre classes
NEWS tem TAGS:
- Uma noticia pode ter várias tags, e uma tag pode estar em várias noticias
- Cardinalidade: NxM
DISCIPLINE tem USER (Professor):
- Uma disciplina tem um professor, e um professor pode ter várias disciplinas.
- Cardinalidade: Nx1
DISCIPLINE tem USER (Estudante):
- Uma disciplina pode ter vários estudantes, e um estudante pode estar em várias disciplinas.
- Cardinalidade: NxM
DISCIPLINE tem USER (Monitor):
- Uma disciplina pode ter vários monitores, e um monitor pode estar em várias disciplinas.
- Cardinalidade: NxM
ATTENDENCE tem USER (Estudante):
- Uma chamada pode ter vários estudantes, e um estudante pode estar em várias chamadas.
- Cardinalidade: NxM
ATTENDENCE pertence DISCIPLINE:
- Uma chamada pertencer a uma disciplina, porém uma disciplina poder ter várias chamadas.
- Cardinalidade: Nx1
ATTENDENCERATE pertence USER (Estudante):
- Uma taxa de comparecimento pertence a um estudante, e um estudante pode ter várias taxas de comparecimento.
- Cardinalidade: Nx1
ATTENDENCERATE pertence DISCIPLINE:
- Uma taxa de comparecimento pertence a uma disciplina, porém uma disciplina poder ter várias taxa de comparecimento.
- Cardinalidade: Nx1
GROUP tem USER (Estudante):
- Um grupo pode ter vários estudantes, e um estudante pode estar em vários grupos.
- Cardinalidade: NxM
GROUP pertence DISCIPLINE:
- Um grupo pertencer a uma disciplina, porém uma disciplina poder ter vários grupos.
- Cardinalidade: Nx1
DISCIPLINEFILE pertence DISCIPLINE:
- Um arquivo pertencer a uma disciplina, porém uma disciplina poder ter vários arquivos.
- Cardinalidade: Nx1
FINALGRADE pertence DISCIPLINE:
- Uma nota pertencer a uma disciplina, porém uma disciplina poder ter vários notas.
- Cardinalidade: Nx1
FINALGRADE pertence USER (Estudante):
- Uma nota pertencer a um estudante, porém um estudante poder ter várias notas.
- Cardinalidade: Nx1
TBLSESSION pertence DISCIPLINE:
- Uma sessão de TBL pertencer a uma disciplina, porém uma disciplina poder ter várias sessões de TBL.
- Cardinalidade: Nx1
SESSIONFILE pertence TBLSESSION:
- Um arquivo pertencer a uma sessão de TBL, porém uma sessão de TBL poder ter vários arquivos.
- Cardinalidade: Nx1
GRADE pertence TBLSESSION:
- Um nota pertencer a uma sessão de TBL, porém uma sessão de TBL poder ter várias notas.
- Cardinalidade: Nx1
GRADE pertence USER (Estudante):
- Um nota pertencer a um estudante, porém um estudante poder ter várias notas.
- Cardinalidade: Nx1
GRADE pertence GROUP:
- Um nota pertencer a uma grupo, porém uma grupo poder ter várias notas.
- Cardinalidade: Nx1
QUESTION pertence TBLSESSION:
- Um questão pertencer a sessão de TBL, porém uma sessão de TBL poder ter várias questões.
- Cardinalidade: Nx1
ALTERNATIVE pertence QUESTION:
- Uma alternativa pertencer a uma questão, porém uma questão tem 4 alternativas.
- Cardinalidade: 4x1
SUBMISSION pertence TBLSESSION:
- Uma submissão (exercise, iRAT e gRAT) pertencer a sessão de TBL, porém uma sessão de TBL poder ter várias submissões.
- Cardinalidade: Nx1
SUBMISSION pertence QUESTION:
- Uma submissão (exercise, iRAT e gRAT) pertence a uma questão, porém uma questão poder ter várias submissões.
- Cardinalidade: Nx1
SUBMISSION pertence USER:
- Uma submissão (exercise, iRAT e gRAT) pertence a um usuário, porém um usuário poder ter várias submissões.
- Cardinalidade: Nx1
SUBMISSION pertence GROUP:
- Uma submissão (gRAT) pertence a um grupo, porém um grupo poder ter várias submissões.
- Cardinalidade: Nx1
Referências
Istar Wiki. Disponível em: http://istar.rwth-aachen.de/tiki-view_articles.php Acesso em 17 de abril de 2017.