Diferença entre normalização e desnormalização

Anonim

Normalização vs Denormalização

As bases de dados relacionais são constituídas por relações (tabelas relacionadas). As tabelas são constituídas por colunas. Se as tabelas são duas grandes (ou seja, muitas colunas em uma tabela), as anomalias de banco de dados podem ocorrer. Se as tabelas são pequenas (isto é, o banco de dados é composto por muitas tabelas menores), seria ineficiente para consultas. Normalização e Denormalização são dois processos que são usados ​​para otimizar o desempenho do banco de dados. A normalização minimiza os redundâncias existentes nas tabelas de dados. A desnormalização (reverso da normalização) adiciona dados redundantes ou dados de grupo.

< O que é Normalização?

A normalização é um processo que é realizado para minimizar as redundâncias que estão presentes em dados em bancos de dados relacionais. Esse processo dividirá principalmente tabelas grandes em tabelas menores com menos redundâncias (chamadas "formas normais"). Essas tabelas menores serão relacionadas D entre si através de relacionamentos bem definidos. Em um banco de dados bem normalizado, qualquer alteração ou modificação nos dados exigirá a modificação de apenas uma única tabela. O primeiro formulário normal (1NF), o segundo formulário normal (2NF) e o terceiro formulário normal (3NF) foram introduzidos por Edgar F. Codd. O formulário normal de Boyce-Codd (BCNF) foi introduzido em 1974 por Codd e Raymond F. Boyce. Formulários normais superiores (4NF, 5NF e 6NF) foram definidos, mas eles estão sendo usados ​​raramente.

Uma tabela que cumpre com 1NF assegura que realmente representa uma relação (ou seja, não contém registros que estão se repetindo) e não contém atributos valorados relacionalmente (ou seja, todos os atributos deve ter valores atômicos). Para que uma tabela cumpra com 2NF, deve ser cumprido o 1NF e qualquer atributo que não faz parte de qualquer chave candidata (i. E. Atributos não essenciais) deve depender completamente de qualquer das chaves candidatas na tabela. De acordo com a definição do Codd, uma tabela é dita em 3NF, se e somente se essa tabela estiver na segunda forma normal (2NF) e cada atributo na tabela que não pertence a uma chave candidata deve depender diretamente de cada chave candidata dessa tabela. BCNF (também conhecido como 3. 5NF) capta algumas das anomalias que não são abordadas pelo 3NF.

O que é Denormalização?

Denormalização é o processo inverso do processo de normalização. A desnormalização funciona adicionando dados redundantes ou agrupando dados para otimizar o desempenho. Mesmo assim, a adição de dados redundantes soa contraproducente, às vezes a desnormalização é um processo muito importante para superar algumas das deficiências no software de banco de dados relacional que podem sofrer pesadas penalidades de desempenho com bancos de dados normalizados (até mesmo ajustados para maior desempenho).Isso ocorre porque juntar várias relações (que são resultados de normalização) para produzir um resultado para uma consulta às vezes pode ser lento dependendo da implementação física real dos sistemas de banco de dados.

Qual a diferença entre Normalização e Denormalização?

- Normalização e desnormalização são dois processos completamente opostos.

- A normalização é o processo de dividir tabelas maiores em menores reduzindo os dados redundantes, enquanto a desnormalização é o processo de adicionar dados redundantes para otimizar o desempenho.

- A normalização é realizada para evitar anomalias de bancos de dados.

- A desnormalização geralmente é realizada para melhorar o desempenho de leitura do banco de dados, mas, devido às restrições adicionais usadas para a desnormalização, as escritas (i. E. Inserir, atualizar e excluir operações) podem se tornar mais lentas. Portanto, um banco de dados desnormalizado pode oferecer um melhor desempenho de gravação do que um banco de dados normalizado.

- Muitas vezes, é recomendável que você "normalize até que dói, desmoralize até funcionar".