Normalizacion de Base de Datos

18
Normalizaciones de Bases de Datos

description

Informacion elemento y definiciones in praxis

Transcript of Normalizacion de Base de Datos

  • Normalizaciones de Bases de Datos

  • Normalizacin

    La normalizacin es el proceso de organizar los datos en una base de datos. Esto incluye la creacin de tablas y que establece relaciones entre aquellas tablas segn reglas diseadas para proteger los datos y hacer la base de datos que es ms flexible al eliminar redundancia y dependencia incoherente. Los datos redundantes desperdician espacio en disco y crean problemas de mantenimiento. Si es necesario cambiar datos que aparecen en ms de un sitio, el cambio deber ser exactamente igual en todos estos sitios. Por ejemplo, un cambio de direccin de un cliente es mucho ms fcil de implementar si los datos slo se almacenan en la tabla Clientes y en ningn otro lugar de la base de datos.

  • Normalizacin

    Qu es una "dependencia incoherente"? Aunque para un usuario puede resultar intuitivo buscar la direccin de un determinado cliente en la tabla Clientes, es posible que no tenga sentido buscar en esa misma tabla el sueldo del empleado que atiende a dicho cliente. El salario del empleado est relacionado con el empleado (es decir, existe una dependencia entre ambos), por lo que debe moverse a la tabla Empleados. Las dependencias incoherentes pueden dificultar el acceso a los datos, ya que la ruta de acceso a los mismos puede estar rota o no encontrarse. Existen unas cuantas reglas para la normalizacin de bases de datos. Cada regla se denomina "forma normal" Si se cumple la primera regla, se dice que la base de datos est en la "primera forma normal" Si se cumplen las tres primeras reglas, se considera que la base de datos est en la "tercera forma normal" Aunque existen otros niveles de normalizacin, se considera que la tercera forma normal es el mximo nivel necesario para la mayora de las aplicaciones.

  • Primera forma normal

    Eliminar grupos repetidos en tablas individuales.

    Crear una tabla diferente para cada conjunto de datos relacionados.

    Identificar cada conjunto de datos relacionados mediante una clave principal.

    No utilizar varios campos en una nica tabla para almacenar datos similares.

  • Ejemplo Artculo Prov1 Prov2 Prov3

    Maz - Granja -

    Arroz Casita - -

    Cdigo Proveedor

    145 Casita

    154 Granja

    En lugar de hacer varios campos para los proveedores en una sola tabla, hacemos otra tabla con el campo proveedor y colocamos varios registros para los proveedores (tabla de en medio). Sustituimos la tabla superior de la izquierda por la tabla inferior.

    Artculo Cod.Prov

    Maz 154

    Arroz 145

  • Segunda forma normal

    Crear tablas independientes para conjuntos de valores que se apliquen a varios registros.

    Relacionar dichas tablas mediante una clave externa.

    Los registros tan slo deben depender de la clave principal de una tabla (si es necesario, puede ser una clave compuesta).

  • Ejemplo

    piense en la direccin de un cliente en un sistema de contabilidad. La direccin es necesitada por la tabla Clientes pero por las tablas Pedidos, Facturas y Cuentas a cobrar tambin. En lugar de almacenar la direccin del cliente como una entrada diferente en cada tabla, almacnela en un nico lugar, ya sea en la tabla Clientes o en una tabla de direcciones independiente.

  • Tercera forma normal

    Eliminar los campos que no dependan de la clave. Los valores de un registro que no forman parte de la clave de dicho registro no pertenecen a esa tabla. En general, siempre que el contenido de un grupo de campos se puede aplicar a ms de un registro de la tabla, debe tener en cuenta la posibilidad de incluir dichos campos en una tabla independiente.

    EXCEPCIN: No es prctico siempre cumplir la forma tercera normal tericamente conveniente. Si tiene una tabla Clientes y desea eliminar todas las posibles dependencias entre campos, debe crear tablas independientes para ciudades, cdigos postales, representantes de ventas, clases de clientes y cualquier otro factor que pueda aparecer duplicado en varios registros. En teora, la normalizacin merece la pena. Sin embargo, la utilizacin de un gran nmero de tablas pequeas puede perjudicar el rendimiento o superar la capacidad de memoria y de archivos abiertos del sistema.

  • Otras formas normales

    Otras formas de normalizacin

    Existe una cuarta forma normal, llamada tambin Forma normal de Boyce Codd (BCNF), y una quinta forma normal, pero pocas veces se consideran prcticas en un diseo. La omisin de estas reglas puede dar como resultado una tabla que no sea perfecta, pero no debera afectar a su funcionamiento

  • Haga esta tabla en Access para normalizarla. La tabla se llama alumnos

  • Primera forma normal: Ningn grupo repetido

    Como cada alumno se encuentra inscrito en varios cursos, estos deben aparecer en una tabla independiente. Los campos curso1, curso2, curso3 de los registros anteriores indican que existe un problema en el diseo.

  • Segunda forma Normal: Elimine datos redundantes

    Curso no depende del carn (que ser nuestra clave principal) por lo que la tabla no esta en la segunda forma normal. Debemos separar la informacin de los cursos-alumnos a otra tabla. Haremos la tabla asignaciones.

  • Asignaciones

    Tabla alumnos luego del cambio

  • Tercera forma Normal: Eliminar datos que no dependen de la clave De el ltimo ejemplo la oficina del asesor depende funcionalmente

    del atributo asesor. La solucin es mover dicho atributo de la tabla alumnos a la tabla personal, como se muestra a continuacin.

  • Tabla Alumno

    Tabla Personal

  • Normalizada

  • Hemos llegado finalmente a una base de datos bien organizada en la cual podemos actualizar o cambiar los datos almacenados fcilmente y de una manera ordenada sin alterar los dems registros.