Sie sind auf Seite 1von 4

3 Normalizacin

La teora de la normalizacin, desarrollada por Codd en 1972,


permite mejorar el diseo lgico de una Base de datos relacional

3.1 Ejemplo
Facturas
codfac fecha iva dto codcli nombre poblacin

Se fundamenta en las Formas Normales, que son un conjunto de


restricciones que deben de cumplir las relaciones

Una relacin est en primera forma normal, si satisface que sus


dominios simples slo tienen valores atmicos Ventajas

Lineas
codfac codart cant dto precio descrip precio almacen

Evita anomalas de datos en inserciones, borrados y modicaciones. Mejora la independencia de los datos.
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 40 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 42

3.1 Ejemplo
Se desea almacenar informacin sobre las facturas que realizan los clientes de una empresa as como los articulos que compran. Para ello se ha realizado el siguiente diseo:

3.1 Ejemplo
Escribe en las dos tablas los siguientes datos:
1. La factura 3125 es del 23/09/2003, con un 16 % de IVA y del cliente 355 cuyo nombre es Juan Diaz de Castelln. Se vendieron 3 tuercas de doble paso (cod. 345T) por un precio de 2.25 Euros y 2 tornillos de rosca reforzada (cod. T554) por 1 Euro. 2. La factura 3126 es del 12/12/2003, con un 16 % de IVA y del cliente 354 cuyo nombre es Rosa Fernndez de Almazora. Se vendieron 3 tornillos de rosca reforzada (cod. T554) por 1.2 Euros. 3. La factura 3127 es del 15/12/2003, con un 16 % de IVA y del cliente 355 cuyo nombre es Juan Diaz de Castelln. Se vendieron 2 tornillos de rosca reforzada (cod. T554) por 1.1 Euros. 4. Se ha comprado un nuevo artculo en el almacen con cdigo 445A, arandelas cuadradas con un precio de 0.87 Euros. 5. 6. 7. 8. El cliente 355 devuelve las tres tuercas y solicita que se rectique la factura 3125. El cliente 355 ha cambiado su domicilio a Villareal. El cliente 354 realiza la devolucin de la factura 3126. Se ha hecho un nuevo cliente, Ferran Sabater de Castelln con cdigo 337.

FACTURAS(codfac,fecha, iva, dto, codcli, nombre, poblacin) LINEAS(codfac,codart,cant, dto, precio, descrip, precio_almacen) codfac ------------> Nulos FACTURAS No Borrado P Modif. P

LINEAS

Tema 8: Diseo lgico de bases de datos relacionales (IG18) 41

Tema 8: Diseo lgico de bases de datos relacionales (IG18) 43

3.1 Ejemplo
Existen dependencias entre los datos, no slo de la clave primaria !!! Indica cuales sn esas dependencias:

3.2 Dependencia funcional


Dada una relacin (tabla) R, el atributo Y de R depende funcionalmente del atributo X de R

R.X ------------> R.Y


FACTURAS(codfac,fecha, iva, dto, codcli, nombre, poblacin) LINEAS(codfac,codart,cant, dto, precio, descrip, precio_almacen)
Ejemplo: si X determina el valor de Y, es decir, un valor Y en R est asociado a cada valor X en R. Tanto X como Y puede ser atributos compuestos.

LINEAS

codfac ------------>

Nulos FACTURAS No

Borrado P

Modif. P

CLIENTE(codcli, nombre, codpostal, poblacin) codpostal ------------> poblacin

Tema 8: Diseo lgico de bases de datos relacionales (IG18) 44

Tema 8: Diseo lgico de bases de datos relacionales (IG18) 46

3.1 Ejemplo
CLIENTES(codcli, nombre, poblacin) FACTURAS(codfac,fecha, iva, dto, codcli) codcli Nulos FACTURAS ----------> CLIENTES S ARTICULOS(codart, descrip, precio_almacen) LINEAS(codfac,codart,cant, dto, precio) codfac Nulos LINEAS ------------> FACTURAS No codart Nulos LINEAS ------------> ARTICULOS No
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 45

3.2 Dependencia funcional


Observaciones:
Si el atributo X es una clave primaria (o alternativa) de R, entonces todos los Borrado A Modif. P
atributos Y de la relacin dependen funcionalmente de X, por la denicin de clave primaria (o alternativa).

La dependencia funcional es una nocin semntica (depende del signicado de los


datos).

Cada dependencia funcional es una clase especial de regla de integridad. Borrado Modif. P P Borrado Modif. R P Cada dependencia funcional representa una relacin de uno a muchos.

Tema 8: Diseo lgico de bases de datos relacionales (IG18) 47

3.3 Primera Forma Normal (1FN)


Una relacin est en 1FN si, y slo si, todos sus dominios contienen valores atmicos.

3.4 Segunda Forma Normal (2FN)


Una relacin est en 2FN si, y slo si, est en 1FN y, adems, cada atributo no clave depende completamente de la clave primaria (no depende de algn subconjunto).

No est en 1FN! Hay atributos que no son atmicos


Tema 8: Diseo lgico de bases de datos relacionales (IG18) 48

No est en 2FN!

Tema 8: Diseo lgico de bases de datos relacionales (IG18) 50

3.3 Primera Forma Normal (1FN)


PRODUCTO (codprod, nombre, VERSIN (nmero, fecha, ventas))

3.4 Segunda Forma Normal (2FN)


INSCRIPCIN(estudiante, actividad, precio)

Se extrae la tabla anidada aadiendole la clave primaria de la tabla principal. La clave primaria de la nueva tabla ser la unin de la que tena ms la de la tabla principal.
PRODUCTO (codprod, nombre, descripcin)

Se extraen los atributos dependientes en otra tabla. En la primera tabla se deja el atributo del que dependian otros que sera clave ajena a la nueva tabla.
INSCRIPCIN(estudiante, actividad)

VERSIN (codprod, nmero, fecha, ventas) ACTIVIDAD(actividad, precio) VERSIN codprod ----------> Nulos PRODUCTO INSCRIPCIN actividad -----------> Nulos ACTIVIDAD Borrado Modificacin Borrado Modificacin

OJO! la nueva tabla hereda parte de la clave primaria Ejercicio: Rellena los huecos que faltan en la clave ajena.
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 49

Ejercicio: Rellena los huecos que faltan en la clave ajena.


Tema 8: Diseo lgico de bases de datos relacionales (IG18) 51

3.5 Tercera Forma Normal (3FN)


Una relacin est en 3FN si, y slo si, est en 2FN y, adems, cada atributo no clave no depende transitivamente de la clave primaria.

3.6 Ejercicio Normalizacin


Se desea almacenar informacin sobre las becas que han solicitado los alumnos de la univeridad. Se ha realizado el siguiente diseo:
SOLICITUD(estudiante, codbeca, fecha, nombre, apellido, DNI, direccin, nombeca, requisito)

Utilizando el siguiente ejemplo comprueba si est en 3FN. Si no lo est, corrgelo.

SOLICITUD
estudiante nombre Carlos Paula Paula Carlos Andrs apellido Gil Tena Tena Gil Calpe DNI 159357 913752 913752 159357 682432 direccin C/ Paz, 23 C/ Ro Po, 1 C/ Ro Po, 1 C/ Paz, 23 Plz. Sol, 40 codbeca A223 B567 A223 G654 G654 nombeca EEUU requisito Ing. Sup. fecha 10/10/98 12/11/98 14/10/98 17/09/98 12/09/99

No est en 3FN!

0123 7636 7636 0123 9516

ERASMUS Ing. Tc. EEUU DRAC DRAC Ing. Sup. Ing. Sup. Ing. Sup.

Tema 8: Diseo lgico de bases de datos relacionales (IG18) 52

Tema 8: Diseo lgico de bases de datos relacionales (IG18) 54

3.5 Tercera Forma Normal (3FN)


INQUILINO (inquilino, edificio, alquiler)

3.6 Ejercicio Normalizacin (II)


Se desea almacenar informacin sobre las becas concedidas a los alumnos de la univeridad. Se ha realizado el siguiente diseo:

Se extraen los atributos dependientes en otra tabla. En la primera tabla se deja el atributo del que dependian otros que sera clave ajena a la nueva tabla.
INQUILINO(inquilino, edificio) EDIFICIO(edificio, alquiler)

CONCEDIDAS(codbeca, nplaza, nombre, apellido, DNI, direccin, fecha)

Utilizando el siguiente ejemplo comprueba si est en 3FN. Si no lo est, corrgelo.

CONCEDIDAS

codbeca
edificio -----------> Nulos EDIFICIO Borrado Modificacin

nplaza 1 2 1 2

nombre Carlos Paula Carlos Andrs

apellido Gil Tena Gil Calpe

DNI 159357 913752 159357 682432

direccin C/ Paz, 23 C/ Ro Po, 1 C/ Paz, 23 Plz. Sol, 40

fecha 10/10/98 14/10/98 17/09/98 12/09/99

A223 A223 G654

INQUILINO

Ejercicio: Rellena los huecos que faltan en la clave ajena.


Tema 8: Diseo lgico de bases de datos relacionales (IG18) 53

G654

Tema 8: Diseo lgico de bases de datos relacionales (IG18) 55

Das könnte Ihnen auch gefallen