Introdução e Objetivo
Na abordagem da modelagem de dados para o modelo relacional levam-se em consideração as regras de normalização, a qual se baseia no conceito de forma normal, ou seja, é uma regra que deve ser obedecida por uma tabela para que esta seja considerada bem projetada.
No entanto, restam várias dúvidas em relação à utilização de chaves primárias únicas ou chaves primárias compostas para essa normalização. Muitos autores afirmam que é melhor utilizar uma chave primária única e outros dizem que devem utilizar uma chave primária composta. Na maioria das vezes, uma opinião é formada de acordo com a forma de trabalho de cada um, porém poucos sabem qual é a melhor abordagem para o banco de dados relacional.
Este artigo tem como objetivo encontrar na modelagem de banco de dados a melhor performance para um modelo relacional. Para tanto, será simulado um ambiente de produção e realizados testes de desempenho utilizando os dois tipos de chave primária, as únicas e as compostas.
Metodologia
Para o desenvolvimento deste estudo, além da revisão bibliográfica foi utilizada a aplicação dos processos de benchmarking dividido em cinco etapas, conforme segue: o entendimento do problema; a definição dos padrões para os testes; a ilustração dos modelos de dados que utilizados; o relatório das medidas analisadas; e por fim a geração dos dados e por fim a análise dos dados e os resultados.
A metodologia proposta para a realização dos testes de desempenho foi o benchmark, o qual tem como medida o tempo de resposta, implementados em dois ambientes para simulação, tendo o hardware e o software idênticos. Sua medida de tempo foi capturada no intervalo de tempo de resposta entre a requisição e a resposta do SGBD.
Os testes de desempenho foram realizados por meio de um modelo de entidade e relacionamento, elaborado de acordo com o modelo de movimentação de ordem de serviço, representado pelas tabelas Ordem de Serviço, Serviço, Produtos, Notas Fiscais e Contas a Receber.
Resultados
Com o estudo desenvolvido observou-se que na modelagem de dados com chaves compostas para o tipo de movimento de ordem de serviço, ficou claro que a chave primária da tabela que origina as movimentações é carregada em todas as demais tabelas. No entanto, quando foram utilizadas chaves únicas, cada tabela exibida possuía uma chave primária, podendo ser simples ou composta com no máximo dois atributos.
Após realizar os testes de inserções e recuperações de registros nas duas formas de modelagem de dados, percebe-se que algumas informações devem ser levadas em consideração, pois as duas formas abordadas neste trabalho são corretas. Nesse sentido, para a melhor tomada de decisão em relação a qual delas utilizar, deve-se ter em mente onde e como vai ser aplicada esta estrutura de banco de dados.
Contudo, depois da análise dos resultados, conclui-se que a forma mais rápida e mais ágil, é a que utilizou chave única nas tabelas que possuíam relacionamentos de muitos para muitos. Dessa forma, uma tabela que carrega uma quantidade grande de atributos para compor uma chave composta, consequentemente possui um índice maior para esta chave e no momento de uma inserção de dados, automaticamente ficará mais lento.
Já na recuperação de dados, a diferença de performance em uma tabela que não possui chaves estrangeiras, está no tempo de retorno entre os modelos, chegando a ser quase insignificante. Entretanto, em uma tabela que tem uma alta quantidade de relacionamento, o modelo se torna mais rápido, pois na elaboração dos comandos menos campos são relacionados, e dessa forma o tempo de retorno é significativamente diferente.
Considerações Finais
Diante do trabalho realizado, pode-se perceber que de maneira geral, para que as empresas obtenham respostas para suas questões de forma rápida e prática, devem transferir suas informações para um banco de dados, o qual possui uma estrutura adequada de armazenamento e também facilidade de recuperação das mesmas. No entanto, neste processo de mudança é necessário fazer uma análise junto a profissionais qualificados para adotar a melhor forma de normalização de dados.