You are on page 1of 38

Normalizacin

de base de datos
Relacional
Problemas en Diseo Relacional
El diseo lgico de una base de datos relacional puede
abordarse de dos formas:

Obteniendo el esquema Realizando proceso de


relacional directamente: diseo por fases:
Objetos y reglas captadas del Diseo conceptual de la BD
anlisis del mundo real, (modelo E/R) y
representadas por un conjunto de Transformndolo a esquema
esquemas de relacin, sus relacional
atributos y restricciones de
integridad.

En ambos enfoques puede encontrarse problemas de


diseo que se deben resolver

2
Problemas en Diseo Relacional
Analicemos el siguiente esquema de relacin

PEDIDO (Articulo, Cliente, cantidad, precio, ciudad, distancia)

Articulo: es el articulo pedido por el cliente


Cliente: es cliente que realiz el pedido del articulo
Precio: es el precio del articulo
Ciudad: es el nombre del lugar donde se ubica el cliente
Distancia: es el rea en kilmetros de la ciudad

3
Problemas en Diseo Relacional
Veamos el estado de la relacin en un momento
determinado
PEDIDO
Articulo Cliente cantidad precio ciudad distancia
A1 C1 12 100 Madrid 400
A1 C2 30 100 Valencia 200
A1 C3 15 100 Alicante 80
A2 C1 35 250 Madrid 400
A2 C2 20 250 Valencia 200
A2 C4 10 250 Madrid 400
A3 C3 25 175 Alicante 80

4
Problemas en Diseo Relacional
Se observa los siguientes problemas de diseo
inadecuado:
Redundancia de Anomala de Anomala de Anomala de
informacin Insercin modificacin borrado

El nombre de la Podemos Podemos tener Si eliminamos el


ciudad se repite registrar nuevo el mismo articulo artculo A3, se
en todas las filas articulo? con dos precios pierde dato de
donde esta el Nuevo cliente? distintos la cantidad
mismo cliente Nueva ciudad? Igual , una misma De igual forma, si
De igual forma la ciudad con dos se elimina al
distancia de una distancias cliente C4
ciudad y
El precio de un Problemas de Prdida de
articulo inconsistencias informacin.

5
Problemas en Diseo Relacional
Principio bsico de diseo:
"hechos distintos se deben almacenar en objetos distintos"

6
Normalizacin

Es una tcnica formal de anlisis y organizacin de


datos que trata de evitar la redundancia y
anomalas de insercin, modificacin y borrado

El proceso de normalizacin consiste en aplicar


una serie de reglas a las relaciones obtenidas tras
el paso del MER al MR o por el enfoque directo

Formaliza el diseo lgico de base de datos


relacional con los criterios matemticos de Formas
Normales

7
Formas Normales

Un esquema de relacin est en una determinada forma


normal si satisface un determinado conjunto especfico de
restricciones (dependencia funcional) definidas sobre los
atributos del esquema.

8
Dependencia Funcional
PEDIDO
Articulo Cliente cantidad precio ciudad distancia
A1 C1 12 100 Madrid 400
A1 C2 30 100 Valencia 200
A1 C3 15 100 Alicante 80
A2 C1 35 250 Madrid 400
A2 C2 20 250 Valencia 200
A2 C4 10 250 Madrid 400
A3 C3 25 175 Alicante 80

Todas las filas de un mismo articulo tienen el mismo valor de precio,


el atributo precio depende funcionalmente de articulo.
Articulo Precio

Ciudad depende funcionalmente de Cliente


Distancia depende funcionalmente de Ciudad

9
Dependencia funcional
Definicin 1:
Sean A y B atributos de una relacin R.
Se dice que B es funcionalmente dependiente de A (A B)
si todo posible valor de A tiene asociado un nico valor de B,
A y B pueden ser atributos simples o compuestos.

Definicin 2:
Sean X e Y subconjuntos de A (A, conjunto de atributos de la
relacin R).
Decimos que X determina o implica a Y en R
(= Y depende funcionalmente de X) si para dos tuplas
cualesquiera de r (R) (extensin de R) que tengan iguales
valores en X, tambin son iguales los valores en Y.
Se representa por X Y

10
Dependencia Funcional
PEDIDO Un ejemplo
Articulo Cliente cantidad precio ciudad distancia
A1 C1 12 100 Madrid 400
A1 C2 30 100 Valencia 200
A1 C3 15 100 Alicante 80
A2 C1 35
artculo 250
precio, Madrid 400
A2 C2 20 250 Valencia 200
A2 C4 10 250 Madrid 400
A3 C3 25 175 Alicante 80

R : PEDIDOS (artculo, cliente, cantidad, precio, ciudad, distancia).


DF : (artculo, cliente) {cantidad,precio}
artculo precio,
cliente ciudad,
ciudad distancia

11
Dependencia funcional completa
Sea X (conjunto de atributos).
Se dice que Y tiene dependencia funcional plena o
completa de X,
si depende funcionalmente de X
pero no depende de ningn subconjunto del mismo

Ejemplo:
(artculo, cliente) cantidad es una DF completa

(artculo, cliente) precio no es una DF completa, por que


tambin artculo precio.

12
Dependencia funcional transitiva

Si XY, Y-/X, YZ
Entonces, Z depende transitivamente de X ( X--Z ).

Ejemplo:
cliente ciudad,
ciudad -/ cliente (no determina funcionalmente), y
ciudad distancia,
Entonces, cliente --- distancia
(cliente determina transitivamente a distancia).

13
Formas Normales

1 FN (Codd, 1970)
Concepto de relacin normalizada.
2, 3 FN (Codd, 1970), FNBC (Boyce/Codd, 1974)
Basadas en anlisis de dependencias funcionales.
4 FN. Fagin, 1977
Basada en anlisis de dependencias multivaluadas.
5 FN. Fagin, 1979
Basada en anlisis de dependencias de proyeccin /
combinacin.

14
Primera Forma Normal (1FN)
Un esquema o relacin est en 1 FN:
Si el dominio asociado a cada atributo contiene nicamente
valores atmicos; es decir, no tiene atributos
multivalorados (repetidos)

Nom_Pieza Proveedores Cantidad


PIEZA
Tornillo 5 mm Ferretera Ruiz 1518
Almacenes Lpez
Tuerca 5 mm Ferretera Ruiz 3210

Nom_empleado dependientes grado sueldo


EMPLEADO
Juan Prez Lucia Gonzles Esposa 2 500
Javier Prez Hijo
Mara Prez Hijo
Anbal Campos Carmen Soto 3210

15
Segunda Forma Normal (2FN)
Un esquema o relacin R (A,DF) est en 2 FN, si y slo si
Est en 1 FN (es decir, si la relacin est normalizada) y
Sus atributos no primarios dependen completamente de la
clave primaria de R.

(artculo, cliente) precio no es una DF completa,


porque artculo precio.

16
Tercera Forma Normal (3FN)
Un esquema o relacin R(A,DF) est en 3 FN, si y slo si
Est en 2 FN y
Ninguno de sus atributos no primarios depende
transitivamente de la clave primaria de R.
Es decir no hay dependencias funcionales transitivas.

cliente ciudad,
ciudad distancia,
Entonces, cliente --- distancia

17
Proceso de normalizacin

18
Proceso de normalizacin
FERRETERIA Fecha:
Las Lomas
Av. Abancay Nro. 362 - 02/09/2004
Lima
FACTURA
Cliente: 335 Nro. 00273
Nombre: Roberto Antonio CHAVEZ

Cant. Cod_Pro Descripcin Precio Unitario Importe

12 P2 Pernos 6 2.00 24.00

24 P3 Tuercas acero inoxidable 1.50 36.00

02 P4 Clavos de 2 0.50 1.00

TOTAL 61.00

19
Proceso de normalizacin
A partir de la Relacin Universal
Cada tupla representa un objeto especifico del micromundo a modelar.
En el ejemplo mostrado este micromundo son los documentos, por lo
que la llave debe ser un(os) dato(s) que identifique a cada documento.

FACCOD FACFEC CLICOD CLINOM PROCOD PRODES PROCAN PREUNI

273 2/09/04 335 Chavez P2 Pernos 12 2.0


P3 Tuercas 24 1.5
P4 Clavos 2 2 0.5

20
Proceso de normalizacin
Procedimiento para pasar a Primera Formal Normal

SI
Relacin Hay grupos Separar
Universal repetitivos relaciones

NO
Existe
SI unicidad
de llave
1FN
NO

Necesita llave de
anterior
Proceso de normalizacin
Pasando a Primera Formal Normal

Columnas cuyos datos Columnas que representan


representan slo un valor datos con ms de un valor

FACCOD FACFEC CLICOD CLINOM PROCOD PRODES PROCAN PREUNI


273 2/ 09/ 04 335 Chavez P2 Pernos 12 2.0
P3 Tuercas 24 1.5
P4 Clavos 2 2 0.5
274 3/ 09/ 04 875 Borja P3 Tuercas 12 1.5
P5 Terokal 3 4.0

22
Proceso de normalizacin
Pasando a Primera Formal Normal

FACTURA
FACCOD FACFEC CLICOD CLINOM
273 2/ 09/ 04 335 Chavez
274 3/ 09/ 04 875 Borja

DETALLE DE FACTURA
Necesito llave FACCOD PROCOD PRODES PROCAN PREUNI
anterior 273 P2 Pernos 12 2.0
273 P3 Tuercas 24 1.5
273 P4 Clavos 2 2 0.5
274 P3 Tuercas 12 1.5
274 P5 Terokal 3 4.0

23
Proceso de normalizacin
Procedimiento para pasar a Segunda Formal Normal

SI
1FN Tiene Llave
Compuesta

Hay Atributos
dependientes
NO NO parcialmente
de la llave

2FN
SI

Separar la llave parcial


y sus atributos en relaciones
separadas

24
Proceso de normalizacin
Pasando a Segunda Formal Normal

FACTURA
FACCOD FACFEC CLICOD CLINOM
273 2/ 09/ 04 335 Chavez
274 3/ 09/ 04 875 Borja

DETALLE DE FACTURA
FACCOD PROCOD PRODES PROCAN PREUNI
273 P2 Pernos 12 2.0
273 P3 Tuercas 24 1.5
273 P4 Clavos 2 2 0.5
274 P3 Tuercas 12 1.5
274 P5 Terokal 3 4.0

25
Proceso de normalizacin
Pasando a Segunda Formal Normal

DETALLE DE FACTURA
FACCOD PROCOD PROCAN
273 P2 12
273 P3 24
PRODUCTO
273 P4 2
274 P3 12 PROCOD PRODES PREUNI
274 P5 3 P2 Pernos 2.0
P3 Tuercas 1.5
P4 Clavos 2 0.5
P5 Terokal 4.0

26
Proceso de normalizacin
Procedimiento para pasar a Tercera Formal Normal

Atributos
NO
dependientes
2FN directamente
de la llave

Abrir en
SI relaciones
separadas

3FN

SI
Atributos
dependientes no
directamente
de la nueva
llave

27
Proceso de normalizacin
Pasando a Tercera Formal Normal

FACTURA
FACCOD FACFEC CLICOD CLINOM
273 2/ 09/ 04 335 Chavez
274 3/ 09/ 04 875 Borja
DETALLE DE FACTURA
FACCOD PROCOD PROCAN PRODUCTO
273 P2 12 PROCOD PRODES PREUNI
273 P3 24 P2 Pernos 2.0
273 P4 2 P3 Tuercas 1.5
274 P3 12 P4 Clavos 2 0.5
274 P5 3 P5 Terokal 4.0
Proceso de normalizacin

Pasando a Tercera Formal Normal

FACTURA
FACCOD FACFEC CLICOD CLINOM
273 2/ 09/ 04 335 Chavez
274 3/ 09/ 04 875 Borja
275 3/ 09/ 04 335 Chavez

FACTURA
FACCOD FACFEC CLICOD
273 2/ 09/ 04 335 CLIENTE
274 3/ 09/ 04 875 CLICOD CLINOM
275 3/ 09/ 04 335 335 Chavez
875 Borja

29
Proceso de normalizacin
Esquema Final Normalizado

FACTURA
CLIENTE
FACCOD FACFEC CLICOD
CLICOD CLINOM
273 2/ 09/ 04 335
335 Chavez
274 3/ 09/ 04 875 875 Borja

DETALLE DE FACTURA
PRODUCTO
FACCOD PROCOD PROCAN
PROCOD PRODES PREUNI
273 P2 12
P2 Pernos 2.0
273 P3 24
P3 Tuercas 1.5
273 P4 2
P4 Clavos 2 0.5
274 P3 12
P5 Terokal 4.0
274 P5 3

30
Proceso de normalizacin
Otra forma de describir normalizacin

1 FN:
Una relacin esta en 1 FN si esta definido sobre atributos atmicos.
2 FN:
R (A, B, C, D ) donde AB D y B C
Se descompone en:
R1 (A, B, D) donde AB D
R2 (B, C) donde B C
3 FN:
R (A, B, C, D) donde AB C, AB D y C D
Se descompone en :
R1 (A, B, C) donde AB C
R2 (C, D) donde C D

31
Proceso de normalizacin
Ejemplo

PEDIDO (artculo, cliente, cantidad, precio, ciudad, distancia).


Donde: (artculo, cliente) {cantidad, precio}, artculo precio,
cliente {ciudad, distancia} y ciudad distancia

Esta en 1 FN ?
Esta en 2 FN ?
esta en 3 FN ?

32
Proceso de normalizacin
Otro ejemplo

1 FN
Esta en 1FN

2 FN,
PEDIDO no esta en 2FN, lo descomponemos en

PEDIDOS1 (artculo, cliente, cantidad),


donde (artculo, cliente) cantidad)
ARTICULOS (artculo, precio), donde artculo precio
CLIENTES (cliente, ciudad, distancia),
donde {cliente ciudad, ciudad distancia})
3 FN.
CLIENTES no esta en 3 FN, lo descomponemos en

CLIENTES1 (cliente, ciudad), donde cliente ciudad


CIUDADES (ciudad, distancia, donde ciudad distancia

33
Proceso de normalizacin

34
Proceso de normalizacin

35
Proceso de normalizacin
Ejercicio 1:

Pieza Almacn Cantidad DirAlmacn


42 Boston 2000 Main St
333 Boston 1000 Main St
390 New York 3000 Broad St

Esta en 1 FN ?
Esta en 2 FN ?
esta en 3 FN ?

36
Proceso de normalizacin
Ejercicio 2:

Empleado Departamento UbicacinDepart


234 Finanzas Boston
223 Finanzas Boston
399 Operaciones washington

Esta en 1 FN ?
Esta en 2 FN ?
esta en 3 FN ?

37
Normalizacin

38

You might also like