Quais seriam os prós e contras de dados relacionados de dados hierárquica vs., no desempenho (e categorização)?

StackOverflow https://stackoverflow.com/questions/731983

Pergunta

Isto está relacionado com esta questão . Isso me fez pensar que, por exemplo, este livro . Ao invés de ser um filho de ambos [Agriculture] e [Other], na [Books > Catalogs > Agriculture] árvores e [Business & Industrial > Agriculture & Forestry > Other], respectivamente, ele só poderia ficar por conta própria têm esses níveis como etiquetas, em seu lugar.

Em um site como o eBay, faria os custos de listagem de todos os registros com o marcas [Agriculture E Catalog] fortemente outweigth aqueles de listar todos os registros na [Books > Catalogs > Agriculture] Categoria , desde desempenho os dados são devidamente normalizada?

Eu percebo isso provavelmente é uma pergunta estúpida (e não, eu não acho que eu estou programando a próxima eBay), mas eu não posso sacudir essa curiosidade e, pior; tentação ; então eu prefiro parecer estúpido agora e obter uma boa compreensão dos meus mal-entendidos do que fazer algo estúpido ou sem sentido mais tarde.

Foi útil?

Solução

Quando o modelo relacional surgiu pela primeira vez, o paradigma de banco de dados dominante era hierárquica; e depois (como ainda é o caso) hierárquica é porque mais eficiente, em essência, você pode começar com consultas parcialmente prejoined.

Mas só com base em uma estrutura hierárquica estática. A grande dificuldade surge quando você deseja flexionar a visualização dos dados de vir de outra dimensão raiz. (Era uma questão fortemente debatido se bancos de dados relacionais poderia ser suficiente eficiente para uso prático;. Breve resolvidos pela aplicação diligente da Lei de Moore)

Pense sobre clientes que têm encomendas que compreendem os produtos; uma hierarquia. Inevitavelmente você vai querer também ser capaz de pensar sobre os produtos que estão a ser encontrados em encomendas de clientes; toda uma outra hierarquia. E vendedores nas Regiões que geram encomendas de clientes; ou ter clientes que pedidos.

Bancos de dados relacionais permitir-lhe a capacidade de reconstruir suas hierarquias à vontade com aproximadamente igual eficiência; um benefício só está disponível em outros formatos de banco de dados, ao custo de incorporar múltiplas hierarquias ortogonais; caso em que o custo de alteração, adição ou exclusão de dados torna-se astronômico.

Outras dicas

O principal objetivo do modelo relacional é para evitar duplicação. dados hierárquicos, enquanto mais fácil Grokar manualmente, sofre de problemas de duplicação.

Use o modelo que se encaixa seus dados melhor em vez de fazer a otimização prematura.

I tendem a construir árvores hierárquicas de apresentação fora de dados relacionais.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top