Modelo Relacional Normalización
Concepto El proceso de normalización consiste en aplicar a un modelo relacional un conjunto de normas que eviten la duplicidad y la perdida de integridad de los datos. Las formas normales existentes son: Primera Forma Normal (FN1) Segunda Forma Normal (FN2) Tercera Forma Normal (FN3) Forma Normal Boyce Codd (FNBC) Cuarta Forma Normal (FN4) Quinta Forma Normal (FN5)
Problemas causados por la redundancia Almacenamiento Redundante: Repetición de datos. Anomalías de Actualización: Puede no siempre actualizarse todas las copias de los datos y presentarse inconsistencias. Anomalías de Inserción: Puede que no siempre se pueda insertar cierta información, a no ser que no tenga ningún vinculo con ella. Anomalías de borrado: Puede que al borrar datos se pierda también información ligada a ella.
El Fin de los Diseños Conceptuales Proporcionar un conjunto de Esquemas de Relaciones y de Restricciones de Integridad (RI), que se puedan considerar cono un buen punto de partida para el diseño final de bases de datos. Las RI pueden refinan en cierta medida el modelo relacional de base de datos para evitar redundancia de datos.
Dependencias Funcionales (DF) Son un tipo de restricción de Integridad que generaliza el concepto de clave. Una DF es una asociación entre atributos que los convierte dependientes entre si. Ejemplo: Para el siguiente caso el atributo nombre depende funcionalmente de la cédula Cedula Nombre Sexo Jornada Horas/semana 2-000-0001 Marta Femenino 100% 40 2-000-0002 Carlos Masculino 100% 40 2-000-0003 Ana Femenino 50% 20
Formas Normales Dado un esquema de relación hay que tomar en consideración si es necesario descomponerlo en relaciones más pequeñas. De tomarse esta decisión debe ser por un previo análisis del comportamiento de los datos. Para lograr estas decisiones se han formado una serie de formas normales que utilizaremos como guía.
Primer Forma Normal (FN1) Esta primer forma normal se basa en la definición de las DF. Una relación se encuentra en FN1 si todos los campos contienen únicamente valores atómicos. Código Año Semestre Grupo Cupo IC-0001 2008 I 50 36 IC-0001 2008 I 51 24 IC-0001 2008 II 50 36 IC-0003 2009 I 50 24
Segunda Forma Normal (FN2) Una relación esta en FN2 si: Esta en FN1. Cada atributo no principal tiene dependencia funcional completa respecto de cada una de las claves. Es decir no se cumple cuando algún atributo no principal depende funcionalmente de algún subconjunto de la clave. Es principalmente de interés histórico.(se asumirá que si esta en FN1 también se encuentra en FN2)
Tercera Forma Normal (FN3) Se encuentra basada en el concepto de dependencia transitiva: Un esquema de relación se encuentra en FN3 si: Esta en FN2. No existe ningún atributo no principal que dependa transitivamente de alguna clave de R. Cédula Horas semanales Jornada Asistencia consejos 1-000-001 36 100% Si 1-000-002 20 50% No 1-000-003 42 100% Si
Forma Normal Boyce Codd (FNBC) Se dice que una relación se encuentra en FNBC si y solo si, todo determinante es una clave candidata. Código Año Semestre Grupo Cupo IC-0001 2008 I 50 36 IC-0001 2008 I 51 24 IC-0001 2008 II 50 36 IC-0003 2009 I 50 24
Cuarta Forma Normal (FN4) Una tabla se encuentra en 4FN si, y sólo si, para cada una de sus dependencias múltiples no funcionales, estas se relacionan únicamente a la llave primaria. ID_CI Código Nombre Carrera Créditos 1 IC-0001 Introducción a la programación Computación 4 2 IC-0002 Taller de programación Computación 4 3 IC-0003 Contabilidad 1 Administración 3 4 IC-0004 Bases de datos Computación 4 5 IC-0001 Introducción a la programación Computación 4
Quinta Forma Normal (FN5) No existen relaciones de dependencias no triviales que no siguen los criterios de las claves. Una tabla que se encuentra en la 4FN se dice que esta en la 5FN si, y sólo si, cada relación de dependencia se encuentra definida por las claves candidatas. ID_CI Código Nombre Carrera Créditos 1 IC-0001 Introducción a la programación Computación 4 2 IC-0002 Taller de programación Computación 4 3 IC-0003 Contabilidad 1 Administración 3 4 IC-0004 Bases de datos Computación 4 5 IC-0001 Introducción a la programación Computación 4