La Normalización de Base de datos


¿Que es la normalización?

La normalización de la base de datos es una técnica para organizar los datos en la base de datos. La normalización es un enfoque sistemático de descomposición de tablas para eliminar la redundancia de datos (repetición) y características indeseables como las anomalías de inserción, actualización y eliminación. Es un proceso de varios pasos que pone los datos en forma tabular, eliminando datos duplicados de las tablas de relaciones.



Ejemplo: Una biblioteca de vídeos mantiene una base de datos de películas alquiladas. Sin ninguna normalización, toda la información se almacena en una tabla como se muestra a continuación.

Nombre Completo
Dirección Física
Películas rentadas:
Categoria
Angeliz Pascal
A unas calles del teatro dosa
Piratas del caribe, Clash of the Titans.
Accion, accion
Adonis Cruz
Ave. Imbert casa 321
Cómo sobrevivir a mi ex
Romance
Genesis Jimenez
Conani
Clash of the titans
Accion

¿Para que se usa la normalización?


Un objetivo básico de la primera forma normal definida por Codd en 1970 era permitir que los datos fueran consultados y manipulados utilizando un "sub-lenguaje de datos universal" basado en una lógica de primer orden. (SQL es un ejemplo de dicho sub-lenguaje de datos, aunque Codd lo consideró seriamente defectuoso.)

Codd estableció los objetivos de normalización más allá de 1NF (primera forma normal):

Para liberar la colección de relaciones de dependencias de inserción, actualización y eliminación no deseadas.
Para reducir la necesidad de reestructurar la colección de relaciones, a medida que se introducen nuevos tipos de datos, y así aumentar la vida útil de los programas de aplicación.
Hacer que el modelo relacional sea más informativo para los usuarios.
Hacer que la recopilación de relaciones sea neutral para las estadísticas de consulta, donde estas estadísticas pueden cambiar a medida que pasa el tiempo.

 ¿Que es la Primera Forma Normal?

La primera forma normal (1NF) es una propiedad de una relación en una base de datos relacional. Una relación está en la primera forma normal si y solo si el dominio de cada atributo contiene solo valores atómicos (indivisibles), y el valor de cada atributo contiene solo un valor único de ese dominio. La primera definición del término, en un documento de la conferencia de 1971 por Edgar Codd, definió una relación para estar en la primera forma normal cuando ninguno de sus dominios tiene conjuntos como elementos. 

La primera forma normal es una propiedad esencial de una relación en una base de datos relacional. La normalización de la base de datos es el proceso de representar una base de datos en términos de relaciones en formas normales estándar, donde la primera normalidad es un requisito mínimo.

La primera forma normal impone estos criterios:

Elimina grupos repetidos  en tablas individuales
Crea una tabla separada para cada conjunto de datos relacionados 
Identifica cada conjunto de datos relacionados con una clave primaria


Ejemplo: 
Una tabla que rastrea la ubicación de los usuarios.

UsuarioUbicacion
A33.680565, 73.020199
B33.646104, 72.990074

Aquí, la ubicación de la columna se puede dividir en dos columnas, por lo que anula la propiedad de atomicidad.
UsuarioLatitudLongitud
A33.68056573.020199
B33.64610472.990074

La tabla está ahora en 1NF porque las columnas tienen valores atómicos. Además, existe una clave.

¿Que es la segunda forma normal

La segunda forma normal (2NF) es una forma normal utilizada en la normalización de la base de datos. ... Una relación está en la segunda forma normal si cumple los dos requisitos siguientes: Está en la primera forma normal. No tiene ningún atributo no primo que sea funcionalmente dependiente de cualquier subconjunto apropiado de cualquier clave candidata de la relación.
Resultado de imagen para What is the second normal way example

Ejemplo: Segunda forma normal:
Una relación está en la segunda forma normal si está en 1NF y cada atributo no clave depende completamente de la clave primaria.
Una universidad usa la siguiente relación:

Estudiante (IDSt, StudentName, IDProf, ProfessorName, Grade)

Los atributos IDSt e IDProf son las claves de identificación.
Todos los atributos tienen un solo valor (1NF).

Existen las siguientes dependencias funcionales:
1. El atributo ProfessorName depende funcionalmente del atributo IDProf (IDProf -> ProfessorName)
2. El atributo StudentName depende funcionalmente de IDSt (IDSt -> StudentName)
3. El atributo Grado es completamente funcional dependiendo de IDSt e IDProf (IDSt, IDProf -> Grado)

¿Que es la 3era Forma Normal?

La tercera forma normal (3NF) es una forma normal usada en la normalización de bases de datos. La 3NF fue definida originalmente por E.F. Codd1​ en 1971. La definición de Codd indica que una tabla está en 3NF si y solo si las tres condiciones siguientes se cumplen:

La tabla está en la segunda forma normal (2NF)
Ningún atributo no-primario de la tabla es dependiente transitivamente de una clave primaria
Es una relación que no incluye ningún atributo clave

Un atributo no-primario es un atributo que no pertenece a ninguna clave candidata. Una dependencia transitiva es una dependencia funcional X → Z en la cual Z no es inmediatamente dependiente de X, pero sí de un tercer conjunto de atributos Y, que a su vez depende de X. Es decir, X → Z por virtud de X → Y e Y → Z.

Resultado de imagen para third normal form database example

Ejemplo:

Una relación está en tercera forma normal si está en 2NF y ningún atributo sin clave depende transitivamente de la clave primaria.
Un banco usa la siguiente relación:

Proveedor (ID, Nombre, No.Cuenta, No.Banco, Banco)

La identificación del atributo es la clave de identificación. Todos los atributos tienen un solo valor (1NF). La tabla también está en 2NF.

Existen las siguientes dependencias:

1. Nombre, No.Cuenta, No.Banco dependen funcionalmente de la ID (ID -> Nombre, No.Cuenta, No.Banco)

2. El banco depende funcionalmente de Bank_Code_No (Bank_Code_No -> Bank)


Vendedor
ID
Nombre
No.Cuenta
Cod.Banco
Banco

Luego de la normalización:
Vendedor
ID
Nombre
No.Cuenta
Cod.Banco

Banco:
Cod.Banco
Banco



¿Que es la 4ta forma normal?

La cuarta forma normal (4FN) es una forma normal usada en la normalización de bases de datos. La 4FN se asegura de que las dependencias multivaluadas independientes estén correctas y eficientemente representadas en un diseño de base de datos. La 4FN es el siguiente nivel de normalización después de la forma normal de Boyce-Codd (FNBC).

Resultado de imagen para four normal form database example


Ejemplo:
Considere la tabla de la base de datos de una clase que tiene dos relaciones. R1 contiene la ID del estudiante (SID) y el nombre del estudiante (SNOMBRE) y R2 contiene la ID del curso (CID) y el nombre del curso (CNOMBRE).

T 
Tabla - R1(SID, SNOMBRE)
SID
SNOMBRE
S1
A
S2
B

Tabla – R2(CID, CNOMBRE)
CID
CNOMBRE
C1
C
C2
D

Cuando se realiza un producto cruzado, se obtienen dependencias de varios valores:

Tabla – R1 X R2
SID
SNOMBRE
CID
CNOMBRE
S1
A
C1
C
S1
A
C2
D
S2
B
C1
C
S2
B
C2
D

Que es la quinta forma normal?

La quinta forma normal (5FN), también conocida como forma normal de proyección-unión (PJ/NF), es un nivel de normalización de bases de datos diseñado para reducir redundancia en las bases de datos relacionales que guardan hechos multi-valores aislando semánticamente relaciones múltiples relacionadas. Una tabla se dice que está en 5NF si y sólo si está en 4NF y cada dependencia de unión (join) en ella es implicada por las claves candidatas.
Resultado de imagen para 5th normal form database example

Ejemplo:
Considere el esquema anterior, con un caso como "si una compañía fabrica un producto y un agente es un agente para esa compañía, entonces él siempre vende ese producto para la compañía". En estas circunstancias, la tabla ACP se muestra como:


Tabla – ACP

Agente
Company
Producto
A1
PQR
Tuercas
A1
PQR
Tornillos
A1
XYZ
Tuercas
A1
XYZ
Tornillos
A2
PQR

La relación ACP se descompone nuevamente en 3 relaciones. Ahora, la unión natural de las tres relaciones se mostrará como:

Tabla – R1
Agente
Compañía
A1
PQR
A1
XYZ
A2
PQR

Tabla – R2
Agente
Producto
A1
Tuerca
A1
Tornillo
A2
Tuerca

Tabla – R3
Compañía
Producto
PQR
Tuerca
PQR
Tornillo
XYZ
Tuerca
XYZ
Tornillo



El resultado de la unión natural de R1 y R3 sobre ‘Compañía’ y luego la unión natural de R13 y R2 sobre ‘Agente’ y ‘Producto’ será la tabla ACP.

Por lo tanto, en este ejemplo, se eliminan todas las redundancias y la descomposición de ACP es una descomposición de unión sin pérdidas. Por lo tanto, la relación está en 5NF ya que no viola la propiedad de la unión sin pérdida.

Comentarios

Entradas populares de este blog

Conceptos de SQL

Propiedades de Campos en Access