Normalización: ¿Cómo un diseñador puede generar una estructura de base de datos evitando ciertos problemas lógicos tales como redundancias o pérdida de información? Restringiendo los posibles valores que la base de dato pueda contener. ¿Qué es la normalización? Son una serie de reglas que involucra análisis y transformación de las estructuras de los datos en relaciones que exhiban propiedades únicas de consistencia, mínima redundancia y máxima estabilidad. Normalización: ¿Formas Normales? Se dice que una relación está en una determinada forma normal si satisface un cierto conjunto de restricciones . ¿Cómo? Sometiendo al esquema de relación a una serie de pruebas para certificar si pertenecen o no a una cierta forma normal ¿Cuántas FN? Formas Normales Codd (1972) definió la Primer Forma Normal (1FN), Segunda Forma Normal (2FN) y Tercera Forma Normal (3FN), Luego Boyce y Codd dieron una definición modificada de la 3FN a la cual se conoce también con el nombre de Forma Normal Boyce/Codd. Estas formas normales se basan en las dependencias funcionales entre los atributos de una relación. Más adelante Fagin definió una Cuarta Forma Normal (4FN), No hace mucho Fagin definió una Quinta Forma Normal (5FN), Con fundamentos en los conceptos de dependencias multivaluadas y dependencias de reunión, respectivamente. Normalización: La normalización de los datos puede considerarse como un proceso durante el cual los esquemas de relación insactifactorios se descomponen repartiendo sus atributos entre esquemas de relación más pequeños que poseen propiedades deseables Primer Forma Normal (1FN) Una relación está en 1FN si y solo si: todos los dominios de los atributos son simples y contienen solo valores atómicos. Un dominio es atómico si se considera que los elementos del dominio son unidades indivisibles. No existen grupos repetitivos. Primer Forma Normal (1FN) Dado el esquema de reación: Notas (LegAlumno, NombreAlumno, CodMat, Materia, FechaExamen, Tomo, Folio, Nota) Primer Forma Normal (1FN) LegAlumno 54 Mariana Paz 89 Pablo Lopez 35 NombreAlumno Ramon Goy Materia CodMat FechaExamen Tomo Folio Nota Algoritmos 17 12/03/03 34 235 2 Redes 23 11/03/03 34 232 5 Paradigmas 26 13/03/03 34 237 4 Redes 23 11/03/03 34 232 2 Algebra 11 10/03/03 34 230 6 Algebra 11 10/03/03 34 230 6 Sistemas 19 12/03/03 34 236 4 En el atributo NombreAlumno se guarda el nombre y apellido de los alumnos, por lo que no es atómico el dominio de los mismos, ya que podríamos necesitar el apellido solo, o el nombre solo. Por ello, se separa en dos campos, NomAl y ApellAl. Primer Forma Normal (1FN) LegAlumno 54 Mariana Paz 89 Pablo Lopez 35 NombreAlumno Ramon Goy Materia CodMat FechaExamen Tomo Folio Nota Algoritmos 17 12/03/03 34 235 2 Redes 23 11/03/03 34 232 5 Paradigmas 26 13/03/03 34 237 4 Redes 23 11/03/03 34 232 2 Algebra 11 10/03/03 34 230 6 Algebra 11 10/03/03 34 230 6 Sistemas 19 12/03/03 34 236 4 Existen grupos repetitivos, ya que cada alumno rinde varias materias, por lo que debemos eliminar dichos grupos repetitivos. Esto lo logramos combinando loa atributos LegAlumno y CodMat para formar la clave de la relación. Observese que no se incluye la fecha del exámen ya que, bajo este supuesto, los alumnos no pueden rendir la misma materia dos veces en una misma mesa de examen. Primer Forma Normal (1FN) LegAlumno CodMat NomAl ApellAl Materia FechaExamen Tomo Folio Nota 54 17 Mariana Paz Algoritmos 12/03/03 34 235 2 54 23 Mariana Paz Redes 11/03/03 34 232 5 89 26 Pablo Lopez Paradigmas 13/03/03 34 237 4 89 23 Pablo Lopez Redes 11/03/03 34 232 2 89 11 Pablo Lopez Algebra 10/03/03 34 230 6 35 11 Ramon Goy Algebra 10/03/03 34 230 6 35 19 Ramon Goy Sistemas 12/03/03 34 236 4 Segunda Forma Normal (2FN) Una relación está en 2FN, si y solo si: Está en 1FN, y Todos los dominios no clave son funciones completamente dependiente de la clave principal, es decir, sin dependencias parciales. Segunda Forma Normal (2FN) Siguiendo con nuestro ejemplo, podemos ver que NomAl y ApellAl dependen solo de LegAlumno, no de CodMat. A su vez, Materia depende de CodMat y no de LegAl. Estas dependencias parciales deben ser eliminadas, y se lo logra desdoblando la relación en tantas relaciones como sea necesario. En nuestro ejemplo quedaría una relación Alumnos, otra Materias, y Notas. El esquema de cada relación sería: Alumnos (LegAlumno, NomAl, ApellAl) Materia (CodMat, Materia) Notas (LegAlumno, CodMat, FechaExamen, Tomo, Folio, Nota) Segunda Forma Normal (2FN) Alumnos Materias LegAlumno NomAl ApellAl CodMat Materia 54 Mariana Paz 17 Algoritmos 89 Pablo Lopez 23 Redes 35 Ramon Goy 26 Paradigmas 11 Algebra 19 Sistemas Notas LegAlumno CodMat FechaExamen Tomo Folio Nota 54 17 12/03/03 34 235 2 54 23 11/03/03 34 232 5 89 26 13/03/03 34 237 4 89 23 11/03/03 34 232 2 89 11 10/03/03 34 230 6 35 11 10/03/03 34 230 6 35 19 12/03/03 34 236 4 Tercer Forma Normal (3FN) Una relación está en 3FN si y solo si: Está en 2FN, y Ningún dominio no clave es dependiente de cualquier otro dominio no clave. Esto se conoce con el nombre de dependencia transitiva. Tercer Forma Normal (3FN) En nuestro ejemplo, las relaciones ya están en 3FN. Para visualizar el concepto, ampliemos la tabla Alumnos, y pongamos en ella los datos personales de los mismos, es decir, modifiquemos el esquema de la relación. Alumnos (LegAlumnos, NomAl, ApellAl, DNI, Domic, CodPost, Localidad, etc…) Tercer Forma Normal (3FN) LegAlumno NomAl 54 Mariana Paz 23987456 3500 Resistencia … 89 Pablo Lopez 22435765 3600 Formosa … 35 Ramon Goy 23527486 3500 Resistencia … DNI CodPost Localidad … Como notamos al analizar los atributos de la relación, Localidad no depende de LegAlumno, sino de CodPost. Esta dependencia transitiva se soluciona descomponiendo la relación Alumnos en dos: ApellAl Alumnos y Ciudades. Sus respectivos esquemas de relación quedarían: Alumnos (LegAlumnos, NomAl, ApellAl, DNI, Domic, etc…) Ciudades (CodPost, Localidad) Alumnos Ciudades LegAlumno NomAl ApellAl DNI … CodPost Localidad 54 Mariana Paz 23987456 … 3500 Resistencia 89 Pablo Lopez 22435765 … 3600 Formosa 35 Ramon Goy 23527486 … Ejemplo Sea la siguiente relación, verificar si está en 3º Forma Normal; de no ser así pasarla a 3º FN FACTURA: NUMEROFACTURA -TIPOFACTURA RAZÓNSOCIALEMPRESA - CUITEMPRESA - IVAEMPRESA DGREMPRESA - DOMICILIOEMPRESA - LOCALIDADEMPRESA CODPOSTEMPRESA - TELEFONOEMPRESA - FECHAFACTURA - NOMBRECLIENTE - DOMICILIOCLIENTE LOCALIDADCLIENTE - TELEFONOCLIENTE - IVACLIENTE CUITCLIENTE - CONCEPTOSFACTURA CANTIDADCONCEPTOS -PRECIOUNITCONCEPTOS - IMPORTE (Cantidad x Precio)