Recomendado, 2024

La Elección Del Editor

Diferencia entre 3NF y BCNF

La normalización es un método que elimina la redundancia de una relación, minimizando así la inserción, eliminación y actualización de anomalías que degradan el rendimiento de las bases de datos. En este artículo, diferenciaremos entre dos formas normales superiores, es decir, 3NF y BCNF. La diferencia básica entre 3NF y BCNF es que 3NF elimina la dependencia transitiva de una relación y una tabla para estar en BCNF, la dependencia funcional trivial X-> Y en una relación debe ser válida, solo si X es la superclase.

Discutamos las diferencias entre 3NF y BCNF con la ayuda del cuadro comparativo que se muestra a continuación.

Gráfica comparativa

Bases para la comparación3NFBCNF
ConceptoNingún atributo que no sea primo debe ser dependiente de la clave del candidato.Para cualquier dependencia trivial en una relación R, digamos X-> Y, X debe ser una supertecla de relación R.
Dependencia3NF se puede obtener sin sacrificar todas las dependencias.Las dependencias no pueden ser preservadas en BCNF.
DescomposiciónLa descomposición sin pérdida se puede lograr en 3NF.La descomposición sin pérdida es difícil de lograr en BCNF.

Definición de 3NF

Una tabla o una relación se considera que está en Tercera Forma Normal solo si la tabla ya está en 2NF y no hay un atributo no primo que dependa de forma transitiva de la clave candidata de una relación.

Entonces, antes de abordar el proceso de normalización de una tabla en 3NF, permítame discutir la clave del candidato. Una clave de candidato es una super clave mínima, es decir, una super clave con atributos mínimos que pueden definir todos los atributos de una relación. Entonces, en el proceso de normalizar su tabla, primero, reconoce la clave candidata de una relación dada. Los atributos que forman parte de la clave candidata son atributos principales, y los atributos que no forman parte de la clave candidata no son atributos principales .

Ahora si tenemos una relación R (A, B, C, D, E, F) y tenemos las siguientes dependencias de funciones para la relación R.

Al observar las dependencias funcionales, podemos concluir que AB es una clave candidata para la relación R porque al utilizar la clave AB podemos buscar el valor de todos los atributos en una relación R. Por lo tanto , A, B se convierten en atributos principales cuando juntos crean una clave candidata. Los atributos C, D, E, F se convierten en atributos no primos porque ninguno de ellos es parte de una clave candidata.

La tabla está en 2NF ya que ningún atributo no principal depende parcialmente de la clave candidata

Pero, se observa una dependencia transitiva entre las dependencias funcionales proporcionadas, ya que el atributo F no depende directamente de la clave candidata AB . En su lugar, el atributo F depende de manera transitoria de la clave candidata AB a través del atributo D. Hasta que el atributo D tiene algún valor que podemos alcanzar para atribuir el valor de F, desde la clave candidata AB. En caso de que el valor del atributo D sea NULL nunca podremos encontrar / buscar el valor de F con la ayuda de la clave candidata AB. Esta es la razón por la que 3NF exige eliminar la dependencia transitiva de las relaciones.

Entonces, para eliminar esta dependencia transitiva, necesitamos dividir la relación R. Mientras dividimos una relación, siempre coloque la clave candidata y todos los atributos que dependen de esa clave candidata en la primera relación. En la siguiente relación dividida, colocaremos el atributo que causa la dependencia transitiva y también los atributos que dependen de él en la segunda relación.

Ahora, las tablas R1 y R2 están en 3NF, ya que no le quedan dependencias parciales ni transitivas. La relación R1 (A, B, C, D, E) tiene una clave candidata AB mientras que la relación R2 (D, E) tiene D como su clave candidata.

Definición de BCNF

BCNF es considerado el más fuerte que 3NF. La relación R para estar en BCNF debe estar en 3NF . Y dondequiera que se mantenga una dependencia funcional no trivial A -> B en relación R, entonces A debe ser una superclave de relación R. Como sabemos, la superclave es una clave que tiene un único atributo o conjunto de atributos que determina, la totalidad Atributos de una relación.

Ahora, pasemos a un ejemplo para entender BCNF de una mejor manera. Supongamos que tenemos una relación R (A, B, C, D, F), que tiene las siguientes dependencias funcionales.

Al observar la relación R, podemos decir que A y BF son claves candidatas de la relación R, porque solo pueden buscar el valor de todos los atributos en la relación R. Así que A, B, F son los atributos principales mientras que, C y D Son atributos no primos . No se observa dependencia transitiva en las dependencias funcionales presentes anteriormente. Por lo tanto, la tabla R está en 3NF.

Pero una dependencia funcional, es decir, D -> F está violando la definición de BCNF, según la cual, si D -> F existe, D debería ser la super clave, que no es el caso aquí. Así dividiremos la relación R.

Ahora, las tablas R1 y R2 están en BCNF. La relación R1 tiene dos claves candidatas A y B, la dependencia funcional trivial de R1, es decir, A-> BCD y B -> ACD, mantener para BCNF ya que A y B son las superclaves de relación. La relación R2 tiene D como su clave candidata y la dependencia funcional D -> F también es válida para BCNF ya que D es una Superclave.

Diferencias clave entre 3NF y BCNF

  1. 3NF indica que ningún atributo no primo debe depender de manera transitoria de la clave candidata de la relación. Por otra parte, BCNF establece que si existe una dependencia funcional trivial X -> Y para una relación; entonces X debe ser una super clave.
  2. 3NF se puede obtener sin sacrificar la dependencia de la relación. Sin embargo, la dependencia puede no ser preservada al obtener BCNF.
  3. 3NF se puede lograr sin perder información de la tabla anterior, mientras que al obtener BCNF podemos perder información de la tabla anterior.

Conclusión:

BCNF es mucho más restrictivo que 3NF, lo que ayuda a normalizar más la tabla. La relación en 3NF tiene una redundancia mínima, que se elimina aún más por el BCNF.

Top