Cómo la tercera forma normal (3NF) ayuda a asegurar la precisión de los datos


La tercera forma normal (3NF) es un principio de base de datos que soporta la integridad de los datos basándose en los principios de normalización de la base de datos proporcionados por la primera forma normal (1NF) y la segunda forma normal (2NF).

El propósito de 3NF es mejorar el procesamiento de la base de datos al mismo tiempo que se minimizan los costos de almacenamiento.

Requisitos de la Tercera Forma Normal

Hay dos requisitos básicos para que una base de datos esté en 3NF:

  • La base de datos ya debe cumplir con los requisitos de 1NF y 2NF.
  • Todas las columnas de la base de datos deben depender de la clave primaria, lo que significa que el valor de cualquier columna s√≥lo puede derivarse de la clave primaria.

Dependencia de clave primaria

Exploremos m√°s a fondo lo que queremos decir con el hecho de que todas las columnas deben depender de la clave primaria. Si el valor de una columna puede derivarse tanto de la clave primaria como de otra columna de la tabla, viola 3NF. Considere una tabla de empleados con estas columnas:

  • EmployeeID
  • Nombre
  • Apellido

¬ŅDependen tanto el apellido como el nombre del empleado del valor de EmployeeID? Bueno, ¬Ņpodr√≠a LastName depender de FirstName? No, porque nada inherente a LastName sugerir√≠a el valor de FirstName.

¬ŅPodr√≠a depender FirstName de LastName? No otra vez, porque lo mismo es cierto: cualquiera que sea el apellido, no puede dar una pista sobre el valor de FirstName. Por lo tanto, esta tabla es compatible con 3NF.

Pero considere esto Tabla de vehículos :

  • VehicleID
  • Fabricante
  • Modelo

El Fabricante y el Modelo podr√≠an derivar del VehicleID, pero el Modelo tambi√©n podr√≠a derivar del Fabricante porque un modelo de veh√≠culo es hecho solamente por un fabricante en particular. Este dise√Īo de tabla no es compatible con 3NF, y podr√≠a, por lo tanto, dar lugar a anomal√≠as de datos. Por ejemplo, puede actualizar el fabricante sin actualizar el modelo, introduciendo inexactitudes.

Mover la columna dependiente adicional a otra tabla y hacer referencia a ella usando una clave externa la haría compatible. Esto daría como resultado dos cuadros:

En la tabla Veh√≠culos a continuaci√≥n, el ModelID es una clave extra√Īa a la tabla Modelos:

  • VehicleID
  • Fabricante
  • ModelID

Esta nueva Tabla de modelos asigna los modelos a los fabricantes. Si desea actualizar cualquier información de vehículo específica de un modelo, lo haría en esta tabla, en lugar de en la Tabla de Vehículos.

  • ModelID
  • Fabricante
  • Modelo

Campos derivados en el modelo 3NF

Una tabla puede contener un campo derivado, que es el que se calcula en base a otras columnas de la tabla. Por ejemplo, considere esta tabla de órdenes de widgets:

  • N√ļmero de pedido
  • N√ļmero de cliente
  • Precio unitario
  • Cantidad
  • Total

El total rompe con el cumplimiento de la norma 3NF porque se puede obtener multiplicando el precio unitario por la cantidad, en lugar de depender totalmente de la clave primaria. El total debe ser eliminado de la tabla para cumplir con el tercer formulario normal.

De hecho, como se deriva, es mejor no almacenarlo en la base de datos en absoluto, sino simplemente computarlo sobre la marcha cuando se realizan consultas a la base de datos. Por ejemplo, es posible que hayamos utilizado previamente esta consulta para recuperar los n√ļmeros de orden y los totales:

SELECT N√ļmero de pedido, Total

FROM WidgetOrders

Ahora utilice la siguiente consulta para obtener los mismos resultados sin violar las reglas de normalización:

SELECT N√ļmero de pedido, Precio unitario * Cantidad AS total

FROM WidgetOrders

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *