NORMALIZACIÓN DE UNA BASE DE DATOS
¿QUE ES LA NORMALIZACIÓN? •
Es el proceso de organizar de manera eficiente los datos dentro de una base de datos. esto incluye la creación de tablas y el establecimiento establecimiento de relaciones entre ellas según las reglas prediseñadas tanto para proteger los datos y la base de datos, como para hacer mas flexible flexi ble al eliminar la redundancia incoherente.
¿QUE ES LA NORMALIZACIÓN? •
Los objetivos principales de la normalización son: •
•
•
la eliminación de los datos redundantes, para disminuir el espacio ocupado en el disco y evitar problemas de mantenimiento; por ejemplo el cambio en la dirección de los clientes es mucho mas fácil de implementar si los datos se almacenan solo en la tabla clientes y en ninguna otra base de datos Evitar problemas de actualización de los datos en las tablas. Garantizar que las dependencias que tienen los datos entre ellos, sean presenten algún sentido.
¿QUE ES LA NORMALIZACIÓN? •
•
Estos puntos reducen la cantidad de espacio en la base de datos y aseguran que estos son almacenados de manera lógica. La normalización también se puede entender como el proceso mediante el cual se transforman datos complejos aun conjunto de estructuras de datos mas pequeñas, que además de ser mas simples y mas estables, son mas fáciles de mantener.
NORMALIZACIÓN DE UNA BASE DE DATOS •
Existen algunas reglas para la normalización de bases de datos. cada regla se denomina «forma normal». Si dentro de la base de datos se observa la primera regla se dice que esta en «primera forma normal». Si las tres primera reglas se observan, la base de datos se considera en «tercera forman normal». Aunque es posible tener otros niveles de normalización, la tercera forma normal es considerada el mas alto nivel necesario para la mayoría de las apicaciones.
GRADOS DE NORMALIZACIÓN Los principales objetivos son: Eliminar grupos de datos repetidos en tablas individuales. Crear una tabla separada para cada conjunto de datos relacionados. Identificar cada conjunto de datos relacionados con una llave primaria . •
•
•
GRADOS DE NORMALIZACIÓN: PRIMERA FORMA NORMAL Se dice que una tabla esta en primera forma normal si: Todos los atributos son atómicos. Un atributo es atómico si es indivisible. la tabla contiene una llave primaria única La llave primaria no contiene atributos nulos No debe existir variación en el numero de columnas. Los campos no llave deben identificarse por la llave. Debe existir una independencia del orden tanto en las filas como en la columnas , si los datos cambian de orden no deben cambiar sus significados. Esta forma normal elimina los valores repetidos •
•
•
•
•
•
GRADOS DE NORMALIZACIÓN: PRIMERA FORMA NORMAL •
•
No utilizar varios campos en una sola tabla para almacenar datos similares. Por ejemplo para seguimientos de un articulo del inventario que proviene de dos fuentes diferentes, el registro puede contener campos para el código del proveedor 1 y un código de proveedor 2. ¿Que sucede cuando se agrega un tercer proveedor? Agregar un campo no es la respuesta, ya que requiere de programación y modificación de las tablas y la necesidad de repetirlo cada vez que se agregue a un nuevo proveedor. En su lugar debería poner toda la información del proveedor en una tabla independiente denominada proveedores, y vincular el inventario con los proveedores por medio de una clave .
articulo
inventario
Código
articulo
Nombre
fecha
proveedor 1
cantidad
proveedor 2
articulo
articulo
Código
Código
Nombre
Nombre
proveedor1
inventario
articulo proveedor fecha
proveedor2 proveedor3
cantidad
proveedor
código nombre dirección
GRADOS DE NORMALIZACIÓN: SEGUNDA FORMA NORMAL •
Dependencia funcional. Una relación esta en 2fn si esta en 1fn y si los atributos que no forma parte de ninguna llave dependen de forma completa de la calve principal es decir no existen dependencias parciales.
GRADOS DE NORMALIZACIÓN: SEGUNDA FORMA NORMAL Sus principales objetivos son: Crear tablas separadas para aquellos conjunto de valores que se aplican a varios registros. Ejemplo ciudades, profesión. Relacionar estas tablas por medio de una llave primaria •
•
GRADOS DE NORMALIZACIÓN: SEGUNDA FORMA NORMAL •
•
Los registro no deben depender de nada que no sea una llave primaria. Ejemplo considerando la dirección de un cliente no solo se necesita en la tabla clientes, sino también para los pedidos envió, factura , cuentas por cobrar e incluso en las ordenes. En lugar de guardar la dirección del cliente como una entrada independiente en cada una de estas tablas se guarda en un lugar , ya sea tabla clientes o en una tabla de direcciones separada.
cliente
código nombre apellido teléfono dirección
factura
orden
N factura
N orden
Nombre cliente
Nombre cliente
dirección
dirección
teléfono
teléfono
precio
articulo
articulo
cantidad
fecha
fecha
factura
orden
N factura
N orden
Cod cliente
Cod cliente
precio
precio
articulo
articulo
fecha
fecha
GRADOS DE NORMALIZACIÓN: TERCERA FORMA NORMAL •
La tabla se encuentra en 3fn si es 2fn y no existe ninguna dependencia funcional transitiva entre los atributos que no son clave.
GRADOS DE NORMALIZACIÓN: TERCERA FORMA NORMAL Sus principales objetivos: Eliminar campos que no dependan de las llaves. Los valores de un registro que no forma parte de la llave de registro no tiene cabida en la tabla. •
Ejemplo, en una tabla que contiene los datos de los candidatos a un puesto, el nombre del candidato, nombre de la universidad a la que asistió y la dirección pueden estar incluidos. Pero existen muchas universidades. Si la información de la universidad se almacena en la tabla candidatos no hay manera de listar las universidades que no tengan candidatos. Lo mejor es crear una tabla candidatos con llave de código de la universidad.
OTRAS FORMAS DE NORMALIZACIÓN •
Cuarta forma normal, también llamada Boyce Codd Forma Normal (FNBC), y quinta forma normal, existen, pero rara vez se consideran en el diseño práctico. Haciendo caso omiso de estas reglas puede resultar en menos de diseño de base de datos perfecto, pero no debería afectar a la funcionalidad.
EJEMPLO DE NORMALIZACIÓN: 0NF CodLibro
Titulo
Autor
Editorial
NombreLector
FechaDev
1001
Variable compleja
Murray Spiegel
McGraw Hill
Pérez Gómez, Juan
15/04/2005
1004
Visual Basic 5
E. Petroustsos
Anaya
Ríos Terán, Ana
17/04/2005
1005
Estadística
Murray Spiegel
McGraw Hill
Roca, René
16/04/2005
1006
Nancy Oracle University Greenberg y Priya Nathan
Oracle Corp.
García Roque, Luis
20/04/2005
1007
Clipper 5.01
McGraw Hill
Pérez Gómez, Juan
18/04/2005
Ramalho
EJEMPLO DE NORMALIZACIÓN 1FN CodLibro
Titulo
Autor
Editorial
Paterno
Materno
Nombres
FechaDev
1001
Variable compleja
Murray Spiegel
McGraw Hill
Pérez
Gómez
Juan
15/04/2005
1004
Visual Basic 5
E. Petroustsos
Anaya
Ríos
Terán
Ana
17/04/2005
1005
Estadística
Murray Spiegel
McGraw Hill
Roca
René
16/04/2005
1006
Oracle University
Nancy Greenberg
Oracle Corp.
García
Roque
Luis
20/04/2005
1006
Oracle University
Priya Nathan
Oracle Corp.
García
Roque
Luis
20/04/2005
1007
Clipper 5.01
Ramalho
McGraw Hill
Pérez
Gómez
Juan
18/04/2005
1NF solo tener campos atómicos
EJEMPLO DE NORMALIZACIÓN 2FN CodLibro
Titulo
Autor
Editorial
1001
Variable compleja
Murray Spiegel
McGraw Hill
1004
Visual Basic 5
E. Petroustsos
Anaya
1005
Estadística
Murray Spiegel
McGraw Hill
1006
Oracle University
Nancy Greenberg
Oracle Corp.
1006
Oracle University
Priya Nathan
Oracle Corp.
1007
Clipper 5.01
Ramalho
McGraw Hill
CodLector
Paterno
Materno
Nombres
501
Pérez
Gómez
Juan
502
Ríos
Terán
Ana
503
Roca
504
García
René Roque
Luis
EJEMPLO DE NORMALIZACIÓN 2FN CodLibro
CodLector
FechaDev
1001
501 15/04/2005
1004
502 17/04/2005
1005
503 16/04/2005
1006
504 20/04/2005
1007
501 18/04/2005
Se crea una nueva tabla para mantener la información de los libros que están prestados
EJEMPLO DE NORMALIZACIÓN 3FN CodLi
Titulo
bro
1001
Autor
utor
Variable compleja 801
1004 Visual Basic 5 1005 Estadística 1006
CodA
1007 Clipper 5.01
Murray Spiegel 901
803 Nancy Greenberg 804
Editorial
itorial
802 E. Petroustsos
Oracle University
CodEd
McGraw Hill
902 Anaya 903 Oracle Corp.
Priya Nathan
806 Ramalho
Se crean tablas para cada entidad definida
EJEMPLO DE NORMALIZACIÓN 3FN CodLibro
codAutor CodLibro
1001 1004
codEditorial
801 1001
901
1004
902
1005
901
1006
903
1007
901
802
1005
801
1006
803
1006
804
1007
806
Se crean nuevas tablas para indicar las relaciones perdidas
EJEMPLO DE NORMALIZACIÓN 3FN CodLibro
CodLector
FechaDev CodLector
1001
501 15/04/2005
1004
Paterno
Materno
Nombres
501
Pérez
Gómez
Juan
502 17/04/2005
502
Ríos
Terán
Ana
1005
503 16/04/2005
503
Roca
1006
504 20/04/2005
504
García
1007
501 18/04/2005
René Roque
Luis
El resto de tablas no necesitan modificación