Conheça o Plugfeed | » Início » Programação » UML » Modelagem de Dados 6 - Transformação entre Modelos
Conheça o Plugfeed | » Início » Programação » UML » Modelagem de Dados 6 - Transformação entre Modelos -->
 
Avaliação: | Publicado em: 30/01/2007
Modelagem de Dados 6 - Transformação entre Modelos
Mauri Gonçalves é graduado em Análise de Sistemas pela Faculdade de Ciências Sociais Aplicadas de Cascavel (PR). Atua como Analista de Sistemas em São Paulo-SP.
Modelagem de Dados 6 - Transformação entre Modelos

Olá caros leitores ! Vamos em frente com a série de artigos sobre Modelagem de Dados. Essa parte da transformação entre modelos é a parte mais interessante da modelagem. Aqui começa "de verdade" a surgir, finalmente, o banco de dados propriamente dito. Em especial a tradução dos relacionamentos (assunto que começo a abordar hoje) é o que deixa mais claro os conceitos vistos na modelagem conceitual, ou modelagem lógica.

Um relacionamento nada mais é do que uma "ligação" entre duas entidades (agora, Tabelas) que juntas criam informações complexas. Como o assunto agora é tabela física do banco de dados, nos temos que construir nossa base de forma "conectada". Para isso nós usamos as famosas CHAVES. As chaves tem variações e diferentes finalidades. De forma rápida vou explicar um pouco sobre cada tipo de chave:

Chave Primária: A chave primária é o que chamávamos na modelagem lógica de "atributo identificador".  Geralmente é um campo da tabela que armazena uma informação única, que não se repete em nenhum outro registro daquela mesma tabela. Desta forma ele serve como identificador daquele registro.

Chave Composta: A chave composta é formada pela chave primária e por alguma outra informação que também é unica na tabela. Os dois campos juntos, formam uma chave composta. Este tipo de chave é usado com mais frequencia em tabelas provenientes de relacionamentos N:N [vários para vários] (veremos mais á frente).

Chave Estrangeira: Esta chave é um campo em uma tabela que armazena o conteúdo da chave prímária de outra tabela. Chave estrangeira é sinônimo de relacionamento entre tabelas. Se há relacionamento há chave estrangeira.

A primeira coisa que define a forma como voce vai traduzir o relacionamento é a cardinalidade das entidades (assunto abordado no começo da série).

Cardinalidade 1:N (Um-Para-Varios): Indica a adição de um campo na tabela correspondente ao "lado N". Esse campo será uma chave estrangeira e vai armazenar a chave primária da tabela do "lado 1". Veja um esquema relacional que exemplifica esse tipo de cardinalidade:

Funcionario (CodFuncionario, NomeFunc)
Ramal (CodRamal, CodFuncionario, NumeroRamal)
    CodFuncionario referencia Funcionario

Observe: Segundo a notação de Esquema Relacional,  campo sublinhado indica Chave Primária. No esquema relacional da tabela Ramal temos dois campos sublinhados (indicando que os dois forma a chave primática). O campo CodFuncionario no entanto é uma chave estrangeira, porque ele armazena um valor que identifica um registro na tabela Funcionario.

Cardinalidade N:N (Vários-Para-Vários): Este tipo de relacionamento gera uma terceira tabela. Neste caso nenhum dos lados do relacionamento vai armazer chave estrangeira (como no 1:N). O que vai acontecer é que cria-se uma nova tabela, que vai armazenar as chaves de ambos os lados.  Veja um esquema relacional que exemplifica esse tipo de cardinalidade:

Funcionario(CodFuncionario, NomeFunc)
Projeto(CodProjeto, TituloProjeto)
Participacao(CodFuncionario,CodProjeto)
    CodFuncionario referencia Funcionario
    CodProjeto referencia Projeto

Observe: Segundo este esquema relacional, um funcionario pode participar de varios projetos, sendo que em um projeto pode-se ter vários funcionarios.  Neste caso cria-se mais uma tabela, que vai juntar as duas chaves do relacionamento. No exemplo, cria-se a tabela "Participacao" que indica o funcionario e qual projeto ele participa.

Cardinalidade 1:1 (Um-Para-Um):  Esse tipo de cardinalidade em grande maioria dos casos nao justifica um relacionamento. Mas pode ser implementado por questoes de organização dos dados. Veremos futuramente na parte de Normalização, como resolver relacionamentos 1:1..

No proximo artigo, continuamos a fazer a tradução de relacionamentos . Até breve.

Giselle Leão <giselleprleao@gmail.com>
Oi Mauri. Adorei suas aulas de modelagem de dados. Estudo Sistema de Informação e estou fazendo um projeto para a faculdade. Ajudou muito ler seus artigos. Um abraço!!!
Juliana Leal <leal_jully@yahoo.com.br>
Tenho utilizado seus artigos como leitura complementar a matéria de Banco de dados / curso Ciência da Informação. Ajudou muito a esclarecer dúvidas.
Até!
Leonardo
Estou aprendendo mysql e estudando bastante e tirou todas as minhas dúvidas de relacionamento, acho que o ponto ótimo foi nos exemplos. Isto pra queme stá começando é muito bom. Tanto com exemplos fáceis quanto mais elaborados um pouquinho. Pra quem é iniciante é facil comparar e saber mais diretamente tudo aquilo que os livros falam... falam até demais que dificulta o entendimentos de iniciantes.
Parabéns Mauri
Davi Albuquerque <davialbuquerque@msn.com>
Pois é, Mauri você está de parabéns, fez um artigo com uma didática que dá a impressão de que estou no curso ouvindo o professor falar, muito bom, vlw.
Muito boas as suas considerações. Também faço Sistemas de Informação e estou desenvolvendo um sistema para a empresa onde trabalho. É interessante observar que na teoria as coisas seguem bem e na prática a situação se complica consideravelmente.
Wanderley Ribeiro <wanderleyribeiro@gmail>
Salve Salve Mauri, parabéns pelos artigo sobre modelagem de dados. Na verdade trabalho na área de gerenciamento de redes, porém surgiu a necessidade de criar um BD para um site de notícias e tutoriais e comecei a estudar esse conteúdo! A sua representação clara e objetiva tem me ajudado consideravelmente. Ficamos no aguardo do próximo Cap.

Abraços
gostei dos seus artigos, mas acho que eles precisam abordar uma linguagem para iniciantes nesse matéria.Eu me senti muito confusa em algumas coisas!
Excelente Artigo,,,me ajudou muito
Everton de Vargas Agilar <everton_ti07@yahoo.com.br>
Gostei muito dos seus artigos sobre modelagem, pois são claros e objetivos.








Um produto Detetive.net