Normalizacion y Triggers

6
 1FN 2 FN 3 FN FNB C 4 FN 5 FN NORMALIZACIÓN DE BASES DE DATOS  Y TRIGGERS 1. Fundamentos de la No mal!"a#!$n La normalización es el proceso de organizar los datos de una base de datos. Se inclue la creación de tablas el establecimiento de relaciones entre ellas seg!n reglas dise"adas tanto para proteger los datos como para #acer $ue la base de datos sea m%s &e'ible al eliminar la redundancia las dependencias inco#erentes. Los datos redundantes desperdician el espacio de disco crean problemas de mantenimiento. Si #a $ue cambiar datos $ue e'isten en m%s de un lugar( se deben cambiar de la misma )orma e'actamente en todas sus ubicaciones. *l proceso de normalización de bases de datos consiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso del modelo entidad+ relación al modelo relacional. Las bases de datos relacionales se normalizan para, *-itar la redundancia  de los datos. isminuir problemas de actualización de los datos en las tablas. /roteger la integridad de los datos. *n el modelo relacional es )recuente llamar tabla a una relación( aun$ue para $ue una tabla sea considerada como una relación tiene $ue cumplir con algunas restricciones, Cada tabla debe tener su nombre !nico. No puede #aber dos 0las iguales. No se permiten los duplicados.   odos los datos en una columna deben ser del mismo tipo. %. Fomas No males  Las )ormas normales son aplicadas a las tablas de una base de datos. ecir $ue una base de datos est% en la )orma normal N es decir $ue todas sus tablas est%n en la )orma normal N.

description

Este documento realiza un breve estudio sobre como organizar una base de datos para que este puada funcionar mas eficiente y ademas sobre los triggers que son procedimientos que se ejecutan al realizar una operación en una base de datos, estos son usados par mejor la administración de la Base de Datos.

Transcript of Normalizacion y Triggers

NORMALIZACIN DE BASES DE DATOS Y TRIGGERS1. Fundamentos de la NormalizacinLa normalizacin es el proceso de organizar los datos de una base de datos. Se incluye la creacin de tablas y el establecimiento de relaciones entre ellas segn reglas diseadas tanto para proteger los datos como para hacer que la base de datos sea ms flexible al eliminar la redundancia y las dependencias incoherentes.Los datos redundantes desperdician el espacio de disco y crean problemas de mantenimiento. Si hay que cambiar datos que existen en ms de un lugar, se deben cambiar de la misma forma exactamente en todas sus ubicaciones. El proceso denormalizacin debases de datosconsiste en aplicar una serie de reglas a las relaciones obtenidas tras el paso delmodelo entidad-relacinalmodelo relacional.Las bases de datos relacionales se normalizan para: Evitar laredundanciade los datos. Disminuir problemas de actualizacin de los datos en las tablas. Proteger laintegridadde los datos.En el modelo relacional es frecuente llamartablaa 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 dosfilasiguales. No se permiten los duplicados. Todos los datos en unacolumnadeben ser del mismo tipo.

2. Formas NormalesLas formas normales son aplicadas a las tablas de una base de datos. Decir que una base de datos est en la forma normalNes decir que todas sus tablas estn en la forma normalN.

Fig1. Diagrama de inclusin de todas las formas normales.

En general, las primeras tres formas normales son suficientes para cubrir las necesidades de la mayora de las bases de datos. El creador de estas 3 primeras formas normales (o reglas) fueEdgar F. Codd. 2.1. Primera forma normal (1FN) Elimine los grupos repetidos de las tablas individuales. Cree una tabla independiente para cada conjunto de datos relacionados. Identifique cada conjunto de datos relacionados con una clave principal.No use varios campos en una sola tabla para almacenar datos similares. Por ejemplo, para realizar el seguimiento de un elemento del inventario que proviene de dos orgenes posibles, un registro del inventario puede contener campos para el Cdigo de proveedor 1 y para el Cdigo de proveedor 2.

Qu ocurre cuando se agrega un tercer proveedor? Agregar un campo no es la respuesta, requiere modificaciones en las tablas y el programa, y no admite fcilmente un nmero variable de proveedores. En su lugar, coloque toda la informacin de los proveedores en una tabla independiente denominada Proveedores y despus vincule el inventario a los proveedores con el nmero de elemento como clave, o los proveedores al inventario con el cdigo de proveedor como clave.2.2. Segunda forma normal (2FN) Cree tablas independientes para conjuntos de valores que se apliquen a varios registros. Relacione estas tablas con una clave externa.Los registros no deben depender de nada que no sea una clave principal de una tabla, una clave compuesta si es necesario. Por ejemplo, considere la direccin de un cliente en un sistema de contabilidad. La direccin se necesita en la tabla Clientes, pero tambin en las tablas Pedidos, Envos, Facturas, Cuentas por cobrar y Colecciones. En lugar de almacenar la direccin de un cliente como una entrada independiente en cada una de estas tablas, almacnela en un lugar, ya sea en la tabla Clientes o en una tabla Direcciones independiente.2.3. Tercera forma normal (3FN) Elimine los campos que no dependan de la clave.Los valores de un registro que no sean parte de la clave de ese registro no pertenecen a la tabla. En general, siempre que el contenido de un grupo de campos pueda aplicarse a ms de un nico registro de la tabla, considere colocar estos campos en una tabla independiente. Por ejemplo, en una tabla Contratacin de empleados, puede incluirse el nombre de la universidad y la direccin de un candidato. Pero necesita una lista completa de universidades para enviar mensajes de correo electrnico en grupo. Si la informacin de las universidades se almacena en la tabla Candidatos, no hay forma de enumerar las universidades que no tengan candidatos en ese momento. Cree una tabla Universidades independiente y vinclela a la tabla Candidatos con el cdigo de universidad como clave.EXCEPCIN: cumplir la tercera forma normal, aunque en teora es deseable, no siempre es prctico. Si tiene una tabla Clientes y desea eliminar todas las dependencias posibles entre los campos, debe crear tablas independientes para las ciudades, cdigos postales, representantes de venta, clases de clientes y cualquier otro factor que pueda estar duplicado en varios registros. En teora, la normalizacin merece el trabajo que supone. Sin embargo, muchas tablas pequeas pueden degradar el rendimiento o superar la capacidad de memoria o de archivos abiertos.Puede ser ms factible aplicar la tercera forma normal slo a los datos que cambian con frecuencia. Si quedan algunos campos dependientes, disee la aplicacin para que pida al usuario que compruebe todos los campos relacionados cuando cambie alguno.2.4. Otras formas de normalizacinLa cuarta forma normal, tambin llamada Forma normal de Boyce Codd (BCNF, Boyce Codd Normal Form), y la quinta forma normal existen, pero rara vez se consideran en un diseo real. Si no se aplican estas reglas, el diseo de la base de datos puede ser menos perfecto, pero no debera afectar a la funcionalidad.3. Forma Normal (Base de Datos)En la teora debases de datos relacionales, lasformas normales(NF) proporcionan los criterios para determinar el grado de vulnerabilidad de una tabla a inconsistencias y anomalas lgicas. Cuanto ms alta sea la forma normal aplicable a una tabla, menos vulnerable ser a inconsistencias y anomalas. Cada tabla tiene una "forma normal ms alta" (HNF): por definicin, una tabla siempre satisface los requisitos de su HNF y de todas las formas normales ms bajas que su HNF; tambin por definicin, una tabla no puede satisfacer los requisitos de ninguna forma normal ms arriba que su HNF.Las formas normales son aplicables a tablas individuales; decir que una base de datos entera est en la forma normal n es decir que todas sus tablas estn en la forma normal n.Los recin llegados al diseo de bases de datos a veces suponen que la normalizacin procede de una manera iterativa, es decir un diseo1NFprimero se normaliza a2NF, entonces a3NF, etctera. sta no es una descripcin exacta de cmo la normalizacin trabaja tpicamente. Una tabla sensiblemente diseada es probable que est en 3NF en la primera tentativa; adems, si est en 3NF, tambin es extremadamente probable que tenga una forma HNF de5NF. Conseguir formas normales "ms altas" (sobre 3NF) usualmente no requiere un gasto adicional de esfuerzo por parte del diseador, porque las tablas 3NF usualmente no necesitan ninguna modificacin para satisfacer los requisitos de estas formas normales ms altas.Por ejemplo si tenemos "tem" con un id cdigo de producto y con los atributos descripcin y precio que son claves candidatas se tendra que crear otras tablas separando la tabla tem: ItemDesc {cdigo_producto*, Descripcin} ItemPrecio {cdigo_producto*, Precio}.

TRIGGER1. FundamentoUntrigger(o disparador) en unaBase de datos, es unprocedimientoque se ejecuta cuando se cumple una condicin establecida al realizar una operacin. Dependiendo de la base de datos, los triggers pueden ser de insercin (INSERT), actualizacin (UPDATE) o borrado (DELETE). Algunas bases de datos pueden ejecutar triggers al crear, borrar o editar usuarios, tablas, bases de datos u otros objetos.2. UsosSon usados para mejorar la administracin de la Base de datos, sin necesidad de contar con que el usuario ejecute la sentencia deSQL. Adems, pueden generar valores decolumnas, previene errores de datos, sincronizatablas, modifica valores de unavista, etc. Permite implementar programas basados en paradigma lgico (sistemas expertos, deduccin).3. Componentes PrincipalesLa estructura bsica de untriggeres:Llamada de activacin: es la sentencia que permite "disparar" el cdigo a ejecutar.Restriccin: es la condicin necesaria para realizar el cdigo. Esta restriccin puede ser de tipo condicional o de tipo nulidad.Accin a ejecutar: es la secuencia de instrucciones a ejecutar una vez que se han cumplido las condiciones iniciales.4. TiposExisten dos tipos de disparadores que se clasifican segn la cantidad de ejecuciones a realizar:Row Triggers(o Disparadores defila): son aquellas que se ejecutaran cada vez que se llama al disparador desde latablaasociada al triggerStatement Triggers(o Disparadores de secuencia): son aquellos que sin importar la cantidad de veces que se cumpla con la condicin, su ejecucin es nica.Pueden ser de sesin y almacenados; pero no son confiables.5. Efectos y CaractersticasNo aceptan parmetros o argumentos (pero podran almacenar los datos afectados en tablas temporales)No pueden ejecutar las operacionesCOMMIToROLLBACKpor que estas son parte de la sentencia SQL del disparador (nicamente a travs de transacciones autnomas)Pueden causar errores de mutaciones en las tablas, si se han escrito de manera deficiente.EjemploUn sencillo ejemplo (para SQL Server) sera crear unTriggerpara insertar un pedido de algn producto cuando la cantidad de ste, en nuestro almacn, sea inferior a un valor dado.CREATE TRIGGER Insertar_tablaBEFORE UPDATE ON tabla_almacenFOR ALL records IF NEW.producto < 100 THEN INSERT INTO tabla_pedidos(producto) VALUES ('1000'); END IF;SELECT DBO.POLVE.TEST END