Segunda forma normal

La segunda forma normal (2NF) es una forma normal usada en normalización de bases de datos. La 2NF fue definida originalmente por E.F. Codd[1]​ en 1971. Una tabla que está en la primera forma normal (1NF) debe satisfacer criterios adicionales para calificar para la segunda forma normal. Específicamente: una tabla 1NF está en 2NF si y solo si, dada una clave primaria y cualquier atributo que no sea un constituyente de la clave primaria, el atributo no clave depende de toda la clave primaria en vez de solo de una parte de ella.

En términos levemente más formales: una tabla 1NF está en 2NF si y solo si ninguno de sus atributos no-principales son funcionalmente dependientes de una parte (subconjunto propio) de una clave candidata (Un atributo no-principal es uno que no pertenece a ninguna clave candidata).

Observa que cuando una tabla 1NF no tiene ninguna clave candidata compuesta (claves candidatas consisten en más de un atributo), la tabla está automáticamente en 2NF.

Ejemplo

Considera una tabla describiendo las habilidades de los empleados:


Habilidades de los empleados
EmpleadoHabilidadLugar actual de trabajo
JonesMecanografía114 Main Street
JonesTaquigrafía114 Main Street
JonesTallado114 Main Street
BravoLimpieza ligera73 Industrial Way
EllisAlquimia73 Industrial Way
EllisMalabarismo73 Industrial Way
HarrisonLimpieza ligera73 Industrial Way

La única clave candidata de la tabla es {Empleado, Habilidad}.

El atributo restante, Lugar actual de trabajo, es dependiente de Empleado únicamente, que es solo parte de la clave candidata. Por lo tanto la tabla no está en 2NF. Observe la redundancia de la manera en que son representadas los Lugares actuales de trabajo: nos dicen tres veces que Jones trabaja en la 114 Main Street, y dos veces que Ellis trabaja en 73 Industrial Way. Esta redundancia hace a la tabla vulnerable a anomalías de actualización: por ejemplo, es posible actualizar el lugar del trabajo de Jones en sus registros "Mecanografía" y "Taquigrafía" y no actualizar su registro "Tallado". Los datos resultantes implicarían respuestas contradictorias a la pregunta "¿Cuál es el lugar actual de trabajo de Jones?".

Una alternativa 2NF a este diseño representaría la misma información en dos tablas:

Empleados
EmpleadoLugar actual de trabajo
Jones114 Main Street
Bravo73 Industrial Way
Ellis73 Industrial Way
Harrison73 Industrial Way
Habilidades de los empleados
EmpleadoHabilidad
JonesMecanografía
JonesTaquigrafía
JonesTallado
BravoLimpieza ligera
EllisAlquimia
EllisMalabarismo
HarrisonLimpieza ligera

Las anomalías de actualización no pueden ocurrir en estas tablas, las cuales están en 2NF.

Sin embargo, no todas las tablas 2NF están libres de anomalías de actualización. Un ejemplo de una tabla 2NF que sufre de anomalías de actualización es:

Ganadores del torneo
TorneoAñoGanadorFecha de nacimiento del ganador
Des Moines Masters1998Chip Masterson14 de marzo de 1977
Indiana Invitational1998Al Fredrickson21 de julio de 1975
Cleveland Open1999Bob Albertson28 de septiembre de 1968
Des Moines Masters1999Al Fredrickson21 de julio de 1975
Indiana Invitational1999Chip Masterson14 de marzo de 1977

Aunque el Ganador y la Fecha de nacimiento del ganador están determinadas por una clave completa {Torneo, Año} y no son partes de ella, particularmente las combinaciones Ganador / Fecha de nacimiento del ganador son mostradas redundantemente en múltiples registros. Este problema es tratado por la tercera forma normal (3NF).

2NF y las claves candidatas

Una tabla para la cual no hay dependencias funcionales parciales en la clave primaria está típicamente, pero no siempre, en 2NF. Además de la clave principal, la tabla puede contener otras claves candidatas; es necesario establecer que ningún atributo no-principal tienen dependencias de clave parciales en cualesquiera de estas claves candidatas.

Las múltiples claves candidatas ocurren en la siguiente tabla:

Modelos eléctricos de cepillo de dientes
FabricanteModeloNombre completo del modeloPaís del fabricante
ForteX-PrimeForte X-PrimeItalia
ForteUltracleanForte UltracleanItalia
Dent-o-FreshEZBrushDent-o-Fresh EZBrushUSA
KobayashiST-60Kobayashi ST-60Japón
HochToothmasterHoch ToothmasterAlemania
HochContenderHoch ContenderAlemania

Aun si el diseñador ha especificado la clave principal como {Nombre completo del modelo}, la tabla no está en 2NF. {Fabricante, Modelo} es también una clave candidata, y País del fabricante es dependiente de un subconjunto apropiado de ella: Fabricante.

Referencias

Lectura adicional

Véase también

Enlaces externos