martes, 21 de mayo de 2024

Normalización de bases de datos

 ¿Qué es una normalización?


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, las dependencias incoherentes y las ambigüedades.


Redundancia: Se llama así a los datos que se repiten continua e innecesariamente por las tablas de las bases de datos.

Ambigüedades: Datos que no clarifican suficientemente el registro al que representan.

Dependencias incoherentes: Cuando la ruta para encontrar los datos puede no estar o estar interrumpida.

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. Ej.: 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.

 

¿Por qué realizar la Normalización de una Base de Datos?

La Normalización de bases de datos se efectúa para lograr los siguientes objetivos:

  • Organizar los datos en grupos lógicos, de tal manera que cada grupo describa una pequeña parte del todo.
  •   Crear una relación de datos sólida.
  • Evitar la creación y actualización de relaciones y dependencias no deseadas entre datos.
  •  Minimizar la cantidad de datos duplicados almacenados en una base de datos.
  • Perfeccionar la organización de los datos de tal manera que, cuando se necesite introducir modificaciones, el cambio sólo deba aplicarse en un lugar.
  • Construir una base de datos a la que se pueda acceder de forma rápida y donde sea posible manipular los datos con la máxima eficiencia y sin comprometer su integridad.
  •  Prevenir borrados no deseados de datos.
  • Reforzar la seguridad de los datos, puesto que la normalización hace que los datos tengan una localización más precisa.
  • Optimizar el espacio de almacenamiento.
  • Ahorrar costes de mantenimiento.

·        




Requisitos y reglas

Requisitos de la normalización en Base de Datos

Para que las tablas de nuestra BD estén normalizadas deben cumplir las siguientes reglas:

  • Cada tabla debe tener su nombre único.
  •  No puede haber dos filas iguales.
  •  No se permiten los duplicados.
  • Todos los datos en una columna deben ser del mismo tipo.

Objetivos generales de la normalización:

A nivel base:

  • Elimina la repetición de grupos.
  • Minimizar redundancia.
  • Facilitar el mantenimiento de la base de datos.
  • Optimizar el rendimiento de la base.
A nivel Tabla :

  •  Cada tabla debe representar sólo un tipo de entidad (como una persona, un lugar, un pedido de cliente o un producto).
  • Eliminar repetición de columnas.
  • Definir una clave primaria por tabla.
  • Eliminar el uso de claves compuestas.
  • Separar los campos que no sean de esa tabla y/o clave primaria y ubicarlos en la tabla/entidad correcta.
  • Crear una nueva tabla para mover la repetición de grupos de la tabla original. (generación de catálogos)
  • Cada registro debe de tener una clave primaria única e irrepetible.

A Nivel Campo:

  •  Todos los campos deben depender de la clave primaria, ya sea directamente o indirectamente.
  • Cada campo debe de representar un hecho de la clave primaria y nada más.
  • Eliminar dependencias de los campos a claves no primarias.
  • Todos los campos deben contener un único valor.
  • Todos los valores de cada campo deben tener el mismo tipo de dato.



------------------------------------------------------- 

·


Formas normales 

Para normalizar una base de datos existen principalmente 3 reglas, las cuales se deberían cumplir para evitar redundancias e incoherencias en las dependencias. A estas reglas se les conoce como "Forma normal" qué va de la 1 a la 3 y si la base de datos cumple con cada regla se dice que está en la "primera o segunda o tercera forma normal"

Aunque son posibles otros niveles de normalización, la tercera forma normal se considera el máximo nivel necesario para la mayoría de las aplicaciones.

Primera forma normal

Se elimina los grupos repetidos de las tablas individuales.

Se crea una tabla independiente para cada conjunto de datos relacionados.

Se identifica cada conjunto de datos relacionados con una clave principal.

Segunda forma normal

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

Se relaciona estas tablas con una clave externa.

Tercera forma normal

Se elimina los campos que no dependan de la clave.


--------------------------------------------------------------


Ejemplo de normalización

Tabla sin normalizar

Nº alumno

Tutor

Despacho-Tut

Clase1

Clase2

Clase3

1022

García

412

101-07

143-01

159-02

4123

Díaz

216

101-07

143-01

179-04

 

Primera forma de normalizar

Puesto que un alumno tiene varias clases, estas clases deben aparecer en una tabla independiente. Otra forma de considerar este problema es con una relación de uno a varios y poner el lado de uno y el lado de varios en la misma tabla.

Nº alumno

Tutor

Despacho-Tut

Nº clase

1022

García

412

101-07

1022

García

412

143-01

1022

García

412

159-02

4123

Díaz

216

101-07

4123

Díaz

216

143-01

4123

Díaz

216

179-04

 

Segunda forma de normalizar

Observe los diversos valores de N.º clase para cada valor de N.º alumno en la tabla anterior. El N.º clase no depende funcionalmente de N.º alumno (la clave principal), de modo que la relación no cumple la segunda forma normal.Las tablas siguientes demuestran la segunda forma normal:

Alumnos

Nº alumno

Tutor

Despacho-Tut

1022

García

412

4123

Díaz

216

Registro

Nº alumno

Nº clase

1022

101-07

1022

143-01

1022

159-02

4123

101-07

4123

143-01

4123

179-04

 

Tercera forma de normalizar

En el último ejemplo, Despacho-Tut (el número de despacho del tutor) es funcionalmente dependiente del atributo Tutor. La solución es pasar ese atributo de la tabla Alumnos a la tabla Personal, según se muestra a continuación:

Alunmos

Nº alumno

Tutor

1022

García

4123

Díaz

 

Personal

Nombre

Sala

Dept.

García

412

42

Díaz

216

42




TRABAJO HECHO POR :
  1. EDUARDO LÓPEZ
  2. DENNIS CARILLO
  3. ISAAC AGUIRRE
  4. DANIEL ROMO
  5. FERNANDO YÁNEZ
DEBER DE BASE DE DATOS 






Normalización de bases de datos

  ¿Qué es una normalización? La  normalización  es el proceso de organizar los datos de una base de datos. Se incluye la creación de tabla...