You are on page 1of 39

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 relacional directamente:


Objetos y reglas captadas del anlisis del mundo real, representadas por un conjunto de esquemas de relacin, sus atributos y restricciones de integridad.

Realizando proceso diseo por fases:


Diseo conceptual de la BD (modelo E/R) y Transformndolo a esquema relacional

de

En ambos enfoques puede encontrarse problemas de diseo que se deben resolver

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

Problemas en Diseo Relacional


Veamos el estado de la relacin en un momento determinado
PEDIDO
Articulo A1 A1 A1 Cliente C1 C2 C3 cantidad 12 30 15 precio 100 100 100 ciudad Madrid Valencia Alicante distancia 400 200 80

A2 A2
A2 A3

C1 C2
C4 C3

35 20
10 25

250 250
250 175

Madrid Valencia
Madrid Alicante

400 200
400 80

Problemas en Diseo Relacional


Se observa los siguientes problemas de diseo inadecuado:
Redundancia de informacin Anomala de Insercin Anomala de modificacin Anomala de borrado

El nombre de la ciudad se repite en todas las filas donde esta el mismo cliente De igual forma la distancia de una ciudad y El precio de un articulo

Podemos

registrar nuevo articulo? Nuevo cliente? Nueva ciudad?

Podemos tener el mismo articulo con dos precios distintos Igual , una misma ciudad con dos distancias Problemas de inconsistencias

Si eliminamos el artculo A3, se pierde dato de la cantidad De igual forma, si se elimina al cliente C4 Prdida de informacin.

Problemas en Diseo Relacional


Principio bsico de diseo: "hechos distintos se deben almacenar en objetos distintos"

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

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.

Dependencia Funcional
PEDIDO
Articulo
A1

Cliente
C1

cantidad
12

precio
100

ciudad
Madrid

distancia
400

A1
A1

C2
C3

30
15

100
100

Valencia
Alicante

200
80

A2
A2 A2 A3

C1
C2 C4 C3

35
20 10 25

250
250 250 175

Madrid
Valencia Madrid Alicante

400
200 400 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
Articulo A1 A1 A1 A2 A2 A2 A3 Cliente C1 C2 C3 C1 C2 C4 C3

Un ejemplo
cantidad 12 30 15 20 10 25 precio 100 100 100 250 250 175 ciudad Madrid Valencia Alicante Madrid Valencia Madrid Alicante distancia 400 200 80 400 200 400 80

35 250 artculo precio,

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.


Basadas en anlisis de dependencias funcionales.

2, 3 FN (Codd, 1970), FNBC (Boyce/Codd, 1974)

4 FN. Fagin, 1977

Basada en anlisis de dependencias multivaluadas. Basada en anlisis de dependencias de proyeccin / combinacin.

5 FN. Fagin, 1979

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)
PIEZA
Nom_Pieza Tornillo 5 mm Tuerca 5 mm Proveedores Ferretera Ruiz Almacenes Lpez Ferretera Ruiz 3210 Cantidad 1518

EMPLEADO

Nom_empleado Juan Prez

dependientes Lucia Gonzles


Javier Prez Mara Prez

grado Esposa
Hijo Hijo

sueldo 2 500

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
Las Lomas Av. Abancay Nro. 362 Lima

Fecha: 02/09/2004
FACTURA Nro. 00273

Cliente: 335 Nombre: Roberto Antonio CHAVEZ


Cant. 12 24 02 Cod_Pro P2 P3 P4 Descripcin Pernos 6

Precio Unitario 2.00 1.50 0.50

Importe 24.00 36.00 1.00

Tuercas acero inoxidable Clavos de 2

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 P3 P4

Pernos Tuercas Clavos 2

12 24 2

2.0 1.5 0.5

20

Proceso de normalizacin

Procedimiento para pasar a Primera Formal Normal

Relacin Universal

Hay grupos repetitivos NO

SI

Separar relaciones

SI

Existe unicidad de llave NO Necesita llave de anterior

1FN

Proceso de normalizacin

Pasando a Primera Formal Normal

Columnas cuyos datos representan slo un valor


FACCOD
273

Columnas que representan datos con ms de un valor


PROCOD
P2 P3 P4 P3 P5

FACFEC
2/ 09/ 04

CLICOD
335

CLINOM
Chavez

PRODES
Pernos Tuercas Clavos 2 Tuercas Terokal

PROCAN
12 24 2 12 3

PREUNI
2.0 1.5 0.5 1.5 4.0

274

3/ 09/ 04

875

Borja

22

Proceso de normalizacin

Pasando a Primera Formal Normal


FACTURA
FACCOD FACFEC
2/ 09/ 04 3/ 09/ 04

CLICOD

CLINOM

273 274

335 875

Chavez Borja DETALLE DE FACTURA

Necesito llave anterior

FACCOD 273 273 273

PROCOD P2 P3 P4

PRODES Pernos Tuercas Clavos 2

PROCAN 12 24 2

PREUNI 2.0 1.5 0.5

274
274

P3
P5

Tuercas
Terokal

12
3

1.5
4.0

23

Proceso de normalizacin

Procedimiento para pasar a Segunda Formal Normal

1FN

Tiene Llave Compuesta

SI

NO

NO

Hay Atributos dependientes 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
2/ 09/ 04 3/ 09/ 04

CLICOD

CLINOM

273 274

335 875

Chavez Borja

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

25

Proceso de normalizacin

Pasando a Segunda Formal Normal

DETALLE DE FACTURA
FACCOD 273 273 273 274 274 PROCOD P2 P3 P4 P3 P5 PROCAN 12 24 2 12 3

PRODUCTO
PROCOD P2 P3 P4 P5 PRODES Pernos Tuercas Clavos 2 Terokal PREUNI 2.0 1.5 0.5 4.0

26

Proceso de normalizacin

Procedimiento para pasar a Tercera Formal Normal

2FN

Atributos dependientes directamente de la llave SI

NO

Abrir en relaciones separadas

3FN

SI

Atributos dependientes directamente de la nueva llave

no

27

Proceso de normalizacin

Pasando a Tercera Formal Normal

FACTURA
FACCOD FACFEC
2/ 09/ 04 3/ 09/ 04

CLICOD

CLINOM

273 274 DETALLE DE FACTURA


FACCOD 273 273 273 274 274 PROCOD P2 P3 P4 P3 P5 PROCAN 12 24 2 12 3

335 875

Chavez Borja

PRODUCTO
PROCOD P2 P3 PRODES Pernos Tuercas PREUNI 2.0 1.5

P4
P5

Clavos 2
Terokal

0.5
4.0

Proceso de normalizacin

Pasando a Tercera Formal Normal


FACTURA
FACCOD FACFEC
2/ 09/ 04 3/ 09/ 04 3/ 09/ 04

CLICOD

CLINOM

273 274 275

335 875 335

Chavez Borja Chavez

FACTURA
FACCOD FACFEC
2/ 09/ 04 3/ 09/ 04 3/ 09/ 04

CLICOD

273 274 275

335 875 335

CLIENTE
CLICOD CLINOM

335 875

Chavez Borja

29

Proceso de normalizacin

Esquema Final Normalizado

FACTURA
FACCOD FACFEC
2/ 09/ 04 3/ 09/ 04

CLICOD

CLIENTE
CLICOD CLINOM

273 274

335 875

335 875 PRODUCTO

Chavez Borja

DETALLE DE FACTURA
FACCOD 273 273 273 274 274 PROCOD P2 P3 P4 P3 P5 PROCAN 12 24 2 12 3

PROCOD P2 P3 P4 P5

PRODES Pernos Tuercas Clavos 2 Terokal

PREUNI 2.0 1.5 0.5 4.0


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 42 333 390 Almacn Boston Boston New York Cantidad DirAlmacn 2000 1000 3000 Main St Main St Broad St

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

36

Proceso de normalizacin

Ejercicio 2: Empleado
234 223 399

Departamento
Finanzas Finanzas Operaciones

UbicacinDepart
Boston Boston washington

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

37

Caso Empresa Adelante


La empresa ADELANTE tiene una estructura jerrquica en su funcionamiento y adems su gerente esta convencido de la necesidad de desarrollar sistemas de informacin computarizados. Se iniciara el proceso con el sistema de ficha personal. La informacin con la que cuenta es la siguiente:

Cada departamento tiene un nmero identificador, es manejado por un solo jefe, tiene un presupuesto asignado y tiene oficinas asignadas. De cada oficina se sabe su numero, sus telfonos y su tamao. Cada departamento maneja una serie de proyectos. Por cada proyecto se sabe su cdigo, su presupuesto y los empleados que trabajan en l. Por cada empleado, la empresa conoce su DNI, en que proyecto esta laborando y a que departamento pertenece, as como su telfono y su historia salarial, consistente en los salarios y puestos que ha desempeado en la empresa en diferentes fechas.

Podra UD. plantear un esquema de bases de datos relacional para esta informacin?
38

Caso Empresa Adelante


Habiendo resuelto su base de datos de personal, ahora la empresa ADELANTE desea reestructurar su sistema de ordenes y pedidos. Actualmente maneja la Siguiente informacin:

Por cada cliente maneja su limite de crdito, su balance y las direcciones del mismo. Por cada orden de compra, el nmero del orden, la fecha, la direccin de envo. Por cada lnea de detalle en la orden de compra maneja igualmente la cantidad de producto y el nmero del producto. Por cada producto la descripcin del mismo y las plantas donde se produce y Por cada planta los productos que produce y el nivel de inventario de cada producto.
Podra UD. plantear un esquema de bases de datos relacional para esta informacin?
39

You might also like