Bases de datos (Normalización)

 
Sobre que es o se  trata la normalización de base de datos


La normalización es el proceso de organizar los datos de una base de datos. Se incluye la creación de tablas y el establecimiento de relaciones entre ellas según reglas diseñadas tanto para proteger los datos como para hacer que la base de datos sea más flexible al eliminar la redundancia y las dependencias incoherentes.
Los datos redundantes desperdician el espacio de disco y crean problemas de mantenimiento. Si hay que cambiar datos que existen en más de un lugar, se deben cambiar de la misma forma exactamente en todas sus ubicaciones. Un cambio en la dirección de un cliente es mucho más fácil de implementar si los datos sólo se almacenan en la tabla Clientes y no en algún otro lugar de la base de datos.

¿Qué es una "dependencia incoherente"? Aunque es intuitivo para un usuario mirar en la tabla Clientes para buscar la dirección de un cliente en particular, puede no tener sentido mirar allí el salario del empleado que llama a ese cliente. El salario del empleado está relacionado con el empleado, o depende de él, y por lo tanto se debería pasar a la tabla Empleados. Las dependencias incoherentes pueden dificultar el acceso porque la ruta para encontrar los datos puede no estar o estar interrumpida.

Hay algunas reglas en la normalización de una base de datos. Cada regla se denomina "forma normal". Si se observa la primera regla, se dice que la base de datos está en "primera forma normal". Si se observan las tres primeras reglas, se considera que la base de datos está en "tercera forma normal". Aunque otros niveles de normalización son posibles, la tercera forma normal se considera el nivel más alto necesario para la mayoría de las aplicaciones.

Al igual que con otras muchas reglas y especificaciones formales, en los escenarios reales no siempre se cumplen los estándares de forma perfecta. En general, la normalización requiere tablas adicionales y algunos clientes consideran éste un trabajo considerable. Si decide infringir una de las tres primeras reglas de la normalización, asegúrese de que su aplicación se anticipa a los problemas que puedan aparecer, como la existencia de datos redundantes y de dependencias incoherentes.

Cómo gestionar una base de datos relacionales

Lo primero es contar con un buen sistema de Gestión de Bases de Datos Relacionales (SGBD). Tomaremos como referencia uno de los más comunes y utilizados, a la par de sencillos y prácticos: Access. Los componentes que aparecen en una base de datos con este programa se corresponde con lo que nos interesa, pues es posible encontrar tablas, consultas, formularios, informes o módulos para que se realicen las funciones automáticamente y que supone un nivel más avanzado. Ahora bien, para una correcta gestión de una base de datos hay que tener en cuenta diversos consejos:

• Mantener el orden de los datos. Ello facilitará las consultas y por tanto se conseguirá una mayor eficacia. Para ordenador los datos dentro del programa Access, se entra en la opción de Vista Hoja de Datos y hacer clic sobre el campo correspondiente por el que se quiere comenzar a ordenar. El orden puede realizarse de forma ascendente o descendiente. Pueden ordenarse los datos por más de un campo. Para ello es recomendable colocar dicho campo por el que se quiere ordenar a la izquierda.

• Pensar en la facilidad para las consultas. Filtrar datos de una forma rápida y sencilla es fundamental para una buena gestión de bases de datos. En una consulta pueden destacarse tres aspectos: dónde (en qué tablas se quiere realizar la búsqueda); qué (qué datos exactamente quiere que se devuelva) o cómo (con qué apariencia se quieren los resultados). ¿Cómo pueden crearse consultas desde Access? Debe abrirse la base de datos previamente creada y optimizada. Se activa la cinta de opciones Crear. Después se hace clic en la opción Diseño de Consulta en el grupo Consultas. Una vez hecho esto, aparecerá la ventana Mostrar Tabla, desde la que se decidirá qué tablas formarán parte de la consulta. También podrán incluirse consultas, porque al crear una consulta ésta se comporta como si fuera una tabla. Para elegir el tipo de consulta, hay que seleccionar el grupo de opciones de Tipo de Consultas que ha aparecido en la ficha Diseño. Seguidamente, hay que hacer doble clic sobre los campos que se muestran en el conjunto de registros de la consulta o los que quieren usarse como criterio de selección de datos. En esencia, gestionar bien una base de datos es fácil, sólo que como buen administrativo uno debe ser ordenado y meticuloso. Con herramientas como ésta, lo que queda claro es que todo se hace más sencillo.




las 3 fases de la normalización de una base de datos

Fase 1: Crea tablas diferentes para cada valor, o identifica los campos repetidos en una tabla, colócalos en tablas diferentes y asocia una clave a cada uno. 

Fase 2: Crea las relaciones entre los valores de tablas diferentes. ... 

Fase 3: Marca las relaciones entre las columnas de clave principal y las columnas sin clave.

la forma en como Normalizar Bases de Datos

El proceso consta de etapas bien ordenadas llamadas formas normales (FN), se parte en la primera forma normal (1FN) pudiendo llegar hasta la sexta (6FN), aunque lo tradicional es llegar hasta la tercera forma normal.

Existe un gran contenido académico para la evaluación y terminología utilizada en las formas normales, en esta oportunidad optamos por explicar las primeras 3 formas normales de una manera sencilla y fácil de visualizar.

Ejemplo de Normalización de Base de Datos

Primera Forma Normal 1FN

Una tabla está en primera forma normal si y sólo si:

  1. No existen filas repetidas.
  2. Todos los atributos son atómicos. Un atributo es atómico si los elementos del dominio son simples e indivisibles.

Consideremos el siguiente ejemplo de una sábana de datos de atención a pacientes ¿Puede identificar su cumple las reglas 1FN?

Ejemplo de lo que NO ES una Normalización de Bases de Datos
Tabla 1 – Atenciones no normalizada

En la siguiente imagen se ve que está mal con la sábana

Identificación de una tabla de datos no Normalizada
Tabla 2 – Atenciones con errores

Las filas en rojo están repetidas, por lo cual es necesario dejar solamente 1 de ellas. Por otro lado, las celdas en naranjo cuentan con datos divisibles (no atómicos), para arreglar esto se identifica que estos número y correos están relacionados al rut de una persona por lo que se separan en una tabla independiente que mantenga una relación con los pacientes. El resultado final de 1FN es:

Normalización de Base de Datos - Ejemplo primera forma normal
Tabla 3 – Atenciones 1FN

Normalización de Base de Datos - Ejemplo de teléfonos en primera forma normal

Tabla 4 – Teléfonos 1FN

Normalización de Base de Datos - Ejemplo de correos en primera forma normal
Tabla 5 – Correos 1FN

Segunda Forma Normal 2FN

Una tabla está en segunda forma normal si y sólo si:

  1. Cumple con las reglas de 1FN.
  2. Todos los atributos que no forman parte de la Clave Principal tienen dependencia funcional completa de ella.

Las reglas definidas nos plantean las siguientes dudas: ¿Qué es una clave principal? ¿Qué es una dependencia funcional? Paso a explicar:

Clave Principal: Es un conjunto de 1 o más columnas que identifican de manera única (no repetida) a una fila.
Dependencia Funcional: Es una relación de implicancia entre 2 columnas, si cambio la independiente cambia la dependiente.

La identificación de la clave principal suele ir de la mano con la identificación de las columnas dependientes, la pregunta a utilizar es: ¿Si cambio el valor de esta columna, que otras columnas deben cambiar de valor? Un ejemplo de esto es el RUT, si cambio el rut cambia el nombre y la localidad del paciente, esto también aplica para la especialidad, si cambia la especialidad también cambia el área. El siguiente diagrama resumen la dependencia y claves de la tabla atenciones:

Análisis de dependencias de un Modelo entidad Relación
Diagrama 1 – Análisis de dependencia

Gracias a esta separación por claves y dependencias el resultado de las tablas normalizadas en 2FN es el siguiente:

Ejemplo de Tabla de Pacientes en segunda Forma Normal
Tabla 6 – Pacientes 2FN

Ejemplo de Tabla de Especialidades en segunda Forma Normal

Tabla 7 – Especialidades 2FN

Ejemplo de Atenciones en segunda Forma Normal
Tabla 8 – Atenciones 2FN

Tercera Forma Normal 3FN

Una tabla está en tercera forma normal si y sólo si:

  1. Cumple con las reglas de 2FN.
  2. No existen dependencias transitivas.

¿Qué es una dependencia transitiva? Es cuando una columna depende de otra que no es clave principal. Por ejemplo: SEMESTRE depende de MES y MES depende de FECHA. En el caso de nuestra tabla de pacientes, REGIÓN depende de LOCALIDAD y LOCALIDAD depende de RUT.  Para tratar esto se crea una tabla nueva con clave principal igual a la columna intermedia incluyendo los campos dependientes, es resultado de la 3FN es este:

Ejemplo de Tabla de Pacientes en Tercera Forma Normal
Tabla 9 – Pacientes 3FN

 

Ejemplo de Tabla de Regiones en Tercera Forma Normal
Tabla 10 – Localidades 3FN

El resultado final es una estructura renovada y óptima para realizar operaciones de bases de datos manteniendo la integridad de la información, con este diagrama se resume el nuevo esquema producto de 1FN, 2FN y 3FN.

Ejemplo de Normalización de Base de Datos aplicada a la Salud
Diagrama 2 – Resultado de normalización

Comentarios