olá, nesse artigo você verá um pouco sobre modelagem de banco de dados e sua implementação em app real.
Por que modelar?
Primeiramente idealmente antes de implementar qualquer solução deve existir um momento de reflexão sobre ela, sobre as possibilidades e a partir dessa reflexão desenhar um solução -- Documentar -- só depois ir implementa com a solução já descrita.
Descrevendo o contexto
Na faculdade uma das atividades que temos de banco de dados é pegar uma descrição de um sistema e a partir dessa descrição modelar um banco de dados, aqui antes de modelar descreverei o sistema.
- Descrição
O sistema tem o foco em empréstimo de computador, devem ser armazenados os dados de alunos, computadores, disciplina e empréstimo.
Dos alunos tem que deve ser guardado o número de matricula, nome do aluno e disciplina da qual faz parte, da maquina deve ser guardado o número de tombamento, da disciplina deve ser armazenado um identificador, o nome da disciplina, a hora de inicio e a hora de fim, do empréstimo dever armazenado o aluno, a máquina, a disciplina, a hora de empréstimo e a hora de devolução.
Os alunos podem fazer parte de uma ou mais disciplinas ao mesmo tempo.
DER - Diagrama entidade-relacionamento
Uma das formas de representar os dados é como diagrama entidade-relacionamento.
Considerando a descrição o diagrama fica assim:
obs: considerei chamar os computadores de "machine" para deixar mais geral. Tendo em vista que esse sistema pode ser usado para controlar outros tipos de dispositivo.
Onde temos três entidades e dois relacionamentos.
Entidades: Student, Subject, Machine
Relações:
Student com Subject -> is enrroled in
Student com Machine -> to loan
A partir do DER é possível criar as tabelas.
Convertendo DER para modelo relacional
Ok, temos o DER, sabemos quais são as entidades as relações e as cardinalidades, agora é necessário converter para o modelo relacional que é usado por banco de dados relacionais.
As entidades naturalmente são convertidas para tabelas e relações muitos para muitos também se tornam tabelas ficando assim:
obs:
PK = chave primaria (primary key)
FK = chave estrangeira (foreign key)
Top comments (0)