NORMALIZACIÓN DE BASES DE DATOS El proceso de normalización de bases de datos, consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad – relación al modelo relacional. NORMALIZACIÓN DE BASES DE DATOS Las bases de datos relacionales se normalizan para : − − − Evitar la redundancia de los datos. Evitar problemas de actualización de los datos en las tablas Proteger la integridad de los datos. NORMALIZACIÓN DE BASES DE DATOS Las anomalías que se evitan al normalizar una base de datos son : − Anomalía de Inserción. − Anomalía de Borrado − Anomalía de Actualización. NORMALIZACIÓN DE BASES DE DATOS Sea el siguiente esquema relacional: NORMALIZACIÓN DE BASES DE DATOS Se presentaría Anomalía de Inserción como se muestra: NORMALIZACIÓN DE BASES DE DATOS Se presentaría Anomalía de Borrado como se muestra: NORMALIZACIÓN DE BASES DE DATOS Se presentaría Anomalía de Actualización como se muestra: PRIMERA FORMA NORMAL 1FN Una tabla está en Primera Forma Normal sólo si: − − − − Todos los atributos son atómicos. La tabla contiene una clave primaria. La tabla no contiene atributos nulos. Si no posee grupos repetitivos. PRIMERA FORMA NORMAL 1FN Grupo Repetitivo: Se refiere al atributo o conjunto de atributos que tiene(n) múltiples valores para cada tupla de la relación (tabla). Formas de eliminarlos: Repetir los atributos con un sólo valor para cada grupo repetitivo (no se recomienda). − Ubicarlos en una relación aparte, heredando la clave primaria de la relación en la que estaban. − PRIMERA FORMA NORMAL 1FN Ejemplo de grupo repetitivo: PRIMERA FORMA NORMAL 1FN Normalización de relación con grupo repetitivo: PRIMERA FORMA NORMAL 1FN Ejemplo: Dada la siguiente tabla, expresarla en Primera Forma Normal 1FN: PRIMERA FORMA NORMAL 1FN Ejemplo: En la tabla se observa que se podrían tener dos o más números de teléfonos para un cliente. Solución 1 Inviable, debido a que el campo teléfono no es atómico: PRIMERA FORMA NORMAL 1FN Ejemplo: Solución 2 Inviable, debido a que la tabla no debe contener atributos nulos: PRIMERA FORMA NORMAL 1FN Ejemplo: Solución 3 Inviable, debido a que representa un teléfono o un conjunto de números telefónicos: PRIMERA FORMA NORMAL 1FN Ejemplo: Diseño Correcto: SEGUNDA FORMA NORMAL 2FN Una tabla está en Segunda Forma Normal sólo si: − − Si está en Primera Forma Normal 1FN. Si no existen Dependencias Funcionales parciales. SEGUNDA FORMA NORMAL 2FN La 2FN se aplica a las relaciones cuyas claves primarias están compuestas por dos o más atributos. Para eliminar la dependencia parcial, se crean dos relaciones: una con atributos que son totalmente dependientes de la clave primaria y otra con atributos dependientes parcialmente de la clave, heredando la porción de la clave de la que dependen. SEGUNDA FORMA NORMAL 2FN Ejemplo de relación que no está en 2FN: SEGUNDA FORMA NORMAL 2FN Normalización de relación planteada a 2FN: SEGUNDA FORMA NORMAL 2FN Otro ejemplo: Tabla que no satisface 2FN: Clave Candidata? Empleado - Habilidad SEGUNDA FORMA NORMAL 2FN Ejemplo: Tabla expresada en 2FN: TERCERA FORMA NORMAL 3FN Una tabla está en Tercera Forma Normal sólo si: − − Si está en Segunda Forma Normal 2FN. Si no existen Dependencias Funcionales Transitivas. TERCERA FORMA NORMAL 3FN Aunque las relaciones en 2FN tienen menos redundancias que las relaciones en 1FN, todavía pueden sufrir anomalias de actualización. Para eliminar las dependencias transitivas, se eliminan los atributos con dependencia transitiva y se ubican en una nueva relación. La nueva relación hereda el(los) atributo(s) no clave del (los) que dependen. TERCERA FORMA NORMAL 3FN Ejemplo de relación que no está en 3FN: TERCERA FORMA NORMAL 3FN Normalización de relación planteada a 3FN: TERCERA FORMA NORMAL 3FN Otro ejemplo: Tabla que no satisface 3FN: Clave Candidata? Torneo - Año TERCERA FORMA NORMAL 3FN Ejemplo: Se divide tabla en dos para satisfacer 3FN: Llave foránea? Ganador FORMA NORMAL BOYCE-CODD Una tabla está en Forma Normal B-C sólo: − Si está en Tercera Forma Normal 3FN. − Si todo determinante es una clave candidata. Nota: Esta forma normal solo puede violarse si existe más de una clave candidata compuesta que tenga un atributo común. Determinante: Atributo(s) que determina(n) completamente a otro. FORMA NORMAL BOYCE-CODD Considere la siguiente relación: FORMA NORMAL BOYCE-CODD Ejemplo2: El siguiente esquema satisface 3FN, pero no satisface B-C (un estudiante tiene más de un tutor): Clave Candidata1? ID_Tutor - ID_Estudiante Clave Candidata2? Número de seguro social del tutor - ID_Estudiante Solución? Identificar al tutor de una sóla manera FORMA NORMAL BOYCE-CODD Ejemplo3: El siguiente esquema satisface 3FN, pero no satisface B-C: FORMA NORMAL BOYCE-CODD Ejemplo3: El esquema anterior corregido que satisface 3FN, y satisface B-C: