stringtranslate.com

Tercera forma normal

La tercera forma normal ( 3NF ) es un enfoque de diseño de esquemas de bases de datos para bases de datos relacionales que utiliza principios de normalización para reducir la duplicación de datos, evitar anomalías de datos , garantizar la integridad referencial y simplificar la gestión de datos . Fue definida en 1971 por Edgar F. Codd , un científico informático inglés que inventó el modelo relacional para la gestión de bases de datos .

Se dice que una relación de base de datos (por ejemplo, una tabla de base de datos ) cumple con los estándares de la tercera forma normal si todos los atributos (por ejemplo, las columnas de la base de datos ) dependen funcionalmente únicamente de una clave , excepto en el caso de dependencia funcional cuyo lado derecho es un atributo principal (un atributo que está estrictamente incluido en alguna clave). Codd definió esto como una relación en la segunda forma normal donde todos los atributos no principales dependen únicamente de las claves candidatas y no tienen una dependencia transitiva de otra clave. [1]

Un ejemplo hipotético de un incumplimiento de la tercera forma normal sería una base de datos de un hospital que tuviera una tabla de pacientes que incluyera una columna para el número de teléfono de su médico. (El número de teléfono depende del médico, en lugar del paciente, por lo que se almacenaría mejor en una tabla de médicos). El resultado negativo de un diseño de este tipo es que el número de un médico se duplicará en la base de datos si tiene varios pacientes, lo que aumenta tanto la posibilidad de error de entrada como el costo y el riesgo de actualizar ese número en caso de que cambie (en comparación con un modelo de datos que cumple con la tercera forma normal que solo almacena el número de un médico una vez en una tabla de médicos).

Más tarde, Codd se dio cuenta de que la 3NF no eliminaba todas las anomalías de datos no deseadas y desarrolló una versión más sólida para abordar este problema en 1974, conocida como forma normal de Boyce-Codd .

Definición de tercera forma normal

La tercera forma normal (3NF) es una forma normal utilizada en la normalización de bases de datos . La 3NF fue definida originalmente por E. F. Codd en 1971. [2]

La definición de Codd establece que una tabla está en 3NF si y solo si se cumplen ambas condiciones siguientes:

Un atributo no primo de R es un atributo que no pertenece a ninguna clave candidata de R. [3] Una dependencia transitiva es una dependencia funcional en la que XZ ( X determina Z ) indirectamente, en virtud de XY e YZ (donde no es el caso que YX ). [4]

Una definición 3NF que es equivalente a la de Codd, pero expresada de manera diferente, fue dada por Carlo Zaniolo en 1982. Esta definición establece que una tabla está en 3NF si y solo si para cada una de sus dependencias funcionales XY , se cumple al menos una de las siguientes condiciones: [5] [6] [ se necesita cita para verificar ]

Para reformular la definición de Zaniolo de forma más sencilla, la relación está en 3NF si y solo si para cada dependencia funcional no trivial X → Y, X es una superclave o Y  \  X consta de atributos primos. La definición de Zaniolo da una idea clara de la diferencia entre 3NF y la forma normal de Boyce-Codd (BCNF) más estricta. BCNF simplemente elimina la tercera alternativa ("Cada elemento de Y  \  X , la diferencia de conjuntos entre Y y X , es un atributo primo").

"Nada más que la llave"

Bill Kent dio una aproximación a la definición de 3NF de Codd, en paralelo al juramento tradicional de dar testimonio verdadero en un tribunal de justicia: "[cada] atributo no clave debe proporcionar un hecho sobre la clave, la clave completa y nada más que la clave". [7] Una variación común complementa esta definición con el juramento "así me ayude Codd ". [8]

Requerir la existencia de "la clave" garantiza que la tabla esté en 1NF ; requerir que los atributos que no sean clave dependan de "toda la clave" garantiza 2NF ; además, requerir que los atributos que no sean clave dependan de "nada más que la clave" garantiza 3NF. Si bien esta frase es una regla mnemotécnica útil, el hecho de que solo mencione una clave única significa que define algunas condiciones necesarias pero no suficientes para satisfacer las formas normales 2.ª y 3.ª. Tanto la 2.ª y la 3.ª NF se ocupan por igual de todas las claves candidatas de una tabla y no solo de una clave.

Chris Date se refiere al resumen de Kent como "una caracterización intuitivamente atractiva" de la 3NF y señala que con una ligera adaptación puede servir como una definición de la forma normal de Boyce-Codd, que es ligeramente más fuerte : "Cada atributo debe representar un hecho sobre la clave, la clave completa y nada más que la clave". [9] La versión 3NF de la definición es más débil que la variación BCNF de Date, ya que la primera solo se ocupa de asegurar que los atributos no clave dependan de las claves. Los atributos primos (que son claves o partes de claves) no deben ser funcionalmente dependientes en absoluto; cada uno de ellos representa un hecho sobre la clave en el sentido de proporcionar parte o toda la clave misma. (Esta regla se aplica solo a los atributos funcionalmente dependientes, ya que aplicarla a todos los atributos prohibiría implícitamente las claves candidatas compuestas, ya que cada parte de cualquier clave de ese tipo violaría la cláusula de "clave completa").

Un ejemplo de una tabla que no cumple con los requisitos de 3NF es:

Como cada fila de la tabla debe indicarnos quién ganó un torneo en particular en un año en particular, la clave compuesta {Torneo, Año} es un conjunto mínimo de atributos que garantizan la identificación única de una fila. Es decir, {Torneo, Año} es una clave candidata para la tabla.

La infracción de la 3NF se produce porque el atributo no primo (fecha de nacimiento del ganador) depende transitivamente de la clave candidata {Tournament, Year} a través del atributo no primo Winner. El hecho de que la fecha de nacimiento de Winner dependa funcionalmente de Winner hace que la tabla sea vulnerable a inconsistencias lógicas, ya que no hay nada que impida que la misma persona aparezca con diferentes fechas de nacimiento en diferentes registros.

Para expresar los mismos hechos sin violar la 3NF, es necesario dividir la tabla en dos:

No pueden ocurrir anomalías de actualización en estas tablas porque, a diferencia de antes, el Ganador ahora es una clave candidata en la segunda tabla, lo que permite solo un valor para la Fecha de nacimiento para cada Ganador.

Cálculo

Una relación siempre se puede descomponer en la tercera forma normal, es decir, la relación R se reescribe en proyecciones R 1 , ..., R n cuya unión es igual a la relación original. Además, esta descomposición no pierde ninguna dependencia funcional , en el sentido de que cada dependencia funcional en R se puede derivar de las dependencias funcionales que se mantienen en las proyecciones R 1 , ..., R n . Es más, dicha descomposición se puede calcular en tiempo polinomial . [10]

Para descomponer una relación en 3NF a partir de 2NF, divida la tabla en las dependencias funcionales de cobertura canónica y luego cree una relación para cada clave candidata de la relación original que no fuera ya un subconjunto de una relación en la descomposición. [11]

Equivalencia de las definiciones de 3NF de Codd y Zaniolo

La definición de 3NF ofrecida por Carlo Zaniolo en 1982, y dada anteriormente, puede demostrarse como equivalente a la definición de Codd de la siguiente manera: Sea X → A una FD no trivial (es decir, una donde X no contiene a A) y sea A un atributo no primo. Además, sea Y una clave candidata de R. Entonces Y → X. Por lo tanto, A no es transitivamente dependiente de Y si hay una dependencia funcional X → Y si y solo si X es una superclave de R.

Normalización más allá de 3NF

La mayoría de las tablas 3NF están libres de anomalías de actualización, inserción y eliminación. Ciertos tipos de tablas 3NF, que rara vez se encuentran en la práctica, se ven afectados por tales anomalías; se trata de tablas que no alcanzan la forma normal de Boyce-Codd (BCNF) o, si cumplen con la BCNF, no alcanzan las formas normales superiores 4NF o 5NF .

Consideraciones para el uso en entornos de informes

Si bien la 3NF era ideal para el procesamiento de máquinas, la naturaleza segmentada del modelo de datos puede ser difícil de consumir intuitivamente por un usuario humano. Los análisis a través de consultas, informes y paneles de control a menudo se facilitaban mediante un tipo diferente de modelo de datos que proporcionaba análisis precalculados, como líneas de tendencia, cálculos del período hasta la fecha (mes hasta la fecha, trimestre hasta la fecha, año hasta la fecha), cálculos acumulativos, estadísticas básicas (promedio, desviación estándar, promedios móviles) y comparaciones de períodos anteriores (año anterior, mes anterior, semana anterior), por ejemplo, modelado dimensional y más allá del modelado dimensional, aplanamiento de estrellas a través de Hadoop y ciencia de datos . [12] [13] El marco de "datos ordenados" de Hadley Wickham es 3NF, con "las restricciones enmarcadas en lenguaje estadístico". [14]

Véase también

Referencias

  1. ^ Codd, EF "Mayor normalización del modelo relacional de la base de datos", pág. 34.
  2. ^ Codd, E. F. "Further Normalization of the Data Base Relational Model" (Normalización adicional del modelo relacional de bases de datos). (Presentado en la serie 6 de simposios sobre ciencias de la computación de Courant, "Sistemas de bases de datos", Nueva York, 24 y 25 de mayo de 1971). Informe de investigación de IBM RJ909 (31 de agosto de 1971). Republicado en Randall J. Rustin (ed.), Data Base Systems: Courant Computer Science Symposia Series 6. Prentice-Hall, 1972.
  3. ^ Codd, pág. 43.
  4. ^ Codd, pág. 45–46.
  5. ^ Zaniolo, Carlo. "Una nueva forma normal para el diseño de esquemas de bases de datos relacionales". ACM Transactions on Database Systems 7(3), septiembre de 1982.
  6. ^ Abraham Silberschatz , Henry F. Korth , S. Sudarshan, Conceptos del sistema de base de datos (quinta edición), págs. 276–277.
  7. ^ Kent, William. "Una guía sencilla de cinco formas normales en la teoría de bases de datos relacionales", Communications of the ACM 26 (2), febrero de 1983, págs. 120-125.
  8. ^ El autor de un libro de 1989 sobre gestión de bases de datos atribuye a uno de sus estudiantes la idea del anexo "so help me Codd" (Ayúdame, Dios mío). Diehr, George. Database Management (Gestión de bases de datos ) (Scott, Foresman, 1989), pág. 331.
  9. ^ Fecha, C. J. Introducción a los sistemas de bases de datos (7.ª ed.) (Addison Wesley, 2000), pág. 379.
  10. ^ Serge Abiteboul , Richard B. Hull, Victor Vianu : Fundamentos de bases de datos. Addison-Wesley, 1995. http://webdam.inria.fr/Alice/ ISBN  0201537710. Teorema 11.2.14.
  11. ^ Hammo, Bassam. "Descomposición, 3NF, BCNF" (PDF) . Archivado (PDF) desde el original el 15 de marzo de 2023.
  12. ^ "Comparaciones entre técnicas de modelado de Data Warehouse - Roelant Vos". Roelant Vos . 12 de febrero de 2013 . Consultado el 5 de marzo de 2018 .
  13. ^ "Lecciones de modelado de datos de Hadoop | EMC". Blog InFocus | Servicios de Dell EMC . 23 de septiembre de 2014. Consultado el 5 de marzo de 2018 .
  14. ^ Wickham, Hadley (12 de septiembre de 2014). "Tidy Data". Revista de software estadístico . 59 : 1–23. doi : 10.18637/jss.v059.i10 . ISSN  1548-7660.

Lectura adicional

Enlaces externos