¿Cómo lidiar con anomalías de modificación del sql y formas normales

Una serie de problemas - llamada anomalías de modificación - pueden plagar una base de datos si no estructurar la base de datos SQL correctamente. Para evitar estos problemas, puede normalizar la estructura de base de datos. La normalización implica generalmente la división de una tabla de base de datos en dos tablas más simples.

anomalías de modificación se llaman así porque se generan mediante la adición de, a cambio, o la supresión de datos de una tabla de base de datos.

Supongamos, por ejemplo, que su empresa vende productos de limpieza del hogar, y le cobran a todos los clientes el mismo precio para cada producto. La tabla de ventas realiza un seguimiento de todo para usted. Supongamos que al cliente 1001 se aleja y ya no es un cliente. No te importa lo que él ha comprado en el pasado, debido a que no va a comprar nada de nuevo. Que desea borrar la fila de la tabla.

Si lo hace, sin embargo, no acaba de perder el hecho de que al cliente 1001 ha comprado ropa con detergente también se pierde el hecho de que detergente para la ropa cuesta $ 12. Esta situación se denomina eliminación anomalía. Al suprimir un hecho (que el cliente compró 1.001 detergente para la ropa), se elimina inadvertidamente otro hecho (detergente para ropa que cuesta $ 12).

Video: S12 (1/3) Formas normales superiores

Puede utilizar la misma tabla para ilustrar una anomalía de inserción. Por ejemplo, supongamos que desea añadir desodorante en barra a su línea de productos a un precio de 2 $. No se puede agregar estos datos a la tabla de ventas hasta que un cliente compra desodorante en barra.

El problema con la tabla de ventas es que esta tabla se refiere a más de una cosa: abarca no sólo los que compran productos a los clientes, sino también lo que cuestan los productos. Para eliminar las anomalías, hay que dividir la tabla de ventas en dos tablas, cada uno dedicado a un solo tema o idea.

  • CUST_PURCH, que trata de la única idea de compras de los clientes.

  • PROD_PRICE, que trata de la única idea de precios de los productos.

Video: BD1 Leccion7 Capitulo4 Implementacion de Base de Datos mediante codigo SQL

Ahora puede eliminar la fila para el cliente desde 1001 CUST_PURCH sin perder el hecho de que detergente para la ropa cuesta $ 12. (El costo de detergente para la ropa ya está guardado en PROD_PRICE.) También puede añadir desodorante en barra a PROD_PRICE si alguien ha comprado el producto. información de compra se almacena en otro lugar, en la tabla CUST_PURCH.

El proceso de dividir una tabla en varias tablas, cada una de las cuales tiene un solo tema, se llama normalización. Una operación de normalización que resuelve un problema no puede afectar a otros problemas. Puede que tenga que realizar varias operaciones sucesivas de normalización para reducir cada tabla resultante a un solo tema.

Cada tabla de base de datos debe hacer frente a una - y sólo uno - el tema principal. A veces (como habrá adivinado) la determinación de que una mesa De Verdad se ocupa de dos o más temas pueden ser difíciles.

Puede clasificar las tablas según los tipos de anomalías de modificación a las que están sujetos. En un documento de 1970, E. F. Codd identificó tres fuentes de anomalías de modificación y define primero, segundo, y tercero formas normales (1NF, 2NF, 3NF) como remedios a esos tipos de anomalías. En los años siguientes, Codd y otros descubrieron otros tipos de anomalías y especificados nuevas formas normales para lidiar con ellos.

La forma Boyce-Codd normal (BCNF), la cuarta forma normal (4NF), y la quinta forma normal (5NF) cada uno proporcionó un mayor grado de protección contra anomalías de modificación. No fue hasta 1981, sin embargo, hizo un papel, escrito por Ronald Fagin, describir la forma normal clave de dominio, o DK / NF. Utilizando esta última forma normal le permite garantía una mesa que esté libre de anomalías de modificación.

Las formas normales son anidado en el sentido de que una tabla que está en 2NF es automáticamente además en 1NF. Del mismo modo, una tabla en 3NF está automáticamente en 2NF, y así sucesivamente. Para aplicaciones más prácticas, poniendo una base de datos en 3NF es suficiente para asegurar un alto grado de integridad. Para estar absolutamente seguro de su integridad, debe poner la base de datos en DK / NF.

Video: FORMA NORMAL BOYCE-CODD (BASE DE DATOS)

Después de normalizar una base de datos tanto como sea posible, es posible que desee hacer denormalizations seleccionados para mejorar el rendimiento. Si lo hace, estar al tanto de los tipos de anomalías que pueden llegar a ser ahora posible.

Artículos Relacionados