UNIVERSIDAD CESAR VALLEJO Escuela Profesional de Ingeniería de Sistemas
SESIÓN 03: FORMAS NORMALES DE UNA BASE DE DATOS
CURSO: GESTIÓN DE
CIÓN I (2017 - I)
DEPENDENCIA FUNCIONAL Es una conexión entre dos o más atributos. Por ejemplo si conocemos el valor de FechaDeNacimiento podemos conocer el valor de edad . Las dependencias funcionales del sistema se escriben utilizando una flecha, de la siguiente manera: FechaDeNacimiento dni
A
Edad Nombre / Apellido
B B es funcionalmente dependiente de A
DEPENDENCIA FUNCIONAL TRANSITIVA Simbólicamente:
Con la fecha de nacimiento podemos deducir la edad, con la edad podemos deducir si una persona tiene permiso de conducir.
¿Qué debemos hacer antes de aplicar la Primera Forma Normal?
Sucursales Nro_Suc 1 2 3 4 5 6
Nro_Suc
Nombre Sacramento Higueras Espigas Santa Rita Excelencia Castillo
Nombre
Telefonos 4234322 4234467 4332323 4223434 4221367 4221123 4335678 4228976 4223490 4962579
Direccion Toranzo 350 C.Cabot 3350 Aberastain 333 Av. Libertador 1230 Av. Libertador 30 Ig. de la Roza 671
Telefonos
Norte Oeste Sur Oeste Oeste
Direccion
Localidad Desamparados Rivadavia Concepcion Desamparados Capital Caucete
Localidad
Departamento Capital Rivadavia Capital Capital Capital Caucete
Departamento
1
Sacramento
4234322
Toranzo
350
Norte
Desamparados
Capital
1
Sacramento
4234467
Toranzo
350
Norte
Desamparados
Capital
2
Higueras
4332323
C.Cabot
3350
Oeste
Rivadavia
Rivadavia
3
Espigas
4223434
Aberastain
333
Sur
Concepcion
Capital
3
Espigas
4221367
Aberastain
333
Sur
Concepcion
Capital
4
Santa Rita
4221123
Av. Libertador
1230
Oeste
Desamparados
Capital
4
Santa Rita
4335678
Av. Libertador
1230
Oeste
Desamparados
Capital
5
Excelencia
4228976
Av. Libertador
30
Oeste
Capital
Capital
5
Excelencia
4223490
Av. Libertador
30
Oeste
Capital
Capital
6
Castillo
4962579
Ig. de la Roza
671
Caucete
Caucete
Luego de aplicar la 1FN se obtienen estas dos tablas:
Sucursales Nro_Suc * 1 2 3 4 5 6
Nombre Sacramento Higueras Espigas Santa Rita Excelencia Castillo
Direccion Toranzo 350 Norte C.Cabot 3350 Oeste Aberastain 333 Sur Av. Libertador 1230 Oeste Av. Libertador 30 Oeste Ig. de la Roza 671
Localidad Desamparados Rivadavia Concepcion Desamparados Capital Caucete
Departamento Capital Rivadavia Capital Capital Capital Caucete
Telefonos_Suc Nro_Suc * 1 3 4 5 1 2 3 4 5 6
Telefono * 4234467 4221367 4335678 4223490 4234322 4332323 4223434 4221123 4228976 4962579
PRIMERA FORMAL NORMAL (1FN)
Tenemos que eliminar los grupos repetidos (los cuales forman una nueva tabla ).
Tenemos que crear una nueva tabla con la PK de la tabla base y el grupo que no se repite.
SEGUNDA FORMAL NORMAL (2FN) Asegurarse que todas las columnas que no son llave, sean completamente dependientes de la llave primaria (pk).
A C A B
B
D
D
E
E
C A
TERCERA FORMAL NORMAL (3FN) Consiste en eliminar Dependencias Transitivas.
A A A C E
→ → → → →
B C E D F
EJERCICIO COMPLETO - 01 1. ordenes (id_orden, fecha, id_cliente, nom_cliente, estado, num_art, nom_art, cant, precio) Ordenes Id_orden 2301 2301 2301 2302 2303 2303
Fe cha 23/02/11 23/02/11 23/02/11 25/02/11 27/02/11 27/02/11
Id_cliente 101 101 101 107 110 110
Nom_cliente Martin Martin Martin Herman Pedro Pedro
Estado Caracas Caracas Caracas Coro Maracay Maracay
Num_art 3786 4011 9132 5794 4011 3141
nom_art Red Raqueta Paq-3 Paq-6 Raqueta Funda
cant 3 6 8 4 2 2
Precio 35,00 65,00 4,75 5,00 65,00 10,00
PRIMERA FORMAL NORMAL (1FN) La 1FN prohíbe los grupos repetidos, por lo tanto tenemos que convertir a la primera forma normal. Los pasos a seguir son:
Tenemos que eliminar los grupos repetidos (los cuales forman una nueva tabla ).
Tenemos que crear una nueva tabla con la PK de la tabla base y el grupo que no se repite.
… EJERCICIO COMPLETO Los registros quedan ahora conformados en dos tablas que llamaremos ORDENES y ARTICULOS_ORDENES ordenes (id_orden, fecha, id_cliente, nom_cliente, estado) Articulos_ordenes (id_orden, num_art, nom_art, cant, precio)
Ordenes Id_orden 2301 2302 2303
Fecha 23/02/11 25/02/11 27/02/11
Articulos_ordenes Id_orden Num_art 2301 3786 2301 4011 2301 9132 2302 5794 2303 4011 2303 3141
Id_cliente 101 107 110
nom_art Red Raqueta Paq-3 Paq-6 Raqueta Funda
Nom_cliente Martin Herman Pedro
cant 3 6 8 4 2 2
Estado Caracas Coro Maracay
Pre cio 35,00 65,00 4,75 5,00 65,00 10,00
Las tablas quedan ahora de la siguiente manera.
Articulos_ordenes (id_orden, num_art, cant)
SEGUNDA FORMAL NORMAL (2FN) Asegurarse que todas las columnas que no son llave, sean completamente dependientes de la llave primaria (pk).
Articulos_ordenes Id_orden Num_art 2301 3786 2301 4011 2301 9132 2302 5794 2303 4011 2303 3141
cant 3 6 8 4 2 2
Articulos ( num_art, nom_art, precio) Articulos Num_art 3786 4011 9132 5794 3141
nom_art Red Raqueta Paq-3 Paq-6 Funda
Precio 35,00 65,00 4,75 5,00 10,00
ordenes (id_orden, fecha, id_cliente) Ordenes Id_orden 2301 2302 2303
TERCERA FORMAL NORMAL (3FN) Consiste en eliminar Dependencias Transitivas.
Fecha 23/02/11 25/02/11 27/02/11
Id_cliente 101 107 110
Clientes (id_cliente, nom_cliente, estado) Clientes Id_cliente 101 107 110
Nom_cliente Martin Herman Pedro
Es tado Caracas Coro Maracay
Por lo tanto la base de datos quedaría:
ordenes (id_orden, fecha, id_cliente) Clientes (id_cliente, nom_cliente, estado) Articulos ( num_art, nom_art, precio) Articulos_ordenes (id_orden, num_art, cant) Mg. Orleans Moisés Gálvez Tapia
¿Cuál sería el Modelo Relacional?
Por lo tanto la base de datos quedaría:
ordenes (id_orden, fecha, id_cliente) Clientes (id_cliente, nom_cliente, estado) Articulos ( num_art, nom_art, precio) Articulos_ordenes (id_orden, num_art, cant) Mg. Orleans Moisés Gálvez Tapia
Ejemplo de 1FN Mg. Orleans Moisés Gálvez Tapia
IDCliente
45 275 IDCliente
45 275
Nombre
Telefono
Francisco Miguel
444444444 555555555,666666666
Nombre
Francisco Miguel
Telefono
Telefono2
444444444 NULL 555555555 666666666
Telefono3
NULL NULL
¿Qué debemos hacer antes de aplicar la Primera Forma Normal?
IDCliente
45 275 275
Nombre
Telefono
Francisco Miguel Miguel
444444444 555555555 666666666
Mg. Orleans Moisés Gálvez Tapia
CLIENTES
IDCliente
45 275 275
Nombre
Telefono
Francisco Miguel Miguel
444444444 555555555 666666666
CLIENTES
IDCliente
45 275
TELEFONOS_CLIENTES
Nombre
Francisco Miguel
IDCliente
Telefono
45
444444444
275
555555555
275
666666666
Mg. Orleans Moisés Gálvez Tapia
Ejemplo de 2FN Mg. Orleans Moisés Gálvez Tapia
LINEAS_PEDIDO IDCliente 29 46 204 144
IDProducto 42 9 42 10
LINEAS_PEDIDO
PRODUCTOS
Cantidad 1 5 1 1
Nombre_producto Zapatillas deportivas de tenis Balón reglamentario de baloncesto Zapatillas deportivas de tenis Zapatillas deportivas de rugby
IDCliente
IDProducto
Cantidad
29
42
1
46
9
5
204
42
1
144
10
1
IDProducto 9 10 42
Nombre_producto Balón reglamentario de baloncesto Zapatillas deportivas de rugby Zapatillas deportivas de tenis
Mg. Orleans Moisés Gálvez Tapia