La
Normalización
de Base de
Datos.
¿Qué significa
Normalización de Base
de datos?
¿Qué significa
Normalización de Base
de datos?
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
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.
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
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
Descripción breve de cada
regla
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.
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
Artículo Prov1 Prov2 Prov3
Maíz - Granja -
Arroz Casita - -
¡Incorrecta!
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
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).
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.
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.
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.
Ejemplo tabla Access para normalizarla. La tabla se llama alumnos
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.
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.
Asignaciones
Tabla alumnos luego del cambio
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.
Tabla Alumno
Tabla Personal
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.

Normalizacion de Base de datos,

  • 1.
  • 2.
    ¿Qué significa Normalización deBase de datos? ¿Qué significa Normalización de Base de datos?
  • 3.
    La normalización esel 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 redundantesdesperdician 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 aAspectosimportantes 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
  • 7.
  • 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 elseguimiento 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
  • 10.
    Artículo Prov1 Prov2Prov3 Maíz - Granja - Arroz Casita - - ¡Incorrecta!
  • 11.
    En lugar dehacer 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 enla 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 normalTerceraforma 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 esprá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.
  • 16.
    Ejemplo tabla Accesspara normalizarla. La tabla se llama alumnos
  • 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.
  • 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.
  • 20.
  • 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.
  • 22.
  • 24.
    Conclusión • Hemos llegadofinalmente 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.