Normalizacion de Bases de Datos

Normalización de bases de datos El proceso de normalización de bases de datos consiste en designar y aplicar una serie d

Views 137 Downloads 75 File size 115KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

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 12345 54321

Curso 3100,3600,3900 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 12345 54321

Curso1

Curso2

Curso3

3100 1300

3600 2300

3900 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 12345 12345 12345 54321 54321 54321

Curso 3100 3600 3900 1300 2300 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 12345 12345

Curso

Nombre

Depto.

Nota

3100 1300

Perez, J Perez, J

Matematica Derecho

6 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 12345

Nombre Perez, J CURSOS

Curso 3100 1300

Nro Reg 12345 54321

Depto. Matematica Derecho CURSOS por ALUMNO Curso 3100 1300

Nota 6 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 3100 1300

Nro Profesor 3411 3411

Nombre Profesor Diaz, Jorge 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:

Nro Curso 3100 1300

CURSOS Nro Profesor 3411 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

FechaDeNacimiento Edad

Z

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 que t1[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.