Está en la página 1de 4

Jerez Nancy 4TO C INGENIERA EN SISTEMA

NORMALIZACIN DE BASES DE DATOS


Para otros usos de este trmino, vase Normalizacin (desambiguacin). El proceso de normalizacin de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad-relacin al modelo relacional. Las bases de datos relacionales se normalizan para:

Evitar la redundancia de los datos. Evitar problemas de actualizacin de los datos en las tablas. Proteger la integridad de los datos.

En el modelo relacional es frecuente llamar tabla a una relacin, aunque para que una tabla sea considerada como una relacin tiene que cumplir con algunas restricciones:

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.

TIPOS DE NORMALIZACIN
Existen 3 niveles de Normalizacin que deben respetarse para poder decir que nuestra Base de Datos, se encuentra NORMALIZADA, es decir, que cumple con los requisitos naturales para funcionar ptimamente y no perjudicar las Performance por mala arquitectura. Estas 3 reglas de Normalizacin se las conoce como las 3 FORMAS NORMALES. La Primera Forma Normal Esta primera Forma Normal, nos lleva a no repetir datos en nuestras tablas. Los famosos maestro detalle, deben aplicarse a la estructura de la tabla. Si nuestra tabla de ventas repite una y otra vez (por cada venta), el nombre, el domicilio y otros datos del Cliente, es que no hemos aplicado esta Normalizacin. Si tenemos una tabla clientes, en la tabla ventas, solo debera figurar el cdigo del cliente, para que el resto de los datos se puedan referenciar automticamente sin problemas y sin duplicar informacin. Lo mismo ocurrira en una tabla de detalle de ventas, si por cada item vendido colocamos el detalle del producto, con su descripcin , medidas, etcTendramos un desaprovechamiento de espacio y recursos muy grande. Para ello, tendremos nuestra tabla maestra de Productos y con solo grabar el cdigo de dicho producto en nuestra tabla de ventas, ser suficiente.

Jerez Nancy 4TO C INGENIERA EN SISTEMA

La Segunda Forma Normal (Si o si debe estar previamente aplicada la Primera Forma Normal) La Segunda Forma Normal nos habla de que cada columna de la tabla debe depender de la clave. Esto significa que todo un registro debe depender nicamente de la clave principal, si tuviramos alguna columna que se repite a lo largo de todos los registros, dichos datos deberan atomizarse en una nueva tabla. Veamos un ejemplo VentaID 1 1 1 1 2 ItemID 1 2 3 4 1 FechaVenta 01/12/2007 01/12/2007 01/12/2007 01/12/2007 02/12/2007 ClienteVenta 2 2 2 2 5 ProductoId 2334 3333 66643 21 3566 Cantidad 10 2 34 3 6

Ah tenemos un claro problema!!! Acaso no se busca NO REPETIR DATOS ?Si toda una venta tendr el mismo nmero de Cliente y la misma Fecha Por qu no crear una Tabla de MAESTRO DE VENTAS y que contenga esos 2 datos. Es evidente que la columna ClienteVenta y Fecha Venta se repetirn por cada venta realizada. Es por ello que proponemos el siguiente esquema VentaID 1 1 1 1 2 ItemID 1 2 3 4 1 ProductoId 2334 3333 66643 21 3566 Cantidad 10 2 34 3 6

Y ahora nuestra nueva tabla maestra VentaId 1 2 FechaVenta 01/12/2007 02/12/2007 ClienteVenta 2 5

Entonces, nuestra 2da Forma Normal nos habla de que cada columna de una tabla debe depender de toda la clave y no constituir un dato nico para cada grupo de registros. La Tercera Forma Normal En realidad si nos guiamos en el ejemplo de esta nota, ya no quedara normalizacin por aplicar y podramos decir que nuestro ejemplo cumple con las 3 formas normales, ya que la 3ra Forma Normal nos habla de que: 1. Ninguna Columna puede depender de una columna que no tenga una clave 2. No puede haber datos derivados En el 2do ejemplo hemos descubierto campos que dependan de la clave principal (VentaID) y que podran incluirse en una tabla maestra. Pero supongamos un ejemplo donde ciertas columnas no dependen de la clave principal y si dependen de una columna de nuestra tabla.

Jerez Nancy 4TO C INGENIERA EN SISTEMA

VentaI D 1 1 2

ItemID 1 2 1

ProductoID 3455 2455 5444

Cantidad 12 34 21

Descripcion

Medida

Proveedor 1 1 1

Impresora 122cm HP LJ8000 Scanner 33cm HP A3555 Mouse HP Wireless

Esto es muy normal encontrar en bases mal normalizadas. Vemos que los campos DESCRIPCIN, MEDIDA y PROVEEDOR no dependen de VENTAID y es por ello que no deberan estar dentro de la tabla de detalle de ventas, ya que dependen de PRODUCTOID. Aqu no se trata ya de eliminar grupos repedidos de datos (1ra Forma Normal) sino que ante la inclusin de una clave perteneciente a otra tabla, cualquier campo que sea subordinado de dicha clave debe estar en otra tabla y no en nuestra tabla detalle. Conclusin Finalmente si tomamos en cuenta que una tabla de detalle de venta (item x item) puede contener un volumen de millones de registros, al haberle aplicado las 3 formas normales nos estaremos ahorrando varios Gigabytes de tamao en dicha tabla y por supuesto mejorado notablemente la performance.

Tipos de Datos Los Tipos de Datos de una Base se dividen en dos estas son:

Las de Entrada

Se refiere a la informacin que entra al sistema por primera vez. Esta informacin podra dar pie a una modificacin de los datos persistentes, pero en principio no forma parte de la base de datos propiamente dicha.

Las de Salida

Se refiere a mensajes y resultados que emanan del sistema. Una vez ms, esta informacin podra derivarse de los datos persistentes, pero no se le considera en si como parte de la Base de Datos.

Jerez Nancy 4TO C INGENIERA EN SISTEMA

Tipos de datos primarios: Tipo de Datos BINARY Longitud 1 byte Descripcin

Para consultas sobre tabla adjunta de productos de bases de datos que definen un tipo de datos Binario. BIT 1 byte Valores Si/No True/False BYTE 1 byte Un valor entero entre 0 y 255. COUNTER 4 bytes Un nmero incrementado automticamente (de tipo Long) CURRENCY 8 bytes Un entero escalable entre 922.337.203.685.477,5808 y 922.337.203.685.477,5807. DATETIME 8 bytes Un valor de fecha u hora entre los aos 100 y 9999. SINGLE 4 bytes Un valor en punto flotante de precisin simple con un rango de -3.402823*1038 a 1.401298*10-45 para valores negativos, 1.401298*10-45 a 3.402823*1038 para valores positivos, y 0. DOUBLE 8 bytes Un valor en punto flotante de doble precisin con un rango de -1.79769313486232*10308 a -4.94065645841247*10-324 para valores negativos, 4.94065645841247*10-324 a 308 1.79769313486232*10 para valores positivos, y 0. SHORT 2 bytes Un entero corto entre -32,768 y 32,767. LONG 4 bytes Un entero largo entre -2,147,483,648 y 2,147,483,647. LONGTEXT 1 byte por De cero a un mximo de 1.2 gigabytes. carcter LONGBYNARY Segn se De cero 1 gigabyte. Utilizado para objetos necesite OLE. TEXT 1 byte por De cero a 255 caracteres. caracter