You are on page 1of 13

NORMALIZACIÓN

Síntesis

En esta unidad se trabajara el concepto de normalización con sus respectivas


formas normales.

La normalización es un proceso que pretende conseguir tablas con una


estructura óptima y eficaz. El proceso de normalización está basado en lograr
la independencia de los datos respecto a las aplicaciones que los usan.

Ejes de aprendizaje

 Conceptos de normalización

 1FN,2FNy 3FN Semana 7

 FNBC, 4FN y 5FN Semana 8

Competencias
Identifica las formas normales de un esquema de una base de datos
relacional y las dependencias multivaluadas a partir de especificaciones
escritas por medio de la normalización.

Lleva la base de datos a una forma normal tal que esta cumpla la
semántica del negocio sin que haya pérdida ni corrupción de los datos
de la organización.
Desarrollo de los ejes de aprendizaje

Normalización

1“Normalización es una serie de reglas que involucra análisis y transformación


de las estructuras de los datos en relaciones que exhiban propiedades únicas
de consistencia, mínima redundancia y máxima estabilidad.

La necesidad para normalizar puede ser mejor comprendida al mencionar las


distintas anomalías o desventajas de los datos NO NORMALIZADOS. “

Propiedades De Una B.D aplicando normalización


2 “Una base de datos normalizada debe representar las siguientes
propiedades:

 Los requerimientos para almacenamiento de datos se minimizan, dado


que el proceso de normalización sistemáticamente elimina la duplicación
de los datos.

 los datos son almacenados en el mínimo número de lugares, las


posibilidades de inconsistencias en la información son reducidas al
mínimo.

 Las estructuras normalizadas son óptimas para efectuar actualizaciones


de los datos.

Procedimientos De Normalización

El proceso de normalización involucra básicamente tres pasos. Después de


cada paso, la base de datos se convierte en formas llamadas "formas
normales". Generalmente, la "tercera forma normal" es el estado que debe
alcanzar una base de datos para que se diga que está totalmente normalizada.
La cuarta y la quinta forma normal también existen, pero no son usadas en el

1
http://www.wikilearning.com/tutorial/diseno_de_bases_de_datos_en_sql-normalizacion/21129-4
2
fuente: SENA - CEV Comunidad Educativa Virtual
Reglas:
3“Las tablas o entidades deben cumplir con ciertas normas para convertirse
en una relación.

1. Clave única:
Cada registro tiene que tener una llave única que lo identifique. Cualquier
atributo puede ser una llave, pero en lo posible trataremos de elegir como llave
única al atributo que tenga una longitud menor y fija, como por ejemplo un
numero de ID.

2. No duplicados:
No debe haber nunca dos columnas o filas totalmente idénticas. Ejemplo: Dos
registros de discos compactos en una tienda serían idénticos si son dos copias
del último álbum de Shakira, si no fuera porque cada disco compacto tiene un
número código que los hace diferentes.

3. Insignificancia del orden:


La secuencia en la cual los atributos son escritos no debe importar. Podemos
escribir el ID del empleado de primero, o el nombre y el apellido de primero, y
esto no afectará las relaciones que establezcamos con otras tablas.

4. Forma no-normalizada:

Los datos en su forma elemental, no están normalizados. Por lo tanto, lo


primero con lo que debemos comenzar es con los datos elementales o básicos
que conformarán el diccionario de datos.

El diccionario de datos es creado a partir de los documentos o diagramas de


flujo. Se deben listar los elementos uno debajo del otro. Así, obtendremos la
forma no-normalizada.”

GRADOS DE NORMALIZACIÓN

Existen tres niveles básicos de normalización: Primera Forma Normal (1NF),


Segunda Forma Normal (2NF) y Tercera Forma Normal (3NF). Cada una de
estas formas tiene sus propias reglas.

Cuando una base de datos se conforma a un nivel, se considera normalizada a


esa forma de normalización. No siempre es una buena idea tener una base de
datos conformada en el nivel más alto de normalización, puede llevar a un nivel
de complejidad que pudiera ser evitado si estuviera en un nivel más bajo de
normalización.

3
Ibíd., SENA - CEV Comunidad Educativa Virtual
Primera Forma Normal

4“Laregla de la Primera Forma Normal establece que las columnas repetidas


deben eliminarse y colocarse en tablas separadas.

Así mismo se logra asignando a cada tabla una llave primaria y un identificador,
esto elimina los grupos de datos repetidos.”

Poner la base de datos en la Primera Forma Normal resuelve el problema de


los encabezados de columna múltiples. La normalización ayuda a clarificar la
base de datos y a organizarla en partes más pequeñas y más fáciles de
entender. En lugar de tener que entender una tabla gigantesca y monolítica que
tiene muchos diferentes aspectos, sólo tenemos que entender los objetos
pequeños y más tangibles, así como las relaciones que guardan con otros
objetos también pequeños.

Ejemplo:

Empleado
Identificación
Nombre
Edad
Responsable
Dirección
Oficio1
Oficio2
Oficio3

Los usuarios de esta tabla tendrán problemas al almacenar los datos de los
empleados de la compañía, pues al definir el oficio de los empleados sólo se
dispone de 3 opciones.

 En vez de fijar el número de oficios de cada trabajador a 3, cada oficio del


trabajador se localizará en su propia tabla (tabla oficio).

 Así se elimina la necesidad de un número variable de “oficios” en la tabla


EMPLEADO. Esta solución siempre será mejor que limitar el número de
oficios en la tabla EMPLEADO.

 Luego, se debe definir una PK para cada tabla, la cual identificará de


manera única los registros y servirá para obtener una fila de información.

4
Ibíd., SENA - CEV Comunidad Educativa Virtual
 Por lo anterior, la identificación del trabajador será la PK de la tabla
EMPLEADO.

 Puesto que cada trabajador puede tener varias filas en la nueva tabla
OFICIO, la identificación y el Código_oficio de manera combinada serán la
PK completa de la tabla OFICIO.

Finalmente aplicando la primera forma normal las tablas quedan de la


siguiente manera:

Tabla OFICIO
Tabla EMPLEADO
Codigo_oficio
Identificación Llave foránea
Identificación
Nombre
Nombre_Oficio
Edad
Descripción
Responsable
Calificación
Dirección

Llave primaria

Actividad # 1:

En la siguiente actividad realizar el modelo e-r y llevarlo a primera forma


normal.

Una cadena de agencias de viajes desea disponer de una Base de Datos que
contemple información relativa al hospedaje y vuelos de los turistas que la
contratan.

Los datos a tener en cuenta son:


 La cadena de agencias está compuesta por un conjunto de sucursales. Cada
sucursal viene definida por el código de sucursal, dirección y teléfono.

 La cadena tiene contratados una serie de hoteles de forma exclusiva. Cada


hotel estará definido por el código de hotel, nombre, dirección, ciudad,
teléfono y número de plazas disponibles.

 De igual forma, la cadena tiene contratados una serie de vuelos regulares de


forma exclusiva.

 Cada vuelo viene definido por el número de vuelo, fecha y hora, origen y
destino, plazas totales y plazas de clase turista de las que dispone.
 La información que se desea almacenar por cada turista es el código de
turista, nombre y apellidos, dirección y teléfono.

Por otra parte, hay que tener en cuenta la siguiente información:

 A la cadena de agencias le interesa conocer que sucursal ha contratado el


turista.

 A la hora de viajar el turista puede elegir cualquiera de los vuelos que ofrece
la cadena, y en que clase (turista o primera) desea viajar.

 De igual manera, el turista se puede hospedar en cualquiera de los hoteles


que ofrece la cadena, y elegir el régimen de hospedaje (media pensión o
pensión completa). Siendo significativa la fecha de llegada y de partida.

Segunda Forma Normal


5“La regla de la Segunda Forma Normal establece que todas las dependencias
parciales se deben eliminar y separar dentro de sus propias tablas. Una
dependencia parcial es un término que describe a aquellos datos que no
dependen de la llave primaria de la tabla para identificarlos.

Una vez alcanzado el nivel de la Segunda Forma Normal, se controlan la


mayoría de los problemas de lógica. Podemos insertar un registro sin un
exceso de datos en la mayoría de las tablas.”

Ejemplo:

Tabla Tabla OFICIO-


EMPLEADO EMPLEADO

Nombre Nombre
Edad Oficio
Responsable Calificación
Dirección

Tabla OFICIO

Codico_oficio
Oficio
Descripción

 Para obtener la segunda forma normal se deben sacar Oficio y


Descripción a una tercera tabla.

5
www.javeriano.edu.co/javeriano/guias/virtual/sitio2/octavo/guia_7/documentos/normalizacion.pdf
 la PK de la tercera tabla es código_oficio y su larga descripción aparece
sólo una vez.

 En la tabla OFICIO de la primera forma normal se observa que las


descripciones detalladas se repiten para cada trabajador que tenga ese
“oficio”.

 Además, cuando el último trabajador con conocimientos de herrero se


va de la ciudad, la descripción del oficio de desvanece.

Actividad # 2:

En esta actividad retomamos la actividad uno y aplicamos la segunda forma normal

Tercera Forma Normal

6
“Una tabla está normalizada en esta forma si todas las columnas que no son llave son
funcionalmente dependientes por completo de la llave primaria y no hay dependencias
transitivas. Comentamos anteriormente que una dependencia transitiva es aquella en
la cual existen columnas que no son llave que dependen de otras columnas que
tampoco son llave.

Cuando las tablas están en la Tercera Forma Normal se previenen errores de lógica
cuando se insertan o borran registros. Cada columna en una tabla está identificada de
manera única por la llave primaria, y no debe haber datos repetidos. Esto provee un
esquema limpio y elegante, que es fácil de trabajar y expandir.

Un dato sin normalizar no cumple con ninguna regla de normalización. Para explicar
con un ejemplo en que consiste cada una de las reglas, vamos a considerar los datos
de la siguiente tabla.”

Ejemplo general:

En este ejemplo vamos aplicar hasta la tercera forma normal.

La normalización la podemos trabajar con la siguiente estructura, cundo ya


tengamos normalizada la base de datos la llevamos al modelo relacional y
tomamos la ultima forma normal.

6
Ibíd.
ESTADO INICIAL PRIMERA FORMA SEGUNDA FORMA TERCERA FORMA
NORMAL NORMAL NORMAL
FACTURA FACTURA FACTURA FACTURA

Pk Pk Numero_factura Pk Numero_factura Pk Numero_factura


Numero_factura Fecha_factura Fecha_factura Fecha_factura
Fecha_factura Cod_cliente Cod_cliente FK Cod_cliente
Cod_cliente Nombre _cliente Nombre _cliente FK Cod_vendedor
Nombre _cliente Direccion _cliente Direccion _cliente Total_factura
Direccion _cliente Telefono_cliente Telefono_cliente
Telefono_cliente Cod_vendedor Cod_vendedor
Cod_vendedor Nom_vendedor Nom_vendedor CLIENTE
Nom_vendedor Total_factura Total_factura
Código_producto Pk Cod_cliente
Nombre_producto identificacion_cliente
Cantidad_producto Nombre _cliente
Precio_unitario Direccion _cliente
Precio_total Telefono_cliente

VENDEDOR

Pk Cod_vendedor
Nom_vendedor

DETALLE_FACTURA DETALLE_FACTURA DETALLE_FACTURA


Pk FK Pk FK Pk FK
Numero_factura Numero_factura Numero_factura
Pk Código_producto Pk FK Pk FK
Nombre_producto Código_producto Código_producto
Cantidad_producto Cantidad_producto Cantidad_producto
Precio_unitario Precio_total Precio_total
Precio_total
PRODUCTO PRODUCTO

Pk Código_producto Pk Código_producto
Nombre_producto Nombre_producto
Precio_unitario Precio_unitario

Actividad # 3

Realizar el modelo relacional de la estructura del ejemplo anterior.


Forma Normal de Boyce-Codd o FNBC:

7 “Una tabla está en Forma Normal de Boyce-Codd o FNBC si solo existen


dependencias funcionales elementales que dependan de la clave primaria o de
cualquier clave alternativa. Si la clave primaria está formada por un solo
atributo y está en 3FN, ya está en FNBC.”

Un ejemplo típico para mostrar una tabla que, estando en 3FN, mantiene
dependencias funcionales, sin relación con el ejemplo seguido hasta este
momento, es una tabla llamada curso que posee los atributos ESTUDIANTE,
ASIGNATURA y PROFESOR.

CURSO
ESTUDIANTE ASIGNATURA PROFESOR

Luis Informática Jesús

Luisa Matemáticas Pedro

Mario Física Máximo

María Ingles Lourdes

Bases de
Juan Rafael
datos

Tomás Ingles Jesús

Sea la relación CURSO (Estudiante, Asignatura, Profesor) en la que un


profesor solo imparte una única asignatura. Con las siguientes dependencias
funcionales

Estudiante, Asignatura  Profesor;

Profesorasignatura

Procedemos a su normalización hasta FNBC. Aplicamos la regla de


descomposición sin pérdidas a la dependencia que impide la restricción en
FNBC, Asignatura Profesor:

7
http://www.google.com.co/search?hl=es&client=firefox-a&rls=org.mozilla%3Aes-
AR%3Aofficial&channel=s&q=normalizacion+de+bases+de+datos+FNBC&aq=f&aqi=&aql=&oq=&gs_rfai
PROFE_ASIG(profesor,asignatura)

ESTU_PROFE(estudiante,profesor)

Quedando las tablas de la siguiente manera:

ESTU_PROFE
PROFE_ASIG
ESTUDIANTE PROFESOR
PROFESOR ASIGNATURA
Luis Jesús
Jesús Informática
Luisa Pedro
Pedro Matemáticas
Mario Máximo
Máximo Física
María Lourdes
Lourdes Ingles
Juan Rafael
Rafael Bases de datos
Tomás Jesús

Sólo podemos asegurar una descomposición sin pérdidas para una


normalización hasta 3FN, a partir de ella no podemos asegurar que no se
pierdan dependencias.

Si se llega a FNBC y se pierde una dependencia entonces podemos proceder


de dos maneras posibles:

1. Dejamos la normalización hasta 3FN.

2. Rediseñamos el modelo entidad-relación.

Cuarta Forma Normal

8“Existe dependencia funcional multivalorada o de múltiples valores si, dados


tres atributos de una tabla, si para cada valor del primer atributo existen
múltiples valores en el segundo atributo y no hay ninguna relación entre el
tercer atributo y el primero, a no ser a través del segundo atributo.

Una tabla está en Cuarta Forma Normal o 4FN si está en FNBC y las únicas
dependencias funcionales multivaloradas que existen son las dependencias
funcionales de la clave con los atributos que no forman parte de la misma.

8
http://www.scourdesign.com/articulos/BD-FN.php
Estas dependencias multievaluadas 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 multievaluadas en 4FN.”

Ejemplo:
9“Supongamos que los atributos de la tabla transporte son conductor, tipo de
vehículo y tipo de carga, formando los tres campos la clave primaria. A cada
conductor se le puede asignar un vehículo u otro y cada vehículo puede
transportar varios tipos de carga.

TRANSPORTE

Conductor Tipo Vehículo Tipo Carga

Juan Furgoneta Perecederos


Marcos Furgoneta Perecederos
Juan Furgoneta Muebles
Marcos Furgoneta Muebles
Juan Camión Mudanza
Marcos Camión Mudanza

Con estas condiciones, los conductores son independientes de la carga; el tipo


de vehículos depende del conductor y el tipo de vehículo depende de la carga.

En este caso hay dependencias funcionales multivaloradas, ya que algunos


atributos que forman la clave dependen de otro atributo que también la forman.

Para conseguir que esta tabla esté en 4FN se necesita crear dos nuevas tablas
manteniéndose en cada una de ellas una dependencia múltiple. La primera
tabla tendrá los atributos conductor y tipo de vehículo y la segunda, tipo de
vehículo y tipo de carga.

De este modo la tabla en 4FN debido a que la clave primaria de ambas tablas
son todos los campos que la forman. Resultado:”

Tipo Vehículo Tipo Carga


Conductor Tipo Vehículo
Furgoneta Perecederos
Furgoneta Perecederos Juan Furgoneta
Furgoneta Muebles Marcos Furgoneta
Furgoneta Muebles Juan Furgoneta
Camión Mudanza Marcos Furgoneta
Camión Mudanza Juan Camión
Marcos Camión

9
Ibíd.
Quinta Forma Normal

10“Se dice que hay dependencia de JOIN, de unión o de producto si una tabla
tiene dependencia de unión con varias de sus proyecciones y se puede
obtener la tabla por medio de la unión de dichas proyecciones.

Proyección:
Creación de una tabla cuyos elementos forman un subconjunto de una tabla
dada. Se incluyen todas las filas y algunas columnas.

Unión:
Formar, a partir de dos tablas, una nueva con todos los campos de una de ellas
y los registros de ambas, excepto los repetidos. Ambas tablas han de tener el
mismo grado y las mismas columnas.

Una tabla esta en Quinta Forma Normal (5FN) o Forma Normal de Proyección-
Unión si está en 4FN y las únicas dependencias que existen son las
dependencias de unión de una tabla con sus proyecciones relacionándose
entre las distintas proyecciones mediante la clave primaria o cualquier clave
alternativa.

La 5FN se emplea cuando en una misma tabla tenemos mucha información


redundante, con pocos atributos o cuando una tabla posee una gran cantidad
de atributos y se hace por ello inmanejable.

Para conseguir que una tabla 4FN con gran cantidad de atributos esté en 5FN,
se parte la tabla original en tantas tablas como se desee, teniendo cada una de
ellas en común con las demás los campos que forman la clave primaria en la
tabla original.

Ejemplo para el caso de una tabla que posee una gran cantidad de atributos:

Id Datos Datos Datos Datos Clínicos


Familiares Profesionales Personales
1 D1 D2 D3 D4 D5 D6 D7 D8 D9 D10 D11 D12

10
Ibíd.
En este caso tenemos una empresa donde se guardan los datos personales,
familiares, profesionales y clínicos de cada empleado en una única tabla
llamada Empleados.

Si esta tabla está ya en 4FN, se puede partir en las tablas empleados-personal,


empleados-familia, empleados-profesional, empleados-clínicos; de este modo,
la velocidad de acceso y la gestión de datos por cada departamento de la
empresa se simplifica, al no tenerse que crear ningún tipo de restricción sobre
determinados atributos que no han de ser vistos por el personal que no los
necesite.”

El resultado sería:

Id Datos Familiares
1 D1 D2 D3

Id Datos Profesionales
1 D4 D5 D6

Id Datos personales
1 D7 D8 D9

Id Datos clínicos
1 D10 D11 D12