Quinta forma normal

La quinta forma normal (5NF)  es una de las posibles formas normales de una relación de base de datos relacional .

Definición

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 .

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:

R
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:

R1 _
a
Moscú
Tomsk
Berlina
R2 _
b C
Rusia capital
Rusia no la capital
Alemania capital

El resultado de la operación de conexión de estas relaciones:

R ' = R1 UNIÓN NATURAL R2
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 }:

R1 _
a b
Moscú Rusia
Tomsk Rusia
Berlina Alemania
R2 _
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] .

Dependencia de conexión

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 .

Declaración de la definición

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".

Propiedades de 5NF

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.

Ejemplo

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):

Surtido (vendedores, empresas, bienes)
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}.

bienes de los vendedores
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
empresas vendedoras
Vendedor Firma
Ivánov Cuernos y pezuñas
Petrov Bezenchuk&Co
Sidorov Bezenchuk&Co
Sidorov Cuernos y pezuñas
Sidorov Hércules
productos de la empresa
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

Véase también

Notas

  1. En sentido estricto, se debe utilizar el término "descomposición proyectiva" o "descomposición basada en proyección", ya que la división de la relación original se realiza a través de la operación de proyección. Teóricamente, existen otras variantes de la descomposición, por ejemplo, basadas en la operación de reducción (selección), pero son exóticas, por lo que se entiende por descomposición, salvo indicación expresa en contrario, descomposición por proyección.
  2. 1 2 3 Fecha K. J. Introducción a los sistemas de bases de datos. - 8ª edición. - M.: "Williams", 2005
  3. Leer "asterisco A, B,..., Z"

Literatura