Relacionamentos em um Banco de Dados

Algumas das dificuldades de quem começa os estudos de BD é entender as suas relações, que permitem que você organize uma consulta e possa ver os dados de uma nova maneira, o que dá o nome de Banco de Dados de “Relacional”.

Existem três tipos de relacionamentos e cada um deles tem o seu nome de acordo com os registros dos relacionamentos que estão acontecendo.

Vejamos cada um deles:

1-para-1

Ocorre quando um registro de uma tabela tem uma, e apenas uma contraparte em uma outra tabela. Este tipo de relacionamento é muito raro de acontecer, já que é muito mais simples e eficiente agrupar os registros é uma única tabela.

1-para-N

É o tipo de relacionamento mais comum de acontecer. Eles ocorrem quando um registro de uma tabela se relaciona com vários registros de uma outra tabela, mas que cada registro da segunda tabela só corresponde com um registro da primeira tabela. Uma tabela de categorias tem os seus registros e a tabela de produtos também, onde cada produto pertence a uma única categoria, mas nunca um produto pertencerá a várias categorias. Veja o exemplo da figura abaixo:

Tabela com chaves e relacionamento

Relacionamento 1-para-N

N-para-M

Este ocorre quando um registro de uma tabela corresponde a um ou mais registros da segunda tabela e cada registro da segunda tabela corresponde a um ou mais registros da primera. Um exemplo simples, seria de uma tabela de professores e cursos, porque cada professor pode ensinar em mais de um curso e cada curso pode ter mais de um professor. Neste caso, devemos criar uma nova tabela, onde irá reduzir para um relacionamento 1-para-N entre as duas tabelas iniciais.

Relacionamento N para M

Relacionamento N para M

Auto-Relacionamento

Quando falamos de relacionamento, entende-se que sejam duas ou mais tabelas fazendo suas relações, mas no caso de um auto-relacionamento 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).

Grande abraço pessoal!

Sou bacharel em Sistemas de Informação pela Estácio de Sá (Alagoas), especialista em Gestão Estratégica da Tecnologia da Informação pela Univ. Gama Filho (UGF) e pós-graduando em Gestão da Segurança da Informação pela Univ. do Sul de Santa Catarina (UNISUL). Certificações que possuo: EC-Council CEH, CompTIA (Security+, CySA+ e Pentest+), EXIN (EHF e ISO 27001), MCSO, MCRM, ITIL v3. Tenho interesse por todas as áreas da informática, mas em especial em Gestão e Governança de TI, Segurança da Informação e Ethical Hacking.

4 Responses to “Relacionamentos em um Banco de Dados”

  1. Jonatas Laet disse:

    No primeiro caso não seria N para 1 ao invés de 1 para N?

  2. Muito bom, DIEGO !! Achei tão bom o seu artigo que coloquei no WIKIPÉDIA …
    Mas, infelizmente um tal de YANGUAS que vive a me perseguir por tudo o que faço de melhorias no WIKIPÉDIA, prefere que NÃO tenha nada no verbete, e ficar com picuinhas técnicas, do que aceitar as tuas importantes conclusões.

    Ou seja, para ele, esse tal de YANGUAS, tudo o que vc escreveu NÃO tem valor nenhum !!!

    Vê se pode ?!? Esse cara ainda vive no século passado, e quer ainda ser editor de um WIKIPÉDIA onde deve ficar registrado a INTELIGÊNCIA COLETIVA da humanidade !!

Deixe um comentário

O seu endereço de e-mail não será publicado.