Boyce-Codd Normal Form (BCNF)


Determinant

When there is an FD in the form

A → B

It is say that A is a determinant.
Cuando hay una FD en la forma

A → B

se dice que A es una determinante.

Boyce-Codd Normal Form (BCNF or 4NF)

BCNF is attained when all determinants in a table are candidate keys.
BCNF se cumple cuando todos los determinantes en la tabla son llave candidato.

Problem 1
Suppose that every professor teaches all his courses in the same classroom, but other professor may also be teaching in that classroom. Suppose also that a course can be taught by more than one professor.
  1. Is the table in 2NF (proof your result)? If not, indicate the FD's that need to be removed and remove them.
  2. Is the table in 3NF (proof your result)? If not, indicate the FD's that need to be removed and remove them.
Suponga que cada profesor imparte todos sus cursos en el mismo salón, pero que otros profesores también imparten clases en ese salón. Suponga también que un curso puede ser impartido por más de un profesor.
  1. Esta la tabla en 2NF (demuestre su resultado)? Si no, indique las FD's que hay que remover y remuevalas.
  2. Esta la tabla en 3NF (demuestre su resultado)? Si no, indique las FD's que hay que remover y remuevalas.

course

Problem 2
Find the determinants in the course table.
Encuentre los determinantes en la tabla course.

course

Problem 3
Is the course table in BCNF (proof your result)? That is, are all determinants candidate keys?
Se encuentra la tabla course en BCNF (demuestre su resultado)? Esto es, Son todas las determinantes llaves candidato?

Tip
When a table is not in BCNF, we must split the table by separating out the non-unique determinant along with those attributes which have an FD upon it, leaving the determinant as a foreign key in the original table. Note that BCNF includes 3NF. The main difference between the two forms is that 3NF allows for an FD of

A → B

when A is not a super-key and B is part of a candidate key. In BCNF, A must be a super-key. Thus, BCNF is a stronger form of 3NF.
Cuando una tabla no está en BCNF, la tabla debe dividirse separando los terminantes no-únicos junto con aquellos atributos que tienen una FD en ellos, dejando los determinantes como una llave extranjera en la tabla original. Note que BCNF incluye 3NF. La diferencia principal entre las dos formas normales es que 3NF permite una FD del tipo

A → B

cuando A no es una super-llave y B es parte de una llave candidato. En BCNF, A debe ser una super-llave. Así, BCNF es una forma más rigurosa de 3NF.

Problem 4
Modify the course table so that it is in BCNF (remove the determinant: professor → room ).
Modifique la tabla course de tal forma que este en BCNF (remueva el determinante: professor → room ).

Tip
Most tables that are in 3NF are also in BCNF. The only time that a table might be in 3NF but not BCNF is when: the table has more than one candidate key and at least one of these candidate keys is composite.
La mayoría de las tablas que están en 3NF también están en BCNF. El único caso que una tabla este en 3NF pero no en BCNF es cuando la tabla tiene más de una llave candidato, y al menos uno de estos candidatos es un llave candidato compuesta.

Tip
In some cases, a database design will not be in 2NF or in 3NF because:
  • Modern relational database systems do a good job of linking many related tables back together to perform complex tasks, however, it is possible that the performance of a multiple-table linking is not fast enough.
  • Some information must be captured at the moment of performing some sort of transaction
  • Some applications required temporary tables that concentrate complex information and these tables are infrequently used

En algunos casos, un diseño de base de datos no estará en 2NF o en 3NF porque:
  • Los sistemas de bases modernos hacen un muy buen trabajo juntando información para realizar tareas complejas, sin embargo, es posible que el desempeño de juntar información de tablas múltiples no sea lo suficientemente rápido.
  • Cierta información debe capturarse en el momento de realizar algún tipo de transacción
  • Algunas aplicaciones requieren tablas temporales que concentran información compleja y estas tablas son usadas con poca frecuencia.

© Copyright 2000-2019 Wintempla selo. All Rights Reserved. Sep 05 2019. Home