O que existe e merece uma tabela própria — e o que descreve essa entidade. Endereço começa como atributo de Cliente, mas se o cliente tem múltiplos endereços, precisa virar entidade.
Como as entidades se conectam e quantos de um lado podem se relacionar com quantos do outro. Se Faixa e Álbum estão na mesma tabela, como armazenar uma faixa em dois álbuns?
Os grupos constroem o modelo ER de um processo de vendas em linguagem de negócio — sem jargão técnico — e comparam com o modelo relacional real ao final.
Tabela desnormalizada — um único modelo para cliente, pedido e produto. Parece simples, mas esconde três armadilhas:
| PedidoID | ClienteID | Cliente | ProdutoID | Produto | Preço | |
|---|---|---|---|---|---|---|
| P001 | C01 | João | joao@email.com | PR01 | Fone BT | R$ 150 |
| P002 | C01 | João | joao@email.com | PR02 | Caixa Som | R$ 300 |
| P003 | C02 | Maria | maria@email.com | PR03 | Headphone | R$ 200 |
Cada célula deve conter um único valor. Sem listas, sem grupos repetitivos dentro de uma coluna.
| ClienteID | Nome | Telefones |
|---|---|---|
| C01 | João | 99999-1111, 88888-2222 |
| C02 | Maria | 77777-3333 |
| ClienteID | Nome | Telefone |
|---|---|---|
| C01 | João | 99999-1111 |
| C01 | João | 88888-2222 |
| C02 | Maria | 77777-3333 |
Todo atributo não-chave deve depender da chave primária inteira. Proíbe dependências parciais em chaves compostas.
| PedidoID | ProdID | NomeProd | Qtd |
|---|---|---|---|
| P001 | PR01 | Fone BT | 2 |
| P002 | PR01 | Fone BT | 1 |
| P002 | PR02 | Caixa Som | 3 |
NomeProd depende só de ProdID — não da chave completa.
| PedidoID | ProdID | Qtd |
|---|---|---|
| P001 | PR01 | 2 |
| P002 | PR01 | 1 |
| ProdID | NomeProd |
|---|---|
| PR01 | Fone BT |
| PR02 | Caixa Som |
Nenhum atributo não-chave pode depender de outro atributo não-chave. Proíbe cadeias de dependência indireta.
| ClienteID | Nome | CEP | Cidade |
|---|---|---|---|
| C01 | João | 01310-100 | São Paulo |
| C02 | Maria | 01310-100 | São Paulo |
| C03 | Pedro | 30112-000 | Belo Horizonte |
ClienteID → CEP → Cidade (dependência transitiva).
| ClienteID | Nome | CEP |
|---|---|---|
| C01 | João | 01310-100 |
| C02 | Maria | 01310-100 |
| C03 | Pedro | 30112-000 |
| CEP | Cidade |
|---|---|
| 01310-100 | São Paulo |
| 30112-000 | Belo Horizonte |
Clique em cada tipo para ver definição e exemplo.