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 correcta y eficientemente representadas en un diseño de
base de datos. La 4NF es el siguiente nivel de normalización después de
la forma normal de Boyce-Codd (BCNF).
Una tabla está en 4NF si
y solo si esta en Tercera forma normal o en BCNF (Cualquiera
de ambas) y no posee dependencias multivaluadas no triviales. La definición de
la 4NF 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.
Ejemplo:
Permutaciones de
envíos de pizzas
|
Restaurante
|
Variedad de Pizza
|
Área de envío
|
Vincenzo's Pizza
|
Corteza gruesa
|
Springfield
|
Vincenzo's Pizza
|
Corteza gruesa
|
Shelbyville
|
Vincenzo's Pizza
|
Corteza fina
|
Springfield
|
Vincenzo's Pizza
|
Corteza fina
|
Shelbyville
|
Elite Pizza
|
Corteza fina
|
Capital City
|
Elite Pizza
|
Corteza rellena
|
Capital City
|
A1 Pizza
|
Corteza gruesa
|
Springfield
|
A1 Pizza
|
Corteza gruesa
|
Shelbyville
|
A1 Pizza
|
Corteza gruesa
|
Capital City
|
A1 Pizza
|
Corteza rellena
|
Springfield
|
A1 Pizza
|
Corteza rellena
|
Shelbyville
|
A1 Pizza
|
Corteza rellena
|
Capital City
|
Cada fila indica que un
restaurante dado puede entregar una variedad dada de pizza a un área dada.
Note que debido a que la
tabla tiene una clave única y ningún atributo no-clave, no viola ninguna forma
normal hasta el BCNF. Pero debido a que las variedades de pizza que un
restaurante ofrece son independientes de las áreas a las cuales el restaurante envía,
hay redundancia en la tabla: por ejemplo, nos dicen tres veces que A1
Pizza ofrece la Corteza rellena, y si A1 Pizza comienza
a producir pizzas deCorteza de queso entonces necesitaremos agregar
múltiples registros, uno para cada una de las Áreas de envío de A1
Pizza. En términos formales, esto se describe como que Variedad de
pizza está teniendo una dependencia multivalor en Restaurante.
Para satisfacer la 4NF,
debemos poner los hechos sobre las variedades de pizza ofrecidas
en una tabla diferente de los hechos sobre áreas de envío:
Variedades por
restaurante
|
Restaurante
|
Variedad de
pizza
|
Vincenzo's Pizza
|
Corteza gruesa
|
Vincenzo's Pizza
|
Corteza fina
|
Elite Pizza
|
Corteza fina
|
Elite Pizza
|
Corteza rellena
|
A1 Pizza
|
Corteza gruesa
|
A1 Pizza
|
Corteza rellena
|
|
Áreas
de envío por restaurante
|
Restaurante
|
Área de envío
|
Vincenzo's Pizza
|
Springfield
|
Vincenzo's Pizza
|
Shelbyville
|
Elite Pizza
|
Capital City
|
A1 Pizza
|
Springfield
|
A1 Pizza
|
Shelbyville
|
A1 Pizza
|
Capital City
|
|
Ejemplo:
Considere
usted la afinidad ESTUDIANTE que muestra la relación entre estudiantes,
especialidades y actividades. Suponga que los estudiantes pueden
inscribirse en varias especialidades y participar en diversas
actividades. La única clave es la combinación de los atributos (SID,
Especialidad, Actividad). La estudiante 100 tiene su especialidad en
Música y Contabilidad y también participa en Natación y
Tenis. El estudiante 150 sólo tiene especialidad en
Matemáticas y participa en Carrera.
¿Cuál es la
relación entre SID y especialidad? No es una dependencia funcional
porque los estudiantes pueden tener distintas especialidades. Un
valor único de SID puede poseer muchos valores de Especialidad. Esto
también se aplica a la relación entre SID y Actividad.
Tal
dependencia por atributos de denomina dependencia de valores múltiples. Las
dependencias de valores múltiples conducen a anomalías de modificación. Observe
la redundancia en datos de la figura. La estudiante 100 tiene
cuatros registros, cada uno de los cuales muestra una de sus especialidades
junto con una de sus actividades. Si los datos se almacenaran con
menos hileras: si hubiera sólo dos tuplas, uno para música y
natación y uno para contaduría y tenis, las implicaciones serían engañosas.
Parecería que la Estudiante
100 sólo nadó cuando tenía música como especialidad y jugó tenis sólo cuando
tenía contaduría como especialidad. Esa interpretación no es
lógica. Sus especialidades y sus actividades son independientes
entre sí. Para prevenir tales engañosas conclusiones se almacenan
todas las combinaciones de especialidades y actividades.
Suponga
que, debido a que la
Estudiante 100 decide apuntarse en Esquí, se debe agregar la
tupla (100, MÚSICA, ESQUÍ), como en la figura. La afinidad en este punto indica
que la Estudiante
100 esquía cuando estudia música, pero no cuando tiene contaduría como
especialidad. A fin de mantener la consistencia en los datos, se
debe agregar una hilera para cada uno de una de sus actividades ligadas con
Esquí. También se debe agregar la hilera) (100, CONTABILIDAD,
ESQUÍ), como en la figura. Ésta es una anomalía de
actualización: hay que hacer demasiadas actualizaciones para
realizar un cambio en los datos.
Existe una
dependencia de valores múltiples cuando una afinidad tiene al menos tres
atributos, dos de los cuales poseen valores múltiples y sus valores dependen
sólo del tercer atributo. En otras palabras en la afinidad R (A, B,
C) existe una dependencia de valores múltiples si A
determina valores múltiples de B, A determina valores
múltiples de especialidad, y SID determina valores múltiples de Actividad,
pero Especialidad y Actividad son independientes entre sí.
Observe
otra vez la figura. Vea cómo están escritas las dependencias de
valores múltiples: SID è èEspecialidad
y SID èè Actividad. Esto
se lee "SID multidetermina Especialidad, y SID multidermina
Actividad". Esta afinidad está en BCNF (2NF porque todo es
clave; 3NF porque no tiene dependencias transitivas; y BCNF porque no tiene
determinantes que no son claves). Hemos visto que posee anomalías:
si un estudiante toma otra especialidad, se debe ingresar un tuple para la
nueva especialidad, y juntarlo con cada una de las actividades del
estudiante. Sucede lo mismo si un estudiante se
inscribe en una nueva actividad. Si un estudiante
deja una especialidad se deben eliminar cada uno de los registros
que contienen tal materia. Si participa en cuatro
actividades, habrá cutro tuples que contengan la especilidad que ha
dejado y deberá borrarse cada uno.
Para evitar tales
anomalías, se deben las dependencias de valores
múltiples. Esto se hace construyendo dos afinidades, donde cada una
almacena datos para solamente uno de los atributos de valores
múltiples. La afinidades resultantes no tienen anomalías. Ellas
son ESTU-ESPECIALIDAD (SID, Especialidad) y ESTU-ACT (SID, Actividad).
A partir de estas
observaciones, se define la cuarta forma normal: Una afinidad está
en cuarta forma normal si está en BCNF y no tiene dependencias de valores
múltiples.
Quedaria de la siguiente
manera: