La forma normal de Boyce -Codd (abreviada como BCNF del inglés. Forma normal de Boyce-Codd ) es una de las formas normales posibles de una relación en un modelo de datos relacional .
A veces, la forma normal de Boyce-Codd se denomina tercera forma normal fuerte porque es más fuerte (más estricta) en todos los aspectos en comparación con la 3NF definida previamente [1] .
Lleva el nombre de Ray Boyce y Edgar Codd , aunque Christopher Date señala que, de hecho, Ian Heath dio por primera vez en 1971 una definición estricta de la "tercera" forma normal, equivalente a la de la forma normal de Boyce-Codd , por lo que esta forma debería ser llamada "forma normal de Heath" [1] .
Una variable de relación está en BCNF si y solo si cada una de sus dependencias funcionales no triviales e irreducibles por la izquierda tiene alguna clave potencial como determinante [1] .
Menos formalmente, una variable de relación está en la forma normal de Boyce-Codd si y solo si los determinantes de todas sus dependencias funcionales son claves candidatas.
Para definir BCNF, uno debe entender el concepto de dependencia funcional de los atributos de relación.
Sea R una variable de relación, y X e Y sean subconjuntos arbitrarios del conjunto de atributos de la variable de relación R. Y es funcionalmente dependiente de X si y solo si, para cualquier valor válido de la variable de relación R , si dos tuplas de la variable de relación R coinciden en el valor de X , también coinciden en el valor de Y. El subconjunto X se llama determinante e Y es la parte dependiente .
Una dependencia funcional es trivial si y solo si su lado derecho (dependiente) es un subconjunto de su lado izquierdo (determinante).
Se dice que una dependencia funcional se deja irreductible si no se puede omitir ningún atributo de su determinante sin violar la dependencia (en otras palabras, el determinante es irredundante).
La situación en la que la relación estará en 3FN pero no en FNBC surge, por ejemplo, si la relación tiene dos (o más) claves candidatas que son compuestas y existe una dependencia funcional entre los atributos individuales de dichas claves. Dado que la dependencia descrita no es transitiva, tal situación no entra dentro de la definición de 3FN. En la práctica, tales relaciones son bastante raras; para todas las demás relaciones, 3NF y BCNF son equivalentes.
Supongamos que consideramos una relación que representa datos sobre reservas de canchas de tenis para el día:
número de juzgado | Hora de inicio | Hora de finalización | Velocidad |
---|---|---|---|
una | 09:30 | 10:30 | "Juzgado 1 para socios del club" |
una | 11:00 | 12:00 | "Juzgado 1 para socios del club" |
una | 14:00 | 15:30 | "Pista 1 para no socios del club" |
2 | 10:00 | 11:30 | "Pista 2 para no socios del club" |
2 | 11:30 | 13:30 | "Pista 2 para no socios del club" |
2 | 15:00 | 16:30 | "Pista 2 para socios del club" |
Así, son posibles las siguientes claves de potencial compuestas: { Número de pista , Hora de inicio }, { Número de pista , Hora de finalización }, { Tarifa , Hora de inicio }, { Tarifa , Hora de finalización }.
La relación está en segunda ( 2NF ) y tercera ( 3NF ) forma normal. Los requisitos de la segunda forma normal se cumplen, ya que todos los atributos están incluidos en una de las claves potenciales y no hay atributos que no sean clave en la relación. Tampoco hay dependencias transitivas, lo que cumple con los requisitos de la tercera forma normal. Sin embargo, existe una dependencia funcional Tarifa → Número de corte en la que el lado izquierdo (determinante) no es una clave potencial de la relación, es decir, la relación no está en la forma normal de Boyce-Codd .
La desventaja de esta estructura es que, por ejemplo, es posible atribuir erróneamente la tarifa "Miembros de la Corte 1" a la reserva de la segunda corte, aunque es posible que solo se aplique a la primera corte.
Puede mejorar la estructura descomponiendo la relación en dos, obteniendo relaciones que satisfagan BCNF (los atributos incluidos en la clave primaria están subrayados). Para mayor claridad, se ha agregado el atributo Para socios del club a la información sobre tarifas :
Velocidad | número de juzgado | Para miembros del club |
---|---|---|
"Juzgado 1 para socios del club" | una | Sí |
"Pista 1 para no socios del club" | una | No |
"Pista 2 para socios del club" | 2 | Sí |
"Pista 2 para no socios del club" | 2 | No |
Velocidad | Hora de inicio | Hora de finalización |
---|---|---|
"Juzgado 1 para socios del club" | 09:30 | 10:30 |
"Juzgado 1 para socios del club" | 11:00 | 12:00 |
"Pista 1 para no socios del club" | 14:00 | 15:30 |
"Pista 2 para no socios del club" | 10:00 | 11:30 |
"Pista 2 para no socios del club" | 11:30 | 13:00 |
"Pista 2 para socios del club" | 15:00 | 16:30 |
ruso
Transferible
extranjero
formas normales | |
---|---|