La quinta forma normal (5NF) es una de las posibles formas normales de una relación de base de datos relacional .
Para definir la quinta forma normal, primero se debe introducir el concepto de dependencia de conexión , que, a su vez, se basa en el concepto de descomposición sin pérdidas .
La descomposición [1] de la relación R es la sustitución de R por un conjunto de relaciones { R 1 , R 2 ,… , R n } tales que cada una de ellas es una proyección de R , y cada atributo de R está incluido en al menos una de las proyecciones de descomposición.
Por ejemplo, para una relación R con atributos { a , b , c }, existen las siguientes opciones principales de descomposición:
Consideremos ahora la relación R' , que es el resultado de la operación NATURAL JOIN aplicada a las relaciones obtenidas como resultado de la descomposición de R.
Una descomposición se denomina descomposición sin pérdidas si R' es exactamente igual a R .
Hablando informalmente, con descomposición sin pérdidas, la relación se "divide" en relaciones de proyección de tal manera que las proyecciones resultantes se pueden usar para "ensamblar" la relación original usando la operación de unión natural.
No toda descomposición es una descomposición sin pérdidas. Ilustremos esto con la relación R con atributos { a , b , c } dada arriba. Sea la relación R de la forma:
a | b | C |
---|---|---|
Moscú | Rusia | capital |
Tomsk | Rusia | no la capital |
Berlina | Alemania | capital |
La descomposición R 1 = { a }, R 2 = { b , c } tiene la forma:
a |
---|
Moscú |
Tomsk |
Berlina |
b | C |
---|---|
Rusia | capital |
Rusia | no la capital |
Alemania | capital |
El resultado de la operación de conexión de estas relaciones:
a | b | C |
---|---|---|
Moscú | Rusia | capital |
Moscú | Rusia | no la capital |
Moscú | Alemania | capital |
Tomsk | Rusia | capital |
Tomsk | Rusia | no la capital |
Tomsk | Alemania | capital |
Berlina | Rusia | capital |
Berlina | Rusia | no la capital |
Berlina | Alemania | capital |
Es obvio que R' no coincide con R , lo que significa que tal descomposición no es una descomposición sin pérdidas. Considere ahora la descomposición R 1 = { a , b }, R 2 = { a , c }:
a | b |
---|---|
Moscú | Rusia |
Tomsk | Rusia |
Berlina | Alemania |
a | C |
---|---|
Moscú | capital |
Tomsk | no la capital |
Berlina | capital |
Tal descomposición es una descomposición sin pérdidas, como el lector puede ver por sí mismo.
En algunos casos, una relación no se puede descomponer sin pérdida alguna. También hay ejemplos de relaciones que no se pueden descomponer sin pérdidas en dos proyecciones, pero que se pueden descomponer sin pérdidas en tres o más proyecciones [2] .
Sean R una variable de relación, y A , B , …, Z algunos subconjuntos del conjunto de sus atributos.
Si la descomposición de cualquier valor válido R en relaciones que consisten en conjuntos de atributos A , B , ..., Z , es una descomposición sin pérdidas, se dice que la variable de relación R satisface la dependencia de unión *{A, B, . . . , Z} [3] .
En otras palabras, la variable de relación R satisface la dependencia de reunión *{A, B, . . . , Z} si y sólo si algún valor admisible de la variable de relación R es equivalente a la unión de sus proyecciones sobre los subconjuntos A , B , …, Z del conjunto de atributos.
Así como una dependencia funcional es un caso especial de una dependencia multivaluada , una dependencia multivaluada es un caso especial de una dependencia conjunta . Una dependencia conjunta es una generalización extrema de los conceptos de dependencia multivaluada y funcional, es decir, es la forma más general de dependencia entre atributos de relación.
Es importante comprender que una dependencia conjunta no se define para un valor específico de la variable de relación en un momento determinado, sino para todos los valores posibles. Por lo tanto, el concepto de dependencia de conexión no se define para una relación (un valor particular), sino para una variable de relación . La dependencia de unión no se determina mecánicamente a partir de los valores actuales, sino que se deriva del conocimiento externo de la naturaleza y los patrones de los datos que pueden estar en la variable de relación. Lo mismo se aplica a las dependencias multivaluadas y funcionales.
Una dependencia de unión *{A, B,…, Z} es trivial si y solo si al menos uno de los subconjuntos A , B ,…, Z es el conjunto de todos los atributos de relación (incluye todos los atributos). De lo contrario, la dependencia de la conexión no es trivial .
Una relación está en quinta forma normal (en otras palabras, en forma normal proyectiva-conectiva) si y sólo si cada dependencia de conexión no trivial en ella está determinada por la(s) clave(s) potencial (es) de esta relación [2] .
Una dependencia de combinación *{A, B,…, Z} se define mediante una clave candidata si y solo si cada uno de los subconjuntos del conjunto de atributos A , B , …, Z es una superclave de la relación [2] .
La condición "cada uno de los subconjuntos A , B , ..., Z del conjunto de atributos es una superclave de la relación" puede formularse de manera equivalente como sigue: "cada uno de los subconjuntos A , B , ... , Z del conjunto de atributos conjunto de atributos incluye alguna clave potencial de la relación".
Cualquier relación en 5NF está automáticamente también en 4NF y por lo tanto en todas las demás formas normales. 5NF es la forma normal final (al menos en el contexto de las operaciones de proyección y unión).
Ronald Feigin en 1979 demostró que cualquier variable de relación se puede descomponer sin pérdida en un conjunto equivalente de variables de relación en 5NF, es decir, 5NF siempre se puede lograr. Sin embargo, Christopher Date señala que el procedimiento para determinar que alguna variable de relación está en 4NF y no en 5FN y, por lo tanto, existe la posibilidad de su descomposición ventajosa adicional, aún no está del todo claro. Esto se debe a que la tarea de determinar todas las dependencias de combinación para una relación puede ser muy difícil, y solo se puede decir que una relación está en 5FN si se conocen todas sus claves candidatas y todas sus dependencias de combinación.
Es muy raro que una relación que está en 4FN no corresponda a 5NF. Estas son situaciones en las que las reglas reales que restringen las combinaciones permitidas de atributos no se expresan de ninguna manera en la estructura de la relación (ver el ejemplo a continuación). En tal caso, si la relación no se reduce a 5NF, la carga de garantizar la integridad lógica de los datos se transfiere en parte a la aplicación responsable de agregar, eliminar y cambiar datos. En este caso, existe el riesgo de errores. La quinta forma normal excluye la ocurrencia de tales anomalías.
Supongamos que necesitamos almacenar datos sobre el surtido de varios vendedores que venden los productos de varias empresas (la gama de productos de las empresas puede superponerse):
Vendedor | Firma | Producto |
---|---|---|
Ivánov | Cuernos y pezuñas | Una aspiradora |
Ivánov | Cuernos y pezuñas | caja de pan |
Petrov | Bezenchuk&Co | Podador |
Petrov | Bezenchuk&Co | Una aspiradora |
Petrov | Bezenchuk&Co | caja de pan |
Petrov | Bezenchuk&Co | Sombrilla |
Sidorov | Bezenchuk&Co | Una aspiradora |
Sidorov | Bezenchuk&Co | Telescopio |
Sidorov | Cuernos y pezuñas | Una aspiradora |
Sidorov | Cuernos y pezuñas | Lámpara |
Sidorov | Hércules | Percha |
Si no hay condiciones adicionales, entonces esta relación, que está en la cuarta forma normal, es correcta y refleja todas las restricciones necesarias.
Supongamos ahora que debemos tener en cuenta la siguiente restricción: cada vendedor tiene una lista limitada de empresas y una lista limitada de tipos de bienes en su surtido y ofrece bienes de la lista de bienes producidos por empresas de la lista de empresas .
Es decir, el vendedor no tiene derecho a comerciar con ningún bien de ninguna empresa. Si el vendedor P tiene derecho a comerciar con bienes de la empresa F , y si el vendedor P tiene derecho a comerciar con bienes del tipo T , el surtido del vendedor P incluye bienes del tipo T de la empresa F , siempre que la empresa F produzca bienes de tipo T.
Tal restricción puede ser causada, por ejemplo, por el hecho de que la lista de tipos de bienes del vendedor está limitada por las licencias que tiene, o por los conocimientos y calificaciones necesarios para su venta, y la lista de empresas de cada vendedor está determinada por los acuerdos de asociación.
En el ejemplo que se examina, en particular, se supone que el vendedor Ivanov tiene derecho a comerciar solo con las mercancías de la empresa Roga y Kopyta, el vendedor Petrov solo con las mercancías de la empresa Bezenchuk & Co, pero el vendedor Sidorov no tiene derecho a comerciar con paneras y podaderas , etc.
La relación propuesta anteriormente no puede excluir situaciones en las que se viola esta restricción. No hay nada que impida ingresar datos sobre el comercio de bienes que esta empresa no produce en absoluto, o datos sobre el comercio de bienes de una empresa que este vendedor no sirve, o datos sobre el comercio de un tipo de producto que este vendedor no tiene derecho a vender.
La relación no está en 5NF, ya que tiene una dependencia de conexión no trivial *{{Vendedor, Empresa}, {Empresa, Producto}, {Vendedor, Producto}}, pero los subconjuntos {Vendedor, Empresa}, {Empresa, Producto }, {Vendedor, Producto} no son superclaves de la relación original.
En este caso, para reducir a 5NF, la relación se debe dividir en tres: {Vendedor, Empresa}, {Empresa, Producto}, {Vendedor, Producto}.
Vendedor | Producto |
---|---|
Ivánov | Una aspiradora |
Ivánov | caja de pan |
Petrov | Podador |
Petrov | Una aspiradora |
Petrov | caja de pan |
Petrov | Sombrilla |
Sidorov | Telescopio |
Sidorov | Una aspiradora |
Sidorov | Lámpara |
Sidorov | Percha |
Vendedor | Firma |
---|---|
Ivánov | Cuernos y pezuñas |
Petrov | Bezenchuk&Co |
Sidorov | Bezenchuk&Co |
Sidorov | Cuernos y pezuñas |
Sidorov | Hércules |
Firma | Producto |
---|---|
Cuernos y pezuñas | Una aspiradora |
Cuernos y pezuñas | caja de pan |
Cuernos y pezuñas | Lámpara |
Bezenchuk&Co | Podador |
Bezenchuk&Co | Una aspiradora |
Bezenchuk&Co | caja de pan |
Bezenchuk&Co | Sombrilla |
Bezenchuk&Co | Telescopio |
Hércules | Percha |
formas normales | |
---|---|