Normalización de una Base de Datos

32
Normalización de una Base de Datos La normalización es una técnica que se ha desarrollado para obtener estructuras de datos eficientes, garantizando un buen diseño lógico de la BD. La normalización es un paso obligado cuando el esquema relacional se obtiene directamente desde la observación del mundo real, sin pasar por la construcción de un modelo conceptual.

Transcript of Normalización de una Base de Datos

Page 1: Normalización de una Base de Datos

Normalización de una Base de Datos La normalización es una técnica que se ha

desarrollado para obtener estructuras de datos eficientes, garantizando un buen diseño lógico de la BD.

La normalización es un paso obligado cuando el esquema relacional se obtiene directamente desde la observación del mundo real, sin pasar por la construcción de un modelo conceptual.

Page 2: Normalización de una Base de Datos

Normalización de una Base de Datos El paso directo del mundo real a las

relaciones, suele dar como resultado relaciones con algunos problemas que es necesario refinar aplicando la normalización.

Es un proceso en el que un conjunto dado de relaciones es reemplazado por otro conjunto de relaciones, con una estructura más simple y más regular.

Page 3: Normalización de una Base de Datos

Normalización de una Base de Datos Los problemas que pueden existir en un

esquema de relación son, entre otros: Anomalías de repetición: puede que cierta

información esté repetida innecesariamente. Anomalías de actualización: como consecuencia

de las repeticiones, las actualizaciones pueden afectar a múltiples filas.

Anomalías de inserción: puede ser imposible añadir información a la BD.

Anomalías de borrado: el borrado de una fila podría implicar pérdida de información.

Page 4: Normalización de una Base de Datos

Normalización de una Base de Datos Existen varias formas normales, aunque en

un proceso de normalización estándar es suficiente con llegar hasta la tercera o cuarta forma normal.

El método más usado de normalizar consiste en descomponer, iterativamente, una relación en dos o más de forma normal más refinada.

Los requisitos exigen que no exista pérdidas de información ni dependencias de atributos.

Page 5: Normalización de una Base de Datos

Normalización de una Base de Datos Se dice que una relación 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 versión modificada de la tercera forma normal.

Posteriormente fueron definidas la cuarta y quinta forma normal.

Page 6: Normalización de una Base de Datos

Normalización de una Base de Datos

Id Nombre Categoria Supsor Sucursal

1123 M. García Oficial 1145 123

1123 M. García Oficial 1145 345

2321 C. Ramos Repartidor 123

2321 C. Ramos Repartidor 678

2321 C. Ramos Repartidor 234

2321 C. Ramos Repartidor 345

1145 C. Fernández Repartidor 234

Page 7: Normalización de una Base de Datos

Normalización de una Base de Datos La redundancia o repetición en los datos,

además 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 anomalía de actualización.

Si se insertan datos incompletos se tiene una anomalía de inserción.

Page 8: Normalización de una Base de Datos

Normalización de una Base de Datos La forma intuitiva de evitar o corregir tales

problemas es dividir la relación Empleados en dos relaciones, Empleados y Destinos, con lo cual se elimina la anomalía.

El método más formal es la normalización. La normalización es el proceso de dividir

relaciones (tablas) en varias relaciones (tablas) para eliminar las anomalías y mantener la integridad de los datos.

Page 9: Normalización de una Base de Datos

Normalización de una Base de DatosPrimera Forma Normal Una relación está en primera forma normal

(1FN) si los valores en la relación son atómicos para cada atributo de la relación.

En una tupla cada atributo sólo puede tomar un único valor.

La definición de Codd de una relación incluye la condición de que la relación esté en primera forma normal.

Page 10: Normalización de una Base de Datos

Normalización de una Base de Datos

Id Nombre Categoría Supsor Sucursal

1123 M García Oficial 1145 123, 345

2321 C Ramos Repartidor 123, 678, 234, 345

1145 C Fernández

Repartidor 234

Page 11: Normalización de una Base de Datos

Normalización de una Base de Datos 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 unívocamente el valor de otro atributo en esa misma tupla.

Si A y B son atributos de la relación R, entonces DF: A B Es decir, A determina funcionalmente B

Page 12: Normalización de una Base de Datos

Normalización de una Base de Datos 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 relación es un determinante, debido a que valor determina unívocamente el valor de todos los atributos en una tupla.

Page 13: Normalización de una Base de Datos

Normalización de una Base de DatosSegunda Forma Normal Una relación está en Segunda Forma

Normal (2FN) si cualquier atributo que no forme parte de la clave no es funcionalmente dependiente de una parte de la clave.

La 2FN solo puede violarse cuando la clave sea una clave compuesta; es decir, cuando conste de más de un atributo.

Page 14: Normalización de una Base de Datos

Normalización de una Base de Datos

Id Sucursal Fecha Nombre

1123 123 05-02-2007 M García

2321 123 25-01-2007 C Ramos

1123 345 19-02-2007 M García

2321 678 06-03-2007 C Ramos

2321 234 12-04-2007 C Ramos

Page 15: Normalización de una Base de Datos

Normalización de una Base de Datos La clave está compuesta por Id y Sucursal,

el atributo Nombre depende funcionalmente de una parte de la clave (Id).

La relación 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 anomalía de actualización.

Page 16: Normalización de una Base de Datos

Normalización de una Base de Datos Debido a esta redundancia, los datos podrían

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.

Los Problemas se solucionan partiendo la relación original en dos relaciones más pequeñas Destino (Id, Sucursal, Fecha) Empleado (Id, Nombre)

Page 17: Normalización de una Base de Datos

Normalización de una Base de Datos Estas relaciones son más pequeñas que la

relación original y se llaman proyecciones. Una proyección resulta de la selección de

algunos atributos de una relación existente, que son representados como una nueva relación.

El proceso de descomponer una relación que no está en 2FN en dos relaciones que están en 2FN es el siguiente: Crear una nueva relación usando los atributos de

la dependencia funcional (DF) responsable como los atributos en la nueva relación.

Page 18: Normalización de una Base de Datos

Normalización de una Base de DatosLos atributos dependientes, la parte

derecha de la DF, se eliminan de la relación original.

Si hay más de una DF, se repiten los pasos anteriores para cada DF que exista.

Si el mismo determinante aparece en más de una DF, toman todos los atributos funcionalmente dependientes con ese determinante como atributos no claves en la relación teniendo al determinante como clave.

Page 19: Normalización de una Base de Datos

Normalización de una Base de DatosTercera Forma Normal Una relación R está en tercera forma

normal (3FN) si se encuentra en 2FN y además ninguno de sus atributos no claves tiene dependencias transitivas respecto de las claves.

Una dependencia transitiva aparece cuando un atributo no clave es funcionalmente dependiente de uno o más atributos no claves.

Page 20: Normalización de una Base de Datos

Normalización de una Base de Datos

Id Categoría Prima

1123 Oficial 450

2321 Repartidor 300

1145 Oficial 450

Page 21: Normalización de una Base de Datos

Normalización de una Base de Datos Si una relación no está en 3FN aparecen problemas

similares a los expuestos en la violación del diseño de 2FN La prima para cada categoría se repite en las filas de

cada empleado que tiene la misma categoría, produciendo una redundancia de datos.

Si la prima de una categoría cambia, todas las filas afectadas deben ser actualizadas, lo que puede suponer anomalías de actualización.

Si una fila es borrada se puede perder el dato de la prima para una categoría, lo que supone anomalía de borrado.

Si no existen empleados en una categoría no existirán filas en las que guardar la prima de esa categoría, lo que supone anomalía de inserción

Page 22: Normalización de una Base de Datos

Normalización de una Base de Datos La solución pasa por descomponer la

relación en dos relaciones: La primera será el resultado de eliminar de la

anterior relación, la columna del atributo transitivamente dependiente.

La segunda relación se forma con los atributos de la dependencia funcional entre los atributos no claves, eligiendo como clave al determinante de la dependencia.

R1 (Id, Categoría) R2 (Categoría, Prima)

Page 23: Normalización de una Base de Datos

Normalización de una Base de DatosForma Normal Boyce-Codd Una relación está en forma normal Boyce-

Codd (FNBC) si para toda dependencia funcional el determinante es una clave.

Para toda DF: A B , A es una clave. Si una relación está en FNC, está también

en 2FN, sin embargo lo inverso no es cierto. El criterio de FNBC es una versión

perfeccionada de la 3FN debida a Boyce y Codd.

Page 24: Normalización de una Base de Datos

Normalización de una Base de Datos Para transformar una relación que no está

en FNBC se procede de la siguiente forma: A partir de la relación a transformar se

forma una relación R1 eliminando los atributos dependientes (parte derecha) de cualquier DF que haga fallar el criterio.

Forme una nueva relación R2 con los atributos de la DF que hace fallar el criterio de FNBC y elija como clave el determinante

Page 25: Normalización de una Base de Datos

Normalización de una Base de Datos Si R1 o R2 no están en FNBC, se continúa

aplicando el proceso de descomposición hasta que todas las relaciones estén en FNBC.

Debido a que toda relación está, por definición, en 1FN y debido a que las relaciones en FNBC están siempre en 2FN, se cumple lo siguiente:

FNBC implica 2FN implica 1FN

Page 26: Normalización de una Base de Datos

Normalización de una Base de Datos Si se verifica que cada determinante en

cada relación es una clave de esa relación (criterio FNBC), entonces todas las relaciones están en primera, segunda y tercera forma normal.

Esto simplifica enormemente el proceso de normalización, pues ahora sólo se requiere comprobar un criterio.

Page 27: Normalización de una Base de Datos

Normalización de una Base de Datos El criterio para la 3FN es un poco más débil que el

criterio de FNBC, ya que no maneja dos casos de excepción: 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

relación está en FNBC entonces está también en 3FN, en el sentido de la dependencia transitiva, y está también en 2FN.

Page 28: Normalización de una Base de Datos

Normalización de una Base de DatosCuarta Forma Normal La 3FN es la forma ideal en lo referente a

dependencias funcionales. Existen otras formas normales ya que: Pueden existir otras dependencias en una base de

datos además de las dependencias funcionales, aunque estas últimas son las más habituales.

Las dependencias no funcionales más habituales son las dependencias multivaluadas.

Page 29: Normalización de una Base de Datos

Normalización de una Base de Datos Se dice que una relación 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 múltiples.

Este tipo de relaciones da lugar a una enorme duplicación de valores de datos a causa de las dependencias multivaluadas.

Page 30: Normalización de una Base de Datos

Normalización de una Base de Datos

Nombre Edad Asociación Materia

José Pérez 20 Deportes Derecho I

José Pérez 20 Estudiantes Derecho I

José Pérez 20 Deportes Matemáticas I

José Pérez 20 Estudiantes Matemáticas I

Page 31: Normalización de una Base de Datos

Normalización de una Base de Datos La aplicación de la 4FN debería 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.

Page 32: Normalización de una Base de Datos

Normalización de una Base de Datos Otras formas normales La normalización puede continuar dando

lugar a un mayor refinamiento en el diseño de una base de datos mediante la aplicación de más formas normales.

El interés teórico de este proceso tiene muy dudoso valor práctico.

La mayoría de productos comerciales no soportan formas normales superiores a FNBC