Materiais desta aula
E7 — Construção do EER Diagram Completo
1. Hoje: expandindo o nosso diagrama
Desde o Encontro 5, vocês vêm construindo um EER Diagram com aluno, livro e emprestimo, já conectados por relacionamentos 1:N. Hoje vamos ampliar esse mesmo diagrama, aplicando tudo que já foi visto — e aprendendo um tipo de relacionamento novo: o auto-relacionamento.
2. O que é um auto-relacionamento?
Um auto-relacionamento (também chamado de relacionamento recursivo ou reflexivo) é quando uma entidade se relaciona com ela mesma — ou seja, uma ocorrência dela se conecta a outra ocorrência da mesma entidade.
Exemplo clássico: um Funcionário supervisiona outro Funcionário. Ambos os lados do relacionamento são a mesma entidade (Funcionário) — só que desempenhando papéis diferentes: um é o supervisor, o outro é o supervisionado.
Usamos auto-relacionamento sempre que queremos representar uma hierarquia ou uma conexão entre itens do mesmo tipo — outros exemplos comuns: uma Categoria de produtos que tem subcategorias, ou uma pessoa que indica outra pessoa.
Papéis (roles)
Como as duas pontas do relacionamento são a mesma entidade, é importante nomear o papel de cada lado, para não confundir na hora de ler o diagrama — por exemplo: "supervisor" de um lado, "supervisionado" do outro.
3. Como desenhar no MySQL Workbench
A boa notícia: o processo é o mesmo que já usamos no Encontro 6 para desenhar relacionamentos — só que, dessa vez, as duas tabelas clicadas são a mesma tabela.
- Adicione a entidade (ex.:
funcionario, commatricula_funcionarioPK,nome,cargo). - Adicione também uma coluna extra, tipo
matricula_supervisor— é ela que vai receber a FK. - Escolha a ferramenta de relacionamento (ex.: "1:n Non-Identifying Relationship").
- Clique na tabela
funcionario(lado N) e depois clique na tabelafuncionariode novo (lado 1) — a mesma tabela, duas vezes. - O Workbench desenha uma linha que sai da tabela e volta para ela mesma.
4. Prévia da prática
Hoje a prática tem três níveis (fácil, intermediário, difícil) para expandir o diagrama da biblioteca com novas entidades e relacionamentos — incluindo, no nível intermediário, o auto-relacionamento que acabamos de ver.
5. Prévia do próximo encontro
No Encontro 8, vamos aprender a traduzir nosso modelo conceitual para o modelo relacional (o nível lógico que vimos no Encontro 5) — o passo explícito entre o desenho no papel e a tabela real.
Vídeos sobre o assunto
- Auto-relacionamento — Modelagem de Dados — Relacionamento Unário — explica o conceito de auto-relacionamento (chave estrangeira na mesma tabela) com exemplos.
Para se aprofundar
- Relacionamento reflexivo na modelagem de banco de dados — Alura — artigo completo sobre auto-relacionamento, com exemplo de hierarquia de colaboradores.