Professional Documents
Culture Documents
1 Ejemplo
Una relacin est en primera forma normal, si satisface que sus Lineas
dominios simples slo tienen valores atmicos codfac codart cant dto precio descrip precio almacen
Ventajas
Se desea almacenar informacin sobre las facturas que realizan los clientes de Escribe en las dos tablas los siguientes datos:
una empresa as como los articulos que compran. Para ello se ha realizado el 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
siguiente diseo:
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
FACTURAS(codfac,fecha, iva, dto, codcli, nombre, poblacin) Euros.
3. La factura 3127 es del 15/12/2003, con un 16 % de IVA y del cliente 355 cuyo nombre es Juan
LINEAS(codfac,codart,cant, dto, precio, descrip, precio_almacen) 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.
codfac Nulos Borrado Modif. 5. El cliente 355 devuelve las tres tuercas y solicita que se rectifique la factura 3125.
LINEAS ------------> FACTURAS No P P 6. El cliente 355 ha cambiado su domicilio a Villareal.
7. El cliente 354 realiza la devolucin de la factura 3126.
8. Se ha hecho un nuevo cliente, Ferran Sabater de Castelln con cdigo 337.
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 3.2 Dependencia funcional
Existen dependencias entre los datos, no slo de la clave primaria !!! Dada una relacin (tabla) R, el atributo Y de R depende funcionalmente
del atributo X de R
Indica cuales sn esas dependencias:
R.X ------------> R.Y
FACTURAS(codfac,fecha, iva, dto, codcli, nombre, poblacin) 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,codart,cant, dto, precio, descrip, precio_almacen)
Ejemplo:
codfac Nulos Borrado Modif.
LINEAS ------------> FACTURAS No P P CLIENTE(codcli, nombre, codpostal, poblacin)
Observaciones:
CLIENTES(codcli, nombre, poblacin)
FACTURAS(codfac,fecha, iva, dto, codcli) Si el atributo X es una clave primaria (o alternativa) de R, entonces todos los
codcli Nulos Borrado Modif. atributos Y de la relacin dependen funcionalmente de X, por la definicin de clave
FACTURAS ----------> CLIENTES S A P primaria (o alternativa).
LINEAS(codfac,codart,cant, dto, precio) Cada dependencia funcional es una clase especial de regla de integridad.
codfac Nulos Borrado Modif.
Cada dependencia funcional representa una relacin de uno a muchos.
LINEAS ------------> FACTURAS No P P
codart Nulos Borrado Modif.
LINEAS ------------> ARTICULOS No R P
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 45 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 47
3.3 Primera Forma Normal (1FN) 3.4 Segunda Forma Normal (2FN)
Una relacin est en 1FN si, y slo si, todos sus dominios contienen Una relacin est en 2FN si, y slo si, est en 1FN y, adems, cada
valores atmicos. atributo no clave depende completamente de la clave primaria (no
depende de algn subconjunto).
No est en 2FN!
No est en 1FN!
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 48 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 50
3.3 Primera Forma Normal (1FN) 3.4 Segunda Forma Normal (2FN)
PRODUCTO (codprod, nombre, VERSIN (nmero, fecha, ventas)) INSCRIPCIN(estudiante, actividad, precio)
Se extrae la tabla anidada aadiendole la clave primaria de la tabla Se extraen los atributos dependientes en otra tabla. En la primera tabla
principal. La clave primaria de la nueva tabla ser la unin de la que se deja el atributo del que dependian otros que sera clave ajena a la
tena ms la de la tabla principal. nueva tabla.
PRODUCTO (codprod, nombre, descripcin)
INSCRIPCIN(estudiante, actividad)
VERSIN (codprod, nmero, fecha, ventas)
ACTIVIDAD(actividad, precio)
codprod Nulos Borrado Modificacin
VERSIN ----------> PRODUCTO
actividad Nulos Borrado Modificacin
INSCRIPCIN -----------> ACTIVIDAD
Una relacin est en 3FN si, y slo si, est en 2FN y, adems, cada Se desea almacenar informacin sobre las becas que han solicitado los
atributo no clave no depende transitivamente de la clave primaria. alumnos de la univeridad. Se ha realizado el siguiente diseo:
SOLICITUD(estudiante, codbeca, fecha, nombre, apellido, DNI, direccin, nombeca, requisito)
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 52 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 54
INQUILINO (inquilino, edificio, alquiler) 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 CONCEDIDAS(codbeca, nplaza, nombre, apellido, DNI, direccin, fecha)
se deja el atributo del que dependian otros que sera clave ajena a la Utilizando el siguiente ejemplo comprueba si est en 3FN. Si no lo est,
nueva tabla. corrgelo.
CONCEDIDAS
INQUILINO(inquilino, edificio)
EDIFICIO(edificio, alquiler)
codbeca nplaza nombre apellido DNI direccin fecha
edificio Nulos Borrado Modificacin A223 1 Carlos Gil 159357 C/ Paz, 23 10/10/98
INQUILINO -----------> EDIFICIO
A223 2 Paula Tena 913752 C/ Ro Po, 1 14/10/98
G654 1 Carlos Gil 159357 C/ Paz, 23 17/09/98
G654 2 Andrs Calpe 682432 Plz. Sol, 40 12/09/99
Ejercicio: Rellena los huecos que faltan en la clave ajena.
Tema 8: Diseo lgico de bases de datos relacionales (IG18) 53 Tema 8: Diseo lgico de bases de datos relacionales (IG18) 55