Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
1) DER 2) 4) TRIGGER Un trigger o un disparador en una Base de datos es un evento que se ejecuta automáticamente cuando se cumple una condición establecida al realizar una operación de inserción (INSERT), actualización (UPDATE) o borrado (DELETE). Este no puede ser ejecutado por el usuario sino que se almacena en una vista o en un evento en particular definido, se asocian a una tabla. La principal función de los trigger es contribuir a mejorar la gestión de la base de datos. Gracias a ellos muchas operaciones se pueden realizar de forma automática, sin necesidad de intervención humana, lo que permite ahorrar mucho tiempo. Existen diferentes tipos de disparadores, en función de las ejecuciones que realizan. ● Disparadores de fila: también llamados row triggers, son aquellos cuya ejecución se realiza a través de llamadas desde una tabla asociada al trigger. ● Disparadores de secuencia. También llamados statement triggers, son aquellos que se ejecutan sólo una vez, independientemente de la cantidad de veces que se cumplan las condiciones para su ejecución. Ejemplo de Trigger: Supongamos que tenemos una tabla donde se almacena el valor total de una venta, en caso de que un Producto reciba un update de precio, este “procedimiento almacenado” se ejecutará y calculará nuevamente el valor de venta. 5- ÍNDICES Los índices son usados para acelerar el proceso de consultas en SQL. Sin índices, un Sistema de Gestión de Bases de Datos, tiene que recorrer todos los registros en la tabla para recuperar los resultados deseados. Si queremos crear índices, la base de datos va a ese índice primero y luego recupera los correspondientes registros de tabla directamente. Hay dos tipos de Índices en SQL Server: ● Índices Agrupados: define el orden en el cual los datos son físicamente almacenados en una tabla. Los datos de las tablas pueden ser ordenados sólo en una forma, es decir, sólo puede haber un índice agrupado por tabla. En SQL, la restricción de llave primaria crea automáticamente un índice agrupado en esa columna en particular. La manera de ver los índices de tablas es yendo a “Object Explorer->Databases->Database_Name->Tables->Table_Name -> Indexes”. ● Índices no Agrupados: no ordena los datos físicos dentro de la tabla. Un índice no agrupado es agrupado en un solo lugar y los datos de la tabla son almacenados en otro lugar. Esto permite tener más de un índice no agrupado por tabla. Dentro de la tabla los datos serán ordenados por un índice agrupado, por dentro los datos del índice no agrupado son almacenados en un orden específico. El índice contiene valores de columna en los cuales el índice es creado y la dirección del registro a la que el valor de la columna pertenece. Ejemplos Índices: Cuando Creamos una tabla , si el id es “Primary key”, generará un índice ordenado de manera que los id quedarán en secuencia: de lo contrario si al generar la tabla, indicamos al id como “UNIQUE” generará un índice no ordenado y los valores de los id estarán mezclados 6- TRANSACCIONES Son unidades o secuencias de trabajo realizadas de forma ordenada y separada en una base de datos. Normalmente representan cualquier cambio en la base de datos, y tienen dos objetivos principales: ● Proporcionar secuencias de trabajo fiables que permitan poder recuperarse fácilmente ante errores y mantener una base de datos consistente incluso frente a fallos del sistema. ● Proporcionar aislamiento entre programas accediendo a la vez a la base de datos. Una transacción es una propagación de uno o más cambios en la base de datos, ya sea cuando se crea, se modifica o se elimina un registro. En la práctica suele consistir en la agrupación de consultas SQL y su ejecución como parte de una transacción. Propiedades ● Atomicidad: aseguran que todas las operaciones dentro de la secuencia de trabajo se completen satisfactoriamente. Si no es así, la transacción se abandona en el punto del error y las operaciones previas retroceden a su estado inicial. ● Consistencia: aseguran que la base de datos cambie estados en una transacción exitosa. ● Aislamiento: permiten que las operaciones sean aisladas y transparentes unas de otras. ● Durabilidad: aseguran que el resultado o efecto de una transacción completada permanezca en caso de error del sistema. Ejemplo Transacciones: https://programacion.net/articulo/transacciones_en_sql_server_299 BLOQUEO Los bloqueos de SQL Server son parte esencial del requisito de aislamiento y se utilizan para bloquear los objetos afectados dentro de una operación. En el momento en que los objetos están bloqueados, SQL Server no permitirá que otras operaciones lleguen a realizarse haciendo cambios en los datos que se guardan en los objetos afectados por el bloqueo que se realiza. Una vez liberado el bloqueo, al confirmar los cambios o al revertir los cambios al estado inicial, se podrán realizar otras operaciones que permitirán hacer los cambios de datos que se requieran. Es decir que cuando se realiza una operación, se antepone el bloqueo en un objeto, el resto de las operaciones que se requieren para dar el acceso al objeto serán forzadas a esperar hasta la liberación del bloqueo y que esa espera se registre con el tipo de espera correcto. Tipos de bloqueos ● Bloqueo exclusivo (X): este bloqueo asegurará que una página o fila se reserve exclusivamente para la operación que impuso el bloqueo compartido, siempre y cuando la operación mantenga el bloqueo. ● Bloqueo compartido (S): este bloqueo se lleva a cabo cuando se impone y reserva una página o fila para que esté disponible solamente en caso de lectura, lo cual significa que cualquier otra operación no podrá modificar el registro bloqueado mientras permanezca el bloqueo. ● Bloqueo de actualización (U): este bloqueo se parece a un bloqueo exclusivo, pero a diferencia del otro, este está diseñado para poder lograr ser más flexible. Se puede imponer un bloqueo de actualización en un registro que ya incluya un bloqueo compartido. ● Bloqueos de propósito (I): este bloqueo es un medio que se utiliza por una operación para poder informar de otra operación sobre la intención de obtener un bloqueo. El objetivo de dicho bloqueo es el de poder garantizar que los cambios realizados en los datos se ejecuten de manera correcta evitando que otra operación logre un bloqueo en el siguiente objeto realizado por orden jerárquico. Ejemplo de Bloqueo: Si dos empleados de una empresa están trabajando con un cliente X, estos no podrán acceder al mismo tiempo a la entidad gracias a los bloqueos que evitan errores. Caso 1: Empleado 1 quiere consultar el año de nacimiento del cliente pero el Empleado 2 justo estaba modificando alguno de los datos, si no existiera el bloqueo podría haber fallas graves.
Compartir