Ver Mensaje Individual
  #12 (permalink)  
Antiguo 14/07/2002, 13:20
shahm
 
Fecha de Ingreso: agosto-2001
Mensajes: 53
Antigüedad: 22 años, 8 meses
Puntos: 0
Re: Para que normalizar???

Las ideas estan confusas...

Normaliar una bd no tiene nada que ver con el modelo relacional (que tiene mas de 30 años y por su puesto, no lo inventó oracle) pues se puede aplicar a cualquier modelo. La idea de normalizar responde simplemente a una mejora en el rendimiento de la bd. Me explico: Si tienes una tabla con los usuarios lo mas normal es que tenas un login un password y mas datos como el email, telefono, dirección, ... si el 90% de tus consultas solo acceden a esta tabla para validar a los usuarios, es decir, solo leen el login y el password, los accesos a esta tabla serán mas rápidos si solo contiene estos datos, entonces se normaliza: en una tabla estará el login y el password y en otra los demás datos.

Normalizar no reduce la redundancia de los datos sino que mas bien la hace augmentar. En el ejemplo anterior:

Tabla users:
login
password
email
telefono
...

Normalizando:
tabla users1:
login
password

tabla users2:
login
email
telefono
...

Puede verse que despues de normaliar el login aparece 2 veces mientras que antes solo aparece 1 vez --> mas redundancia. Hay que llegar a un equilibrio entre la redundancia y el rendimiento.

La redundancia de los datos a un nivel lógico se ve claramete en tiempo de analisis en el diagráma entidad-relación. Cuanto mas se normalice en el diagráma entidad-relación aparecen mas relaciones lo que hace augmentar la redundancia.
En la literatura hay 4 niveles de normalización, pero en la práctica depende de cada problema en sí mismo para decidir que tablas normalizas y como lo haces. Al normalizar tb aparecen (en un modelo relacional) mas claves primarias mas claves foraneas y seguramente acabarán habiendo mas indices. Todo esto son ficheros que la bd tiene que mantener, por eso hay que normalizar con cuidado para que el rendimiento realmente augmente. De hecho a un nivel físico las bd's actuales normalizan las tablas en función de unas estadísticas de accesos de forma transparente.