UA15 — Diagrama de Entidade e Relacionamento (DER)
O DER é a representação gráfica e conceitual da estrutura do banco de dados. É a 'planta baixa' do banco — independe de tecnologia e serve para alinhar o modelo com os requisitos de negócio antes de implementar.
Slides — Modelagem com DER
Elementos do DER
| Símbolo | Elemento | Representa |
|---|---|---|
| Retângulo | Entidade | Objeto do mundo real que precisa ser armazenado |
| Elipse | Atributo | Característica de uma entidade |
| Elipse sublinhada | Atributo-chave (PK) | Identificador único da entidade |
| Elipse dupla | Atributo multivalorado | Pode ter múltiplos valores (ex.: telefones) |
| Losango | Relacionamento | Associação entre entidades |
| Retângulo duplo | Entidade fraca | Depende de outra para existir |
Entidades Físicas vs. Lógicas
- Físicas (Tangíveis): existem concretamente no mundo real. Ex.: Cliente, Produto, Funcionário, Fornecedor.
- Lógicas (Conceituais): nascem da interação estrutural para organizar o negócio. Ex.: Venda, Matrícula, Agendamento, Contrato.
Hierarquia de dependência das entidades
- Entidades Fortes: existem por si só. Ex.: Produto, Cliente.
- Entidades Fracas: dependem de uma entidade forte para existir. Ex.: Dependente (de Funcionário) — sem o Funcionário, o Dependente não tem sentido.
- Entidades Associativas: nascem da relação N:N para viabilizar relacionamentos complexos. Ex.: ItemPedido (entre Pedido e Produto).
Cardinalidades
1:1 (Um para Um)
Cada instância de A se relaciona com no máximo uma de B. Ex.: Pessoa ↔ CPF, Presidente ↔ País.
1:N (Um para Muitos)
Uma instância de A se relaciona com várias de B. Ex.: Cliente → Pedidos, Departamento → Funcionários.
N:N (Muitos para Muitos)
Várias de A se relacionam com várias de B. Exige entidade associativa. Ex.: Pedido ↔ Produto.
MER vs. DER — distinção importante
| MER (Modelo Entidade-Relacionamento) | DER (Diagrama ER) | |
|---|---|---|
| O que é | Modelo conceitual e abstrato | Representação gráfica do MER |
| Nível | Conceitual — independe de tecnologia | Lógico/físico — detalha tabelas e atributos |
| Foco | Estrutura geral dos dados | Entidades, atributos, relacionamentos em diagrama |
| Propósito | Comunicação entre equipe e cliente | Base para implementação do banco |
Notação de Peter Chen (original)
| Figura | Representa |
|---|---|
| Retângulo | Entidade |
| Elipse | Atributo |
| Losango | Relacionamento |
| ”1” e “N” ao lado das entidades | Cardinalidade |
Problema: fica visualmente poluído em sistemas com muitas tabelas. Por isso, usa-se hoje a notação UML, com atributos dentro do retângulo da entidade.
Passos para criar um DER
- Estudar e compreender o negócio do cliente (levantamento de requisitos).
- Identificar as entidades necessárias (ex.: clínica → Cliente, Médico, Remédio, Funcionário, Fornecedor).
- Definir os atributos de cada entidade e marcar chaves primárias.
- Estabelecer os relacionamentos entre entidades (verbo de ação: “cliente agenda consulta”).
- Definir a cardinalidade de cada relacionamento (1:1, 1:N, N:N).
- Identificar se há necessidade de entidade associativa (relacionamentos N:N).
Exemplo de DER — Loja Virtual
| Entidade A | Relacionamento | Cardinalidade | Entidade B |
|---|---|---|---|
| Cliente | realiza | 1:N | Pedido |
| Pedido | contém | N:N | Produto |
| Relacionamento N:N → entidade associativa ItemPedido (quantidade, preco_unitario) | |||
Práticas Modernas — DER e Modelagem de Banco
- Ferramentas modernas para DER: dbdiagram.io (texto para ER), DrawDB, Lucidchart e DBeaver (DER reverso a partir de banco existente). Figma também é usado para DER conceituais em equipes de produto.
- ORMs code-first (Prisma schema, Entity Framework, TypeORM) invertem o fluxo: você define entidades em código e a ferramenta gera o DER e as migrations — o diagrama conceitual emerge do modelo de código.
- Database branching (PlanetScale, Neon) permite criar branches de schema para desenvolvimento — igual a branches de código, sem impactar produção. O DER “diverge” e depois “merge” com revisão de alterações.
- NoSQL e esquemas flexíveis: MongoDB (documentos), Redis (chave-valor), Neo4j (grafos) e Cassandra (colunar) resolvem problemas onde o modelo relacional é ineficiente — o DER clássico não se aplica.
Dicas para a prova — UA15
- DER Peter Chen: entidades = retângulos; atributos = elipses; relacionamentos = losangos. (Afirmação “entidades = losangos” é FALSA.)
- O DER é correto quando representa entidades, atributos e relacionamentos antes da implementação — facilita identificar erros.
- Chave primária: garante unicidade, não aceita nulos, não aceita valores repetidos. Pode ser composta.
- Relacionamento N:N: uma entidade pode se relacionar com várias instâncias da outra e vice-versa — exige tabela intermediária.
- MER = conceitual (abstrato); DER = representação gráfica do MER (lógico/físico).
Referências bibliográficas desta UA
- Barboza, F. F. M. Modelagem e Desenvolvimento de Banco de Dados. Porto Alegre: SAGAH, 2018.
- Rodrigues, J. Modelo Entidade Relacionamento (MER) e Diagrama Entidade-Relacionamento (DER). DevMedia, 2014.