O banco de dados de um sistema de e-commerce foi projetado seguindo rigorosamente as formas normais, resultando em um modelo lógico altamente normalizado. No entanto, durante os testes de carga, a equipe identificou que a consulta que gera o relatório de "Produtos Mais Vendidos por Região" está muito lenta. Essa consulta exige a junção de cinco tabelas (Venda, ItemVenda, Produto, Cliente e Endereco) para consolidar as informações. O sistema precisa gerar este relatório rapidamente para a tomada de decisão dos gestores. A decisão de arquitetura de dados a ser implementada é
O banco de dados de um sistema de e-commerce foi projetado seguindo rigorosamente as formas normais, resultando em um modelo lógico altamente normalizado. No entanto, durante os testes de carga, a equipe identificou que a consulta que gera o relatório de "Produtos Mais Vendidos por Região" está muito lenta. Essa consulta exige a junção de cinco tabelas (Venda, ItemVenda, Produto, Cliente e Endereco) para consolidar as informações. O sistema precisa gerar este relatório rapidamente para a tomada de decisão dos gestores.
A decisão de arquitetura de dados a ser implementada é
- abstrair as tabelas envolvidas em um diagrama de classes UML para revisar as regras de negócio.
- substituir as chaves primárias numéricas (subrogadas) por chaves primárias compostas em todas as tabelas.
- aumentar a normalização para a Quarta Forma Normal (4FN) para eliminar todas as dependências multivaloradas.
- criar uma tabela sumarizada e desnormalizada que contenha os dados pré-calculados necessários para o relatório.
- transformar todos os relacionamentos de "um-para-muitos" em "muitos-para-muitos" utilizando tabelas de associação.