IV. MODELO RELACIONAL En el tema II se hizo una introducción del modelo de datos relacional. Este modelo, como se vio, hace una representación del mundo real por un conjunto de estructuras que se llaman relaciones, las cuales se constituyen de dominios y atributos. Sin embrago, en la mayoría de los casos, estas relaciones iniciales tienen, dentro de su constitución, inconsistencias semánticas que provocan anomalías de manipulación. Estas anomalías de manipulación pueden dejar la base de datos en un estado no deseado. Supongamos que en un sistema de hospitalario, lo referente a la atención de los pacientes así como los médicos asignados se representa por medio de la relación ATENCION DE PACIENTES. ATENCION DE PACIENTES Cédula Nombre Dirección No Médico Médico Especialidad Hospital 2303776 Carlos Managua 125 Mario Neurología H. Militar 3214568 María Rivas 125 Mario Neurología H. Militar 4359087 Pedro Managua 130 Carmen Cardiología Monte España 5446872 Adrián Granada 135 Isabel Hematología H. Bautista 5781445 Juana Granada 135 Isabel Hematología H. Bautista Esta estructura en la relación tiene problemas relacionados con inconsistencia y administración de las tuplas. Estos son, al insertar, modificar o suprimir tuplas dentro de esta relación. Supóngase que se va a ingresar una paciente de León llamada Carla y debe ser atendida en neurología. Entonces se asigna al médico Mario. Esta situación obliga a la introducción de la Tupla: [3435678, Carla, León, 125, Mario, Neurología, H. Militar] de esta manera se debe repetir la especialidad del medico así como el hospital en donde labora. Por otra parte, si el paciente Pedro es dado de alta y se borra la Tupla correspondiente, se estará perdiendo la información de que Carmen es una cardióloga y que trabaja en el hospital Monte España. Finalmente, si Isabel es remplazada por Erika se deben hacer varias modificaciones en diferentes tuplas. Para evitar este tipo de anomalías, se utiliza el proceso de normalización, que consiste en obtener una serie de relaciones, a partir de la relación original que permitan eliminar estas anomalías sin perder el contenido inicial de la relación. De esta forma la solución para el problema planteado es dividir la relación original en dos nuevas relaciones PACIENTES y MEDICOS: PACIENTES Cédula Nombre Dirección No Médico 2303776 Carlos Managua 125 3214568 María Rivas 125 4359087 Pedro Managua 130 5446872 Adrián Granada 135 5781445 Juana Granada 135 MEDICOS No Médico Médico Especialidad Hospital 125 Mario Neurología H. Militar 130 Carmen Cardiología Monte España 135 Isabel Hematología H. Bautista
IV. MODELO RELACIONAL 26 PROCESO DE NORMALIZACION El proceso de normalización se compone de una serie de seis etapas llamadas formas normales. Paralelo a la definición de las diferentes formas normales, es preciso definir varios conceptos, como son las dependencias funcionales, dependencia multivaluada y dependencia producto. PRIMERA FORMA NORMAL (1FN) La primera forma normal (1FN) se refiere a la representación de una relación, en la cual los atribuitos son diferentes y los valores de cada uno de ellos son atómicos. EJEMPLO: sea la relación EMPLEADO(Número, Nombre, Fecha-Pago1, Monto1, Fecha-Pago2, Monto2, Fecha-Pago3, Monto3) EMPLEADO Número Nombre Fecha- Pago1 Monto1 Fecha- Pago2 Monto2 Fecha- Pago3 Monto3 1068 Paredes 01/05/96 50000 01/06/96 55000 01/07/96 55000 985 Martínez 01/05/96 70000 01/06/96 70000 01/07/96 70000 123 Huete 01/05/96 60000 01/06/96 60000 01/07/96 60000 A pesar que los atributos tienen nombres diferentes, en realidad las fechas de pago representan una sola fecha, lo mismo ocurre con los atributos montos. El problema en esta relación es el hecho que para cada nuevo mes se deben crear dos atributos en el esquema de relación. Una solución al problema anterior seria transformar el esquema de relación a EMPLEADO(Número, Nombre, Fecha-Pago, Monto) donde se comprueba la primera forma normal. EMPLEADO Número Nombre Fecha-Pago Monto 1068 Paredes 01/05/96 50000 985 Martínez 01/05/96 70000 123 Huete 01/05/96 60000 1068 Paredes 01/06/96 55000 985 Martínez 01/06/96 70000 123 Huete 01/06/96 60000 1068 Paredes 01/07/96 55000 985 Martínez 01/07/96 70000 123 Huete 01/07/96 60000
IV. MODELO RELACIONAL 27 DEPENDENCIAS FUNCIONALES En un esquema de relación se pueden establecer asociaciones entre varios atributos. Así, los valores de algunos atributos en una relación pueden determinar de forma única, el conocimiento de los valores de otros atributos de la misma relación. Formalmente, sea R un esquema de relación y sean X, Y subconjuntos de atributos de R. Se dice que existe una dependencia funcional entre X y Y, y se denota por X Y. Sí para cualesquiera tuplas t1, t2 de una relación R tal que t 1[X]=t 2[X] entonces t 1[Y]=t 2[Y]. En este caso, a X se le llama determinante y a Y el dependiente. Sea el esquema de relación: CHOFER(Cédula, Nombre, Dirección, Fecha-Ingreso, #Placa) CHOFER Cédula Nombre Dirección Fecha-Ingreso #Placa 2303776 Juan Mora Managua 12-06-91 123456 3214568 Juan Mora Rivas 10-12-87 103645 4359087 Pedro Managua 10-12-87 325486 5446872 Adrián Granada 12-11-86 657844 En este caso se puede establecer varios hechos: Para cada numero de cédula, existe un único nombre asociado, es decir, se verifica la dependencia funcional Cédula Nombre. Puesto que un camión puede ser conducido por varios choferes no se verifica la dependencia funcional #Placa Cédula. En este caso se representa #Placa / Cédula. Se tiene que Nombre / #Placa, puesto que dos personas distintas pueden tener el mismo nombre. Sin embargo, {Nombre,Fecha- Ingreso} #Placa. Las dependencias funcionales es un concepto que deriva del significado de los datos y no del comportamiento de una relación dada. CERRADURAS Una vez que se ha obtenido un conjunto de dependencias funcionales que se verifican en un esquema de relación, es interesante preguntarse si a partir de este conjunto de dependencias se pueden inferir otras dependencias funcionales. Un diseñador puede definir para una base de datos un conjunto de dependencias funcionales que son evidentes para él. Sin embrago, pueden existir otras que quizás no consideraron previamente y que son de utilidad para el diseño futuro de la base de datos. El conjunto de todas estsa dependencias funcionales se llama cerradura. Para determinar la cerradura de una relación existe un conjunto de reglas. Esto significa que si F es un conjunto de dependencias funcionales, cualquier dependencia funcional que se infiera a partir de F, se hace sola aplicando las reglas a las dependencias funcionales de F.
IV. MODELO RELACIONAL 28 Axiomas de inferencia de armstrong Sean X, Y, Z y W subconjuntos de atributos de una relación R, en donde se verifican las dependencias funcionales X Y, Y Z Entonces las siguientes reglas se cumplen: A1 Reflexividad A2 Aumento A3 Transitividad X X X Y X Z Y {X Y, Y Z} X Z Reglas derivadas de A1, A2 y A3: A4 Union A5 Descomposicion A6 Pseudotransitividad {X Y, X Z} X Y Z X Y X Z con Z Y {X Y, Y Z W} X Z W DERIVACION DE DEPENDENCIAS Sea F un conjunto de dependencias funcionales, en donde U es el conjunto de atributos involucardos en F. Se dice que la dependenciafuncional g:x Y se deriva de F y se detona F -g si existen n dependencias funcionales f 1, f 2,...,f n talque: 1. f n = g 2. i, i {i,...,n}, f i F o bien f i se infiere de {f 1,f 2,...,f i-1} usando las reglas A1, A2 y A3. EJEMPLO: Sea F el siguiente conjunto de dependencias funcionales {f 1:Direción, #Dpto. Fecha-Inicio, Salario f 2:Nombre Dirección} Sea g: Nombre, #Dpto. Fecha-Inicio, Salario. Entonces F -g, como se muestra a continuación. 1. Nombre, #Dpto. Nombre, #Dpto., por A1 2. Nombre, #Dpto. Dirección, por A1 aplicada a f 2 3. Nombre, #Dpto. Nombre, #Dpto., Dirección, por A3 aplicada a 1 y 2 4. Nombre, #Dpto. Fecha-Inicio, Salario, por A2 aplicada a f 1. 5. g, por A3 aplicada a 3 y 4. Al conjunto de dependencias funcionales que se pueden derivar de un conjunto de dependencias funcionales F se le llama cerradura de F y se denota F +, es decir F + = {f / F - f}
IV. MODELO RELACIONAL 29 TEOREMA DE DESCOMPOSICION Sea un esquema de relación R(X, Y, Z), con X, Y, Z conjuntos de atributos de R, tal que la dependencia funcional X Y se verifica en R. Entonces la relación R se descompone en las relaciones R 1=R[X,Y] y R 2=R[X,Z], es decir R = R 1 * R 2. EJEMPLO: Considere el esquema de relación CURSO(Grupo, Código, Profesor, Aula, Día, Hora) CURSO Grupo Código Profesor Aula Día Hora 01 3M1-IS Paredes H-06 Lunes 09 03 3T1-IS Martínez M-01 Lunes 14 04 4M1-IS Martínez H-06 Martes 10 07 4M2-IS Huete H-06 Jueves 16 Según el esquema de relación se puede verificar la dependencia funcional Código, Profesor Aula, Día, Hora. Si se aplica el teorema de descomposición usando esta dependencia se obtienen los siguientes esquemas de relaciones: R 1=R[Código, Profesor, Aula, Día, Hora] y R 2=R[Grupo, Código, Profesor] R1 R2 Grupo Código Aula Día Hora Grupo Código Profesor 01 3M1-IS H-06 Lunes 09 01 3M1-IS Paredes 03 3T1-IS M-01 Lunes 14 03 3T1-IS Martínez 04 4M1-IS H-06 Martes 10 04 4M1-IS Martínez 07 4M2-IS H-06 Jueves 16 07 4M2-IS Huete Es importante notar que la descomposición genera redundancia. En efecto, si la dependencia funcional X Y se verifica, el conjunto de atributos X se duplica en las dos relaciones. SEGUNDA FORMA NORMAL (2FN) Antes de introducir el concepto de segunda forma normal (2FN), se requiere conocer lo que significa dependencia parcial. En efecto, sea un esquema de relación R, X una llave para R y A un atributo no llave. Se dice que el atributo A depende parcialmente de X si se verifica Y A, en donde Y es un subconjunto propio de la llave X. Así, una relación R se dice que esta en segunda forma normal, si se encuentra en 1FN y ningún atributo no llave depende parcialmente de la llave de la relación. EJEMPLO: Considere la siguiente relación: INTINERARIO(Num-Viaje, Fecha-Salida, Tarifa, Num-Sitio, Num-Turista) En el esquema de la relación los atributos subrayados forman la llave primaria de la relación (Ver definición Tema II, Pag-13). Puesto que cada viaje tiene asociada una sola tarifa, en esta relación se verifica la dependencia funcional Num-Viaje Tarifa. En este caso la relación no se encuentra en 2FN ya que el atributo Tarifa depende parcialmente de la llave primaria.
IV. MODELO RELACIONAL 30 Con el fin de eliminar las anomalías provocadas por este hecho, se aplica el teorema de descomposición a la dependencia funcional que viola la 2FN. Al aplicar dicho teorema se obtiene las relaciones R 1=INTINERARIO(Num-Viaje, Fecha-Salida, Num-Sitio, Num-Turista) R 2=COSTO-INTINERARIO(Num-Viaje, Tarifa) PROBLEMA SOLUCION Como se puede observar, la solución elimina las anomalías de almacenamiento, sin embargo, otro tipo de problema persiste. TERCERA FORMA NORMAL (3FN) Sea R(X,Y,Z) un esquema de relación, en donde X, Y, Z son subconjuntos de atributos. Se dice que Z es transitivamente dependiente de X si existe Y tal que se den las siguientes condiciones: Se verifica X Y, No se verifica Y X, Se verifica Y Z. Se dice que una relación R esta en tercera forma normal (3FN), si se encuentra en 2FN y no existen dependencias transitivas entre atributos no llaves. Veamos con más claridad esta definición. Partiendo de las relación R 1 del ejemplo anterior comprovemos que se cumple la 3FN. R 1=INTINERARIO(Num-Viaje, Fecha-Salida, Num-Sitio, Num-Turista) Si hacemos la supocision de que cada turista visita un solo sitio al año. Esto significa que se verifica Num-Turista Num-Sitio. Así el atributo Num-Sitio depende transitivamente de la llave y por lo tanto esta relación no se encuentra en 3FN. Para resolver esta situación hay que aplicar el teorema de descomposición a la dependencia funcional transitiva. De esta forma se obtienen las relaciones:
IV. MODELO RELACIONAL 31 R1a= INTINERARIO(Num-Viaje, Fecha-Salida, Num-Turista) R1b= SITIO-VISITADO(Num-Turista, Num-Sitio)
IV. MODELO RELACIONAL 32 PROBLEMA SOLUCION FORMA NORMAL DE BOYCE-CODD (FNBC) Una relación se encuentra en forma normal de Boyce-Cood si todos los atributos son determinados por llaves. Para analizar esta situación tomemos la relación R1a y supongamos que se tiene la siguiente regla de integridad: Cada turista tiene una sola fecha de salida. Num-Turista Fecha-Salida. R1a= INTINERARIO(Num-Viaje, Fecha-Salida, Num-Turista) En esta situación aun persisten anomalías de actualización, por ejemplo si se desea suprimir un numero de viaje para una fecha dada, se puede perder la información de cuando el turista realizara su viaje. Entonces para resolver este problema se debe aplicar el terorema de descomposición sobre la dependencia funcional Num-Turista Fecha-Salida. El resultado es: R1a1= INTINERARIO(Num-Viaje, Fecha-Salida) R1a2= SALIDA-TURISTA(Num-Turista, Fecha-Salida) DEPENDENCIAS MULTIVALUADA Las dependencias multivaluadas se pueden ver como una generalización de las dependencias funcionales. En efecto, se puede decir que una dependencia multivaluada existe entre dos conjuntos de atributos X, Y, si solo el conjunto de X, e independientemente de otros atributos, determina un conjunto de valores relativos a Y. Se denota X Y. Axiomas de inferencia Sean X, Y, Z y W subconjuntos de atributos de una relación R, Z el complemento de los atributos X Y con respecto a R. Entonces las siguientes reglas se cumplen: 1. Reflexividad X X 2. Complemento X Y X Z 3. Aumento X Y, V W X W Y V 4. Union {X Y, X Z} X Y Z 5. Transitividad {X Y, Y Z} X Y - Z 6. Pseudotransitividad {X Y, Y W Z} X W Z-(Y W) 7. Descomposición {X Y, X Z} X Y Z, X Y - Z, X Z - Y.
IV. MODELO RELACIONAL 33 TEOREMA DE DESCOMPOSICION Sea un esquema de relación R(X, Y, Z), con X, Y, Z conjuntos de atributos de R, tal que la dependencia multivaluada X Y se verifica en R. Entonces la relación R se descompone en las relaciones R 1=R[X, Y] y R 2=R[X, Z], es decir R = R 1 * R 2. CUARTA Y QUINTA FORMA NORMAL (4FN y 5FN) Estas formas normales solamente se verifican cuando las relaciones tiene tinen una llave primaria copuesta por tres o más atributos. Se dice que una relación esta en 4FN, si se encuentra en forma normal de Boyce-Cood y si cada vez que una dependencia multivaluada X Y se verifica, entonces X contiene a una llave de R. La quinta forma normal se refiere a las llamadas dependencias producto que garantizan la descomposición de una relación en tres o más relaciones, manteniendo el contenido original y con menor redundancia. Formalmente, Sean X 1, X 2,..., X n subconjuntos de atributos de una relación R. En donde la unión es igual a los atributos de R. Se dice que la dependencia producto de orden n, denotada por Se verifica en R sí *[X 1][X 2]...[X n] R = R[X 1]*R[X 2]*...*R[X n] Una relación R se encuentra en 5FN si cada dependencia producto de R esta inducida por las llaves candidatas de R, es decir, cada X i contiene una llave candidata de R. CONCLUSIONES El proceso de normalización elimina inconsistencias semánticas que provocan anomalías de manipulación. Estas anomalías de manipulación pueden dejar la base de datos en un estado no deseado. En un esquema de relación, las asociaciones entre varios atributos, Deforma tal que los valores de algunos atributos en una relación pueden determinar de forma única, el conocimiento de los valores de otros atributos de la misma relación se denomina dependencia funcional. Una relación esta en primera forma normal si: Sus atributos son atomicos. No existen campos repetitivos. Tuplas de igual estructura. La segunda forma normal establece que la relación: Debe estar en 1FN. No existen atributos dependientes de parte de la llave. Para que una relación este en tercera forma normal debe cumplir: Debe estar e 2FN No existan atributos secundarios con dependencia transitiva respecto a la llave. Los teoremas de descomposisión proporciona las herramientas para solucionar los problemas de actualización en las bases de datos.
IV. MODELO RELACIONAL 34 EJERCICIOS 1. Dar un ejemplo de esquema de relación que este en 3FN y no este en FNBC. 2. Dado el esquema R(A,B,C,D) y el siguiente conjunto de dependencias F={A B, B C} Determine cuales de las siguientes dependencias funcionales se pueden derivar de F usando las reglas de Armstrong. a) A C. b) A B,C. c) A,B,C D. d) A, D B,C. 3. Sean los atributos A, B, C y D. Dar ejemplos de relaciones con almenos cuatro tuplas, en donde se verifique: a) A,B C y C D. b) A B y B C. c) A B y B,C D.
IV. MODELO RELACIONAL 35 IV. MODELO RELACIONAL... 25 PROCESO DE NORMALIZACION... 26 PRIMERA FORMA NORMAL (1FN)... 26 DEPENDENCIAS FUNCIONALES... 27 CERRADURAS... 27 DERIVACION DE DEPENDENCIAS... 28 SEGUNDA FORMA NORMAL (2FN)... 29 TERCERA FORMA NORMAL (3FN)... 30 FORMA NORMAL DE BOYCE-CODD (FNBC)... 32 DEPENDENCIAS MULTIVALUADA... 32 CUARTA Y QUINTA FORMA NORMAL (4FN y 5FN)... 33 CONCLUSIONES... 33 EJERCICIOS... 34