Quais seriam os prós e contras de dados relacionados de dados hierárquica vs., no desempenho (e categorização)?
-
06-09-2019 - |
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.
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.