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
editarConsidere 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:
|
|
|
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
editarSolamente 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- ↑ S. Krishna (1991). Introduction to Data Base and Knowledge Base Systems. ISBN 9810206208. "The fifth normal form was introduced by Fagin"
Bibliografía
editar- Kent, W. (1983) A Simple Guide to Five Normal Forms in Relational Database Theory, Communications of the ACM, vol. 26, pp. 120-125
- Date, C.J., & Darwen, H., & Pascal, F. Database Debunkings
- Advanced Normalization