Sql primero, formas normales segunda y tercera

Video: Base de datos | Normalización (1FN, 2FN y 3FN)

Hay tres fuentes de anomalías de modificación en SQL Estos se definen como primera, segunda, y tercera formas normales (1NF, 2NF, 3NF). Estas formas normales actúan como remedios a la modificación anomalías.

Primera forma normal

Para estar en la primera forma normal (1NF), una tabla debe tener las siguientes cualidades:

  • La mesa es de dos dimensiones con filas y columnas.

  • Cada fila contiene datos que pertenece a alguna cosa o parte de una cosa.

    Video: Primera,Segunda,Y Tercera Forma normal,modelo relacional en MySQL Workbench

  • Cada columna contiene datos para un solo atributo de la cosa se está describiendo.

  • Cada célula (intersección de una fila y una columna) de la tabla debe tener solamente un único valor.

  • Las entradas en cualquiera de las columnas deben ser todos del mismo tipo. Si, por ejemplo, la entrada en una fila de una columna contiene un nombre de empleado, todas las otras filas deben contener nombres de los empleados de esa columna, también.

  • Cada columna debe tener un nombre único.

  • No hay dos filas pueden ser idénticos (es decir, cada fila debe ser único).

  • El orden de las columnas y el orden de las filas no son significativas.

Una tabla (relación) en la primera forma normal es inmune a ciertos tipos de anomalías de modificación pero aún está sujeta a los demás. La tabla de ventas está en la primera forma normal, y la mesa está sujeta a deleción e inserción anomalías. La primera forma normal puede resultar útil en algunas aplicaciones pero poco fiable en otros.

Segunda forma normal

Para apreciar la segunda forma normal, hay que entender la idea de dependencia funcional. UN dependencia funcional es una relación entre dos o más atributos. Un atributo es funcionalmente dependiente de otro si el valor de la segunda atributo determina el valor de la primera atributo. Si conoce el valor del segundo atributo, se puede determinar el valor del primer atributo.

Supongamos, por ejemplo, que una tabla tiene atributos (columnas) Cargo estándar, NumberOfTests, y Carga total que se relacionan a través de la siguiente ecuación:

TotalCharge = StandardCharge * NumberOfTests

Carga total es funcionalmente dependiente tanto Cargo estándar y NumberOfTests. Si conoce los valores de Cargo estándar y NumberOfTests, se puede determinar el valor de Carga total.

Cada mesa en la primera forma normal debe tener una clave primaria única. Esa llave puede consistir en una o más de una columna. Una clave consiste en más de una columna se llama una clave compuesta. Para estar en la segunda forma normal (2NF), todos los atributos no clave debe depender de toda la clave. Por lo tanto, cada relación que está en 1NF con una única clave de atributo está automáticamente en la segunda forma normal.

Si una relación tiene una clave compuesta, todos los atributos que no son clave deben depender de todos los componentes de la clave. Si usted tiene una mesa donde algunos atributos no clave no dependen de todos los componentes de la clave, romper la mesa en dos o más tablas de manera que - en cada una de las nuevas tablas - todos los atributos no clave dependen de todos los componentes de la clave primaria.

Suena confuso? Mira un ejemplo para aclarar las cosas. Tenga en cuenta la tabla de ventas. En lugar de grabar solamente una sola compra para cada cliente, se agrega una fila cada vez que un cliente compra un artículo por primera vez. Otra diferencia es que los clientes de alquiler (los que tienen Identificación del cliente valores de 1001-1007) obtienen un descuento sobre el precio normal.

Identificación del cliente no identifica de forma única una fila. En dos filas, Identificación del cliente es 1001. En otras dos filas, Identificación del cliente es 1010. La combinación de la Identificación del cliente columna y el Producto columna identifica de forma única una fila. Estas dos columnas juntos son una clave compuesta.

Si no fuera por el hecho de que algunos clientes califican para un descuento y otros no, la mesa no estaría en la segunda forma normal, porque Precio (Un atributo no clave) dependería sólo en parte de la clave (Producto). Debido a que algunos clientes no califican para un descuento, Precio depende tanto de Identificación del cliente y Producto, y la tabla está en la segunda forma normal.

Tercera forma normal,

Tablas en la segunda forma normal son especialmente vulnerables a ciertos tipos de anomalías de modificación - en particular, los que provienen de dependencias transitivas.

UN dependencia transitiva se produce cuando un atributo depende de un segundo atributo, que depende de un tercio de atributo. Deleciones en una mesa con una dependencia de este tipo pueden causar pérdida de información no deseada. Una relación en la tercera forma normal es una relación en la segunda forma normal sin dependencias transitivos.

Mira de nuevo en la tabla de ventas, que se conoce está en la primera forma normal. Mientras que la restringirá entradas para permitir sólo una fila para cada Identificación del cliente, usted tiene una clave principal de un solo atributo, y la tabla está en la segunda forma normal. Sin embargo, la tabla todavía está sujeto a anomalías. ¿Y si al cliente 1010 no está contento con el blanqueador de cloro, por ejemplo, y devuelve el artículo para un reembolso?

Que desea quitar la tercera fila de la tabla, que registra el hecho de que el cliente compró 1.010 blanqueador de cloro. Usted tiene un problema: si quita esa fila, también se pierde el hecho de que el blanqueador de cloro tiene un precio de $ 4. Esta situación es un ejemplo de una dependencia transitiva. Precio depende de Producto, el cual, a su vez, depende de la clave primaria Identificación del cliente.

Romper la tabla de ventas en dos mesas resuelve el problema de la dependencia transitiva. Las dos tablas constituyen una base de datos que está en tercera forma normal.

Artículos Relacionados