# Modelo entidade relacionamento

Em engenharia de software, um modelo entidade relacionamento (MER) é um modelo de dados para descrever os dados ou aspectos de informação de um domínio de negócio ou seus requisitos de processo, de uma maneira abstrata que em última análise se presta a ser implementada em um banco de dados, como um banco de dados relacional. Os principais componentes dos Modelos Entidade-Relacionamento (MER) são as entidades (coisas,objetos) suas relações e armazenamento em bancos de dados.
O 'MER' foi desenvolvido por Peter Chen, publicado em um artigo de 1976. Entretanto, variantes da ideia existiram anteriormente e, posteriormente, foram imaginadas como entidades de dados de supertipo e subtipo e relacionamentos de uniformização.

## Visão geral

Um modelo E-R é uma maneira sistemática de descrever e definir um processo de negócio. O processo é modelado como componentes (entidades) que são ligadas umas as outras por relacionamentos que expressam as dependências e exigências entre elas, como: um edifício pode ser dividido em zero ou mais apartamentos, mas um apartamento pode estar localizado em apenas um edifício. Entidades podem ter várias propriedades (atributos) que os caracterizam. Diagramas criados para representar graficamente essas entidades, atributos e relacionamentos são chamados de diagramas entidade relacionamento.
Um modelo MER é normalmente implementado como um banco de dados. Nos casos de um banco de dados relacional, que armazena dados em tabelas, as próprias tabelas representam as entidades. Alguns campos de dados nestas tabelas apontam para índices em outras tabelas. Tais ponteiros representam relacionamentos.
A abordagem de três esquemas para a engenharia de software utiliza três níveis de modelos ER que podem ser desenvolvidos.

### Modelo de dados conceitual

    Este é o modelo ER de alto nível em que contém o detalhe menos granular mas estabelece o escopo global do que está para ser incluído dentro do conjunto do modelo. O modelo ER conceitual normalmente define entidades de dados de referência mestre que são comumente usadas pela organização. Desenvolver um modelo ER conceitual de amplitude corporativa é útil para suportar a documentação da arquitetura de dados para uma organização.
    Um modelo ER conceitual pode ser usado como a fundação para um ou mais modelos de dados lógicos (ver abaixo). O propósito do modelo ER conceitual é então estabelecer a comunalidade de metadados estruturais para as entidades de dados mestre entre o conjunto de modelos ER lógicos. O modelo de dados conceitual pode ser usado para formar comunais entre modelos ER como uma base para integração de modelo de dados.

## Tipos de relacionamentos

A notação original proposta por Peter Chen é composta de entidades (retângulos), relacionamentos (losangos), atributos (elipses) e linhas de conexão (linhas) que indicam a cardinalidade de uma entidade em um relacionamento. Os tipos de relacionamentos que são utilizadas neste diagrama:
* Relacionamento 1..1 (lê-se relacionamento um para um) - indica que as tabelas têm relacionamento apenas entre si. Você deve escolher qual tabela receberá a chave estrangeira;
* Relacionamento 1..n (lê-se um para muitos) - a chave primária da tabela r que tem o lado 1 vai para a tabela do lado N. No lado N ela é chamada de chave estrangeira;
* Relacionamento n..n (lê-se muitos para muitos) - quando tabelas têm entre si relacionamento n..n, é necessário criar uma nova tabela com as chaves primárias das tabelas envolvidas, ficando assim uma chave composta, ou seja, formada por diversos campos-chave de outras tabelas. O relacionamento então se reduz para uma relacionamento 1..n, sendo que o lado n ficará com a nova tabela criada.