NORMALIZACIÓN:
Conjunto de reglas que sirven para ayudar a los diseñadores a desarrollar un esquema que minimice los problemas de lógica. Cada regla está basada en la que le antecede.
En términos simples, la normalización es el proceso de identificar el mejor lugar donde pertenecen los datos. Es un enfoque de diseño que minimiza la redundancia de datos, protege la integridad y optimiza las estructuras de datos mediante la colocación de los elementos de datos de manera sistemática y correcta en los grupos apropiados.
Existen tres niveles básicos de Normalización:
- Primera Forma Normal (1NF)
- Segunda Forma Normal (2NF)
- Tercera Forma Normal (3NF)
Existen cuatro niveles más de Normalización:
- Forma Normal Boyce-Codd (BCNF)
- Cuarta Forma Normal (4NF)
- Quinta Forma Normal (5NF) o Forma Normal de Proyección-Unión (PJNF)
- Forma Normal de Proyección-Unión Fuerte
- Forma Normal de Proyección-Unión Extra Fuerte
- Forma Normal de Dominio/Clave. (DKNF)
Tipos de Normalización |
PRIMERA FORMA NORMAL
Para que una tabla se encuentre en Primera Forma Normal debe cumplir las siguientes reglas:
- Todos los atributos son atómicos. (que no se puedan dividir)
- La tabla contiene una clave primaria.
- La clave primaria no contiene atributos nulos.
- No posee ciclos repetitivos.
- No debe de existir variación en el número de columnas.
Ejemplo 1:
Ejemplo 2:
Suponga que un diseñador principiante desea guardar los nombres y teléfonos de sus clientes.
Este diseño no está en Primera Forma Normal ya que en el campo Teléfono se puede dar el caso que un cliente tenga más de un número telefónico, una solución que se podría pensar es crear más campos como: Teléfono1, Teléfono2, Teléfono3. Pero esta tampoco es una solución ya que se crean campos que pertenecen al mismo dominio creando redundancia en la tabla, por tal motivo la forma más optima y que cumple con las condiciones de la 1NF es la siguiente:
SEGUNDA FORMA NORMAL
En primer lugar debe estar en 1NF, a continuación debe cumplir que si y solo si, dada cualquier clave candidata y cualquier atributo que no sea parte de la clave candidata, dicho atributo depende de toda la clave candidata en vez de solo una parte de ella.
Cuando una tabla 1NF no tiene ninguna clave candidata compuesta, la tabla está automáticamente en 2NF.
Ejemplo 1:
Empezando el análisis de esta tabla se tiene que se encuentra en 1NF. Para llegar a 2NF le falta cumplir ciertas condiciones como lo son las siguientes: la clave candidata en este caso son Empleado y Habilidad, de acuerdo con las reglas para la segunda forma normal todos los atributos que no sean clave candidata deben depender de toda la clave candidata. En este caso el atributo Lugar actual de trabajo no depende del atributo Habilidad solo del atributo Empleado. Esto crea redundancia de datos y hace a la tabla vulnerable a anomalías de actualización.
Una solución es 2NF es la siguiente:
Ejemplo 2:
En el ejemplo 2 se puede observar que el único atributo que dependen de la clave candidata Id_Empleado e Id_Departamento es el atributo Años por lo cual para normalizar a 2NF se crean dos tablas con los atributos que no tenían dependencia total de la clave candidata.
Ejemplo 1:
La tabla no cumple los requisitos para estar en 3NF ya que el atributo no primo Fecha de nacimiento del ganador tiene dependencia funcional transitiva al poder ser conocido mediante el atributo primo Ganador. Con lo cual esto podría causar anomalías en la tabla, para llegar a la 3NF quedaría de la siguiente forma:
Ejemplo 2:
Se aplica descomposición sin pérdidas para la dependencia que impide la 3NF, y obtenemos:
CONCLUSIÓN:
La normalización es un enfoque de diseño que minimiza la redundancia de datos, protege la integridad y optimiza las estructuras de datos; por lo general, una normalización razonable permite mejorar el rendimiento.
Ejemplo 1:
Empezando el análisis de esta tabla se tiene que se encuentra en 1NF. Para llegar a 2NF le falta cumplir ciertas condiciones como lo son las siguientes: la clave candidata en este caso son Empleado y Habilidad, de acuerdo con las reglas para la segunda forma normal todos los atributos que no sean clave candidata deben depender de toda la clave candidata. En este caso el atributo Lugar actual de trabajo no depende del atributo Habilidad solo del atributo Empleado. Esto crea redundancia de datos y hace a la tabla vulnerable a anomalías de actualización.
Una solución es 2NF es la siguiente:
Ejemplo 2:
En el ejemplo 2 se puede observar que el único atributo que dependen de la clave candidata Id_Empleado e Id_Departamento es el atributo Años por lo cual para normalizar a 2NF se crean dos tablas con los atributos que no tenían dependencia total de la clave candidata.
TERCERA FORMA NORMAL
Para estar en la tercera forma normal debe estar en 2NF y no deben existir atributos que no pertenezcan a la clave primaria que puedan ser conocidos mediante otro atributo que no forma parte de la clave primaria. No existen dependencia funcional transitiva.Ejemplo 1:
La tabla no cumple los requisitos para estar en 3NF ya que el atributo no primo Fecha de nacimiento del ganador tiene dependencia funcional transitiva al poder ser conocido mediante el atributo primo Ganador. Con lo cual esto podría causar anomalías en la tabla, para llegar a la 3NF quedaría de la siguiente forma:
Ejemplo 2:
Se aplica descomposición sin pérdidas para la dependencia que impide la 3NF, y obtenemos:
CONCLUSIÓN:
La normalización es un enfoque de diseño que minimiza la redundancia de datos, protege la integridad y optimiza las estructuras de datos; por lo general, una normalización razonable permite mejorar el rendimiento.
Enlace
complementario: https://support.microsoft.com/es-es/kb/283878
REFENCIAS:
- Nieves Camacho. (2015). Normalización de Bases de Datos Relacionales. Recuperado el 19 de noviembre de 2015 de http://docplayer.es/7728502-Normalizacion-de-bases-de-datos-relacionales.html
No hay comentarios:
Publicar un comentario