Transacciones en SQL Server Autor: Cesar Manivesa (manivesa)
|
|
- Francisco Javier Río Santos
- hace 7 años
- Vistas:
Transcripción
1 Transacciones en SQL Server Autor: Cesar Manivesa (manivesa) 1. Introducción 2. Sentencias para una transacción 3. Transacciones anidadas 4. Un par de ejemplos más 5. Transacciones y procedimientos almacenados. Transacciones en SQL Server Entre las habilidades de todo Sistema Gestor de Bases de Datos Relaciones tiene que estar la de permitir al programador crear transacciones. Y aunque el SQL Server nos permite trabajar con transacciones de manera sencilla y eficaz siempre hay dificultades... Introducción Una transacción es un conjunto de operaciones que van a ser tratadas como una única unidad. Estas transacciones deben cumplir 4 propiedades fundamentales comúnmente conocidas como ACID (atomicidad, coherencia, asilamiento y durabilidad). La transacción más simple en SQL Server es una única sentencia SQL. Por ejemplo una sentencia como esta: UPDATE Products SET UnitPrice=20 WHERE ProductName ='Chai' Es una transacción. (Como siempre ejemplos de Northwind) Esta es una transacción 'autocommit', una transacción autocompletada. Cuando enviamos esta sentencia al SQL Server se escribe en el fichero de transacciones lo que va a ocurrir y a continuación realiza los cambios necesarios en la base de datos. Si hay algún tipo de problema al hacer esta operación el SQL Server puede leer en el fichero de transacciones lo que se estaba haciendo y si es necesario puede devolver la base de datos al estado en el que se encontraba antes de recibir la sentencia. Por supuesto este tipo de transacciones no requieren de nuestra intervención puesto que el sistema se encarga de todo. Sin embargo si hay que realizar varias operaciones y queremos que sean tratadas como una unidad tenemos que crear esas transacciones de manera explícita. Sentencias para una transacción Como decíamos una transacción es un conjunto de operaciones tratadas como una sola. Este conjunto de operaciones debe marcarse como transacción para que todas las operaciones que la conforman tengan éxito o todas fracasen. La sentencia que se utiliza para indicar el comienzo de una transacción es ''. Si alguna de las operaciones de una transacción falla hay que deshacer la transacción en su totalidad para volver al estado inicial en el que estaba la base de datos antes de empezar. Esto se consigue con la sentencia 'ROLLBACK TRAN'. Si todas las operaciones de una transacción se completan con éxito hay que marcar el fin de una transacción para que la base de datos vuelva a estar en un estado consistente con la sentencia ''. Un ejemplo Trabajaremos con la base de datos Northwind en nuestros ejemplos. Vamos a realizar una transacción que modifica el precio de dos productos de la base de datos. USE NorthWind int --Declaramos una variable que utilizaremos para almacenar un posible código de error (1 de 7)17/09/ :27:14
2 --Iniciamos la transacción UPDATE Products SET UnitPrice=20 WHERE ProductName ='Chai' --Ejecutamos la primera sentencia SET --Si ocurre un error almacenamos su código --y saltamos al trozo de código que deshara la transacción. Si, eso de ahí es un --TO, el demonio de los programadores, pero no pasa nada por usarlo --cuando es necesario IF TO TratarError --Si la primera sentencia se ejecuta con éxito, pasamos a la segunda UPDATE Products SET UnitPrice=20 WHERE ProductName='Chang' --Y si hay un error hacemos como antes IF (@Error<>0) TO TratarError --Si llegamos hasta aquí es que los dos UPDATE se han completado con --éxito y podemos "guardar" la transacción en la base de datos TratarError: --Si ha ocurrido algún error llegamos hasta aquí THEN BEGIN PRINT 'Ha ecorrido un error. Abortamos la transacción' --Se lo comunicamos al usuario y deshacemos la transacción --todo volverá a estar como si nada hubiera ocurrido ROLLBACK TRAN END Como se puede ver para cada sentencia que se ejecuta miramos si se ha producido o no un error, y si detectamos un error ejecutamos el bloque de código que deshace la transacción. Hay una interpretación incorrecta en cuanto al funcionamiento de las transacciones que esta bastante extendida. Mucha gente cree que si tenemos varias sentencias dentro de una transacción y una de ellas falla, la transacción se aborta en su totalidad. Nada más lejos de la realidad! Si tenemos dos sentencias dentro de una transacción. USE NorthWind UPDATE Products SET UnitPrice=20 WHERE ProductName='Chang' UPDATE Products SET UnitPrice=20 WHERE ProductName='Chang' Estas dos sentencias se ejecutarán como una sola. Si por ejemplo en medio de la transacción (después del primer update y antes del segundo) hay un corte de electricidad, cuando el SQL Server se recupere se encontrará en medio de una transacción y, o bien la termina o bien la deshace, pero no se quedará a medias. El error está en pensar que si la ejecución de la primera sentencia da un error se cancelará la transacción. El SQL Server sólo se preocupa de ejecutar las sentencias, no de averiguar si lo hacen correctamente o si la lógica de la transacción es correcta. Eso es cosa nuestra. Por eso en el ejemplo que tenemos más arriba para cada sentencia de nuestro conjunto averiguamos si se ha producido un error y si es así actuamos en consecuencia cancelando toda la operación. (2 de 7)17/09/ :27:14
3 Transacciones anidadas Otra de las posibilidades que nos ofrece el SQL Server es utilizar transacciones anidadas. Esto quiere decir que podemos tener transacciones dentro de transacciones, es decir, podemos empezar una nueva transacción sin haber terminado la anterior. Asociada a esta idea de anidamiento existe una variable que tiene valor 0 si no existe ningún nivel de anidamiento, 1 si hay una transacción anidada, 2 si estamos en el segundo nivel de anidamiento. y así sucesivamente. La dificultad de trabajar con transacciones anidadas está en el comportamiento que tienen ahora las sentencias '' y 'ROLLBACK TRAN' ROLLBACK TRAN: Dentro de una transacción anidada esta sentencia deshace todas las transacciones internas hasta la instrucción SACTION más externa. : Dentro de una transacción anidada esta sentencia únicamente reduce en 1 el valor pero no "finaliza" ninguna transacción ni "guarda" los cambios. En el caso en el (cuando estamos en la última transacción) hace que todas las modificaciones efectuadas sobre los datos desde el inicio de la transacción sean parte permanente de la base de datos, libera los recursos mantenidos por la conexión y a 0. Como siempre un ejemplo es lo mejor para entender como funciona. CREATE TABLE Test (Columna int) TranExterna ahora es 1 INSERT INTO Test VALUES (1) TranInterna1 ahora es 2. INSERT INTO Test VALUES (2) TranInterna2 ahora es 3. INSERT INTO Test VALUES (3) TranInterna2 -- a Pero no se guarda nada en la base de datos. TranInterna1 -- a Pero no se guarda nada en la base de datos. TranExterna -- a Se lleva a cabo la transacción externa y todo lo que conlleva. SELECT * FROM Test Por cierto que lo de usar nombre para las transacciones es por claridad, puesto que como ya hemos dicho solamente reduce en 1 el valor Veamos ahora un ejemplo de transacción anidada con ROLLBACK TRAN TranExterna ahora es 1 INSERT INTO Test VALUES (1) TranInterna1 ahora es 2. INSERT INTO Test VALUES (2) TranInterna2 ahora es 3. INSERT INTO Test VALUES (3) ROLLBACK TRAN --@@TRANCOUNT es 0 y se deshace --la transacción externa y todas las internas (3 de 7)17/09/ :27:14
4 SELECT * FROM Test En este caso no se inserta nada puesto que el ROLLBACK TRAN deshace todas las transacciones dentro de nuestro anidamiento hasta la transacción más externa y además Supone este funcionamiento asimétrico del COMMIT y del ROLLBACK un problema? Pues la verdad es que no. La manera de tratar las transacciones por el SQL Server es la que nos permite programar de manera natural los anidamientos. De todos modos, si queremos ir un poco más lejos hay una cuarta sentencia para trabajar con transacciones: SAVE TRAN Save Tran Esta sentencia crea un punto de almacenamiento dentro de una transacción. Esta marca sirve para deshacer una transacción en curso sólo hasta ese punto. Por supuesto nuestra transacción debe continuar y terminar con un COMMIN TRAN (o los que hagan falta) para que todo se guarde o con un ROLLBACK TRAN para volver al estado previo al primer. TranExterna ahora es 1 INSERT INTO Test VALUES (1) TranInterna1 ahora es 2. INSERT INTO Test VALUES (2) SAVE TRAN Guadada TranInterna2 ahora es 3. INSERT INTO Test VALUES (3) ROLLBACK TRAN Guadada -- se deshace lo hecho el punto guardado. --Ahora podemos decidir si la transacción se lleva a cabo --o se deshace completamente --Para deshacerla un ROLLBACK bastará como hemos visto --Pero para guardar la transacción hace falta a 0 TranInterna1 -- a 2. TranInterna1 -- a Pero no se guarda nada en la base de datos. TranExterna -- a Se lleva a cabo la transacción externa y todo lo que conlleva. SELECT * FROM Test Si no ponemos el nombre del punto salvado con SAVE TRAN al hacer un ROLLBACK TRAN se deshace la transacción más externa se pone a 0. Como podemos ver el uso de transacciones no es complicado, e incluso las transacciones anidadas si se tratan con cuidado son fáciles de manejar. Un par de ejemplos más Veamos otro par de ejemplos para dejar claro como funcionan las sentencias BEGIN, COMMIT y SAVE -- Primer y = 1 -- = 2 (4 de 7)17/09/ :27:14
5 -- Volvemos = 1 -- Pero no se guarda nada ni se hacen efectivos los posibles cambios -- Por = 0 -- Si hubiera cambios pendientes se llevan a la base de datos -- Y volvemos a un estado normal con la transacción acabada Uso del COMMIT -- Primer = 1 -- = 2 -- Como = 1 --Y como antes nada se guarda ROLLBACK TRAN -- Se cancela TODA la transacción. Recordemos que el COMMIT -- de antes no guardo nada, solo -- = 0 -- No vale para nada es 0 por el efecto del ROLLBACK Uso del ROLLBACK En cuanto al SAVE TRAN podemos recordarlo con el siguiente ejemplo: CREATE TABLE Tabla1 (Columna1 varchar(50)) INSERT INTO Tabla1 VALUES ('Primer valor') SAVE TRAN Punto1 INSERT INTO Tabla1 VALUES ('Segundo valor') ROLLBACK TRAN Punto1 INSERT INTO Tabla1 VALUES ('Tercer valor') SELECT * FROM Tabla1 Columna1 Primer valor Tercer valor (2 filas afectadas) Un ROLLBACK a un SAVE TRAN no deshace la transacción en curso ni simplemente cancela lo ocurrido desde el 'SAVE TRAN nombre' hasta su 'ROLLBACK TRAN nombre' Transacciones y procedimientos almacenados. Cuando trabajamos con procedimientos almacenados debemos recordar que cada procedimiento almacenado es una unidad. Cuando se ejecuta lo hace de manera independiente de quien lo llama. Sin embargo si tenemos un ROLLBACK TRAN dentro de un procedimiento almacenado cancelaremos la transacción en curso, pero si hay una transacción externa al procedimiento en el que estamos trabajando se cancelará esa transacción externa. Con esto no quiero decir que no se pueda usar, simplemente que hay que tener muy claras las 4 normas sobre las sentencias BEGIN, ROLLBACK y COMMIT que comentamos al principio de este artículo. Veamos como se comporta una transacción en un procedimiento almacenado llamado desde (5 de 7)17/09/ :27:14
6 una transacción. CREATE PROCEDURE Inserta2 --Uno INSERT INTO Tabla1 VALUES ('Valor2') ROLLBACK TRAN --Uno CREATE PROCEDURE Inserta1 --Dos INSERT INTO Tabla1 VALUES ('Valor 1') EXEC Inserta2 INSERT INTO Tabla1 VALUES ('Valor3') --Dos En principio parece que si ejecutamos el procedimiento 'Inserta1' el resultado sería: EXECUTE inserta1 SELECT * FROM tabla1 txt Valor1 Valor3 (2 filas afectadas) Pero lo que obtenemos es: EXECUTE inserta1 SELECT * FROM tabla1 Servidor: mensaje 266, nivel 16, estado 2, procedimiento Inserta2, línea 8 El recuento de transacciones después de EXECUTE indica que falta una instrucción COMMIT o ROLLBACK TRANSACTION. Recuento anterior = 1, recuento actual = 0. Servidor: mensaje 3902, nivel 16, estado 1, procedimiento Inserta1, línea 8 La petición SACTION no tiene la correspondiente SACTION. txt Valor3 Si analizamos estos mensajes vemos que se inserta la primera fila, se salta al segundo procedimiento almacenado y se inserta la segunda fila. Se ejecuta el 'ROLLBACK TRAN -Dos' del segundo procedimiento almacenado y se deshacen las dos inserciones porque este ROLLBACK cancela la transacción exterior, la del primer procedimiento almacenado. A continuación se termina el segundo procedimiento almacenado y como este procedimiento tiene un ' -Dos' y no tiene un COMMIT o un ROLLBACK (recordemos que el 'ROLLBACK TRAN -Dos' termina el 'BEGIN TRAN -Uno') se produce un error y nos avisa que el procedimiento almacenado termina con una transacción pendiente. Al volver al procedimiento almacenado externo se ejecuta el INSERT que inserta la tercera fila y a continuación el ' --Uno'. Aquí aparece otro error puesto que este ' -Uno' estaba ahí para finalizar una transacción que ya ha sido cancelada anteriormente. El modo correcto (6 de 7)17/09/ :27:14
7 Para que nuestras transacciones se comporten como se espera dentro de un procedimiento almacenado podemos recurrir al SAVE TRAN. Veamos como: CREATE PROCEDURE Inserta2 SAVE TRAN Guardado INSERT INTO Tabla1 VALUES ('Valor2') ROLLBACK TRAN Guardado CREATE PROCEDURE Inserta1 INSERT INTO Tabla1 VALUES ('Valor 1') EXEC Inserta2 INSERT INTO Tabla1 VALUES ('Valor 3') Ahora el 'ROLLBACK TRAN guardado' del segundo procedimiento almacenado deshace la transacción sólo hasta el punto guardado. Además este ROLLBACK no decrementa el ni afecta a las transacciones en curso. El resultado obtenido al ejecutar este procedimiento almacenado es: EXECUTE inserta1 SELECT * FROM tabla1 txt Valor 1 Valor 3 (2 filas afectadas) Una vez vistos estos ejemplos queda claro que no hay problema en utilizar transacciones dentro de procedimientos almacenados siempre que tengamos en cuenta el comportamiento del ROLLBACK TRAN y que utilicemos el SAVE TRAN de manera adecuada. Para mas información sobre transacciones: Más información en MICROSOFT En SQLTEAM podemos encontrar En CODEPROJECT tenemos Y en DOTNETJUNKIES (7 de 7)17/09/ :27:14
Sentencias complementarias + Disparadores
Base de Datos I Sentencias complementarias + Disparadores Objetivos: Elaborar sentencias especiales con diferentes usos y componentes. Introducción: Siempre hay tipos de consultas o transacciones especiales
Más detallesModelamiento y Diseño de Base de Datos
Modelamiento y Diseño de Base de Datos Sentencias complementarias + Disparadores Objetivos: Elaborar sentencias especiales con diferentes usos y componentes. Introducción: Siempre hay tipos de consultas
Más detallesTransacciones, copias de seguridad. Xochitl Clemente Parra Armando Méndez Morales
Transacciones, copias de seguridad Xochitl Clemente Parra Armando Méndez Morales Transacciones Las transacciones hablan de atomicidad. Atomicidad es el concepto que habla de un conjunto de cosas actuando
Más detallesRecuperación del Sistema
Recuperación del Sistema 1 Andrés Moreno S. Diagrama de Transición de Estados COMMIT y ROLLBACK puntos de confirmación BEGIN activo READ / WRITE END parcialmente confirmado COMMIT confirmado fallo fallo
Más detallesEl lenguaje de manipulación de datos (DML) es una parte fundamental de SQL.
GUIA DE LABORATORIO # 5 Nombre de la Practica: Manipulación de datos Lugar de ejecución: Centro de Computo MATERIA: Base de Datos II CICLO: 02-2012 I. OBJETIVOS ESPECIFICOS Qué el estudiante: Manipule
Más detallesBases de Datos Ejercicio Número 2 Bogotá, Diciembre 5 de 2013
Bases de Datos Ejercicio Número 2 Bogotá, Diciembre 5 de 203 Enunciado del ejercicio En los servidores de bases de asignados al curso: Sybase, MS SQL Server y Oracle, elaborar el ejercicio sobre aislamiento,
Más detallesPROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN. Actividad Tutorial de comandos para transacciones
DEXCELENCIA UNIVERSITARIA, FORTALEZA E MEXICO I Z U C A R D E M ATA M O R O S PROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN Actividad Tutorial de comandos para transacciones Como requerimiento parcial
Más detallesConceptos de Bases de Datos Relacionales Triggers
Conceptos de Bases de Datos Relacionales Triggers Trigger Un trigger es un procedimiento almacenado asociado con una tabla, el cual se ejecuta automáticamente cuando se modifica un dato de esa tabla Stored
Más detallesIntroducción a Transact-SQL
Introducción a Transact-SQL Introducción E lenguaje de programación Transact-SQL Tipos de instrucciones de Transact-SQL Elementos de la sintaxis de Transact-SQL El lenguaje de programación Transact-SQL
Más detallesTema: Disparadores Parte I.
Base de datos I. Guía 10 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos I Tema: Disparadores Parte I. Objetivo Utilizar la sintaxis de un disparador en SQL Server Implementar transacciones
Más detalles1. Se usará la Base de Datos llamada. 2. Borrar la tabla CtasBanc anterior y crearla: 5.1 Procedimientos y Funciones Almacenados SQL Server
SQL Server 1. Se usará la Base de Datos llamada LaConsentida. use LaConsentida 2. Borrar la tabla CtasBanc anterior y crearla: create table CtasBanc (IdCuenta int identity primary key, tipo char(10), saldo
Más detallesExamen de Bases de datos Grado de Ingeniería en Informática, Febrero, 2015
Examen de Bases de datos Grado de Ingeniería en Informática, Febrero, 2015 1) (3 puntos) El museo de la ciudad necesita gestionar las visitas guiadas de grupos y para ello se debe implementar una base
Más detallesExisten dos tipos de disparadores que se clasifican según la cantidad de ejecuciones a realizar:
Trigger Un trigger(o desencadenador) es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases de datos. Los triggers o disparadores
Más detalles6. PROGRAMACIÓN CON TRANSACT-SQL
6. PROGRAMACIÓN CON TRANSACT-SQL 6.1. Introducción. " # 6.2. Declaración y asignación de variables. $ " % & ' # ( % ) # (( ) *$+,$ " $ # &-' $ $. $" / # 0 1$,$2 DECLARE @limite money SET @limite = 10 SELECT
Más detallesUNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION
CICLO 01-2015 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION GUIA DE LABORATORIO Nº11 Nombre de la práctica: Implementación de Procedimientos almacenados y desencadenadores
Más detalles1. Reglas ACID: comprobar la propiedad Atomicidad, lo que se ejecuta en una transacción se ejecuta todo o nada, usando la tabla clientes.
Objetivos: o Transacciones o Gestión de concurrencia Preparación de la práctica: si en el boletín 04, ejercicio 6, se llegaron a crear las tablas de marcas y departamentos así como los usuarios y roles,
Más detallesLo primero que se llevó a cabo fue la creación del entorno. Esto se llevó a cabo por medio de un usuario con privilegios DBA:
3UiFWLFD364 3DVRV,QLFLDOHV&UHDFLyQGHO(QWRUQR Lo primero que se llevó a cabo fue la creación del entorno. Esto se llevó a cabo por medio de un usuario con privilegios DBA: &UHDFLyQGHOD7$%(63$&(868$5,26
Más detallesBASES DE DATOS AVANZADAS Transacciones en MYSQL
Ejercicio Transacciones mysql> CREATE TABLE innotest (campo INT NOT NULL PRIMARY KEY) TYPE = InnoDB; Query OK, 0 rows affected (0.10 sec) mysql> INSERT INTO innotest VALUES(1); Query OK, 1 row affected
Más detallesRecuperación de Fallos del Sistema
Recuperación de Fallos del Sistema Competencias específicas Proteger la información almacenada frente a fallos del sistema mediante las técnicas disponibles en los SGBDs. Justificar la necesidad de disponer
Más detallesPROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN MANUAL SINTAXIS DE LOS COMANDOS PARA UNA TRANSACCION BASES DE DATOS PARA APLICACIONES
DEXCELENCIA UNIVERSITARIA, FORTALEZA E MEXICO I Z U C A R D E M ATA M O R O S PROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN MANUAL SINTAXIS DE LOS COMANDOS PARA UNA TRANSACCION BASES DE DATOS PARA
Más detallesGUIA DE PROCEDIMIENTOS Y FUNCIONES ALMACENADOS EN MYSQL
GUIA DE PROCEDIMIENTOS Y FUNCIONES ALMACENADOS EN MYSQL Conceptos, historia y contexto http://dev.mysql.com/doc/refman/5.0/es/stored-procedures.html Los procedimientos almacenados y funciones son nuevas
Más detallesIntroducción al modelo de Datos. Qué vamos a aprender? Conceptos. Juan Luis Mora Blanco. Introducción a los modelos de datos 1
Juan Luis Mora Blanco. Introducción a los modelos de datos 1 Introducción al modelo de Datos Qué vamos a aprender?...1 Conceptos...1 Ejemplo 1. Cursos del Sexpe...2 Ventajas de las bases de datos...2 Introducción
Más detallesANEXO I NIVELES DE AISLAMIENTO
ANEXO I NIVELES DE AISLAMIENTO INDICE 1) DIRTY READ... 3 1.1) En ORACLE... 3 1.1.1) READ UNCOMMITTED... 3 1.1.2) READ COMMITTED... 3 1.2) En SQL SERVER... 4 1.2.1) READ UNCOMMITED... 4 1.2.2) READ COMMITED...
Más detallesImplementación de procedimientos almacenados
Implementación de procedimientos Introducción Introducción a los procedimientos Creación, ejecución, modificación y eliminación de procedimientos Utilización de parámetros en los procedimientos Ejecución
Más detallesLos procedimientos almacenados son nuevas funcionalidades de la versión de MySQL 5.0. Un procedimiento
PROCEDIMIENTOS ALMACENADOS Los procedimientos almacenados son nuevas funcionalidades de la versión de MySQL 5.0. Un procedimiento almacenado es un conjunto de comandos SQL que pueden almacenarse en el
Más detallesPROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN. actividad Transacciones en MySQL. como requerimiento parcial para acreditar la asignatura de
DEXCELENCIA UNIVERSITARIA, FORTALEZA E MEXICO I Z U C A R D E M ATA M O R O S PROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN actividad Transacciones en MySQL como requerimiento parcial para acreditar
Más detallesInteracción con el Servidor Oracle8. Copyright Oracle Corporation, 1998. All rights reserved.
5 Interacción con el Servidor Oracle8 Copyright Oracle Corporation, 1998. All rights reserved. Objetivos Al final de esta lección n usted podrá: Escribir correctamente una sentencia SELECT en PL/SQL Declarar
Más detalles5.1 Procedimientos y Funciones Almacenados. 5.2 Disparadores (Triggers).
Unidad 5 SQL Procedural 5.1 Procedimientos y Funciones. 5.2 Disparadores (Triggers). Taller Bases de Datos ISC Ing. Felipe Alanís González -ITD- 1 MySQL 1. Se usará la Base de Datos llamada LaConsentida.
Más detallesTRANSACCIONES, AISLAMIENTO Y CANDADOS. Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013
TRANSACCIONES, AISLAMIENTO Y CANDADOS Bases de Datos Ingeniería de Sistemas Universidad Nacional de Colombia 2013 Ejemplo de una cuenta corriente RETIRO Ingrese retiro Lea saldo del cliente A Si saldo
Más detallesCreando CRUD en PHP: operaciones básicas para la gestión de bases de datos
Creando CRUD en PHP: operaciones básicas para la gestión de bases de datos Cualquier portal web utiliza algún sistema de base de datos para almacenar la información que luego mostrará en sus páginas. Para
Más detallesCUBE, ROLLUP, GROUPING del SQL
CUBE, ROLLUP, GROUPING del SQL Qué preguntas solucionamos con CUBE y ROLLUP? Vamos a trabajar con la siguiente tabla por no complicar los ejemplos ni el código SQL. Además una tabla como esta aunque no
Más detallesSintaxis: CURSOR nombre_cursor[(param1 [IN] tipo1,... )] IS consulta ;
7. CONCEPTOS AVANZADOS DE CURSORES EXPLICITOS En este capítulo veremos algunas cosas bastante útiles respecto a los cursores explícitos, como pueden ser los cursores con parámetros (que nos permitirán
Más detallesAsignatura: Administración de Bases de Datos. Pedro P. Alarcón Cavero
Ingeniería Técnica en Informática Escuela Universitaria de Informática Universidad Politécnica de Madrid Asignatura: Administración de Bases de Datos Tema 5: Proceso de Transacciones Pedro P. Alarcón Cavero
Más detallesProcedimientos Almacenados
Procedimientos Almacenados CREATE PROC[EDURE] [ {@parámetro tipodatos} [= predeterminado] [OUTPUT] ] [,...n] [WITH { RECOMPILE ENCRYPTION } ] AS Sentencias SQL [...n] Una vez que
Más detallesCreación de una Base de datos
Creación de una Base de datos Para poder crear una Base de datos es necesario abrir phpmyadmin desde el menú de WampServer al cual se accede con clic derecho en el icono de WampServer o ingresando a la
Más detallesExamen de Ficheros y bases de datos ITIS Convocatoria de junio II PARCIAL
Examen de Ficheros y bases de datos ITIS Convocatoria de junio II PARCIAL ) (4,3 puntos) Considérese un fichero secuencial indexado con un índice numérico (con valores entre 0 y 65.535) con duplicados
Más detallesIniciación a Microsoft Excel. Definición y descripción de una hoja de cálculo
Iniciación a Microsoft Excel El programa que nos ocupará a continuación, Microsoft Excel, nos permite representar información de cualquier tipo en forma tabulada, así como realizar operaciones de cálculo
Más detallesTransacciones Curso de Bases de Datos
Transacciones Curso de Bases de Datos Por Elizabeth León Guzman, Ph.D. Profesora Ingeniería de Sistemas Grupo de Investigación MIDAS Transacciones Una transacción es una o más sentencias que se toman como
Más detallesEND; END; END; /* TRANSFER */ Propiedades de una transacción (ACID): Atómica: Todo/Nada : Se hace o no se hace, pero no se hace a medias.
Restauración Restauración, en un SBD, significa recobrar la BD en si misma, esto es, realmacenar la BD en un estado correcto después de que una falla ha hecho que el estado de esta sea incorrecto. Recuperación
Más detallesPara procesar instrucciones SELECT que devuelvan más de una fila, son necesarios cursores explicitos combinados con un estructura de bloque.
Base de datos II. Guía 8 1 Facultad: Ingeniería Escuela: Computación Asignatura: Base de datos II Tema: Cursores Objetivo Conocer la definición y utilización de los cursores Materiales Oracle 12 c Guía
Más detallesEl Lenguaje PL/SQL. Un lenguaje de propósito general orientado a la inclusión de sentencias SQL. Estructura del código PL/SQL.
Un lenguaje de propósito general orientado a la inclusión de sentencias SQL Estructura del código PL/SQL. Bloques: El Lenguaje PL/SQL sentencias PL/SQL Los ficheros terminan con el caracter
Más detallesModificación de datos
Modificación de datos Introducción Uso de transacciones Inserción de datos Eliminación de datos Actualización de datos Consideraciones acerca del rendimiento Uso de transacciones Iniciar transacciones
Más detallesPROCEDIMIENTOS ALMACENADOS
PROCEDIMIENTOS ALMACENADOS Un procedimiento almacenado es un conjunto de sentencias SQL y de control de flujo Procedimientos almacenados definidos por el usuario Son procedimientos definidos por el usuario
Más detallesSQL dinámico en Transact SQL
SQL dinámico en Transact SQL Transact SQL permite dos formas de ejecutar SQL dinamico(construir sentencias SQL dinamicamente para ejecutarlas en la base de datos): La instrucción EXECUTE - o simplemente
Más detallesTRIGGER LEONEL CADOSO ROMERO 1
TRIGGER Qué es un trigger o disparador o desencadenador para SQL server? Es una clase especial de procedimiento almacenado que se ejecuta automáticamente cuando se produce un evento en el servidor de bases
Más detallesPROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN. Actividad: Tutorial De Comandos De Transacciones. Bases De Datos.
DEXCELENCIA UNIVERSITARIA, FORTALEZA E MEXICO I Z U C A R D E M ATA M O R O S PROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN Actividad: Tutorial De Comandos De Transacciones Bases De Datos Que presentan:
Más detallesTEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL
TEMA 6: MODIFICACIÓN DE LA BASE DE DATOS EN SQL 5.6 MODIFICACIÓN DE LA BASE DE DATOS SQL posee comandos destinados también para modificar la base de datos, entre estos se tienen operaciones de borrado,
Más detallesUniversidad Autónoma de Chihuahua Coordinación General de Tecnologías de Información Departamento de Sistemas de Información
ESTANDARES DE GESTION DE BASES DE DATOS BASES DE DATOS 1 El nombre de la base de datos debe estar compuesto de solo sustantivos, en minúsculas con letra capital. En caso de ser compuesta por dos o más
Más detallesAdministración Base de Datos SQL
Administración Base de Datos SQL Profesor René Sandoval Ingeniero (E) Informática rene2160@gmail.com Introducción Además de DML, DDL y los tipos de datos, Transact-SQL (desde ahora T-SQL) tiene algunos
Más detallesEjercicios (1, 2,3) Carrera: Licenciatura en Informática. Materia: Base de Datos II. Nombre del Alumno: Flores Osorio Josué.
Ejercicios (1, 2,3) Carrera: Licenciatura en Informática Materia: Base de Datos II Nombre del Alumno: Grupo: 501 Semestre: Quinto Tabla de contenido Introducción... 3 Desarrollo... 4 Ejercicio No. 1...
Más detallesPROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN. Actividad Tutorial de comandos de transacciones
E Ohh disculpaa XCELENCIA UNIVERSITARIA, FORTALEZA DE MEXICO I Z U C A R D E M ATA M O R O S PROGRAMA ACADÉMICO DE TECNOLOGÍAS DE LA INFORMACIÓN Actividad Tutorial de comandos de transacciones Como requerimiento
Más detallesRecuperación. Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J.
Recuperación Bibliografía: Introducción a los Sistemas de Bases de Datos Date, C.J. Recuperación de transacciones Está vinculado a la noción de procesamiento de transacciones. Operaciones de SQL COMMIT
Más detallesBases de Datos 2: Procedimientos Almacenados, Funciones y Triggers. Tecnólogo en Informática, sede Paysandú Bases de Datos 2
Bases de Datos 2: Procedimientos Almacenados, Funciones y Triggers Tecnólogo en Informática, sede Paysandú Bases de Datos 2 Funciones Variables Declarar: DECLARE @ Asignar valor:
Más detallesTransacciones en SQL. Bases de Datos
Transacciones en SQL Bases de Datos 2017 Conceptos Generales Transacciones Implícitas/Explicitas ISO SQL: cualquier comando SQL al comienzo de una sesión o inmediato posterior al fin de una transacción
Más detallesPython y SQLite Por Rafael Hernampérez Martín
Python y SQLite Por Rafael Hernampérez Martín En el presente post vamos a aprender los conceptos básicos para desarrollar código en Python utilizando la base de datos SQLite. Se presupone que el lector
Más detallesUnidad 6. Procedimientos Almacenados y Disparadores
Unidad 6 Procedimientos Almacenados y Disparadores Disparadores (Triggers) Características Los disparadores solo ocurren cuando se presentan determinados eventos Los tipos de eventos permitidos suelen
Más detallesBases de Datos / Elementos de Bases de Datos 2011. Que es un Stored Procedure? Stored Procedures: Ventajas
Bases de Datos / Elementos de Bases de Datos 2011 Stored Procedures, Triggers y Transacciones en MySQL Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 1 Que es un Stored
Más detallesSQL: Vistas, Triggers, y Procedimientos Almacenados
SQL: Vistas, Triggers, y Procedimientos Almacenados Dr. Gerardo Rossel Bases de Datos 1C 2018 PostgreSQL Aclaración En estas diapositivas nos basaremos principalmente en PostgreSQL. Diferentes motores
Más detallesModelamiento y Diseño de Base de Datos
Modelamiento y Diseño de Base de Datos Procedimientos almacenados. Objetivos: Crear procedimientos almacenados para ser usados en el desarrollo de software. Introducción Uno de los procedimientos más usados
Más detallesMySQL por línea de comandos
MySQL por línea de comandos Acceso a un servidor MySQL y administración de la base de datos por línea de comandos. Es muy normal que utilicemos MySQL a través de páginas PHP y para administrar la base
Más detallesProcedimientos Almacenados Activadores (triggers) Curso Bases de Datos
Procedimientos Almacenados Activadores (triggers) Curso Bases de Datos Por Elizabeth León Guzmán, Ph.D. Profesora Ingeniería de Sistemas Grupo de Investigación MIDAS U. Nacional Prof. Elizabeth León Bases
Más detallesIntroducción a phpmyadmin
Introducción a phpmyadmin, ejercicio http://idesweb.es/ 1 Introducción a phpmyadmin El propósito del siguiente ejercicio es replicar, más o menos, la base de datos utilizada en los videos de introducción
Más detallesTriggers en PL/SQL. Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia
Triggers en PL/SQL Jonathan Medina Gómez Facultad de Ingeniería Universidad de Antioquia Triggers (Disparadores) Los triggers son bloques PL/SQL que se ejecutan de manera implícita cuando se están manipulando
Más detallesBases de Datos Relacionales con Base de OpenOffice y consultas SQL para Tecnología de la Información.
Bases de Datos Relacionales con Base de OpenOffice y consultas SQL para Tecnología de la Información. 1 Introducción Como ya sabes las bases de datos (BD) son la mejor forma de almacenar y trabajar con
Más detallesPython desde Cero: Bases de Datos
http://codehero.co/python-desde-cero-bases-de-datos/ Python desde Cero: Bases de Datos Hoy, vamos a aprender todo lo relacionado con el módulo MySQLdb, en otras palabras, aprenderemos a conectarnos a una
Más detallesA. Introducción. B. Los DATABASES TRIGGERS. PL/SQL en objetos de la base de datos. Oracle 11g - SQL, PL/SQL, SQL*Plus 271
PL/SQL en objetos de la base de datos A. Introducción Además de los bloques PL/SQL anónimos utilizados por SQL*PLus o por las herramientas de desarrollo (Oracle*FORMS, Oracle*Reports), se puede emplear
Más detalleshttp://www.conclase.net/c/devcpp.php?art=depurar Depurar programas
Depurar programas Siempre hay que tener en cuenta que los ordenadores hacen sólo aquello que nosotros les decimos que hagan: si los programas no funcionan es porque no los hemos diseñado bien o porque
Más detallesMANUALITO MS-SQL SERVER
MANUALITO MS-SQL SERVER Contenido 1. Crear Store Procedures en MS SQL Server... 1 2. Crear Triggers en MS SQL Server... 5 3. Crear Vistas en MS SQL Server... 9 1. Crear Store Procedures en MS SQL Server
Más detallesUnidad 4 Control de Transacciones
Unidad 4 Control de Transacciones e Instrucción COMMIT. 4.2 Instrucción ROLLBACK. 4.3 Niveles de aislamiento. 4.4 Grados de consistencia. ISC Ing. Felipe Alanís González -ITD- 1 Cada vez que se ejecuta
Más detallesBases de Datos / Elementos de Bases de Datos 2015
Bases de Datos / Elementos de Bases de Datos 2015 Stored Procedures, Triggers y Transacciones en MySQL Departamento de Ciencias e Ingeniería de la Computación Universidad Nacional del Sur 1 Stored Procedures
Más detallesMicrosoft Virtual Academy
Microsoft Virtual Academy Cursos técnicos gratuitos en línea Tome un curso gratuito en línea. http://www.microsoftvirtualacademy.com Aprendiendo a Programar Capítulo VIII La persistencia de datos Introducción
Más detallesChecks, Triggers y Excepciones en InterBase: validando desde la base de datos
Checks, Triggers y Excepciones en InterBase: validando desde la base de datos Por Alfonso Ricaño Bringas InterBase nos permite validar los valores que ingresan a los campos, mediante las restricciones
Más detallesTema 5. DML (Parte II)
Tema 5 DML (Parte II) IES Francisco Romero Vargas Departamento de Informática Tema 5. DML (II). Página 1 de 12 1. Introducción Se insta al alumno a navegar por el manual de referencia de MySQL con el fin
Más detallesIntroducción al SQL embebido
Introducción al SQL embebido Bases de Datos II 1 Índice 1. Introducción. 2. Estructura típica de un programa 3. Declaración de variables. 4. Utilización de SQL embebido. Sentencias básicas Uso de cursores
Más detallesRepaso. Laboratorio Informix. Stored Procedures. Ejemplo. Creación de stored procedures. Sql en un Procedimiento
Laboratorio Informix Stored Procedures Triggers Repaso A partir del ER, hicimos las tablas de la base de datos. Creamos en MySql las base de datos y las tablas Hicimos una aplicación que se comunica con
Más detallesT ema 2. S is tem as ges tores de bas es de datos
S is temas de Informac ión II T ema 2. S is tem as ges tores de bas es de datos Bibliografía: Elmasri y Navathe: Fundamentos de Sistemas de Bases de Datos 3ª edición, 2002 (Capítulo 2). Garcia-Molina,
Más detallesLaboratorio Informix. Stored Procedures Triggers
Laboratorio Informix Stored Procedures Triggers Repaso A partir del ER, hicimos las tablas de la base de datos. Creamos en MySql las base de datos y las tablas Hicimos una aplicación que se comunica con
Más detallesINSERCIÓN DE UN REGISTRO CON PHP Y MYSQL
INSERCIÓN DE UN REGISTRO CON PHP Y MYSQL Para poder realizar este ejercicio necesitamos la base de datos, para esto abriremos el gestor de bases de datos Mysql Empezaremos con crear la base de datos con
Más detallesProcedimientos almacenados y Triggers
Lección 12 Procedimientos almacenados y Triggers 152 Introducción Los procedimientos almacenados son conjuntos de sentencias en leguaje Transact SQL que pueden almacenarse en el propio servidor. Los procedimientos
Más detalles20461 Consultas en Microsoft SQL Server 2014
20461C 20461 Consultas en Microsoft SQL Server 2014 Fabricante: Microsoft Grupo: Bases de Datos Subgrupo: Microsoft SQL Server 2014 Formación: Presencial Horas: 25 Introducción Este curso proporciona a
Más detallesUNIVERSIDAD DON BOSCO
UNIVERSIDAD DON BOSCO Facultad: Ingeniería Escuela: Computación CATEDRA BASE DE DATOS I DOCENTE ING. LUIS ANAYA REPORTE INVESTIGACION COMPLEMENTARIA GUIA 10 INTEGRANTES HERNÁNDEZ DOÑO NORBERTO ANTONIO
Más detallesIntroducción a las sentencias de control
INSTRUCCIONES DE CONTROL CONTENIDOS 1. Introducción a las sentencias de control. 2. Instrucciones o sentencias condicionales: IF, IF-ELSE, SWITCH. 3. Instrucciones o sentencias repetitivas o iterativas:
Más detallesInterBase / Firebird: el uso de eventos
InterBase / Firebird: el uso de eventos Este artículo pretende dar una breve introducción acerca del uso de los eventos de Firebird e InterBase y como usarlos desde Delphi. Los eventos permiten a las aplicaciones
Más detallesOracle Database 12c SQL and PLSQL Fundamentals
Oracle Database 12c SQL and PLSQL Fundamentals DESCRIPCION MODULOS DE CAPACITACION Introducción Información general sobre 12c de base de datos Oracle y productos afines Descripción de los conceptos y la
Más detallesEXAMEN DE BASES DE DATOS 10/06/05 CUESTIONARIO
EXAMEN DE BASES DE DATOS 10/06/05 CUESTIONARIO 1. Supóngase que se han definido todas las restricciones de integridad como DEFERRABLE INITIALLY IMMEDIATE y sea la transacción T1 que se ejecuta sobre la
Más detallesdepartamento NUMBER(3) FK (DEPARTAMENTOS.CODIGO) salario NUMBER(3) NOT NULL fecha_alta DATE NOT NULL jefe NUMBER(5) FK (EMPLEADOS.
7.- MANIPULACION DE DATOS El lenguaje de manipulación de datos (DML) es parte esencial del SQL. Si queremos actualizar, insertar o eliminar datos de la base de datos, tenemos que ejecutar una sentencia
Más detallesFormato para prácticas de laboratorio
Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE ASIGNATURA NOMBRE DE LA ASIGNATURA LSC 2009-2 12001 Administración de Bases de Datos PRÁCTICA No. 6 LABORATORIO DE NOMBRE DE LA PRÁCTICA
Más detallesOracle Database 11g: Conceptos Fundamentales de SQL y PL/SQL Nuevo
Oracle University Contacte con nosotros: 902 302 302 Oracle Database 11g: Conceptos Fundamentales de SQL y PL/SQL Nuevo Duración: 5 Días Lo que aprenderá En este curso, los estudiantes aprenderán los conceptos
Más detallesGUIA DE TRIGGERS (Disparadores) EN MYSQL
GUIA DE TRIGGERS (Disparadores) EN MYSQL Conceptos, historia y contexto A partir de MySQL 5.0.2 se incorporó el soporte básico para disparadores (triggers). Un disparador es un objeto con nombre dentro
Más detalles//Sección de manejo de excepciones. Las rutinas de manejo de errores //aparecen aqui
PL/SQL - Oracle PL/SQL (Procedural Language/SQL) es una extensión de SQL, que agrega ciertas construcciones propias de lenguajes procedimentales, obteniendose como resultado un lenguaje estructural mas
Más detallesImplementación de desencadenadores
Implementación de desencadenadores Introducción Introducción a los desencadenadores Definición de desencadenadores Funcionamiento de los desencadenadores Ejemplos de desencadenadores Consideraciones acerca
Más detallesConexión JDBC. Tecnicatura Superior en Programación UTN-FRM Programación 3
Conexión JDBC La presente guía presenta las bases de la implementación de conexiones JDBC (Conector JAVA a base de datos). Los conocimientos básicos que se deben tener son: Java. Motores de Base de Datos.
Más detallesTriggers. Introducción
Triggers Dr. Héctor Saldaña Aldana Introducción Un trigger (o desencadenador o disparador) es una clase especial ilde procedimiento i almacenado que se ejecuta automáticamente cuando se produce un evento
Más detallesEscuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos. Triggers
Triggers Grupo de Ingeniería del Software y Bases de Datos Universidad de Sevilla octubre 2011 Introducción Objetivos de la práctica Conocer qué son los y para qué se utilizan Aprender a construir Consultar
Más detallesBase de Datos. Docente: Ing. Francisco Rodríguez BASE DATOS. Resultados. Internet. Requerimientos
UNIVERSIDAD NACIONAL DE TRUJILLO ESCUELA DE ING. INDUSTRIAL Base de Datos Resultados Internet Requerimientos BASE DATOS Docente: Ing. Francisco Rodríguez Base de Datos Tema 9: Procedimientos Almacenados
Más detallesTrabajando con Listas
Trabajando con Listas Hasta ahora hemos trabajado en base a los ejemplos para ir comprendiendo esta herramienta. Este es el primer caso en el que vamos a programar desde cero. El enunciado que queremos
Más detallesSe crean para conservar la integridad referencial y la coherencia entre los datos entre distintas tablas.
Triggers También llamados disparadores o desencadenadores, es un tipo de procedimiento almacenado que se ejecuta cuando se intenta modificar los datos de una tabla (o vista). Se definen para una tabla
Más detallesCapítulo 8. Construcción de guiones
Capítulo 8 Construcción de guiones ÍNDICE CAPÍTULO 8 Lenguajes de programación y bases de datos Procedimientos y funciones almacenados en MySQL Sintaxis y ejemplos Parámetros y variables Instrucciones
Más detallesUNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION
CICLO 01-2012 UNIVERSIDAD DON BOSCO FACULTAD DE ESTUDIOS TECNOLOGICOS ESCUELA DE COMPUTACION GUIA DE LABORATORIO Nº9 Nombre de la practica: Creación de Vistas, Procedimientos Almacenados y Disparadores
Más detallesProcedimientos almacenados con parametros de salida
Procedimientos almacenados con parametros de salida CREATE PROC[EDURE] [ {@parámetro tipodatos} [= predeterminado] [OUTPUT] ] [,...n] [WITH { RECOMPILE ENCRYPTION } ] AS Sentencias
Más detalles