Quando falamos de
relacionamento, entende-se que sejam duas ou mais tabelas fazendo suas
relações, mas no caso de um auto-relacionamento (também chamado de relacionamento recursivo) utilizamos apenas uma
tabela, onde ela irá se relacionar com ela mesma.
Suponha que temos uma tabela com os seguinte dados:
- id_empresa; (PK)
- empresa_nome;
- empresa_id_pai; (FK)
Neste caso, sempre que inserir um registro numa tabela que tem uma FK, a
FK só é validada caso todos os elementos que compõem a FK (no caso dela
ser composta) tenham valores diferentes de nulo. No exemplo acima, se
inserir um registro nessa tabela sem “empresa_id_pai”, a FK não vai ser
validada.
Caso exista valor, o auto-relacionamento indica que o ID informado em
EmpresaPaiID deve existir na tabela Empresa, campo EmpresaID (conforme
definido na FK). Na prática, implementa a regra “só podem ser
cadastradas empresas filhas caso a pai esteja cadastrada).
Fonte: http://www.diegomacedo.com.br/relacionamentos-em-um-banco-de-dados/
Os relacionamentos recursivos (também chamados de auto-relacionamentos) são casos especiais onde uma entidade se relaciona com si própria. Apesar de serem relacionamentos muito raros, a sua utilização é muito importante em alguns casos.
Os auto-relacionamentos podem ser do tipo 1:1 (um-para-um), 1:N (um-para-muitos) ou N:M (muitosparamuitos).
Exemplos : exemplo de auto-relacionamento é o gerenciamento de funcionários, onde o gerente é um funcionário que possui um relacionamento com outros funcionários que lhe são subordinados, sendo que o papel do FUNCIONÁRIO é ora de gerente e ora de subordinado
https://sites.google.com/site/uniplibancodedados1/aulas/aula-7---tipos-de-relacionamento