Está en la página 1de 6

FORMAS NORMALES

FORMAS NORMALES DE BOYCE CODD


La Forma Normal de Boyce-Codd (o FNBC) es una forma normal utilizada en
la normalización de bases de datos. Es una versión ligeramente más fuerte de la Tercera
forma normal (3FN). La forma normal de Boyce-Codd requiere que no existan
dependencias funcionales no triviales de los atributos que no sean un conjunto de la clave
candidata. En una tabla en 3FN, todos los atributos dependen de una clave, de la clave
completa y de ninguna otra cosa excepto de la clave (excluyendo dependencias triviales,
como). Se dice que una tabla está en FNBC si y solo si está en 3FN y cada dependencia
funcional no trivial tiene una clave candidata como determinante. En términos menos
formales, una tabla está en FNBC si está en 3FN y los únicos determinantes son claves
candidatas.
Así mismo dentro de la formal normal de Boyce Codd, podemos señalar algunos ejemplos
relacionado a dicha forma normal:
Consideremos una empresa donde un trabajador puede trabajar en varios
departamentos. En cada departamento hay varios responsables, pero cada trabajador sólo
tiene asignado uno. Tendríamos una tabla con las columnas:
IDTrabajador, IDDepartamento, IDResponsable
La única clave candidata es IDTrabajador (que será por tanto la clave primaria).
Si añadimos la limitación de que el responsable sólo puede serlo de un departamento,
este detalle produce una dependencia funcional ya que: Responsable? Departamento
Por lo tanto, hemos encontrado un determinante (IDResponsable) que sin embargo no es
clave candidata. Por ello, esta tabla no está en FNBC. En este caso la redundancia ocurre
por mala selección de clave. La repetición del par [IDDepartamento + IDResponsable] es
innecesaria y evitable.
Solamente en casos raros una tabla en 3NF no satisface los requerimientos de la FNBC. Un
ejemplo de tal tabla es (teniendo en cuenta que cada estudiante puede tener más de un
tutor):
Otro ejemplo a observar es la tabla tutor- estudiante la cual tendremos como referencia la
siguiente:

Referencia cruzada de Tutor/Estudiante


Número de seguro social del
ID Tutor ID Estudiante
tutor

1078 088-51-0074 31850

1078 088-51-0074 37921

1293 096-77-4146 46224

1480 072-21-2223 31850

El propósito de la tabla es mostrar qué tutores están asignados a qué estudiantes.


Las claves candidatas de la tabla son:
 {ID Tutor, ID Estudiante}
 {Número de seguro social del tutor, ID Estudiante}
Por consiguiente tenemos otra formulación con respecto a la tabla la cual consta de los
siguientes:
Una forma sencilla de comprobar si una relación se encuentra en FNBC consiste en
comprobar, además de que esté en 3FN, lo siguiente:
(1) Si no existen claves candidatas compuestas (con varios atributos), está en FNBC.
(2) Si existen varias claves candidatas compuestas y éstas tienen un elemento común, no
está en FNBC.
En la tabla de ejemplo anterior existen dos claves candidatas y ambas comparten el
atributo ID Estudiante, por lo tanto no está en FNBC.
Del mismo modo, Una tabla está en Cuarta Forma Normal o 4FN si está en FNBC y las
únicas dependencias funcionales multivaluadas que existen son las dependencias
funcionales de la clave con los atributos que no forman parte de la misma. Estas
dependencias multivaluadas de la clave con los atributos que no forman parte de la misma
son dependencias triviales, por lo que algunos autores dicen que no existen dependencias
multivaluadas en 4FN. En base de datos se entiende por dependencia Multivaluada el caso
en que en una tupla (X, Y, Z). se dice que Y es multidependiente de X (X ---> Y) si y sólo si el
conjunto de valores de Y correspondiente a un par (X,Z) depende sólo del valor de X y es
independiente del valor de Z.
CUARTA FORMA NORMAL 4FN
La cuarta forma normal (4NF) es una forma normal usada en la normalización de bases de
datos. La 4NF se asegura de que las dependencias multivaluadas independientes estén
correctas y eficientemente representadas en un diseño de base de datos.

Una tabla está en 4FN si y solo si está en Tercera forma normal o en FNBC (Cualquiera de
ambas) y no posee dependencias multivaluadas no triviales. La definición de la 4FN confía
en la noción de una dependencia multivaluada. Una tabla con una dependencia
multivaluada es una donde la existencia de dos o más relaciones independientes muchos a
muchos causa redundancia; y es esta redundancia la que es suprimida por la cuarta forma
normal.

Una entidad pertenece a la cuarta forma normal si ninguna instancia contiene dos o más
hechos de varios valores independientes sobre una entidad.

Ejemplo: Considere la entidad EMPLOYEE. Cada instancia de EMPLOYEE podría tener


SKILL_CODE y LANGUAGE_CODE. Un empleado puede tener varias habilidades y varios
idiomas. Existen dos relaciones, una entre empleados y habilidades y otra entre
empleados e idiomas. Una entidad no pertenece a la cuarta forma normal si representa
ambas relaciones, como muestra la figura siguiente. Figura 1.

Entidad que viola la cuarta forma normal

En lugar de ello, puede evitar esta violación creando dos entidades que representen a
ambas relaciones, como muestra la figura siguiente.

Figura 2. Entidades que pertenecen a la cuarta forma normal


Sin embargo, si los hechos son interdependientes (es decir, el empleado aplica
determinados idiomas únicamente a determinadas habilidades) no debería dividir la
entidad.

Puede colocar cualquier dato en la cuarta forma normal. Una regla correcta que debe
seguir al realizar diseño de bases de datos lógicas consiste en organizar todos los datos de
las entidades que pertenecen a la cuarta forma normal. A continuación, decida si el
resultado produce un nivel aceptable de rendimiento. Si el rendimiento no es aceptable, la
desnormalización del diseño es una buena técnica para mejorar el rendimiento.

Dependencias Multivalor.-

los encabezamientos de las columnas en una tabla de base de datos relacional se dividen
en tres grupos disjuntos X , Y , y Z , a continuación, en el contexto de una fila en particular,
podemos hacer referencia a los datos por debajo de cada grupo de partidas como x , y ,
y z respectivamente. Una dependencia multivalor X Y significa que si elegimos
cualquier x que ocurren realmente en la tabla (llamada esta elección x  c ), y compilar una
lista de todos los x  c YZ combinaciones que se dan en la tabla, vamos a encontrar
que x  C se asocia con los mismos Y entradas independientemente de z .Así que,
esencialmente la presencia de z no proporciona ninguna información útil para limitar los
posibles valores de y . 

Una dependencia multivalor trivial X Y es uno donde o bien Y es un subconjunto de X ,


o X y Y juntos forman el conjunto de atributos de la relación. 

Una dependencia funcional es un caso especial de dependencia multivalor. En una


dependencia funcional X → Y , cada x determina exactamente un Y , nunca más de uno.

QUINTA FORMA NORMAL 5FN


La quinta forma normal (5FN), también conocida como forma normal de proyección-unión (PJ/NF),
es un nivel de normalización de bases de datos diseñado para reducir redundancia en las bases de
datos relacionales que guardan hechos multi-valores aislando semánticamente relaciones
múltiples relacionadas. Una tabla se dice que está en 5NF si y sólo si está en 4NF y cada
dependencia de unión (join) en ella es implicada por las claves candidatas.

Una tabla se encuentra en 5FN si:

 La tabla está en 4FN


 No existen relaciones de dependencias de reunión (join) no triviales que no se generen
desde las claves. Una tabla que se encuentra en la 4FN se dice que está en la 5FN si, y sólo
si, cada relación de dependencia de reunión (join) se encuentra definida por claves
candidatas. Por lo que si se aplicara una consulta entre al menos tres relaciones
independientes entre sí dentro de la 4FN y se obtuvieran tuplas espurias, entonces no
estaría dentro de la 5FN.

Se dice que hay dependencia de Join entre una tabla y sus proyecciones, si es posible obtener la
tabla original por medio de la unión de dichas proyecciones.

La 5FN se emplea cuando existe mucha información redundante en una tabla, o cuando se hace
inmanejable, debido a la existencia de muchos atributos.

Ejemplo

Persona (rut, datPers1, datPers2, datPers3, datPrev1, datPrev2, datLab1, datLab2, datLab3,


datLab4)

DatPersPer (rut, datPers1, datPers2, datPers3)


DatPrevPer (rut, datPrev1, datPrev2)
DatLabPer (rut, datLab1 , datLab2 , datLab3 , datLab4)

También podría gustarte