Logo Studenta

clase 5

¡Este material tiene más páginas!

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

Continuar navegando