Está en la página 1de 32

Modelamiento y Diseo de Base de

Datos

Normalizacin

Descomposicin, Dependencia Funcional


Ing. Jorge Puga de la cruz
jpuga@iclaro.compe

Software y Sistemas / Redes y Seguridad Informtica

Temas a tratar
- Datos Atmicos
- Dependencia Funcional
- Llaves

- Normalizacin:
- Forma Normal 1
- Forma Normal 2

- Forma Normal 3

Datos Atmicos
Un dato atmico es aquel que no puede descomponerse en dos o ms datos
simples, es decir, son indivisibles en sus valores.
Veamos un ejemplo, tenemos la siguiente tabla:
Personas (nombre, apellido, fecha_nacimiento, sexo, estado_civil)

Reducir la Redundancia

Ejemplo: Tabla Producto


PRODUCTO

Id
00001
00002
00003
00004
00005

Nombre
3 Leches
Pur
Sopa para Uno
Pie de Limn
Arroz

Marca

DirEmp

San Francisco
Maggi
Maggi
San Francisco
Zaror

Lugar 333
Otro 123
Otro 123
Lugar 333
Perdido 999

Qu parece estar mal en esta tabla?

TelEmp
2222222
3563563
3563563
2222222
97726610

Stock
10
20
73
36
36

La Redundancia de datos produce anomalas en


las acciones posteriores sobre la base de datos

Distintas anomalias
Insercin de datos
Quiero agregar un nueva empresa, pero todava no le
compro el producto
Actualizacin de datos
Quiero actualizar la direccin Maggi
Dnde lo hago?

Eliminacin de datos
Si elimino el productor 00005 pierdo la informacin
de contacto de Zaror.

Descomposicin

Cuando encontramos problemas de redundancia, la


solucin comn es dividir la relacin.

Ejemplo: Tabla Producto


PRODUCTO
Id

00001
00002
00003
00004
00005

Nombre

3 Leches
Pur
Sopa para Uno
Pie de Limn
Arroz

Marca

DirEmp

San Francisco
Maggi
Maggi
San Francisco
Zaror

Lugar 333
Otro 123
Otro 123
Lugar 333
Perdido 999

Dividimos la relacin PRODUCTO


PRODUCTO (id, nombre, marca, stock)
MARCA (nombre, dirEmp, telEmp)

TelEmp

2222222
3563563
3563563
2222222
97726610

Stock

10
20
73
36
36

Ejemplo: Tabla Producto


PRODUCTO

Id

Nombre

00001
00002
00003
00004
00005

Marca

3 Leches
Pur
Sopa para Uno
Pie de Limn
Arroz

San Francisco
Maggi
Maggi
San Francisco
Zaror

Stock
10
20
73
36
36

MARCA
Nombre
San Francisco
Maggi
Zaror

DirEmp
Lugar 333
Otro 123
Perdido 999

TelEmp
2222222
3563563
97726610

Descomposicin si perdida
Al descomponer mantenemos vnculo entre
ambas relaciones.
A travs de una clave fornea

Ejemplo: Tabla Producto


PRODUCTO

Id

Nombre

00001
00002
00003
00004
00005

Marca

3 Leches
Pur
Sopa para Uno
Pie de Limn
Arroz

San Francisco
Maggi
Maggi
San Francisco
Zaror

Stock
10
20
73
36
36

MARCA
Nombre
San Francisco
Maggi
Zaror

DirEmp
Lugar 333
Otro 123
Perdido 999

TelEmp
2222222
3563563
97726610

DEPENDENCIA FUNCIONAL

Definicin
En una relacin R se dice que un atributo Y tiene
dependencia funcional con un conjunto de
atributos X (X Y)
Ssi cada valor en Y est asociado con exactamente un

conjunto de valores de X
Otras formas de definirlo:
Dado un conjunto de valores para X puedo obtener un
nico valor para Y.
Sean t1 y t2 tuplas de R, entonces si t1[X] = t2[X] implica
que t1[Y] = t2[Y]

Importancia de la Semntica
Estn determinadas por la semntica de los
atributos.
Son parte del esquema de la relacin, no de una
instancia de ella.

Diferentes categoras
Dependencia funcional trivial
XY es trivial si:
Y es un subconjunto de X

Dependencia funcional total (DFT)


XY es total si:
No existe subconjunto de X que determine Y

Si no es DFT es dependencia funcional parcia (DFP)

Dependencia funcional transitiva


XY es transitiva si:
X Y solamente por que XZ y ZY

Ejemplo: Dependencias
Funcionales
PRODUCTO
Id
00001
00002
00003
00004
00005

Nombre
3 Leches
Pur
Sopa para Uno
Pie de Limn
Arroz

Marca

DirEmp

San Francisco
Maggi
Maggi
San Francisco
Zaror

Lugar 333
Otro 123
Otro 123
Lugar 333
Perdido 999

Id {nombre, marca, Stock}


Nombre, marca {Stock}
Marca {DirEmp, TelEmp}

TelEmp
2222222
3563563
3563563
2222222
97726610

Stock
10
20
73
36
36

FORMAS NORMALES

INTRODUCCIN
El proceso de normalizacin de bases de datos consiste en
aplicar una serie de reglas a las relaciones obtenidas tras
el paso del modelo entidad-relacin al modelo relacional.
Las bases de datos relacionales se normalizan para:
Evitar la redundancia de los datos.
Evitar problemas de actualizacin de los datos en las
tablas.
Proteger la integridad de los datos.
En el modelo relacional es frecuente llamar tabla a una
relacin, aunque para que una tabla sea considerada
como una relacin tiene que cumplir con algunas
restricciones:
Cada columna debe tener su nombre nico.
No puede haber dos filas iguales. No se permiten los
duplicados.
Todos los datos en una columna deben ser del mismo
tipo.

Grados de normalizacin.

Existen bsicamente tres niveles de normalizacin: 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 normalizacin. No
siempre es una buena idea tener una base de datos conformada
en el nivel ms alto de normalizacin, puede llevar a un nivel de
complejidad que pudiera ser evitado si estuviera en un nivel ms
bajo de normalizacin.

Regla
Descripcin
Primera Forma Normal (1FN) Incluye la eliminacin de todos los grupos
repetidos.

Segunda Forma Normal (2FN) Asegura que todas las columnas que no
son llave sean completamente dependientes de la llave primaria (PK).

Tercera Forma Normal (3FN) Elimina cualquier dependencia transitiva.


Una dependencia transitiva es aquella en la cual las columnas que no
son llave son dependientes de otras columnas que tampoco son llave.

Primera forma normal (1FN)

La regla de la Primera Forma Normal establece que las columnas


repetidas deben eliminarse y colocarse en tablas separadas.
Poner la base de datos en la Primera Forma Normal resuelve el
problema de los encabezados de columna mltiples. Muy a
menudo, los diseadores de bases de datos inexpertos harn
algo similar a la tabla no normalizada. Una y otra vez, crearn
columnas que representen los mismos datos. La normalizacin
ayuda a clarificar la base de datos y a organizarla en partes ms
pequeas y ms fciles de entender. En lugar de tener que
entender una tabla gigantesca y monoltica que tiene muchos
diferentes aspectos, slo tenemos que entender los objetos
pequeos y ms tangibles, as como las relaciones que guardan
con otros objetos tambin pequeos.

Segunda forma normal (2FN)


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 trmino 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 mayora de los
problemas de lgica. Podemos insertar un
registro sin un exceso de datos en la mayora de
las tablas.

Tercera forma normal (3FN)


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 estn en la Tercera Forma Normal se
previenen errores de lgica cuando se insertan o borran
registros. Cada columna en una tabla est identificada de
manera nica por la llave primaria, y no deben haber datos
repetidos. Esto provee un esquema limpio y elegante, que
es fcil de trabajar y expandir

Ejemplo de normalizacin de
una factura de venta

Desarrollo
1. Creamos el Diccionario de Datos, para ello hacemos una
lista de todos los campos presentes en el documento y
elegimos para ellos una llave primaria.

2. Aplicamos Primera Forma Normal 1FN: Dividimos la lista


de datos del diccionario de datos en dos grupos: El grupo #
1 estar formado por aquellos datos que no se repiten y en
grupo # 2 por aquellos datos repetitivos

Al aplicar primera forma normal debemos adicionar en el

grupo repetitivo el campo que se selecciono como llave


primaria al momento de elaborar el diccionario de datos
para que sirva como llave secundaria y permita establecer
una relacin de cardinalidad 1-N desde el grupo#1(no
repetitivo) al grupo#2(grupo repetitivo) y seleccionamos
una llave primaria al grupo#2. Aplicando lo anteriormente
expuesto nos queda el siguiente modelo relacional en
primera forma normal (1FN).

3. Aplicamos Segunda Forma Normal 2FN: Al aplicar segunda


forma normal slo se analiza el grupo repetitivo (grupo #2) y
se determina que datos dependen de forma nica del la llave
primaria, Codigo_Producto en nuestro caso, estos datos
junto con la llave primaria formarn un nuevo grupo (grupo
#3) cuya llave primaria ser la misma que tena el grupo
#2(Codigo_Producto) y este mismo dato se conserva en el
grupo #2 pero para este grupo pasa a ser llave secundaria.

Al aplicar segunda forma normal nos que el siguiente

modelo relacional

4. Aplicamos Tercera Forma Norma 3FN. Al aplicar tercera


forma normal se analiza slo al grupo no repetitivo, grupo #
1 en nuestro caso, y se separan de l aquellos campos que no
dependan directamente de la llave primaria. Para el nuevo
grupo se selecciona una llave primaria y dicho campo se
conserva en el primer grupo como llave secundaria. As nos
queda el siguiente modelo.

VENTAJAS
Integridad de datos (porque no hay datos

redundantes ni omitidos).
Consultas optimizadas (porque las tablas
normalizadas generan combinaciones eficaces y
rpidas).
Creacin y ordenacin de ndices ms rpidas
(porque las tablas tienen menos columnas).
Ejecucin ms rpida de la instruccin
UPDATE (porque hay menos ndices por tabla).
Resolucin de concurrencias mejorada (porque
los bloqueos de tabla afectarn a menos datos).

También podría gustarte