Normalización de Una Base de Datos
Normalización de Una Base de Datos
Normalización de Una Base de Datos
La normalizacin es una tcnica que se ha desarrollado para obtener estructuras de datos eficientes, garantizando un buen diseo lgico de la BD. La normalizacin es un paso obligado cuando el esquema relacional se obtiene directamente desde la observacin del mundo real, sin pasar por la construccin de un modelo conceptual.
El paso directo del mundo real a las relaciones, suele dar como resultado relaciones con algunos problemas que es necesario refinar aplicando la normalizacin. Es un proceso en el que un conjunto dado de relaciones es reemplazado por otro conjunto de relaciones, con una estructura ms simple y ms regular.
Los problemas que pueden existir en un esquema de relacin son, entre otros:
Anomalas de repeticin: puede que cierta informacin est repetida innecesariamente. Anomalas de actualizacin: como consecuencia de las repeticiones, las actualizaciones pueden afectar a mltiples filas. Anomalas de insercin: puede ser imposible aadir informacin a la BD. Anomalas de borrado: el borrado de una fila podra implicar prdida de informacin.
Existen varias formas normales, aunque en un proceso de normalizacin estndar es suficiente con llegar hasta la tercera o cuarta forma normal. El mtodo ms usado de normalizar consiste en descomponer, iterativamente, una relacin en dos o ms de forma normal ms refinada. Los requisitos exigen que no exista prdidas de informacin ni dependencias de atributos.
Se dice que una relacin est en determinada forma normal si satisface las condiciones asociadas con dicha forma normal. Las tres primeras formas normales fueron definidas inicialmente por Codd. Boyce y Codd definieron una versin modificada de la tercera forma normal. Posteriormente fueron definidas la cuarta y quinta forma normal.
Supsor Sucursal
1145 1145 123 345 123 678 234
1123 M. Garca 1123 M. Garca 2321 C. Ramos 2321 C. Ramos 2321 C. Ramos
2321 C. Ramos
Repartidor
345 234
La redundancia o repeticin en los datos, adems de desperdiciar espacio, puede conducir a perder la integridad de los datos. Si se tiene una inconsistencia de datos entre las tuplas que contienen datos repetidos se tiene una anomala de actualizacin. Si se insertan datos incompletos se tiene una anomala de insercin.
La forma intuitiva de evitar o corregir tales problemas es dividir la relacin Empleados en dos relaciones, Empleados y Destinos, con lo cual se elimina la anomala. El mtodo ms formal es la normalizacin. La normalizacin es el proceso de dividir relaciones (tablas) en varias relaciones (tablas) para eliminar las anomalas y mantener la integridad de los datos.
1123 M Garca
2321 C Ramos
1145 C Fernndez
Repartidor
Repartidor
Las dependencias funcionales (DF) proveen una manera para definir restricciones adicionales en un esquema relacional. La idea esencial es que el valor de un atributo en una tupla determina unvocamente el valor de otro atributo en esa misma tupla. Si A y B son atributos de la relacin R, entonces DF: A B Es decir, A determina funcionalmente B
El atributo en la parte izquierda de una DF se llama determinante, porque ese valor determina el valor del atributo de la parte derecha. La clave de una relacin es un determinante, debido a que valor determina unvocamente el valor de todos los atributos en una tupla.
2321
234
12-04-2007 C Ramos
La clave est compuesta por Id y Sucursal, el atributo Nombre depende funcionalmente de una parte de la clave (Id). La relacin no se encuentra en 2FN, lo que puede llevar a los siguientes problemas:
El nombre del empleado se repite en cada fila que contenga un destino para ese empleado. Si el nombre del empleado cambia, cada fila que contenga un destino de ese empleado debe ser actualizada. Esto es una anomala de actualizacin.
Debido a esta redundancia, los datos podran dar lugar a inconsistencias con distintas filas, mostrando diferentes nombres para el mismo empleado. Si un empleado no tiene destinos, puede que no haya filas en las que guardar su nombre.
Estas relaciones son ms pequeas que la relacin original y se llaman proyecciones. Una proyeccin resulta de la seleccin de algunos atributos de una relacin existente, que son representados como una nueva relacin. El proceso de descomponer una relacin que no est en 2FN en dos relaciones que estn en 2FN es el siguiente:
Crear una nueva relacin usando los atributos de la dependencia funcional (DF) responsable como los atributos en la nueva relacin.
Categora
Oficial Repartidor
Prima
450 300
1145
Oficial
450
Si una relacin no est en 3FN aparecen problemas similares a los expuestos en la violacin del diseo de 2FN
La prima para cada categora se repite en las filas de cada empleado que tiene la misma categora, produciendo una redundancia de datos. Si la prima de una categora cambia, todas las filas afectadas deben ser actualizadas, lo que puede suponer anomalas de actualizacin. Si una fila es borrada se puede perder el dato de la prima para una categora, lo que supone anomala de borrado. Si no existen empleados en una categora no existirn filas en las que guardar la prima de esa categora, lo que supone anomala de insercin
La primera ser el resultado de eliminar de la anterior relacin, la columna del atributo transitivamente dependiente. La segunda relacin se forma con los atributos de la dependencia funcional entre los atributos no claves, eligiendo como clave al determinante de la dependencia.
R1 (Id, Categora) R2 (Categora, Prima)
Para transformar una relacin que no est en FNBC se procede de la siguiente forma: A partir de la relacin a transformar se forma una relacin R1 eliminando los atributos dependientes (parte derecha) de cualquier DF que haga fallar el criterio. Forme una nueva relacin R2 con los atributos de la DF que hace fallar el criterio de FNBC y elija como clave el determinante
Si R1 o R2 no estn en FNBC, se contina aplicando el proceso de descomposicin hasta que todas las relaciones estn en FNBC. Debido a que toda relacin est, por definicin, en 1FN y debido a que las relaciones en FNBC estn siempre en 2FN, se cumple lo siguiente: FNBC implica 2FN implica 1FN
Si se verifica que cada determinante en cada relacin es una clave de esa relacin (criterio FNBC), entonces todas las relaciones estn en primera, segunda y tercera forma normal. Esto simplifica enormemente el proceso de normalizacin, pues ahora slo se requiere comprobar un criterio.
El criterio para la 3FN es un poco ms dbil que el criterio de FNBC, ya que no maneja dos casos de excepcin:
Un atributo no clave es dependiente de un atributo clave en una clave compuesta. Un atributo clave en una clave compuesta es dependiente de un atributo no clave.
FNBC incluye ambos casos. Por tanto, si una relacin est en FNBC entonces est tambin en 3FN, en el sentido de la dependencia transitiva, y est tambin en 2FN.
Pueden existir otras dependencias en una base de datos adems de las dependencias funcionales, aunque estas ltimas son las ms habituales. Las dependencias no funcionales ms habituales son las dependencias multivaluadas.
Se dice que una relacin est en cuarta forma normal (4FN) si cumple la 3FN y no tiene atributos multivaluados. Una dependencia multivaluada tiene lugar cuando el valor de un atributo determina un conjunto de valores mltiples. Este tipo de relaciones da lugar a una enorme duplicacin de valores de datos a causa de las dependencias multivaluadas.
Estudiantes Matemticas I
La aplicacin de la 4FN debera eliminar dichas dependencias. El problema de las dependencias multivaluadas tiene su origen en los atributos multivaluados. Se soluciona poniendo todos los atributos multivaluados en relaciones formadas por ellos mismos junto con la clave a la cual se aplican los valores de los atributos.
Otras formas normales La normalizacin puede continuar dando lugar a un mayor refinamiento en el diseo de una base de datos mediante la aplicacin de ms formas normales. El inters terico de este proceso tiene muy dudoso valor prctico. La mayora de productos comerciales no soportan formas normales superiores a FNBC