La forma normal de clave elemental ( EKNF ) es una mejora sutil de la tercera forma normal ; por lo tanto, las tablas EKNF están en 3NF por definición. Esto ocurre cuando hay más de una clave compuesta única y estas se superponen. En tales casos, puede haber información redundante en la(s) columna(s) superpuesta(s).
Historia
EKNF fue definida por Carlo Zaniolo en 1982. [ 1 ]
Definición
Una tabla está en EKNF si y solo si todas sus dependencias funcionales elementales comienzan en claves completas o terminan en atributos de clave elementales. Para cada dependencia funcional completa no trivial de la forma X→Y, X es una clave o Y es (una parte de) una clave elemental. [ 1 ]
En esta definición, una dependencia funcional elemental es una dependencia funcional completa (una dependencia funcional no trivial X → A tal que no existe ninguna dependencia funcional X' → A que también se cumpla siendo X' un subconjunto estricto de X), y una clave elemental es una clave X para la cual existe un atributo A tal que X → A es una dependencia funcional elemental.
Ejemplo
Consideremos el siguiente escenario: existe un proceso de pedido de gafas en el que se deben especificar la montura y los cristales. El producto de los cristales debe ser un cristal y el producto de la montura debe ser una montura. Para que se cumpla esta restricción, se añade el tipo de producto a la fila correspondiente a cada producto.
En el escenario anterior, existiría una restricción en FrameProductType y LensProductType, donde deben ser Frame y Lens respectivamente. Además, habría una relación de clave externa con Product en Id y productType para FrameId, FrameProductType y LensId, LensProductType respectivamente. Para que esta relación de clave externa funcione, se debe crear una clave elemental en la tabla Product en Id y Type. Esto generalmente se logra mediante una restricción de clave única. Sin esta relación y restricción, se podría seleccionar una lente para la montura y una montura para la lente.
Notas
Referencias
- Halpin, TA; Morgan, Antony J.; Morgan, Tony. Modelado de información y bases de datos relacionales .
- Date, CJ "Forma normal de clave elemental (EKNF)". Diseño de bases de datos y teoría relacional .
- Celko, Joe. SQL para expertos: Programación SQL avanzada (3.ª ed.).
- Normalización de la base de datos