Quinta forma normal

La quinta forma normal (5FN), también conocida como forma normal de proyección-unión (PJ/NF), es un nivel de normalización de bases de datos diseñado para reducir redundancia en las bases de datos relacionales que guardan hechos multi-valores aislando semánticamente relaciones múltiples relacionadas. Una tabla se dice que está en 5NF si y solo si está en 4NF y cada dependencia de unión (join) en ella es implicada por las claves candidatas.

La quinta forma normal fue definida por Ronald Fagin en su contribución al congreso «Normal forms and relational database operators» de 1979.[1]

Ejemplo editar

Considere el siguiente ejemplo:

Psiquiatra-para-Asegurador-para-Condición
Psiquiatra Asegurador Condición
Dr. James Healthco Ansiedad
Dr. James Healthco Depresión
Dr. Kendrick FriendlyCare OCD
Dr. Kendrick FriendlyCare Ansiedad
Dr. Kendrick Healthco Depresión
Dr. Lowenstein FriendlyCare Esquizofrenia
Dr. Lowenstein Healthco Ansiedad
Dr. Lowenstein Healthco Demencia
Dr. Lowenstein Victorian Life Trastorno de conversión

El psiquiatra puede ofrecer tratamiento reembolsable a los pacientes que sufren de la condición dada y que son asegurados por el asegurador dado. En ausencia de cualquier regla dada por el escenario real que se quiere representar que restrinja las combinaciones válidas posibles de psiquiatra, asegurador y condición, la tabla de tres atributos Psiquiatra-para-Asegurador-para-Condición es necesaria para modelar la situación correctamente. La única llave candidata que permite identificar de forma unívoca (sin duplicados) cada una de las tuplas de la tabla es la unión de las tres columnas Psiquiatra+Asegurador+Condición y, en consecuencia, esta es su clave primaria compuesta (PK).

La tabla también será válida y cumplirá con la 5FN si existe una regla dada por el escenario real que se quiere representar que, por ejemplo, limita la relación contractual de un doctor con un asegurador al no dar servicio para una condición concreta. Por ejemplo: el asegurador FriendlyCare, por motivos cualesquiera dados por el escenario real, podría no permitir al Dr. Lowenstein dar tratamiento para la Ansiedad bajo el nombre de su empresa, pero sí tratamiento para la Esquizofrenia. Nótese que FriendlyCare ya ofrece el servicio de tratamiento para la Ansiedad con otros doctores.

Sin embargo, suponga que la siguiente regla lógica se aplica:

Cuando un psiquiatra es autorizado a ofrecer el tratamiento reembolsable a los pacientes asegurados por el asegurador P, y el psiquiatra puede tratar la condición C, entonces - en caso de que el asegurador P cubra la condición C - debe ser cierto que el psiquiatra puede ofrecer el tratamiento reembolsable a los pacientes que sufren de la condición C y están asegurados por el asegurador P.

Si se cumplen las restricciones supuestas anteriormente, es posible dividir la tabla en tres partes para almacenar todos los pares de combinaciones posibles:

Psiquiatra-para-Condición
Psiquiatra Condición
Dr. James Ansiedad
Dr. James Depresión
Dr. Kendrick OCD
Dr. Kendrick Ansiedad
Dr. Kendrick Depresión
Dr. Lowenstein Esquizofrenia
Dr. Lowenstein Ansiedad
Dr. Lowenstein Demencia
Dr. Lowenstein Trastorno de conversión
Psiquiatra-para-Asegurador
Psiquiatra Asegurador
Dr. James Healthco
Dr. Kendrick FriendlyCare
Dr. Kendrick Healthco
Dr. Lowenstein FriendlyCare
Dr. Lowenstein Healthco
Dr. Lowenstein Victorian Life
Asegurador-para-Condición
Asegurador Condición
Healthco Ansiedad
Healthco Depresión
Healthco Demencia
FriendlyCare OCD
FriendlyCare Ansiedad
FriendlyCare Esquizofrenia
Victorian Life Trastorno de conversión

Para las tres nuevas tablas la totalidad de sus columnas definirán su llave primaria compuesta (PK) puesto que es la única llave candidata que existe para cada tabla y que nos permite identificar de forma única cada una de las filas de las tablas.

Note cómo esta disposición ayuda a quitar redundancia (datos duplicados). Suponga que el Dr. James se convierte en un proveedor de tratamientos para Friendly Care. En la disposición anterior tendríamos que agregar dos nuevas entradas puesto que el Dr. James puede tratar dos condiciones cubiertas por Friendly Care: ansiedad y depresión. Con la nueva disposición necesitamos agregar una sola entrada (en la tabla Psiquiatra-para-Asegurador).

Si el supuesto comentado anteriormente es cierto: el esquema relacional alcanzado de tres tablas con dos columnas cada una cumple con la 5FN mientras que la tabla original no. Esto es porqué la tabla original no contiene todas las combinaciones posibles entre Psiquiatra-Asegurador-Condición que se pueden obtener de las tres tablas resultantes mediante una consulta haciendo join por sus columnas comunes. En otras palabras: combinando los datos del esquema relacional derivado de las tres tablas, obtenemos más información que en la tabla original; incumpliendo así, la dependencia de proyección-unión.

Uso editar

Solamente en contadas ocasiones una tabla 4NF no se corresponde con una 5NF. Estas son situaciones en las cuales una restricción compleja del mundo real, que limita las combinaciones válidas de los valores de atributos en la tabla 4NF, no está implícita en la estructura de esa tabla. Si esa tabla no se normaliza a 5NF, la tarea de mantener la consistencia lógica de los datos dentro de la tabla debe ser llevada en parte por la aplicación responsable de inserciones, borrados, y actualizaciones a ella; y hay un riesgo elevado de que los datos dentro de la tabla se vuelvan inconsistentes. Por el contrario, el diseño 5NF excluye la posibilidad de tales inconsistencias.

Referencias editar

  1. S. Krishna (1991). Introduction to Data Base and Knowledge Base Systems. ISBN 9810206208. "The fifth normal form was introduced by Fagin"

Bibliografía editar

Véase también editar