DB2 - Banco de dados - Tipos de Relacionamentos - www.cadcobol.com.br


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

Tipos de Relacionamentos

Os relacionamentos entre tabelas são implementados para evitar a repetição desnecessária dos dados, além desta situação também implementamos a integridade referencial, onde um dado não pode ser excluído ou cadastrado somente de acordo com algumas regras estabelecidas pelo banco de dados.

De acordo com a cardinalidade existem 3 tipos básicos de relacionamentos entre as entidades.

  • Relacionamentos UM para UM
  • Relacionamentos UM para MUITOS
  • Relacionamentos MUITOS para MUITOS
  • Um para Um ( 1:1 )

    São relacionamentos em que uma ocorrencia de uma entidade em A está associada no máximo a uma ocorrencia em uma entidade B e uma ocorrencia na entidade B está associada no máximo a uma ocorrencia na entidade A.

    Neste relacionamento, escolhemos qual tabela irá receber a chave estrangeira, e para cada valor do campo na tabela A, há no máximo um valor na tabela B.

    No exemplo mostrado na Figura abaixo podemos entender melhor este tipo de relacionamento, onde estaremos definindo que um Gerente (e somente um) gerencia um (e somente um) Departamento.
    Ou seja, o mesmo Gerente não pode gerenciar mais de um Departamento e um Departamento não poderá ser gerenciado por mais de um Gerente.

    É um relacionamento pouco utilizado.

  • Um para Muitos ( 1:* )

    Este é o principal relacionamento utilizado em bancos de dados relacionais, neste caso um registro na tabela tb01 pode ter muitos registros coincidentes em tb02, porém um registro na tabela tb02 possui apenas um registro coincidente na tabela tb01.

    Um relacionamento 1:m ocorre com freqüência em situações de negócio.
    Às vezes ocorre em forma de árvore ou em forma hierárquica.

    No exemplo abaixo, temos a seguinte representação:
    Cada curso cadastrado possui vários alunos ligados a ele, pois cada aluno, ao ser cadastrado, deverá ser ligado a um curso obrigatóriamente.
    O campo codigocurso foi escolhido como chave primária na entidade CURSO, ou seja, ela não poderá se repetir.
    Já na tabela ALUNO, a chave primária é matricula e o codigocurso é chave estrangeira.
    A representação ficaria assim:

  • Muitos para Muitos ( *:* )

    Uma ocorrencia de uma entidade em A está associada a qualquer número de ocorrencias na entidade B, e cada ocorrencia da entidade em B está associada a qualquer número de ocorrencias na entidade A.

    Considere o caso em que itens são vendidos.

    Podemos identificar imediatamente duas entidades:
    VENDA e ITEM. Uma venda pode consistir em muitos itens de mercadorias e um item de mercadoria pode aparecer em muitas vendas.

    Não estamos dizendo que um mesmo item possa ser vendido muitas vezes, mas que o tipo específico de item (por exemplo, um livro ) pode ser vendido muitas vezes; temos, portanto, um relacionamento de muitos-para-muitos (m:m) entre VENDA e ITEM.
    Em um relacionamento m:m, criamos uma terceira entidade, chamada entidade associativa que é usada para associar as entidades por meio de dois relacionamentos 1:m.

    De maneira geral, é razoavelmente fácil nomear essa terceira entidade.
    Nesse exemplo, essa terceira entidade, geralmente conhecida como entidade associativa, é chamada de VENDA_MERCADORIA.

  • Relacionamentos recursivos ou auto-relacionamentos:

    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), dependendo da política de negócio que estiver envolvida.

    Exemplos deste relacionamento podem ser encontrados na chamada "explosão de materiais", onde itens compostos são formados por muitos itens componentes; por sua vez, estes itens compostos podem ser componentes de outros itens maiores.
    Exemplificando, temos um automóvel, que é composto pelo chassiz, motor, direção, câmbio etc.; O motor, por sua vez, é formado pelo carburador, velas, platinado etc.
    Esta explosão pode ser representada pelo seguinte relacionamento:



    ITEM (N) compõe (M) ITEM

    sendo que o papel do ITEM é ora de componente e ora de composto.

  • Um outro 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.
    Este relacionamento pode ser representado da seguinte forma:



    FUNCIONÁRIO (1) gerencia (N) FUNCIONÁRIO

    sendo que o papel do FUNCIONÁRIO é ora de gerente e ora de subordinado.