Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Normalización de bases de datos El proceso de normalización de bases de datos consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional. Un pobre diseño de la base de datos puede afectar una aplicación, produciendo problemas con la redundancia, inexactitud, consistencia, y concurrencia de sus datos. La normalización es un proceso que sirve para reducir, si no eliminar, estos problemas con los datos. Dado que en los negocios se utiliza la Tercer Forma Normal como el modelo lógico, veremos los pasos de las 1ra, 2da, y 3ra Forma Normal. La primer forma normal requiere que no existan atributos multi-valores, asi como tampoco grupo de repeticion. Un atributo multi-valor contiene más de un valor por ese campo en cada fila. Consideremos la siguiente tabla referida a Cursos de estudiantes: Nro de Registro Curso 12345 3100,3600,3900 54321 1300,2300,1200 En esta tabla, el campo Curso es un campo multi-valor: no hay un valor simple para cada campo. Ahora considere este otro ejemplo: Nro de Registro Curso1 Curso2 Curso3 12345 3100 3600 3900 54321 1300 2300 1200 Los campos Curso1, Curso2 y Curso3 representan grupos repetitivos. Si aplicamos los requisitos de la Primer Forma Normal el ejemplo quedaria de la siguiente manera: Nro de Registro Curso 12345 3100 12345 3600 12345 3900 54321 1300 54321 2300 54321 1200 En los primeros 2 ejemplos, seleccionar un estudiante inscripto en algun curso es una tarea dificultosa. Digamos que quiero saber lo siguiente: Digame todos los estudiantes inscriptos en el curso 3100. En el primer diseño, Ud. deberá tomar el campo Curso y analizarlo de alguna forma "por dentro" para saber si cumple o no con los requisitos de la busqueda. En el segundo diseño, deberá analizar 3 campos por separado para saber si el alumno está inscripto en el curso 3100. En el tercer diseño, la consulta es tan simple como : Select Nro de Registro from Cursos where Curso = 3100 La Segunda Forma Normal La Segunda Forma Normal requiere que cualquier campo no integrante de la Clave Primaria, debería ser totalmente dependiente de la clave. Por ejemplo, considere la siguiente tabla de Cursos, donde Nro de Registro y Curso componen la clave primaria. Nro de Registro Curso Nombre Depto. Nota 12345 3100 Perez, J Matematica 6 12345 1300 Perez, J Derecho 8 El Nombre del estudiante no depende de toda la clave primaria, sino solo del Nro de Registro. El Depto. es un campo que solo depende del Curso. En consecuencia, estos datos deberían ser divididos en 3 tablas separadas, a saber: ALUMNOS Nro de Registro Nombre 12345 Perez, J CURSOS Curso Depto. 3100 Matematica 1300 Derecho CURSOS por ALUMNO Nro Reg Curso Nota 12345 3100 6 54321 1300 8 En este ejemplo, el campo Nota es el unico dependiente de la clave primaria completa. 3RA. FORMA NORMAL La tercera forma normal prohíbe dependencias transitivas. Una dependencia transitiva existe cuando cualquier atributo en una tabla es dependiente de otro campo y éste es quien depende de la clave primaria. Considere el siguiente ejemplo de una tabla de Cursos: CURSOS Nro Curso Nro Profesor Nombre Profesor 3100 3411 Diaz, Jorge 1300 3411 Diaz, Jorge El campo Nombre de Profesor depende de Nro de Profesor, el cual es el campo que realmente depende de la clave primaria. Por ello, el campo Nombre Profesor debe ser quitado y colocado en otra tabla: CURSOS Nro Curso Nro Profesor 3100 3411 1300 3411 PROFESORES Nro Profesor Nombre 3411 Diaz, Jorge Dividiendo los datos en 2 tablas, la dependencia transitiva es removida. Las bases de datos relacionales se normalizan para: • Evitar la redundancia de los datos. • Disminuir problemas de actualización de los datos en las tablas. • Proteger la integridad de los datos. En el modelo relacional es frecuente llamar tabla a una relación, aunque para que una tabla sea considerada como una relación tiene que cumplir con algunas restricciones: • Cada tabla debe tener su nombre único. • No puede haber dos filas iguales. No se permiten los duplicados. • Todos los datos en una columna deben ser del mismo tipo. Figura 1.0: Trabajo (Código, Nombre, Posición, Salario), donde Código es la Clave Primaria. • Relación = tabla o archivo • Registro = registro, fila , renglón o tupla • Atributo = columna o campo • Clave = llave o código de identificación • Clave Candidata = superclave mínima • Clave Primaria = clave candidata elegida • Clave Ajena (o foránea) = clave externa o clave foránea • Clave Alternativa = clave secundaria • Dependencia Multivaluada = dependencia multivalor • RDBMS = Del inglés Relational Data Base Manager System que significa, Sistema Gestor de Bases de Datos Relacionales. • 1FN = Significa, Primera Forma Normal o 1NF del inglés First Normal Form. Los términos Relación, Tupla y Atributo derivan del álgebra y cálculo relacional, que constituyen la fuente teórica del modelo de base de datos relacional. Todo atributo en una tabla tiene un dominio, el cual representa el conjunto de valores que el mismo puede tomar. Una instancia de una tabla puede verse entonces como un subconjunto del producto cartesiano entre los dominios de los atributos. Sin embargo, suele haber algunas diferencias con la analogía matemática, ya que algunos RDBMS permiten filas duplicadas, entre otras cosas. Finalmente, una tupla puede razonarse matemáticamente como un elemento del producto cartesiano entre los dominios. Dependencias Dependencia funcional B es funcionalmente dependiente de A. Una dependencia funcional es una conexión entre uno o más atributos. Por ejemplo si se conoce el valor de DNI tiene una conexión con Apellido o Nombre . Las dependencias funcionales del sistema se escriben utilizando una flecha, de la siguiente manera: FechaDeNacimiento Edad De la normalización (lógica) a la implementación (física o real) puede ser sugerible tener estas dependencias funcionales para lograr la eficiencia en las tablas. Propiedades de la dependencia funcional Existen tres axiomas de Armstrong: Dependencia funcional reflexiva Si "y" está incluido en "x" entonces x y A partir de cualquier atributo o conjunto de atributos siempre puede deducirse él mismo. Si la dirección o el nombre de una persona están incluidos en el DNI, entonces con el DNI podemos determinar la dirección o su nombre. Dependencia funcional Aumentativa entonces DNI nombre DNI,dirección nombre,dirección Si con el DNI se determina el nombre de una persona, entonces con el DNI más la dirección también se determina el nombre y su dirección. Figura: Dependencia funcional transitiva. Dependencia funcional transitiva Sean X, Y, Z tres atributos (o grupos de atributos) de la misma entidad. Si Y depende funcionalmente de X y Z de Y, pero X no depende funcionalmente de Y, se dice entonces que Z depende transitivamente de X. Simbólicamente sería: X Y Z entonces X Z FechaDeNacimiento Edad Edad Conducir FechaDeNacimiento Edad Conducir Entonces tenemos que FechaDeNacimiento determina a Edad y la Edad determina a Conducir, indirectamente podemos saber a través de FechaDeNacimiento a Conducir (En muchos países, una persona necesita ser mayor de cierta edad para poder conducir un automóvil, por eso se utiliza este ejemplo). "C será un dato simple (dato no primario), B, será un otro dato simple (dato no primario), A, es la llave primaria (PK). Decimos que C dependerá de B y B dependerá funcionalmente de A." Propiedades deducidas Unión y entonces Pseudo-Transitiva y entonces Descomposición y está incluido en entonces Dependencia multivalor En el cálculo relacional de bases de datos, la dependencia multivalor o multivaluada es una restricción entre dos conjuntos de atributos de una relación, que requiere que ciertas tuplas estén presentes en la misma. Dicha restricción se concreta en la cuarta forma normal. Sea R un esquema de relación. La dependencia multivaluada X Y vale en R si los pares de tuplas t1 y t2 en R, tal quet1[X] = t2[X] existen las tuplas t3 y t4 en R tales que: t1 [X] = t2 [X] = t3[X] = t4[X] t3 [Y] = t1 [Y] t3 [R-X-Y] = t2 [R-X-Y] t4 [Y] = t2 [Y] t4 [R-X-Y] = t1 [R-X-Y] En otras palabras se puede decir que: X Y si dado un valor de X, hay un conjunto de valores de Y asociados y este conjunto de valores de Y NO está relacionado (ni funcional ni multifuncionalmente) con los valores de R - X -Y (donde R es el esquema), es decir Y es independiente de los atributos de R-X-Y. (Cátedra de Base de Datos 1, 2009) Una dependencia multivaluada de la forma X Y, es trivial cuando el conjunto de atributos {X,Y} conforma el total de los atributos del esquema.
Compartir