🕸️ RELACIONAMENTOS E ASSOCIAÇÕES LÓGICAS
Um banco de dados onde as tabelas não se conversam é apenas um conjunto de planilhas isoladas. O verdadeiro poder do Modelo Relacional reside nos Relacionamentos. 🛡️🧩
Objetivo: Compreender a mecânica das associações lógicas e dominar a representação de graus de relacionamento e atributos de ligação.
📗 PASSO 1: O Conceito de Associação
No MER, um relacionamento representa uma associação entre entidades. Graficamente, no nível lógico, utilizamos o erDiagram:
📊 Modelo de Venda Simples
erDiagram
CLIENTE ||--o{ COMPRA : "realiza"
PRODUTO ||--o{ COMPRA : "incluído em"
CLIENTE {
int id_cliente PK
string nome
}
PRODUTO {
int id_produto PK
string nome
}
COMPRA {
int id_cliente FK
int id_produto FK
date data_venda
}
📗 PASSO 2: Graus de Relacionamento
O grau é definido pelo número de entidades na associação:
- 🔄 Unário (Auto-relacionamento): A entidade se relaciona consigo mesma.
- ↔️ Binário: Duas entidades conectadas (o mais comum).
- 🔼 Ternário: Envolve três entidades simultaneamente (ex:
MÉDICOprescreveEXAMEparaPACIENTE).
📗 PASSO 3: Atributos em Relacionamentos
Às vezes, um dado não pertence a nenhuma das entidades isoladas, mas sim à ação entre elas.
- Exemplo: No registro de
Notas, o valor pertence ao cruzamento entreALUNOeDISCIPLINA.
📊 Relacionamento com Atributo (Nota)
erDiagram
ALUNO ||--o{ MATRICULA : ""
DISCIPLINA ||--o{ MATRICULA : ""
ALUNO {
int id_aluno PK
string nome
}
DISCIPLINA {
int id_disciplina PK
string nome
}
MATRICULA {
int id_aluno FK
int id_disciplina FK
decimal nota
}
📗 PASSO 4: Auto-relacionamento na Prática
📊 Hierarquia de Cargos
erDiagram
FUNCIONARIO {
int id_func PK
string nome
int fk_gerente FK
}
FUNCIONARIO ||--o{ FUNCIONARIO : "gerencia"
💡 Dica do Arquiteto: Relacionamentos ternários aumentam muito a complexidade. Tente sempre as decompor em binários antes de decidir pela ternária. 🚀🛡️