Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Pág 1 BASES DE DATOS BASES DE DATOS TUP MODULO 2 - NORMALIZACION Pág 2 BASES DE DATOS Medidas Informales de Calidad • Semántica de los atributos Buscamos diseñar entidades cuyos atributos nos permitan identificar fácilmente su significado • Reducción de los valores redundantes de las tuplas La redundancia es siempre un posible foco de inconsistencia, por ello debemos reducirla a lo mínimo controlable • Reducción de los valores nulos de las tuplas Si algún atributo no se aplica a la tupla, tendremos en ella una gran cantidad de valores nulos, lo que dificulta el significado • Prohibición de tuplas espúreas. Una tupla será espúrea cuando no pueda reunirse con las tuplas correspondientes según la relación definida entre dos entidades Pág 3 BASES DE DATOS Normalizar Es la aplicación de una serie de Normas o reglas, al momento de diseñar el modelo de datos, para alcanzar las medidas informales de calidad vistas. El proceso de normalización de Cood provee 5 Formas Normales que son evolutivas, de manera que primero obtendremos la 1FN para pasar a la 2FN y así sucesivamente. Cood define 5 Formas Normales, tomaremos las 3 primeras como suficientemente válidas para generar un modelo aceptable. Formas Normales de Codd 1FN 2FN 3FN Pág 4 BASES DE DATOS Una relación R está en 1FN si y solo si todos los dominios de sus atributos contienen valores atómicos. Esta 1FN surgió originalmente por la necesidad de prohibir los atributos multivaluados. Posteriormente, al definirse el conjunto de restricciones del Modelo Relacional, esta 1FN se incorporó como Restricción de Dominio. Una inferencia inmediata de ello es que podemos asegurar que, en el Modelo Relacional, toda relación está en 1FN. Primera Forma Normal – 1FN Pág 5 BASES DE DATOS Sea la relación I, que representa las inscripciones de los alumnos por materias, con su cabecera definida de la siguiente forma: I(LU; Nombre; CodLoc; Localidad; CodMat; Año; Condición) Un mismo alumno (mismo DNI) puede inscribirse en diversas materias.. I(1; Juan; 4400; Salta; 1-2-3;2010-2011-2012; Regular-Regular-Libre) Con lo cual tenemos múltiples valores para los atributos CodMat, Año y Condición Primera Forma Normal – 1FN - Ejemplo Pág 6 BASES DE DATOS Ahora, como sería la representación de tal relación, en una tabla (claro está) I(1; Juan; 4400; Salta; 1-2-3;2010-2011-2012; Regular-Regular-Regular) Como vemos, cada celda contiene un valor único, para cada fila. O, lo que es lo mismo, en la tabla (que no es más que la representación de la relación I) no hay atributos multivaluados LU Nombre CodLoc Localidad CodMat Año Condición LU Nombre CodLoc Localidad CodMat Año Condición 1 Juan 4400 Salta 1 2010 Regular 1 Juan 4400 Salta 2 2011 Regular 1 Juan 4400 Salta 3 2012 Libre Primera Forma Normal – 1FN - Ejemplo Pág 7 BASES DE DATOS Si dejamos todo en una sola tabla, corremos riesgos LU Nombre CodLoc Localidad CodMat Año Condición 1 Juan 4400 Salta 1 2010 Regular 1 Juan 4400 Salta 2 2011 Regular 1 Juan 4400 Salta 3 2012 Libre 2 Pedro 4400 Salta 1 2010 Libre 3 María 4401 San Lorenzo 2 2010 Regular 3 María 4401 San Lorenzo 3 2011 Libre Si Intentamos borrar la inscripción de Pedro a la materia con código 1…perderemos la información sobre su nombre y localidad. Si agregamos la fila… 3 José 4400 Salta 3 2010 Libre …tendremos una inconsistencia de datos. Por lo que surge la necesidad de definición de Normas que ayuden a resolver estos problemas, la 2FN Problemas o Anomalías de la 1FN Pág 8 BASES DE DATOS Dada una relación R, un conjunto de atributos Y de R depende funcionalmente de un conjunto no vacío de atributos X de R si y solo si, siempre que dos tuplas coincidan en el valor de X, necesariamente deben coincidir en su valor de Y. R.X - - - > R.Y "R.X determina funcionalmente a R.Y", o bien, "R.Y depende funcionalmente de R.X". Dependencia Funcional Ej. sean lo atributos: LU; Nombre; Domicilio LU - - - > Nombre LU - - - > Domicilio LU - - - > Nombre, Domicilio Pág 9 BASES DE DATOS Dada una relación R, se dice que un conjunto de atributos Y de R, depende funcionalmente en forma completa de un conjunto no vacío de atributos X de R si depende funcionalmente de X y no depende funcionalmente de ningún subconjunto propio de X. Tenemos esta dependencia funcional: LU, Nombre - - - > Domicilio Sin embargo, esta dependencia no es completa puesto que, LU ---> Domicilio Dependencia Funcional Completa Pág 10 BASES DE DATOS LU Nombre CodLoc Localidad CodMat Año Condición 1 Juan 4400 Salta 1 2010 Regular 1 Juan 4400 Salta 2 2011 Regular 1 Juan 4400 Salta 3 2012 Libre 2 Pedro 4400 Salta 1 2011 Libre 3 María 4401 San Lorenzo 1 2011 Regular 3 María 4401 San Lorenzo 2 2012 Libre LU Nombre CodLoc Localidad LU Año CodMat Condición Dependencia Funcional Completa Pág 11 BASES DE DATOS Si llamamos atributo primo a cada uno de los atributos de las claves candidatas, diremos que: Una relación R está en 2FN si se encuentra en 1FN y además todo atributo no primo depende funcionalmente en forma completa de toda clave candidata de R. Segunda Forma Normal – 2FN LU Nombre CodLoc Localidad CodMat Año Condición 1 Juan 4400 Salta 1 2010 Regular 1 Juan 4400 Salta 2 2011 Regular 1 Juan 4400 Salta 3 2012 Libre 2 Pedro 4400 Salta 1 2010 Libre 3 María 4401 San Lorenzo 2 2010 Regular 3 María 4401 San Lorenzo 3 2011 Libre Tomando la tabla de nuestro ejemplo Lu, CodMat, Año es la única clave candidata. El paso siguiente es revisar las dependencias funcionales completas Pág 12 BASES DE DATOS LU Nombre CodLoc Localidad CodMat Año Condición 1 Juan 4400 Salta 1 2010 Regular 1 Juan 4400 Salta 2 2011 Regular 1 Juan 4400 Salta 3 2012 Libre 2 Pedro 4400 Salta 1 2010 Libre 3 María 4401 San Lorenzo 2 2010 Regular 3 María 4401 San Lorenzo 3 2011 Libre LU Nombre CodLoc Localidad LU Año CodMat Condición Segunda Forma Normal – 2FN - Ejemplo Pág 13 BASES DE DATOS Debemos separar los atributos de nuestra tabla, teniendo en cuenta: • Que las nuevas tablas obtenidas estén en 2FN (sino para que hacer este trabajo) • Que NO se pierda información • Que podamos volver a reunir las tablas separadas y volvamos a obtener la información en forma completa Segunda Forma Normal – 2FN - Ejemplo Pág 14 BASES DE DATOS LU Nombre CodLoc Localidad CodMat Año Condición 1 Juan 4400 Salta 1 2010 Regular 1 Juan 4400 Salta 2 2011 Regular 1 Juan 4400 Salta 3 2012 Libre 2 Pedro 4400 Salta 1 2010 Libre 3 María 4401 San Lorenzo 2 2010 Regular 3 María 4401 San Lorenzo 3 2011 Libre LU Nombre CodLoc Localidad 1 Juan 4400 Salta 2 Pedro 4400 Salta 3 María 4401 San Lorenzo Las tablas están en 2FN. No se perdió información y pueden volver a reunirse. Sin embargo, siguen habiendo anomalías en la primer tabla (CodLoc – Localidad) LU CodMat Año Condición 1 1 2010 Regular 1 2 2011 Regular 1 3 2012 Libre 2 1 2010 Libre 3 2 2010 Regular 3 3 2011 Libre Segunda Forma Normal – 2FN - Ejemplo Pág 15 BASES DE DATOS Sea una relación R: A - - - > B B - - - > C A - - - > C decimos que C depende transitivamente de A, o que C tiene una dependencia transitiva respecto de A, a través de B. LU Nombre CodLoc Localidad Localidad depende transitivamente de LU a través de CodLoc Dependencia Transitiva Pág 16 BASES DE DATOS Una relación R está en 3FN si y solo si está en 2FN y, además, todos los atributos no primos dependen de manera no transitiva de toda clave candidata de R. Esta definición es equivalente a la siguiente: Una relación R está en 3FN si y solo si está en 2FN y, además, no hay dependencias funcionales entre atributos no primos. Tercera Forma Normal – 3FN Pág 17 BASES DE DATOS LU Nombre CodLoc Localidad 1 Juan 4400 Salta 2 Pedro 4400 Salta 3 María 4401 San Lorenzo La primer relación NO está en 3FN, puesto que hay dependencias funcionales entre atributos no primos LU CodMat Año Condición 1 1 2010 Regular 1 22011 Regular 1 3 2012 Libre 2 1 2010 Libre 3 2 2010 Regular 3 3 2011 Libre LU Nombre CodLoc Localidad La segunda si, dado que no hay mas que un atributo no primo. Nuevamente, la solución es hacer una descomposición, sin pérdidas, de la primer relación. Tercera Forma Normal – 3FN - Ejemplo Pág 18 BASES DE DATOS LU Nombre 1 Juan 2 Pedro 3 María La tabla de localidades está en 3FN, no se perdió información pero…pueden volver a reunirse? CodLoc Localidad 4400 Salta 4401 San Lorenzo LU Nombre CodLoc Localidad 1 Juan 4400 Salta 2 Pedro 4400 Salta 3 María 4401 San Lorenzo Tercera Forma Normal – 3FN - Ejemplo CodLoc 4400 4400 4401 Ahora si Pág 19 BASES DE DATOS 1) NumVenta, CodArticulo - - > ImporteUnitario, Cantidad, Subtotal 2) ImporteUnitario, Cantidad - - > Subtotal En este caso, como no hay pérdida de información, dado que el Subtotal puede calcularse a partir del ImporteUnitario y la Cantidad, se puede eliminar el atributo redundante. NumVenta CodArticulo ImporteUnitario Cantidad SubTotal 1 L01 3.50 2 7.00 1 A02 2.20 4 8.80 2 A01 8.10 1 8.10 3 A01 8.10 2 16.20 3 L01 3.60 1 3.60 Tercera Forma Normal – 3FN – Ejemplo II Pág 20 BASES DE DATOS Preguntas
Compartir