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


Chaves Simples

Dado o modelo conceitual exposto acima uma proposta de modelo lógico utilizando chaves simples poderia ser representada da seguinte forma:

Vantagens:
  • Os princípios de normalização estão todos obedecidos: Não existem dados redundantes, as chaves estão reduzidas de forma mínima, ou seja, o conjunto mínimo de atributos está utilizado para determinar a chave primária.
  • O espaço está otimizado: Essa é a forma de representação mais econômica para guardar os dados. Como o espaço de dados é o menor possível e conseqüentemente o espaço dos índices será menor.
  • Baixo grau de acoplamento: Uma mudança em alguma tabela envolverá no máximo duas tabelas (a que possui a chave primária e a que herda essa chave). Isso é bastante útil no gerenciamento das tabelas e das classes quando se trabalha com OO.
Desvantagens:
  • Desempenho: Embora todos os requisitos tenham sido atendidos e a principal consulta do sistema envolve clientes e cidade. Para que essa consulta seja feita será necessário juntar as tabelas cliente, endereço, bairro e cidade. Dependendo da carga de registros isso pode ser proibitivo.

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?