Conheça também: Onmasters . Ofertas . Divulgue! . Vai.la . Geraboleto . Baixa.la . Assista.la . Joga.la
» Início » Desenvolvimento » Banco de dados e SQL » Modelagem de Dados: Chaves Simples e Chaves Compostas -->
 
Avaliação: | Publicado em: 02/10/2006
Modelagem de Dados: Chaves Simples e Chaves Compostas
Gustavo Maia Aguiar é administrador de Empresas pela Universidade de Brasília (UnB) e pós-graduado em bancos de dados pela Universidade Católica de Brasília (UCB), atua na área de tecnologia de informação desde 2001, exercendo funções de desenvolvedor, analista, administrador de banco de dados (DBA) e administrador de dados (AD). É profissional certificado (MOS, MCDBA, MCAD, MCTS (SQL 2005), MCITP (DB Dev), MCITP (DB Admin), MCT e Itil Certified Professional) e suas áreas de interesse incluem .NET, XML, SQL Server, banco de dados em geral e Business Intelligence. É membro ativo dos fóruns MSDN e TechNet além de moderador da comunidade SQL Server Brasil (Orkut).


O processo de modelagem de dados é guiado por normas técnicas, convenções e boas práticas, mas em determinados momentos ele é influenciado pela subjetividade do modelador. O modelador possui experiências próprias, situações vivenciadas e conhecimentos específicos de negócios. Essas características variam de modelador para modelador e têm grande influência no processo de modelagem de dados. Vários aspectos decorrem dessas características e estes podem influenciar o processo de modelagem introduzindo alguns conflitos potenciais como chaves simples e chaves compostas, representação de supertipos, representação de hierarquias, etc. Uma das questões mais freqüentes é a presença de chaves compostas em contraposição às chaves simples. Para explicar as vantagens e desvantagens de uma abordagem ou de outra será proposta a seguinte situação:

Uma empresa deseja modelar um cadastro de endereços para os seus clientes. Foi identificado no processo de levantamento de requisitos que este cadastro possui algumas entidades que deverão constar no cadastro. O analista conseguiu identificar os seguintes pontos:


  • Um endereço de uma pessoa contém dados referentes à região, estado, cidade, bairro e o endereço propriamente dito (rua, avenida, quadra, etc). Uma ou mais pessoas podem residir em um mesmo endereço.

  • O maior foco de pesquisa no banco de dados será de clientes por cidade

  • Todos esses campos dizem respeito ao endereço mas foi identificada uma hierarquia disposta da seguinte forma: região, estado, cidade, bairro e o endereço. Assim sendo uma região possui vários estados, um estado possui várias cidades, etc. Todas as entidades possuem códigos internos. O desenho abaixo representa essa hierarquia.

Após o levantamento de requisitos fica a decisão ao projetista de realizar o modelo lógico e físico do banco de dados a ser implementado para o cadastro de endereços. Uma decisão de projeto referente à utilização de chaves compostas ou não deverá ser tomada. As alternativas possíveis são abordadas logo a seguir:
Páginas: « Anterior 1 2 3 4 5 Próximo »  Próximo: Chaves Simples »


MARCUS VINICIUS VIANA DE OLIVEIRA <marcusvvo@yahoo.com.br>
EXCELENTE EXPLICAÇÃO MAS NO SITE OS ARTIGOS SOBRE CHAVES ESTÃO SEM AS ILUSTRÃÇÕES PODERIAM CORRIGIR E DEPOIS ENVIAR-ME UM EMAIL PARA EU RETOMAR A LEITURA
Suponha uma modelo para: região, estado, município, distrito etc.

Imaginei utilizar chaves compostas pelo id da tabela pai como chave estrangeira e o id da tabela em questão. Ambas formariam a chave primária
Detalhe: Gostaria que o id da tabela em questão fosse auto incrementável. Até aí tudo bem. Ocorre que ao tentar criar desta forma no MYSQL(banco que estou usando) deu erro. As tabelas do tipo InnoDb não permitem de jeito nenhum esta construção: Uma chave Primary composta por uma estrangeira e outra auto incrementável.

Dúvida: conceitualmente falando, esta solução não costuma ser adotada? Não é a mais indicada? Qual seria a melhor solução?
Li seus artigos sobre hierarquia e chaves compostas x chaves simples. Excelentes por sinal. Ocorre que nos quatro artigos relacionado à hierarquia não consegui identificar plenamente em qual dos modelos esta minha leitura se enquadraria. Vi semelhanças com o modelo dos caminhos materializados porém não totalmente. Neste modelo a Pk continua sendo simples e não composta.
Poderia me esclarecer esta dúvida? Mostrar o caminho? Acha viável utilizar chaves compostas com uma estrangeira e a outra auto incrementável ou sugeriria outra solução?