Tercera forma normal
Tercera forma normal (3NF) es un enfoque de diseño de esquema de base de datos para bases de datos relacionales que utiliza principios de normalización para reducir la duplicación de datos, evitar anomalías en los datos y garantizar la integridad referencial. y simplificar la gestión de datos. Fue definido en 1971 por Edgar F. Codd, un 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 la clave principal. Codd definió esto como una relación en segunda forma normal donde todos los atributos no primos dependen solo de las claves candidatas y no tienen una dependencia transitiva de otra clave.
Un ejemplo hipotético de 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 sería mejor almacenarlo en una tabla de médicos. El resultado negativo de dicho diseño 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 si cambia (en comparación a un tercer modelo de datos compatible con el formulario normal que solo almacena el número de un médico una vez en una tabla de médico).
Más tarde, Codd se dio cuenta de que 3NF no eliminaba todas las anomalías de datos indeseables y desarrolló una versión más fuerte para abordar esto 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. 3NF fue definido originalmente por E. F. Codd en 1971.
La definición de Codd establece que una tabla está en 3NF si y solo si se cumplen las dos condiciones siguientes:
- La relación R (tabla) está en segunda forma normal (2NF).
- Ningún atributo no alto de R depende transitivamente de la clave principal.
Un atributo no primo de R es un atributo que no pertenece a ninguna clave candidata de R. Una dependencia transitiva es una dependencia funcional en la que X → Z (X determina Z) indirectamente, en virtud de X → Y y Y → Z (donde no se da el caso de que Y → X).
Una definición de 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 X → Y, se cumple al menos una de las siguientes condiciones:
- X contiene Y (es decir, Y es un subconjunto de X, que significa X → Y es dependencia funcional trivial),
- X es un superkey,
- cada elemento de YX, la diferencia entre Y y X, es un atributo primo (es decir, cada atributo en YX está contenida en alguna clave candidata).
Para reformular la definición de Zaniolo de manera más simple, la relación está en 3NF si y solo si para cada dependencia funcional no trivial X → Y, X es una superclave o Y es un atributo principal. 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 establecida entre Y y X, es un atributo principal.").
"Nada más que la llave"
Bill Kent dio una aproximación a la definición de Codd de 3NF, paralela al juramento tradicional de dar evidencia verdadera en un tribunal de justicia: "[cada] [atributo] no clave debe proporcionar un hecho sobre la clave, toda la clave, y nada más que la clave". Una variación común complementa esta definición con el juramento "así que ayúdame Codd".
Requerir la existencia de "la clave" asegura que la mesa esté en 1NF; requiriendo que los atributos no clave dependan de "toda la clave" asegura 2NF; requiriendo además que los atributos no clave dependan de "nada más que la clave" asegura 3NF. Si bien esta frase es un mnemotécnico útil, el hecho de que solo mencione una sola clave significa que define algunas condiciones necesarias pero no suficientes para satisfacer las formas normales 2 y 3. Tanto 2NF como 3NF se ocupan por igual de todas las claves candidatas de una tabla y no de una sola clave.
Chris Date se refiere al resumen de Kent como "una caracterización intuitivamente atractiva" de 3NF y señala que con una ligera adaptación puede servir como una definición de la forma normal de Boyce-Codd un poco más fuerte: "Cada atributo debe representar un hecho sobre la clave, la clave completa y nada más que la clave". 34; 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 garantizar que los atributos sin clave dependan de las claves. Los atributos principales (que son claves o partes de claves) no deben depender funcionalmente en absoluto; cada uno de ellos representa un hecho acerca de la clave en el sentido de que proporciona parte o la totalidad de 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 dicha clave violaría la cláusula de 'clave completa').
Un ejemplo de una tabla que no cumple con los requisitos de 3NF es:
Torneo | Año | Ganador | Fecha de nacimiento del ganador |
---|---|---|---|
Indiana Invitational | 1998 | Al Fredrickson | 21 de julio de 1975 |
Cleveland Open | 1999 | Bob Albertson | 28 de septiembre de 1968 |
Des Moines Masters | 1999 | Al Fredrickson | 21 de julio de 1975 |
Indiana Invitational | 1999 | Chip Masterson | 14 de marzo de 1977 |
Debido a que cada fila de la tabla debe decirnos 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 garantizados para identificar de manera única una fila. Es decir, {Torneo, Año} es una clave candidata para la tabla.
La infracción de 3NF ocurre porque el atributo no principal (fecha de nacimiento del ganador) depende transitivamente de la clave del candidato {Torneo, Año} a través del atributo no principal Ganador. El hecho de que la fecha de nacimiento de Winner dependa funcionalmente de Winner hace que la tabla sea vulnerable a incoherencias lógicas, ya que no hay nada que impida que se muestre a la misma persona con diferentes fechas de nacimiento en diferentes registros.
Para expresar los mismos hechos sin violar 3NF, es necesario dividir la tabla en dos:
|
|
Las anomalías de actualización no pueden ocurrir 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 de cada ganador.
Cálculo
Una relación siempre se puede descomponer en tercera forma normal, es decir, la relación R se reescribe en proyecciones R1,..., Rn 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 puede derivarse de las dependencias funcionales que se mantienen en las proyecciones R1,..., R n. Además, dicha descomposición se puede calcular en tiempo polinomial.
Para descomponer una relación en 3FN a partir de 2NF, divida la tabla en las dependencias funcionales de la cubierta canónica, luego cree una relación para cada clave candidata de la relación original que no era ya un subconjunto de una relación en la descomposición.
Derivación de las condiciones de Zaniolo
La definición de 3FN ofrecida por Carlo Zaniolo en 1982, y dada anteriormente, se demuestra de la siguiente manera: Sea X → A un FD no trivial (es decir, uno donde X no contiene A) y sea A un FD no trivial atributo clave. También sea Y una clave de R. Entonces Y → X.
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, rara vez encontradas en la práctica, se ven afectadas por tales anomalías; estas son tablas que no alcanzan la forma normal de Boyce-Codd (BCNF) o, si cumplen con BCNF, no alcanzan las formas normales superiores 4NF o 5NF.
Consideraciones para su uso en entornos de informes
Si bien 3NF era ideal para el procesamiento automático, la naturaleza segmentada del modelo de datos puede ser difícil de consumir para un usuario humano. Los análisis a través de consultas, informes y tableros a menudo fueron facilitados por un tipo diferente de modelo de datos que proporcionó 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 (hace un año, hace un mes, hace una semana), p. modelado dimensional y más allá del modelado dimensional, aplanamiento de estrellas a través de Hadoop y ciencia de datos.
Contenido relacionado
Dominio de nivel superior
Software libre
Registro Americano de Números de Internet