Freelancers BR

Encontre dicas, tutorias e empregos

Identifying e non-identifying relationships

Quando vamos criar uma base de dados, necessitamos de muito conhecimento e planejamento para garantirmos confiabilidade, performance e organização dos dados, já que a informação na maioria dos casos tem valor inestimável. Muitas pessoas, assim como eu, se deparam com situações inusitadas a cada dia, principalmente se tratando de banco de dados. As vezes possuímos dúvidas com assuntos teoricamente comuns e/ou rotineiros.

Acredito que muitas pessoas que utilizam um banco de dados, como por exemplo o MySQL, já se depararam com alguma dúvida referente a chaves estrangeiras, quanto a modelagem do banco: Qual tipo de relacionamento utilizar?

Quem usa a ferramenta MySQL Workbench, muito provavelmente já notou que existem dois tipos para os relacionamnetos 1:1 e 1:n, os identificados e os não identificados. Fazia algum tempo que tinha essa dúvida, hoje resolvi procurar a respeito e encontrei a resposta:

O relacionamento identificado é para quando a tabela que busca a referência, vai ter o campo da chave estrangeira também como chave primária.

identifying relationship

O relacionamneto não identificado é para quando a tabela que busca a referência, não vai ter o campo da chave estrangeira como chave primária.

non-identifying relationship

Tags: , , ,

This entry was posted on sábado, maio 16th, 2009 at 1:37 am and is filed under MySQL. You can follow any responses to this entry through the RSS 2.0 feed. You can leave a response, or trackback from your own site.

9 Respostas to “Identifying e non-identifying relationships”

  1. 16/05/2009 as 1:43 am

    Twitted by LucasRenan disse:

    [...] This post was Twitted by LucasRenan – Real-url.org [...]

  2. 22/05/2009 as 10:29 am

    Guilherme disse:

    Massa o Post.

    Essa imagem seria então do relacionamento de um relacionamento 1:n identificado e como ficaria um 1:n não identificado?

  3. 22/05/2009 as 10:29 am

    Guilherme disse:

    Opa, agora apareceu a imagem aqui jauihauhua.

  4. 22/05/2009 as 11:29 pm

    Lucas Renan disse:

    uahuahauha

    eu sempre tive dúvidas sobre esses relacionamentos.

  5. 16/12/2009 as 2:54 pm

    leandro silva disse:

    nossa eu tambem tava com duvida quanto a isso vou muito borigado pela explicação

    Parabens pelo site XD

  6. 4/02/2010 as 2:39 pm

    Rodrigo Furtado disse:

    Sua explicação está errada.

    Ou pelo menos parcialmente correta.

    O fato é que uma “identifying relationship” é uma relação onde uma tabela para existir precisa obrigatoriamente ter as informações da outra para ser unicamente identificável enquanto que uma relação “non identifying não precisa”.

    Seu exemplo de relação entre a tabela cidade com estado por exemplo é um ótimo exemplo de uma “identifying relationship”(ao contrário do que você marcou) pois uma cidade PRECISA de um estado para ser únicamente identificável, uma vez que existem cidades com o mesmo nome em diferentes estados.

    Um exemplo de uma relação “non identifying” seria de uma tabela de pedidos com uma tabela de descontos. Embora a tabela de pedidos precise de uma chave estrangeira para identificar um desconto que ela recebe, a mesma não deve ser primaria pois pode ocorrer do pedido não ter nenhum desconto (e mesmo assim o pedidoainda é totalmente válido e único).

    Abraço!

  7. 5/02/2010 as 9:51 pm

    Lucas Renan disse:

    Rodrigo,

    acredito que sua explicação tenha fundamento, até mesmo porque eu me basei em informações que achei na internet, então não posso garantir que o meu post está correto. Você poderia me passar alguma fonte confiável que contenha essa informação, para que eu possa atualizar o post?

    valeu

  8. 6/03/2010 as 11:11 am

    Vicente Russo disse:

    O comentário do rodrigo está correto. Qdo uma entidade não faz sentido se separada de outra, temos um relacionamento identificado. Neste caso, temos uma “entidade fraca”. Exemplo: Empresa possui Filial => Filial é uma entidade fraca de empresa, possuindo um relacionamento identificador. Assim, a chave primária de Filial provavelmente será composta pela chave primária de Empresa (a qual também será uma chave estrangeira) e um número que identifica da filial dessa empresa:

    Empresa(idEmpresa, Nome, …)
    Filial(idEmpresa, idFilial, Endereço, …)

  9. 11/03/2010 as 1:13 pm

    Lucas Renan disse:

    Vicente,

    você pode me passar uma referência bibliográfica para que eu possa atualizar o post?

Deixe seu comentário!

Recommend Me