SlideShare una empresa de Scribd logo
1 de 4
Guía de práctica de laboratorio de: Administración de Base de Datos
Tercera Unidad
Práctica N° 08: Transacciones y Bloqueos
A. PRÁCTICA DE LABORATORIO
1. Restaurar la base de datos proporcionada “Northwind2.bak”.
2. Ejecutar el siguiente Script:
BEGIN TRAN
PRINT 'trancount value:'
PRINT @@trancount
PRINT 'Before update:'
SELECT ContactName FROM Customers WHERE CustomerID = 'GREAL'
UPDATE Customers SET ContactName = 'Howard Snyder_Updated' WHERE CustomerID
='GREAL'
PRINT 'After update:'
SELECT ContactName FROM Customers WHERE CustomerID = 'GREAL'
PRINT 'trancount value:'
PRINT @@trancount
-- COMMIT TRANSACTION
 En este momento, ¿se han confirmado los cambios efectuados con la instrucción UPDATE en
esta transacción? ¿Cómo puede determinar esto?
No, la transacción se debe completar con la instrucción COMMIT TRAN. La transacción sigue
estando activa y sigue manteniendo los bloqueos que haya adquirido. El valor de la variable global
@@trancount es 1, lo que indica que en esta sesión se ha enviado una instrucción BEGIN TRAN.
 ¿Podrían otras transacciones consultar o actualizar los datos modificados?
Otras transacciones no podrían consultar o modificar los datos modificados hasta que se haya
confirmado (o deshecho) la transacción.
3. Escriba una instrucción COMMIT TRANSACTION en la ventana de consulta y, después, resáltela y
ejecútela para completar la transacción y hacer que los cambios sean definitivos.
4. Resalte y ejecute una de las instrucciones SELECT de la tabla Customers para comprobar que ahora
sí se ha completado el cambio.
5. Ejecute el siguiente script:
BEGIN TRAN
Sección : 4292
Docente : Felipe Aliaga Cavero
Apellidos : ………………………..…………………..
Nombres : …………………………………………….
Fecha : 25/10/2017 Duración: 80 min
Tipo de práctica: Individual ( X ) Grupal ( )
Instrucciones: Desarrollar las actividades solicitadas.
PRINT 'trancount value:'
PRINT @@trancount
PRINT 'Before update:'
SELECT ContactName FROM Customers WHERE CustomerID = 'GREAL'
UPDATE Customers SET ContactName = 'Howard Snyder' WHERE CustomerID ='GREAL'
PRINT 'After update:'
SELECT ContactName FROM Customers WHERE CustomerID = 'GREAL'
PRINT 'trancount value:'
PRINT @@trancount
ROLLBACK TRAN
Print 'ROLLBACK issued'
SELECT ContactName FROM Customers WHERE CustomerID = 'GREAL'
PRINT 'trancount value:'
PRINT @@trancount
 ¿Se ha almacenado de forma permanente en la base de datos la modificación efectuada por la
instrucción UPDATE?
No. La transacción se ha cancelado, de modo que los cambios efectuados durante la transacción
se han deshecho.
 ¿Se ha completado la transacción?
Sí. La instrucción ROLLBACK TRAN completa la transacción y libera los bloqueos adquiridos por
la transacción. La consulta de la variable global @@trancount devuelve cero.
6. Cierre los scripts anteriores, y abra dos nuevas consultas, apuntando a la base de datos Northwind2.
En el primer script ejecute el procedimiento almacenado de sistema:
exec sp_lock
Describa los bloqueos activos.
7. En el segundo script ejecute lo siguiente, y revise los resultados:
BEGIN TRAN
UPDATE Customers
SET ContactName = 'Howard Snyder'
WHERE CustomerID ='GREAL'
-- For the purpose of the exercise, COMMIT TRAN or ROLLBACK TRAN are not used.
PRINT 'Server Process ID (spid)'
PRINT @@spid
-- Use the SPID to identify the connection when using sp_lock.
8. En el primer script ejecute el procedimiento almacenado de sistema:
exec sp_lock
Describa los bloqueos activos actuales, y explique con los bloqueos que existían en el ejercicio 6.
9. En el segundo script ejecute ROLLBACK TRAN.
10. En el primer script ejecute el procedimiento almacenado de sistema, y revise los bloqueos liberados.
exec sp_lock
11. Cierre los scripts anteriores, y abra tres nuevas consultas, apuntando a la base de datos Northwind2.
En el primer script ejecute el procedimiento almacenado de sistema:
exec sp_lock
Describa los bloqueos activos.
12. En el segundo script ejecute lo siguiente, y revise los resultados:
BEGIN TRAN
SELECT * FROM Customers(TABLOCKX) WHERE CustomerID = 'GREAL'
-- TABLOCKX bloquea la tabla Customers
-- For the purpose of the exercise, COMMIT TRAN or ROLLBACK TRAN are not used.
PRINT 'Server Process ID (spid)'
PRINT @@spid
-- Use the SPID to identify the connection when using sp_lock.
13. En el tercer script ejecute lo siguiente, y revise los resultados:
BEGIN TRAN
UPDATE Customers
SET ContactName = 'Howard Snyder'
WHERE CustomerID ='GREAL'
-- For the purpose of the exercise, COMMIT TRAN or ROLLBACK TRAN are not used.
PRINT 'Server Process ID (spid)'
PRINT @@spid
 ¿Hay una transacción que no se puede ejecutar? Si es así, ¿por qué?
Sí, la segunda transacción está intentando actualizar los datos que están bloqueados por la
primera transacción, de modo que la segunda transacción debe esperar a que termine la primera.
Puede determinar si una transacción no se puede ejecutar debido a un conflicto de bloqueo; para
ello, utilice el procedimiento almacenado de sistema sp_lock y busque la palabra WAIT en la
columna de estado. En este caso, la transacción de la conexión 3 debe esperar a que termine la
transacción de la conexión 2.
 ¿Cuánto tiempo espera una transacción un recurso bloqueado?
Una transacción espera indefinidamente un recurso bloqueado, siempre y cuando no haya
interbloqueos. Se puede establecer el período de tiempo de espera de la sesión para controlar
cuánto tiempo esperará SQL Server a que se liberen los recursos bloqueados.
14. En el segundo script cancele la transacción:
ROLLBACK TRAN
15. En el primer script ejecute el procedimiento almacenado de sistema:
exec sp_lock
Revise si el bloqueo ha sido desactivado y si se ejecutó el tercer script.
16. Restaure la base de datos supermercado. Cree un script donde se bloquee la tabla Cliente. Cree un
segundo script donde se trate de modificar la tabla Cliente, pero no se pueda porque se encuentra
bloqueada. Capture las pantallas necesarias para demostrar el bloqueo.
17. Libere el bloqueo para que se ejecute el segundo script. Capture las pantallas necesarias para
demostrar el desbloqueo.
B. FECHA DE ENTREGA
25 de octubre de 2017
C. FORMA DE ENTREGA
 El trabajo es individual.
 Entregar capturas de pantallas, todo en un solo archivo comprimido.
 Subir al enlace en el aula virtual

Más contenido relacionado

Similar a Lab 08.docx

S.O. Net comandos (windows)
S.O. Net comandos (windows)S.O. Net comandos (windows)
S.O. Net comandos (windows)
Chulinneitor
 
Manualitosqlserver
ManualitosqlserverManualitosqlserver
Manualitosqlserver
Oca srl
 
Ejemplo C++
Ejemplo C++Ejemplo C++
Ejemplo C++
David
 

Similar a Lab 08.docx (20)

SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...
SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...
SQL Server 2014 Delayed Durability visto desde una aplicación - Alejandro Cor...
 
S.O. Net comandos (windows)
S.O. Net comandos (windows)S.O. Net comandos (windows)
S.O. Net comandos (windows)
 
control de concurrencia
control de concurrenciacontrol de concurrencia
control de concurrencia
 
Estructuras de control
Estructuras de controlEstructuras de control
Estructuras de control
 
Tarea
TareaTarea
Tarea
 
Transacciones
TransaccionesTransacciones
Transacciones
 
Informe escrito sobre PSeInt
Informe escrito sobre PSeIntInforme escrito sobre PSeInt
Informe escrito sobre PSeInt
 
practicas dfd
practicas dfdpracticas dfd
practicas dfd
 
Test bench en vhdl
Test bench en vhdlTest bench en vhdl
Test bench en vhdl
 
Practica Seis Delphi
Practica Seis DelphiPractica Seis Delphi
Practica Seis Delphi
 
Manualitosqlserver
ManualitosqlserverManualitosqlserver
Manualitosqlserver
 
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM   TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
TRANSACCIONES, TRIGGERS, PROCEDIMIENTOS ALMACENADOS: DB2/IBM
 
Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2Rendimiento en aplicaciones web con Symfony2
Rendimiento en aplicaciones web con Symfony2
 
TRANSACCIONES
TRANSACCIONESTRANSACCIONES
TRANSACCIONES
 
Procedimientos almacenados
Procedimientos almacenadosProcedimientos almacenados
Procedimientos almacenados
 
Practica 4_Recuperación Final Sheila_Rodriguez_Fernandez.pptx
Practica 4_Recuperación Final Sheila_Rodriguez_Fernandez.pptxPractica 4_Recuperación Final Sheila_Rodriguez_Fernandez.pptx
Practica 4_Recuperación Final Sheila_Rodriguez_Fernandez.pptx
 
Gestion de transacciones "Investigación"
Gestion de transacciones "Investigación"Gestion de transacciones "Investigación"
Gestion de transacciones "Investigación"
 
Curso de pl sql básico
Curso de pl sql básicoCurso de pl sql básico
Curso de pl sql básico
 
Ejemplo C++
Ejemplo C++Ejemplo C++
Ejemplo C++
 
Sqlcommand
SqlcommandSqlcommand
Sqlcommand
 

Último

Último (20)

Diagnostico del corregimiento de Junin del municipio de Barbacoas
Diagnostico del corregimiento de Junin del municipio de BarbacoasDiagnostico del corregimiento de Junin del municipio de Barbacoas
Diagnostico del corregimiento de Junin del municipio de Barbacoas
 
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docxTERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
TERCER GRADO PROGRAMACION ANUAL CCSS 3° - 2024.docx
 
proyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fechaproyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
proyecto semana de los Jardines, actividades a realizar para resaltar esta fecha
 
Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )Vínculo afectivo (labor expositivo de grupo )
Vínculo afectivo (labor expositivo de grupo )
 
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
Análisis de la situación actual .La Matriz de Perfil Competitivo (MPC)
 
La historia de la vida estudiantil a 102 años de la fundación de las Normales...
La historia de la vida estudiantil a 102 años de la fundación de las Normales...La historia de la vida estudiantil a 102 años de la fundación de las Normales...
La historia de la vida estudiantil a 102 años de la fundación de las Normales...
 
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdfRESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
RESPONSABILIDAD SOCIAL EN LAS ORGANIZACIONES (4).pdf
 
RubénSaaRamos_PrácticasPedagogía_Educación y Sociedad
RubénSaaRamos_PrácticasPedagogía_Educación y SociedadRubénSaaRamos_PrácticasPedagogía_Educación y Sociedad
RubénSaaRamos_PrácticasPedagogía_Educación y Sociedad
 
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLAACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
ACERTIJO LA RUTA DE LAS ADIVINANZAS OLÍMPICAS. Por JAVIER SOLIS NOYOLA
 
Sesión de clase: Luz desde el santuario.pdf
Sesión de clase: Luz desde el santuario.pdfSesión de clase: Luz desde el santuario.pdf
Sesión de clase: Luz desde el santuario.pdf
 
METODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdf
METODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdfMETODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdf
METODOS DE EXTRACCIÓN E IDENTIFICACIÓN - 2024.pdf
 
PLAN DE GESTION DEL RIESGO 2023 - 2024.docx
PLAN DE GESTION DEL RIESGO  2023 - 2024.docxPLAN DE GESTION DEL RIESGO  2023 - 2024.docx
PLAN DE GESTION DEL RIESGO 2023 - 2024.docx
 
ensayo literario rios profundos jose maria ARGUEDAS
ensayo literario rios profundos jose maria ARGUEDASensayo literario rios profundos jose maria ARGUEDAS
ensayo literario rios profundos jose maria ARGUEDAS
 
📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...
📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...
📝 Semana 09 - Tema 01: Tarea - Aplicación del resumen como estrategia de fuen...
 
Lec. 08 Esc. Sab. Luz desde el santuario
Lec. 08 Esc. Sab. Luz desde el santuarioLec. 08 Esc. Sab. Luz desde el santuario
Lec. 08 Esc. Sab. Luz desde el santuario
 
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)ESTEREOTIPOS  Y ROLES DE GÉNERO (labor de grupo)
ESTEREOTIPOS Y ROLES DE GÉNERO (labor de grupo)
 
LA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIA
LA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIALA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIA
LA GEOMETRÍA Y LOS SISTEMAS ANGULARES, APRENDER LEYENDO LA BIBLIA
 
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOSTRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
TRABAJO CON TRES O MAS FRACCIONES PARA NIÑOS
 
Evaluación de los Factores Internos de la Organización
Evaluación de los Factores Internos de la OrganizaciónEvaluación de los Factores Internos de la Organización
Evaluación de los Factores Internos de la Organización
 
Como construir los vínculos afectivos (Grupal)
Como construir los vínculos afectivos (Grupal)Como construir los vínculos afectivos (Grupal)
Como construir los vínculos afectivos (Grupal)
 

Lab 08.docx

  • 1. Guía de práctica de laboratorio de: Administración de Base de Datos Tercera Unidad Práctica N° 08: Transacciones y Bloqueos A. PRÁCTICA DE LABORATORIO 1. Restaurar la base de datos proporcionada “Northwind2.bak”. 2. Ejecutar el siguiente Script: BEGIN TRAN PRINT 'trancount value:' PRINT @@trancount PRINT 'Before update:' SELECT ContactName FROM Customers WHERE CustomerID = 'GREAL' UPDATE Customers SET ContactName = 'Howard Snyder_Updated' WHERE CustomerID ='GREAL' PRINT 'After update:' SELECT ContactName FROM Customers WHERE CustomerID = 'GREAL' PRINT 'trancount value:' PRINT @@trancount -- COMMIT TRANSACTION  En este momento, ¿se han confirmado los cambios efectuados con la instrucción UPDATE en esta transacción? ¿Cómo puede determinar esto? No, la transacción se debe completar con la instrucción COMMIT TRAN. La transacción sigue estando activa y sigue manteniendo los bloqueos que haya adquirido. El valor de la variable global @@trancount es 1, lo que indica que en esta sesión se ha enviado una instrucción BEGIN TRAN.  ¿Podrían otras transacciones consultar o actualizar los datos modificados? Otras transacciones no podrían consultar o modificar los datos modificados hasta que se haya confirmado (o deshecho) la transacción. 3. Escriba una instrucción COMMIT TRANSACTION en la ventana de consulta y, después, resáltela y ejecútela para completar la transacción y hacer que los cambios sean definitivos. 4. Resalte y ejecute una de las instrucciones SELECT de la tabla Customers para comprobar que ahora sí se ha completado el cambio. 5. Ejecute el siguiente script: BEGIN TRAN Sección : 4292 Docente : Felipe Aliaga Cavero Apellidos : ………………………..………………….. Nombres : ……………………………………………. Fecha : 25/10/2017 Duración: 80 min Tipo de práctica: Individual ( X ) Grupal ( ) Instrucciones: Desarrollar las actividades solicitadas.
  • 2. PRINT 'trancount value:' PRINT @@trancount PRINT 'Before update:' SELECT ContactName FROM Customers WHERE CustomerID = 'GREAL' UPDATE Customers SET ContactName = 'Howard Snyder' WHERE CustomerID ='GREAL' PRINT 'After update:' SELECT ContactName FROM Customers WHERE CustomerID = 'GREAL' PRINT 'trancount value:' PRINT @@trancount ROLLBACK TRAN Print 'ROLLBACK issued' SELECT ContactName FROM Customers WHERE CustomerID = 'GREAL' PRINT 'trancount value:' PRINT @@trancount  ¿Se ha almacenado de forma permanente en la base de datos la modificación efectuada por la instrucción UPDATE? No. La transacción se ha cancelado, de modo que los cambios efectuados durante la transacción se han deshecho.  ¿Se ha completado la transacción? Sí. La instrucción ROLLBACK TRAN completa la transacción y libera los bloqueos adquiridos por la transacción. La consulta de la variable global @@trancount devuelve cero. 6. Cierre los scripts anteriores, y abra dos nuevas consultas, apuntando a la base de datos Northwind2. En el primer script ejecute el procedimiento almacenado de sistema: exec sp_lock Describa los bloqueos activos. 7. En el segundo script ejecute lo siguiente, y revise los resultados: BEGIN TRAN UPDATE Customers SET ContactName = 'Howard Snyder' WHERE CustomerID ='GREAL' -- For the purpose of the exercise, COMMIT TRAN or ROLLBACK TRAN are not used. PRINT 'Server Process ID (spid)' PRINT @@spid -- Use the SPID to identify the connection when using sp_lock. 8. En el primer script ejecute el procedimiento almacenado de sistema: exec sp_lock Describa los bloqueos activos actuales, y explique con los bloqueos que existían en el ejercicio 6. 9. En el segundo script ejecute ROLLBACK TRAN. 10. En el primer script ejecute el procedimiento almacenado de sistema, y revise los bloqueos liberados.
  • 3. exec sp_lock 11. Cierre los scripts anteriores, y abra tres nuevas consultas, apuntando a la base de datos Northwind2. En el primer script ejecute el procedimiento almacenado de sistema: exec sp_lock Describa los bloqueos activos. 12. En el segundo script ejecute lo siguiente, y revise los resultados: BEGIN TRAN SELECT * FROM Customers(TABLOCKX) WHERE CustomerID = 'GREAL' -- TABLOCKX bloquea la tabla Customers -- For the purpose of the exercise, COMMIT TRAN or ROLLBACK TRAN are not used. PRINT 'Server Process ID (spid)' PRINT @@spid -- Use the SPID to identify the connection when using sp_lock. 13. En el tercer script ejecute lo siguiente, y revise los resultados: BEGIN TRAN UPDATE Customers SET ContactName = 'Howard Snyder' WHERE CustomerID ='GREAL' -- For the purpose of the exercise, COMMIT TRAN or ROLLBACK TRAN are not used. PRINT 'Server Process ID (spid)' PRINT @@spid  ¿Hay una transacción que no se puede ejecutar? Si es así, ¿por qué? Sí, la segunda transacción está intentando actualizar los datos que están bloqueados por la primera transacción, de modo que la segunda transacción debe esperar a que termine la primera. Puede determinar si una transacción no se puede ejecutar debido a un conflicto de bloqueo; para ello, utilice el procedimiento almacenado de sistema sp_lock y busque la palabra WAIT en la columna de estado. En este caso, la transacción de la conexión 3 debe esperar a que termine la transacción de la conexión 2.  ¿Cuánto tiempo espera una transacción un recurso bloqueado? Una transacción espera indefinidamente un recurso bloqueado, siempre y cuando no haya interbloqueos. Se puede establecer el período de tiempo de espera de la sesión para controlar cuánto tiempo esperará SQL Server a que se liberen los recursos bloqueados. 14. En el segundo script cancele la transacción: ROLLBACK TRAN 15. En el primer script ejecute el procedimiento almacenado de sistema: exec sp_lock Revise si el bloqueo ha sido desactivado y si se ejecutó el tercer script.
  • 4. 16. Restaure la base de datos supermercado. Cree un script donde se bloquee la tabla Cliente. Cree un segundo script donde se trate de modificar la tabla Cliente, pero no se pueda porque se encuentra bloqueada. Capture las pantallas necesarias para demostrar el bloqueo. 17. Libere el bloqueo para que se ejecute el segundo script. Capture las pantallas necesarias para demostrar el desbloqueo. B. FECHA DE ENTREGA 25 de octubre de 2017 C. FORMA DE ENTREGA  El trabajo es individual.  Entregar capturas de pantallas, todo en un solo archivo comprimido.  Subir al enlace en el aula virtual