Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

É realmente melhor usar tabelas normalizadas?


Depende... juntar tabelas é inerentemente mais lento do que ter uma grande tabela 'pré-juntada', ou seja, desnormalizada. No entanto, ao desnormalizar, você criará duplicação de dados e suas tabelas serão maiores. A normalização é vista como uma coisa boa, pois cria bancos de dados que podem responder 'qualquer' pergunta, se for feito corretamente você pode construir um select para chegar aos seus dados. Este não é o caso em algumas outras formas de DB, e essas são agora (principalmente) irrelevâncias históricas, o DB normalizado/relação venceu essa batalha.

Voltando à sua pergunta, usar a desnormalização para acelerar as coisas é uma técnica bem aceita. Normalmente, é melhor executar seu banco de dados por um tempo para saber o que desnormalizar e o que deixar em paz, e também é comum deixar os dados em sua forma normalizada 'correta' e extrair dados em um conjunto de relatórios desnormalizados mesas regularmente. Se esse processo for feito como parte da própria execução do relatório, os dados também estarão sempre atualizados.

Como exemplo de normalização excessiva, vi bancos de dados no passado em que os dias da semana e os meses do ano foram colocados em tabelas separadas - as próprias datas foram normalizadas - você pode ir longe demais.