Como lidar com anomalias de modificação sql e formas normais

Uma série de problemas - chamados anomalias de modificação

- pode praga um banco de dados se você não estruturar o banco de dados SQL corretamente. Para evitar esses problemas, você pode normalizar a estrutura do banco. Normalização geralmente implica dividir uma tabela de banco de dados em duas tabelas simples.

Video: Conheça sintomas que podem indicar alterações na próstata

anomalias de modificação são assim chamados porque eles são gerados pela adição de, modificação ou supressão de dados de uma tabela de banco de dados.

Suponha, por exemplo, que a sua empresa vende produtos de limpeza doméstica, e você cobrar todos os clientes o mesmo preço para cada produto. A tabela SALES mantém o controle de tudo para você. Suponha que o cliente 1001 se afasta e não é mais um cliente. Você não se importa o que ele comprou no passado, porque ele não vai comprar nada de você novamente. Você quer apagar a sua linha da tabela.

Se você fizer isso, no entanto, você não apenas perder o fato de que o cliente 1001 comprou lavandaria detergent- você também perde o fato de que detergente para a roupa custa R $ 12. Esta situação é chamada de eliminação anomalia. Na exclusão de um fato (que o cliente 1001 comprou sabão em pó), você excluir inadvertidamente um outro fato (que detergente para a roupa custa R $ 12).

Video: Bancos de Dados - Aula 19 - Formas Normais – Parte I

Você pode usar a mesma tabela para ilustrar uma anomalia de inserção. Por exemplo, suponha que você deseja adicionar desodorante vara para a sua linha de produtos a um preço de US $ 2. Você não pode adicionar esses dados para a tabela SALES até que um cliente compra desodorante stick.

O problema com a tabela de vendas é que esta tabela lida com mais de uma coisa: abrange não apenas quais produtos os clientes compram, mas também o que os produtos de custo. Para eliminar as anomalias, você tem que dividir tabela de vendas em duas tabelas, cada lidar com apenas um tema ou idéia.



  • CUST_PURCH, que lida com a única idéia de compras do cliente.

  • PROD_PRICE, que lida com a única idéia de fixar o preço do produto.

Agora você pode excluir a linha para o cliente 1001 de CUST_PURCH sem perder o fato de que detergente para a roupa custa R $ 12. (O custo de detergente está agora armazenado na PROD_PRICE.) Você também pode adicionar desodorante vara para PROD_PRICE ou não alguém tenha comprado o produto. informações de compra é armazenado em outro lugar, na tabela de CUST_PURCH.

O processo de dividir uma tabela em várias tabelas, cada um dos quais tem um único tema, é chamado normalização. Uma operação de normalização que resolve um problema não pode afetar outros problemas. Você pode ter que realizar várias operações sucessivas de normalização para reduzir cada tabela resultante para um único tema.

Video: Rouquidão Tratamento Caseiro

Cada tabela de banco de dados deve lidar com um - e apenas um - tema principal. Às vezes (como você provavelmente adivinhou) determinar que uma tabela realmente lida com dois ou mais temas pode ser difícil.

Você pode classificar tabelas de acordo com os tipos de anomalias de modificação a que está sujeito. Em um papel 1970, E. F. Codd identificados três fontes de anomalias de modificação e definida primeiro, segundo, e terceiro formas normais (1NF, 2NF, 3NF) como remédios para esses tipos de anomalias. Nos anos seguintes, Codd e outros descobriram outros tipos de anomalias e especificou novas formas normais para lidar com eles.

A forma Boyce-Codd normal (FNBC), a quarta forma normal (4NF), e a quinta forma normal (5NF) cada proporcionou um maior grau de protecção contra anomalias de modificação. Não até 1981, no entanto, fez um papel, escrito por Ronald Fagin, descreva forma normal chave de domínio, ou DK / NF. Usando esta última forma normal permite-lhe garantia que uma mesa é livre de anomalias de modificação.

As formas são normais aninhados no sentido de que uma tabela que está em 2NF é automaticamente Além disso em 1NF. Da mesma forma, uma tabela em 3NF é automaticamente em 2NF, e assim por diante. Para a maioria das aplicações práticas, colocando um banco de dados em 3NF é suficiente para assegurar um elevado grau de integridade. Para ter certeza absoluta da sua integridade, você deve colocar o banco de dados em DK / NF.

Video: 10 Adolescentes Que Não Vai Acreditar Que Existem

Depois de normalizar um banco de dados, tanto quanto possível, você pode querer fazer denormalizations selecionados para melhorar o desempenho. Se fizer isso, estar ciente dos tipos de anomalias que podem agora tornar-se possível.


Publicações relacionadas