Una transacción es una unidad de trabajo que se compone de una o más instrucciones SQL que realizan un conjunto de acciones relacionadas.
La transacción puede incluir varias instrucciones SQL, realizando cada una de ellas una tarea específica.
Para que un conjunto de acciones califique como una transacción, debe pasar la prueba ACID. ACID es el acrónimo comúnmente utilizado para referirse a los nombres en inglés de las cuatro características de una transacción (Atomic,Consistent, Isolated y Durable, respectivamente).
1. EQUIPO : Investigation Systems
Estudiantes : Aguilar Rafael Jaime
Diaz Guerrero Imer Hobet
CURSO : Base de Datos II
TEMA : TRANSACCIONES
DOCENTE : Marco Aurelio Porro Chulli
TRANSACCIONES
4. Definición
Una transacción es una unidad de
trabajo que se compone de una o más
instrucciones SQL que realizan un
conjunto de acciones relacionadas.
7. Consistencia
La base de datos debe ser consistente al
inicio y al final de la transacción
Todas las reglas que definen y limitan
los datos deben ser aplicadas a esos
datos como resultado de cualquier
cambio que ocurra durante la
transacción.
8. Aislamiento
Ningún usuario deberá ser capaz de
acceder a los datos inconsistentes durante
una transacción implementada por otro
usuario cuando los datos impactados por
esa transacción están en un estado
inconsistente.
9. Durabilidad
Una vez que los cambios hechos en una
transacción sean completados, esos cambios
deberán ser preservados, y los datos deberán
estar en un estado confiable y consistente,
incluso si ocurren errores de aplicación o de
hardware.
11. Transacciones Explícitas
Hay que indicar cuando se inician
(BEGIN TRANSACTION) y cuando
finalizan (COMMIT TRANSACTION), y
pueden albergar un conjunto de
instrucciones dentro de la misma
transacción.
12. Transacciones Implícitas
Este tipo de transacciones, se conocen
como transacciones "de Confirmación automática" y es
el comportamiento predeterminado de SQL Server,
donde ejecuta (o hace efectivo los cambios en los
ficheros de datos) por separado cada sentencia
Transact-SQL justo después de que se termine dicha
sentencia.
13. Transacciones de Ámbito de Lote
Una transacción implícita o explícita de Transact-
SQL que se inicia en una sesión de MARS (conjuntos
de resultados activos múltiples), que solo es
aplicable a MARS, se convierte en una transacción
de ámbito de lote. Si no se confirma o revierte una
transacción de ámbito de lote cuando se completa
el lote, SQL Server la revierte automáticamente.
15. Begin Transaction
Marca el punto de inicio de una transacción local
explícita. Las transacciones explícitas empiezan con la
instrucción BEGIN TRANSACTION y acaban con la
instrucción COMMIT o ROLLBACK.
16. Rollback Transaction
Revierte una transacción explícita o
implícita hasta el inicio de la
transacción o hasta un punto de
retorno dentro de la transacción.
17. Commit Transaction
Marca el final de una transacción correcta,
implícita o explícita. Si @@TRANCOUNT es 1,
COMMIT TRANSACTION hace que todas las
modificaciones de datos realizadas desde el
inicio de la transacción sean parte permanente
de la base de datos
19. En la BD Tienda, Realizar Procedimientos
Almacenados con Transacciones en la Tabla Producto
20. CREATE PROCEDURE sp_Inserta_Producto
@col1 CHAR(5),
@col2 VARCHAR(100),
@col3 DECIMAL(6,2),
@col4 INT,
@col5 VARCHAR(30),
@col6 VARCHAR(30)
AS
BEGIN TRAN
DECLARE @cod_mar CHAR(3)
DECLARE @cod_cat CHAR(4)
SELECT @cod_mar=codmarca FROM Marca WHERE nombremarca=@col5
SELECT @cod_cat=codcategoria FROM Categoria WHERE nombrecategoria=@col6
INSERT Producto VALUES(@col1,@col2,@col3,@col4,@cod_mar,@cod_cat)
IF @@ERROR<>0 GOTO verError
COMMIT TRAN
RETURN(0)
verError:
ROLLBACK TRAN
RETURN (-1)
Go
Insert
21. Update
CREATE PROCEDURE sp_Actualiza_Producto
@col1 CHAR(5),
@col2 VARCHAR(100),
@col3 DECIMAL(6,2),
@col4 INT,
@col5 VARCHAR(30),
@col6 VARCHAR(30)
AS
BEGIN TRAN
DECLARE @cod_mar CHAR(3)
DECLARE @cod_cat CHAR(4)
SELECT @cod_mar=codmarca FROM Marca WHERE nombremarca=@col5
SELECT @cod_cat=codcategoria FROM Categoria WHERE nombrecategoria=@col6
UPDATE Producto SET nombreproducto=@col2,preciounitario=@col3,existencia=@col4,idmarca=@cod_mar,
idcategoria=@cod_cat
WHERE codproducto=@col1
IF @@ERROR<>0 GOTO verError
COMMIT TRAN
RETURN(0)
verError:
ROLLBACK TRAN
RETURN (-1)
Go
22. DeleteCREATE PROCEDURE sp_Elimina_Producto
@col1 CHAR(7)
AS
BEGIN TRAN
DELETE FROM Producto WHERE codproducto=@col1
IF @@ERROR<>0 GOTO verError
COMMIT TRAN
RETURN(0)
verError:
ROLLBACK TRAN
RETURN (-1)
Go