Normalización de bases de datos
Primera Forma Normal (1FN)
Segunda Forma Normal (2FN)
Tercera Forma Normal (3FN)
La regla de la información
La Normalización de bases de datos es un proceso que consiste en designar y aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relación al modelo relacional.
3. La normalización es el proceso de organizar
los datos en una base de datos.
Esto incluye la creación de tablas y que
establece relaciones entre aquellas tablas
según reglas diseñadas para proteger los
datos y hacer la base de datos que es más
flexible al eliminar redundancia y
dependencia incoherente
4. Los datos redundantes desperdician espacio en disco y
crean problemas de mantenimiento.
Si es necesario cambiar datos que aparecen en más de un
sitio, el cambio deberá ser exactamente igual en todos
estos sitios.
Por ejemplo, un cambio de 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 en ningún otro lugar de la base de datos.
5. Normalización
Objetivo elegir “buenas” estructuras de relaciones
Expresar formalmente las razones por las
que una agrupación de atributos
es mejor que otra
permitiendo
6. Aspectos importantes aAspectos importantes a
considerar a la hora de diseñarconsiderar a la hora de diseñar
1. Semántica de los atributos
2. Cada atributo debe contener un único
valor
3. Reducción de valores redundantes en las
tuplas
8. Primera Forma Normal
• Eliminar grupos repetidos en tablas individuales.
• Crear una tabla diferente para cada conjunto de
datos relacionados.
• Identificar cada conjunto de datos relacionados
mediante una clave principal.
No utilizar varios campos en una única tabla
para almacenar datos similares.
9. Para realizar el seguimiento de un artículo de inventario
que puede provenir de dos orígenes, un registro del
inventario puede contener campos para el Código de
proveedor 1 y el Código de proveedor 2.
¿Qué pasa si agregamos un tercer campo?
La solución no es agregar un campo; hace falta modificar
el programa y la tabla. En su lugar, almacene todas las
informaciones de proveedor en una tabla independiente
denominada Proveedores entonces en lugar de utilizar
los campos proveedor 1, proveedor 2, etc. Utilizamos un
solo campo CódigoProveedor relacionado a la tabla
proveedores
Ejercicio 1F
11. En lugar de hacer varios campos para los proveedores en una
sola tabla, hacemos otra tabla con el campo proveedor y
colocamos varios registros para los proveedores
Código Proveedor
145 Casita
154 Granja
Artículo Cod.Prov
Maíz 154
Arroz 145
12. Segunda forma normal
• Crear tablas independientes para
conjuntos de valores que se apliquen a
varios registros.
• Relacionar dichas tablas mediante una
clave externa.
Los registros tan sólo deben depender de la
clave principal de una tabla (si es
necesario, puede ser una clave
compuesta).
13. Ejemplo 2FN
piense en la dirección de un cliente en un sistema
de contabilidad.
La dirección es necesitada por la tabla Clientes
pero por las tablas Pedidos, Facturas y Cuentas
a cobrar también.
En lugar de almacenar la dirección del cliente
como una entrada diferente en cada tabla,
almacénela en un único lugar, ya sea en la tabla
Clientes o en una tabla de direcciones
independiente.
14. Tercera forma normalTercera forma normal
• Eliminar los campos que no dependan de la
clave. Los valores de un registro que no forman
parte de la clave de dicho registro no
pertenecen a esa tabla. En general, siempre que
el contenido de un grupo de campos se puede
aplicar a más de un registro de la tabla, debe
tener en cuenta la posibilidad de incluir dichos
campos en una tabla independiente.
15. EXCEPCIÓN: No es práctico siempre cumplir la forma
tercera normal teóricamente conveniente. Si tiene una
tabla Clientes y desea eliminar todas las posibles
dependencias entre campos, debe crear tablas
independientes para ciudades, códigos postales,
representantes de ventas, clases de clientes y cualquier
otro factor que pueda aparecer duplicado en varios
registros. En teoría, la normalización merece la pena. Sin
embargo, la utilización de un gran número de tablas
pequeñas puede perjudicar el rendimiento o superar la
capacidad de memoria y de archivos abiertos del sistema.
17. Primera forma normal: Ningún grupoPrimera forma normal: Ningún grupo
repetidorepetido
• Como cada alumno se encuentra inscrito
en varios cursos, estos deben aparecer
en una tabla independiente. Los campos
curso1, curso2, curso3 de los registros
anteriores indican que existe un problema
en el diseño.
18.
19. Segunda forma Normal: Elimine datosSegunda forma Normal: Elimine datos
redundantesredundantes
• Curso no depende del carné (que será
nuestra clave principal) por lo que la tabla
no esta en la segunda forma normal.
Debemos separar la información de los
cursos-alumnos a otra tabla. Haremos la
tabla asignaciones.
21. Tercera forma Normal: Eliminar datosTercera forma Normal: Eliminar datos
que no dependen de la claveque no dependen de la clave
• De el último ejemplo la oficina del asesor
depende funcionalmente del atributo
asesor. La solución es mover dicho
atributo de la tabla alumnos a la tabla
personal, como se muestra a
continuación.
24. Conclusión
• Hemos llegado finalmente a una base de
datos bien organizada en la cual podemos
actualizar o cambiar los datos
almacenados fácilmente y de una manera
ordenada sin alterar los demás registros.