MER e DER: Definições, Banco de Dados e Exemplos
Introdução
Em um projeto de banco de dados temos várias formas de planejar sua criação, seu design e organizar como ele será modelado. Sabe quando você pega um banco de alunos, com matrículas, nomes e cursos? Então, o schema do banco de dados, muitas vezes, foi modelado não só por ferramentas ORM, mas por softwares que fazem esse tipo de desenho específico, o Modelo Entidade Relacional, como o abaixo:
Neste artigo, vamos entender um pouco sobre o MER (Modelo Entidade Relacionamento) e DER (Diagrama Entidade-Relacionamento), que são o ponto de partida depois que temos os requisitos do projeto em mãos, vamos entender melhor como transformar os requisitos (objetos do mundo real) em um esqueleto do banco de dados.
O que é o MER ?
O MER (Modelo Entidade Relacionamento) é utilizado para descrever os objetos do mundo real através de entidades, com suas propriedades que são os atributos e os seus relacionamentos.
Mas o que são entidades?
As entidades representam um objeto do mundo real e que possuem uma existência independente, como: pessoas, empresa, carro, casa, entre outras coisas que podem ser representadas por uma entidade. Podemos considerar que existem três tipos de entidades, as entidades fortes, que não dependem de outras entidades para existirem.
Já as entidades fracas, dependem de outras entidades para existir, ou seja, elas não possuem existência própria ou não possuem atributos próprios para identificação, dependendo assim, dos atributos chave das entidades fortes. E por último as entidades associativas, que são utilizadas quando existe a necessidade de associar uma entidade a um relacionamento.
E o que são atributos?
Os atributos descrevem as propriedades das entidades. A entidade pessoa
pode ter como atributo o nome
, data de nascimento
, idade
, endereço
. Como as entidades, também existem alguns tipos de atributos, que são: os atributos simples, atributos compostos, atributos multivalorados, atributos derivados e atributos chave. Agora veremos cada um deles:
Atributo Simples
Atributos simples são indivisíveis, ou seja, são atributos atômicos, um exemplo seria o atributo CPF
, ele não pode ser dividido em partes menores para formar outros atributos, ele é indivisível.
Atributo Composto
Atributos Compostos podem ser divididos em partes menores, que representam outros atributos, como o atributo endereço, ele pode ser subdividido em atributos menores, como, por exemplo, cidade
, estado
, rua
, CEP
.
Atributo Multivalorado
Um atributo Multivalorado pode ter um ou N (vários) valores associados a ele, como, por exemplo, o atributo telefone de um cliente, ele pode ter um ou vários telefones.
Atributo Derivado
Atributos derivados dependem de outro atributo ou até mesmo outra entidade para existir, como, por exemplo, o atributo idade e o atributo data de nascimento, para descobrimos a idade de uma pessoa precisamos da sua data de nascimento, então, consideramos o atributo idade como derivado do atributo data de nascimento.
Atributo Chave
O atributo chave é utilizado para identificar de forma única uma entidade, ou seja, os valores associados a esse atributo são distintos dentre o conjunto de entidades. Como exemplo, podemos utilizar o CPF
de uma pessoa, ele é único e pode ser utilizado como atributo chave, já que cada pessoa recebe um número de CPF
distinto.
E os relacionamentos?
As entidades podem se relacionar entre si, havendo assim uma associação, que conhecemos como relacionamento, que normalmente são representados por verbos. Como, por exemplo, “uma pessoa trabalha para uma empresa”. Também podemos classificar os relacionamentos em três tipos:
- Relacionamento UM PARA UM (1:1): Onde uma
entidade X
se associa unicamente a uma ocorrência daentidade Y
. - Relacionamento UM PARA MUITOS (1:N): Onde uma
entidade X
se associa a várias ocorrências daentidade Y
, porém, aentidade Y
pode apenas se associar a uma ocorrência daentidade X
. - Relacionamento MUITOS PARA MUITOS (N:N): Onde a
entidade X
o pode se associar a várias ocorrências daentidade Y
e aentidade Y
pode também se associar a várias ocorrências daentidade X
.
O DER (Diagrama Entidade-Relacionamento)
O DER (Diagrama Entidade-Relacionamento) é utilizado para representar em forma gráfica o que foi descrito no MER (Modelo Entidade Relacionamento).
Praticando um pouco
Agora vamos praticar um pouco, para isso, pense num cenário fictício em que fomos contratados por uma instituição, e a mesma, precisa ter um sistema para controle de cursos, sabemos que precisamos ter informações dos alunos, dos cursos e de professores. De cada aluno, será necessário armazenar: seu nome, matrícula, data de nascimento e idade, de cada curso será necessário armazenar a descrição e quantidade de alunos inscritos, e do professor, o seu nome.
O primeiro passo a dar é identificar e descrever as entidades, os atributos:
- Nesse cenário podemos identificar como entidades:
aluno
,curso
eprofessor
. - Portanto, os atributos da entidade aluno serão
nome
,data de nascimento
eidade
. - Nesse caso, a entidade da entidade curso serão
descrição
equantidade de alunos inscritos
. - A entidade Professor tem como atributo único o
nome
. Assim podemos representar de forma gráfica as entidades e os atributos identificados, como na imagem abaixo:
Após identificar e descrever as entidades e os atributos, agora é possível identificar os relacionamentos existentes.
- Relacionamento entre Aluno e Curso
Um curso pode ter vários alunos inscritos e um aluno pode estar inscrito em um curso.
- Relacionamento entre Professor e Curso
Um curso pode ser coordenado por um professor e um professor pode coordenar um curso.
- Relacionamento entre Professor e Aluno
Um professor pode orientar vários alunos e um aluno pode ser orientado por um professor.
A representação final do Diagrama ficará da seguinte forma:
Conclusão
Entendemos neste artigo, que para ter um bom projeto de banco de dados é necessário descrever de forma clara os objetos do projeto (MER), para que seja possível representar, da forma mais próxima da realidade, os requisitos levantados (DER).
Quer aprender como elaborar um projeto de banco de dados, veja a nossa Formação de Modelagem de dados.