You are on page 1of 17

NORMALIZACIÓN DE BASE DE DATOS

A través del siguiente ejercicio se intenta afirmar los conocimientos de normalización


con un ejemplo simplificado de una base de datos para una pequeña biblioteca.

CodLibro Titulo Autor Editorial NombreLector FechaDev


Variable Murray McGraw Pérez Gómez,
1001 15/04/2005
compleja Spiegel Hill Juan
1004 Visual Basic 5 E. Petroustsos Anaya Ríos Terán, Ana 17/04/2005
Murray McGraw
1005 Estadística Roca, René 16/04/2005
Spiegel Hill
Nancy
Oracle García Roque,
1006 Greenberg y Oracle Corp. 20/04/2005
University Luis
Priya Nathan
McGraw Pérez Gómez,
1007 Clipper 5.01 Ramalho 18/04/2005
Hill Juan

Esta tabla no cumple el requisito de la Primera Forma Normal (1NF) de sólo tener
campos atómicos, pues el nombre del lector es un campo que puede (y conviene)
descomponerse en apellido paterno, apellido materno y nombres. Tal como se muestra
en la siguiente tabla.

1NF
CodLibro Titulo Autor Editorial Paterno Materno Nombres FechaDev
Variable Murray McGraw
1001 Pérez Gómez Juan 15/04/2005
compleja Spiegel Hill
Visual E.
1004 Anaya Ríos Terán Ana 17/04/2005
Basic 5 Petroustsos
Murray McGraw
1005 Estadística Roca René 16/04/2005
Spiegel Hill
Oracle Nancy Oracle
1006 García Roque Luis 20/04/2005
University Greenberg Corp.
Oracle Priya Oracle
1006 García Roque Luis 20/04/2005
University Nathan Corp.
Clipper McGraw
1007 Ramalho Pérez Gómez Juan 18/04/2005
5.01 Hill

Como se puede ver, hay cierta redundancia característica de 1NF.


La Segunda Forma Normal (2NF) pide que no existan dependencias parciales o dicho
de otra manera, todos los atributos no clave deben depender por completo de la clave
primaria. Actualmente en nuestra tabla tenemos varias dependencias parciales si
consideramos como atributo clave el código del libro.

Por ejemplo, el título es completamente identificado por el código del libro, pero el
nombre del lector en realidad no tiene dependencia de este código, por tanto estos datos
deben ser trasladados a otra tabla.

2NF
CodLibro Titulo Autor Editorial
Murray McGraw
1001 Variable compleja
Spiegel Hill
E.
1004 Visual Basic 5 Anaya
Petroustsos
Murray McGraw
1005 Estadística
Spiegel Hill
Nancy Oracle
1006 Oracle University
Greenberg Corp.
Oracle
1006 Oracle University Priya Nathan
Corp.
McGraw
1007 Clipper 5.01 Ramalho
Hill

La nueva tabla sólo contendrá datos del lector.

CodLector Paterno Materno Nombres


501 Pérez Gómez Juan
502 Ríos Terán Ana
503 Roca René
504 García Roque Luis

Hemos creado una tabla para contener los datos del lector y también tuvimos que crear
la columna CodLector para identificar unívocamente a cada uno. Sin embargo, esta
nueva disposición de la base de datos necesita que exista otra tabla para mantener la
información de qué libros están prestados a qué lectores. Esta tabla se muestra a
continuación:
CodLibro CodLector FechaDev
1001 501 15/04/2005
1004 502 17/04/2005
1005 503 16/04/2005
1006 504 20/04/2005
1007 501 18/04/2005

Para la Tercera Forma Normal (3NF) la relación debe estar en 2NF y además los
atributos no clave deben ser mutuamente independientes y dependientes por completo
de la clave primaria. También recordemos que dijimos que esto significa que las
columnas en la tabla deben contener solamente información sobre la entidad definida
por la clave primaria y, por tanto, las columnas en la tabla deben contener datos acerca
de una sola cosa.

En nuestro ejemplo en 2NF, la primera tabla conserva información acerca del libro, los
autores y editoriales, por lo que debemos crear nuevas tablas para satisfacer los
requisitos de 3NF.

3NF
CodLibro Titulo
Variable
1001 compleja
1004 Visual Basic 5
1005 Estadística
Oracle
1006 University
1007 Clipper 5.01
CodAutor Autor
Murray
801 Spiegel
802 E. Petroustsos
Nancy
803 Greenberg
804 Priya Nathan
806 Ramalho

CodEditorial Editorial
McGraw
901 Hill
902 Anaya
Oracle
903 Corp.

Aunque hemos creado nuevas tablas para que cada una tenga sólo información acerca
de una entidad, también hemos perdido la información acerca de qué autor ha escrito
qué libro y las editoriales correspondientes, por lo que debemos crear otras tablas que
relacionen cada libro con sus autores y editoriales.

CodLibro codAutor
1001 801
1004 802
1005 801
1006 803
1006 804
1007 806

CodLibro codEditorial
1001 901
CodLibro codEditorial
1004 902
1005 901
1006 903
1007 901

Y el resto de las tablas no necesitan modificación.


CodLector Paterno Materno Nombres
501 Pérez Gómez Juan
502 Ríos Terán Ana
503 Roca René
504 García Roque Luis

CodLibro CodLector FechaDev


1001 501 15/04/2005
1004 502 17/04/2005
1005 503 16/04/2005
1006 504 20/04/2005
1007 501 18/04/2005
Normalización 1FN, 2FN, 3FN, 4FN

Datos Normalizados en primera forma normal (1FN) y el universo de datos


no normalizados
Antes del análisis y la comparación de los datos normalizados y los no normalizados, conozcamos que es
la Normalización de datos:
¿Qué es normalización?
Normalización es un proceso que clasifica relaciones, objetos, formas de relación y
demás elementos en grupos, en base a las características que cada uno posee. Si se
identifican ciertas reglas, se aplica una categoría; si se definen otras reglas, se
aplicará otra categoría.
Estamos interesados en particular en la clasificación de las relaciones BDR. La forma
de efectuar esto es a través de los tipos de dependencias que podemos determinar
dentro de la relación. Cuando las reglas de clasificación sean más y más restrictivas,
diremos que la relación está en una forma normal más elevada. La relación que está
en la forma normal más elevada posible es que mejor se adapta a nuestras
necesidades debido a que optimiza las condiciones que son de importancia para
nosotros:
• La cantidad de espacio requerido para almacenar los datos es la menor posible;
• La facilidad para actualizar la relación es la mayor posible;
• La explicación de la base de datos es la más sencilla posible
Se dice que una relación está en una determinada forma normal si satisface un cierto
conjunto de restricciones. El proceso de normalización es reversible y no se pierde
información.
Etapas de la Normalización
-La diferencia que existe entre los datos Normalizados en primera forma normal (1FN) y
el universo de datos no normalizado:
El universo de datos no normalizado se refiere al conjunto de datos que están reunidos bajo un
criterio en común, estos datos son una gran cantidad de información desorganizada y, en
algunos casos, compleja para su análisis u otros usos, ya que tiene un albedrio de información, y
en ello encontraremos muchas inconsistencias o ¨defectos¨, como las siguientes:
 La REDUNDANCIA de datos
 ERRORES DE ACTUALIZACION de datos.
 FALTA DE INTEGRIDAD E INCONSISTENCIA en los datos.
En relación a tablas no normalizadas (cuando almacenamos información no normalizada):
 Repetición de nombres de cada tabla.
 Presencia de dos filas iguales.
 Los datos de una misma columna de un mismo tipo.
 De inserción: imposibilidad de adicionar datos en la BD por la ausencia de otros.
 De borrado: pérdida no intencionada de datos debido a la eliminación de otros.
En cambio, cuando tenemos los datos organizados bajo ciertos criterios, como la Primera Forma
Normal (1FN), se debe cumplir con lo siguiente:
 Una relación R se encuentra en 1FN si y solo sí por cada renglón columna contiene valores
atómicos.
 Las celdas de las tablas poseen valores simples y no se permiten grupos ni arreglos repetidos
como valores, es decir, contienen un solo valor por cada celda.
 Todos los ingresos en cualquier columna (atributo) deben ser del mismo tipo.
 Cada columna debe tener un nombre único, el orden de las columnas en la tabla no es
importante.
 Dos filas o renglones de una misma tabla no deben ser idénticas, aunque el orden de las filas no
es importante.

EJEMPLOS DE LA 1FN:

Ejemplo 1:
En esta Guía de Pedido, la PK es el Nro_GI (número de guía) quién determina a los demás
atributos de la tabla.
Ejemplo 2:
En este caso de la biblioteca, la PK es el CodLibro, quién determina a los demás atributos de la
tabla.

Ejemplo 3:
En esta Informe de Notas, la PK esta conformada por el ID-Estudiante y el ID-Clave, quienes
determinan a los demás atributos de la tabla.

Ejemplo 4:
En esta Boleta de Ventas, la PK es el Num_bol (número de boleta) quién determina a los
demás atributos de la tabla.

- Explique detalladamente que resuelve la segunda forma normal (2FN) presente 4


ejemplos. También muestre mediante ejemplos las fallas que presenta la 2FN.

Dependencia Funcional. Una relación está en 2FN si está en 1FN y si los atributos que no forman parte
de ninguna clave dependen de forma completa de la clave principal. Es decir que no existen
dependencias parciales. (Todos los atributos que no son clave principal deben depender únicamente de la
clave principal).

En otras palabras podríamos decir que la segunda forma normal está basada en el concepto de
dependencia completamente funcional. Una dependencia funcional es completamente funcional
si al eliminar los atributos A de X significa que la dependencia no es mantenida, esto es
que . Una dependencia funcional es una dependencia
parcial si hay algunos atributos que pueden ser eliminados de X y la dependencia todavía se
mantiene, esto es .

Por ejemplo {DNI, ID_PROYECTO} HORAS_TRABAJO (con el DNI de un empleado y el ID de un


proyecto sabemos cuántas horas de trabajo por semana trabaja un empleado en dicho proyecto) es
completamente dependiente dado que ni DNI HORAS_TRABAJO ni ID_PROYECTO
HORAS_TRABAJO mantienen la dependencia. Sin embargo {DNI, ID_PROYECTO}
NOMBRE_EMPLEADO es parcialmente dependiente dado que DNI NOMBRE_EMPLEADO mantiene
la dependencia.

Ejemplos:

Considere una tabla describiendo las habilidades de los empleados:

Habilidades de los empleados

Empleado Habilidad Lugar actual de trabajo

Jones Mecanografía 114 Main Street

Jones Taquigrafía 114 Main Street

Jones Tallado 114 Main Street

Bravo Limpieza ligera 73 Industrial Way

Ellis Alquimia 73 Industrial Way

Ellis Malabarismo 73 Industrial Way

Harrison Limpieza ligera 73 Industrial Way

La única clave candidata de la tabla es {Empleado, Habilidad}.


El atributo restante, Lugar actual de trabajo, es dependiente solo en parte de la clave
candidata, llamada Empleado. Por lo tanto la tabla no está en 2NF. Observe la
redundancia de la manera en que son representadas los Lugares actuales de trabajo: nos
dicen tres veces que Jones trabaja en la 114 Main Street, y dos veces que Ellis trabaja en
73 Industrial Way. Esta redundancia hace a la tabla vulnerable a anomalías de
actualización: por ejemplo, es posible actualizar el lugar del trabajo de Jones en sus
registros "Mecanografía" y "Taquigrafía" y no actualizar su registro "Tallado". Los
datos resultantes implicarían respuestas contradictorias a la pregunta "¿Cuál es el lugar
actual de trabajo de Jones?".
Un alternativa 2NF a este diseño representaría la misma información en dos tablas:

Empleados

Empleado Lugar actual de trabajo

Jones 114 Main Street

Bravo 73 Industrial Way

Ellis 73 Industrial Way

Harrison 73 Industrial Way

Habilidades de los empleados

Empleado Habilidad

Jones Mecanografía

Jones Taquigrafía

Jones Tallado

Bravo Limpieza ligera

Ellis Alquimia

Ellis Malabarismo

Harrison Limpieza ligera

Las anomalías de actualización no pueden ocurrir en estas tablas, las cuales están en
2NF.
Sin embargo, no todas las tablas 2NF están libres de anomalías de actualización. Un
ejemplo de una tabla 2NF que sufre de anomalías de actualización es:
Ganadores del torneo

Torneo Año Ganador Fecha de nacimiento del ganador

Des Moines Masters 1998 Chip Masterson 14 de marzo de 1977

Indiana Invitational 1998 Al Fredrickson 21 de julio de 1975

Cleveland Open 1999 Bob Albertson 28 de septiembre de 1968

Des Moines Masters 1999 Al Fredrickson 21 de julio de 1975

Indiana Invitational 1999 Chip Masterson 14 de marzo de 1977

Aunque el Ganador y la Fecha de nacimiento del ganador están determinadas por


una clave completa {Torneo, Año} y no son partes de ella, particularmente las
combinaciones Ganador/ Fecha de nacimiento del ganador son mostradas
redundantemente en múltiples registros. Este problema es tratado por la tercera
forma normal (3NF).

- Explique detalladamente que resuelve la tercera forma normal (3FN) presente 4


ejemplos. También muestre mediante ejemplos las fallas que presenta la 3FN.

La tabla se encuentra en 3FN si es 2FN y si no existe ninguna dependencia funcional transitiva entre
los atributos que no son clave.

Un ejemplo de este concepto sería que, una dependencia funcional X->Y en un esquema de relación
R es una dependencia transitiva si hay un conjunto de atributos Z que no es un subconjunto de
alguna clave de R, donde se mantiene X->Z y Z->Y.

Por ejemplo, la dependencia SSN->DMGRSSN es una dependencia transitiva en EMP_DEPT de la


siguiente figura. Decimos que la dependencia de DMGRSSN el atributo clave SSN es transitiva vía
DNUMBER porque las dependencias SSN→DNUMBER y DNUMBER→DMGRSSN son mantenidas,
y DNUMBER no es un subconjunto de la clave de EMP_DEPT. Intuitivamente, podemos ver que la
dependencia de DMGRSSN sobre DNUMBER es indeseable en EMP_DEPT dado que DNUMBER
no es una clave de EMP_DEPT.

Formalmente, un esquema de relacion está en 3 Forma Normal Elmasri-Navathe,2 si para toda


dependencia funcional , se cumple al menos una de las siguientes condiciones:

1. es superllave o clave.
2. es atributo primo de ; esto es, si es miembro de alguna clave en .

Además el esquema debe cumplir necesariamente, con las condiciones de segunda forma normal.
Un ejemplo de una tabla 2NF que falla en satisfacer los requerimientos de la 3NF es:

Ganadores del torneo

Torneo Año Ganador Fecha de nacimiento del ganador

Indiana Invitational 1998 Al Fredrickson 21 de julio de 1975

Cleveland Open 1999 Bob Albertson 28 de septiembre de 1968

Des Moines Masters 1999 Al Fredrickson 21 de julio de 1975

Indiana Invitational 1999 Chip Masterson 14 de marzo de 1977

La única clave candidata es {Torneo, Año}.


La violación de la 3NF ocurre porque el atributo no primario Fecha de nacimiento
del ganador es dependiente transitivamente de {Torneo, Año} vía el atributo no
primario Ganador. El hecho de que la Fecha de nacimiento del ganador es
funcionalmente dependiente en el Ganador hace la tabla vulnerable a
inconsistencias lógicas, pues no hay nada que impida a la misma persona ser
mostrada con diferentes fechas de nacimiento en diversos registros.
Ejemplos:
Para expresar los mismos hechos sin violar la 3NF, es necesario dividir la tabla en dos:

Ganadores del torneo

Torneo Año Ganador

Indiana Invitational 1998 Al Fredrickson

Cleveland Open 1999 Bob Albertson

Des Moines Masters 1999 Al Fredrickson

Indiana Invitational 1999 Chip Masterson


Fecha de nacimiento del jugador

Jugador Fecha de nacimiento

Chip Masterson 14 de marzo de 1977

Al Fredrickson 21 de julio de 1975

Bob Albertson 28 de septiembre de 1968

Las anomalías de actualización no pueden ocurrir en estas tablas, las cuales


están en 3NF.

- Explique detalladamente que resuelve la cuarta forma normal (4FN) presente 4


ejemplos. También muestre mediante ejemplos las fallas que presenta la 4FN.

Una tabla se encuentra en 4FN si, y sólo si, para cada una de sus dependencias múltiples no
funcionales X->->Y, siendo X una super-clave que, X es o una clave candidata o un conjunto de
claves primarias.

Ejemplo:

Considere el siguiente 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 de Corteza 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:

Áreas de envío por restaurante


Variedades por restaurante

Restaurante Área de envío


Restaurante Variedad de pizza

Vincenzo's Pizza Springfield


Vincenzo's Pizza Corteza gruesa

Vincenzo's Pizza Shelbyville


Vincenzo's Pizza Corteza fina
Elite Pizza Corteza fina Elite Pizza Capital City

Elite Pizza Corteza rellena A1 Pizza Springfield

A1 Pizza Corteza gruesa A1 Pizza Shelbyville

A1 Pizza Corteza rellena A1 Pizza Capital City

En contraste, si las variedades de pizza ofrecidas por un restaurante a veces variaran de


un área de envío a otra, la tabla original de la tres columnas satisfaría la 4NF.

Ronald Fagin demostró que es siempre posible alcanzar la 4NF (pero no siempre deseable).
El teorema de Rissanen es también aplicable en dependencias multivalor.

You might also like