Diferencia entre 3NF y BCNF

Autor: Laura McKinney
Fecha De Creación: 1 Abril 2021
Fecha De Actualización: 13 Mayo 2024
Anonim
Difference between 3NF and BCNF, De-normalization
Video: Difference between 3NF and BCNF, De-normalization

Contenido


Normalización es un método que elimina redundancia a partir de una relación que minimiza las anomalías de inserción, eliminación y actualización que degradan el rendimiento de las bases de datos. En este artículo, diferenciaremos entre dos formas normales más altas, 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 mantenerse, solo si X es la súper clave.

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

  1. Cuadro comparativo
  2. Definición
  3. Diferencias clave
  4. Conclusión

Cuadro comparativo

Bases para la comparación3NFBCNF
ConceptoNingún atributo no primo debe depender transitivamente de la clave Candidate.Para cualquier dependencia trivial en una relación R, digamos X-> Y, X debería ser una súper clave de relación R.
DependenciaSe puede obtener 3NF sin sacrificar todas las dependencias.Las dependencias no pueden conservarse 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

Se considera que una tabla o una relación está en Tercera forma normal solo si la tabla ya está en 2NF y no hay no primo atributo transitivamente dependiente de la llave 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 Llave candidata es súper clave mínima es decir, una súper clave con atributos mínimos que puede definir todos los atributos de una relación. Entonces, en el proceso de normalización de 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 son parte de la clave candidata son atributos no primos.


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

Observando dependencias funcionales, podemos concluir que AB es una clave candidata para la relación R porque usando la clave AB podemos buscar el valor de todos los atributos en una relación R. Entonces A, B se convierte atributos principales ya que juntos hacen la clave del candidato. Los atributos C, D, E, F se convierte no primo atributos porque ninguno de ellos es parte de una clave candidata.

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

Pero, se observa una dependencia transitiva entre las dependencias funcionales proporcionadas, como el atributo F no depende directamente de la clave candidata AB. En cambio, atribuir F es transitivamente depende de la clave candidata AB vía atributo re. Hasta que el atributo D tenga algún valor que podamos alcanzar al valor de atributo 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 cual 3NF exige eliminar la dependencia transitiva de las relaciones.

Entonces, para eliminar esta dependencia transitiva, necesitamos dividir la relación R. Al dividir 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 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 y transitivas. Relación R1 (A, B, C, D, E) tiene una clave candidata AB mientras que, relación R2 (D, E) tiene re como su clave candidata.

Definición de BCNF

Se considera que el BCNF es el más fuerte que el 3NF. La relación R para estar en BCNF debe estar en 3NF. Y donde sea que dependencia funcional no trivial A -> B se mantiene en relación R, entonces UNA debe ser un superkey de relación R. Como sabemos, la súper clave es una clave que tiene un solo atributo o conjunto de atributos que determina los atributos completos 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 tienen las siguientes dependencias funcionales.

Al observar la relación R, podemos decir que UNA y BF son claves candidatas de relación R, porque solo ellos pueden buscar el valor de todos los atributos en la relación R. Entonces A, B, F son los principal atributos mientras que, do y re son no primo atributos. 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, entonces re debería ser el superclave que no es el caso aquí. Entonces dividiremos la relación R.

Ahora, las tablas R1 y R2 están en BCNF. Relación R1 tiene dos candidato llaves UNA y si, la dependencia funcional trivial de R1, es decir, A-> BCD y B -> ACD, mantenga para BCNF ya que A y B son las súper claves para la relación. Relación R2 tiene re como su llave candidata y la dependencia funcional D -> F también es válida para BCNF ya que D es una Súper Clave.

  1. 3NF establece que ningún atributo no primo debe depender transitivamente de la clave candidata de la relación. Por otro lado, BCNF afirma que si existe una dependencia funcional trivial X -> Y para una relación; entonces X debe ser una súper clave.
  2. Se puede obtener 3NF sin sacrificar la dependencia de la relación. Sin embargo, es posible que no se conserve la dependencia mientras se obtiene BCNF.
  3. Se puede lograr 3NF sin perder ninguna información de la tabla anterior, mientras que al obtener BCNF podemos perder cierta 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 es eliminada por el BCNF.