Segunda forma normal
Segunda forma normal (2NF) es una forma normal utilizada en la normalización de bases de datos. 2NF fue definido originalmente por E. F. Codd en 1971.
Una relación está en la 'segunda forma normal si cumple los siguientes dos requisitos:
- Es en primera forma normal.
- No tiene ningún atributo no alto que dependa funcionalmente de cualquier subconjunto adecuado de cualquier clave candidata de la relación (es decir, carece de dependencias parciales). Atributo no alto de una relación es un atributo que no es parte de ninguna clave candidata de la relación.
En pocas palabras, una relación está en 2NF si está en 1FN y cada atributo no primo de la relación depende de la totalidad de cada clave candidata. Tenga en cuenta que no pone ninguna restricción en la dependencia de atributos no primos a no primos. Eso se aborda en la tercera forma normal.
2NF y claves candidatas
Una dependencia funcional en un subconjunto adecuado de cualquier clave candidata es una violación de 2NF. Además de la clave principal, la relación puede contener otras claves candidatas; es necesario establecer que ningún atributo no primo tenga dependencias de clave parcial en ninguna de estas claves candidatas.
Cómo descomponer en 2NF
Para convertir una relación 1FN en una relación 2NF, elimine los atributos funcionalmente dependientes en las dependencias parciales de la primera relación de forma normal y coloque esos atributos dependientes de dependencia parcial en una relación donde sus atributos determinantes correspondientes sean una clave candidata completa.
Ejemplo
La siguiente relación no satisface 2NF porque:
- {Un país manufacturero} depende funcionalmente de {Fabricante}.
- {Un país fabricante} no es parte de una clave candidata, por lo que es un atributo no-prime. (Se supone que es posible para dos fabricantes en el mismo país hacer un cepillo de dientes con el mismo nombre de modelo, por lo que {Manufacturer country, Model} no es una clave candidata, aunque en la tabla actual el par identifica singularmente filas).
- {Fabricante} es un subconjunto adecuado de la tecla de candidato {Fabricante, Modelo}.
En otras palabras, dado que {País del fabricante} es un atributo no principal funcionalmente dependiente de un subconjunto adecuado de una clave candidata, la relación infringe la 2NF.
Fabricantes | Modelo | País fabricante |
---|---|---|
Forte | X-Prime | Italia |
Forte | Ultraclean | Italia |
Dent-o-Fresh | EZbrush | USA |
Brushmaster | SuperBrush | USA |
Kobayashi | ST-60 | Japón |
Hoch | Toothmaster | Alemania |
Hoch | X-Prime | Alemania |
Para que el diseño se ajuste a 2FN, es necesario tener dos relaciones. Para crear estas relaciones:
- Eliminar los atributos funcionalmente dependientes en las dependencias parciales de la primera relación de forma normal. En este ejemplo, {Manufacturer country} es el atributo funcionalmente dependiente que será eliminado.
- Coloque esos atributos dependientes parciales (es decir, {país manufacturero}) en una relación donde sus atributos determinantes correspondientes son una clave candidata (es decir, {Fabricante}).
Como se ve a continuación, {País del fabricante} se elimina de la tabla original:
Fabricantes | Modelo |
---|---|
Forte | X-Prime |
Forte | Ultraclean |
Dent-o-Fresh | EZbrush |
Brushmaster | SuperBrush |
Kobayashi | ST-60 |
Hoch | Toothmaster |
Hoch | X-Prime |
Como se ve a continuación, la dependencia parcial se coloca en una nueva relación donde la dependencia puede existir sin ser una dependencia parcial:
Fabricantes | País fabricante |
---|---|
Forte | Italia |
Dent-o-Fresh | USA |
Brushmaster | USA |
Kobayashi | Japón |
Hoch | Alemania |
Contenido relacionado
Telecomunicaciones en Sierra Leona
Unión Internacional de Telecomunicaciones
Transporte en Grecia