Главная / Базы данных /
Основы SQL / Тест 16
Основы SQL - тест 16
Упражнение 1:
Номер 1
Дана таблица Товар
. На начало транзакций в таблице записей нет.
BEGIN TRAN
SAVE TRANSACTION p1
INSERT Товар (Код_Товара, Название, остаток)
VALUES (1, 'a',10)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (2, 'b',20)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (3, 'c',30)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (4, 'd',40)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (5, 'e',50)
SAVE TRANSACTION p2
DELETE FROM Товар WHERE Код_Товара=2
SAVE TRANSACTION p3
DELETE FROM Товар WHERE Код_Товара=5
SAVE TRANSACTION p4
DELETE FROM Товар WHERE Код_Товара<>1
ROLLBACK TRANSACTION p3
INSERT Товар (Код_Товара, Название, остаток)
VALUES (6, 'f',70)
COMMIT
После завершения транзакции в таблице Товар
останутся товары с кодами
Ответ:
 (1) Код_Товара
: 1
, 3
, 4
,5
, 6
 
 (2) Код_Товара
: 1
, 3
, 4
, 6
 
 (3) Код_Товара
: 3
, 4
, 6
 
 (4) в таблице записей нет 
Номер 2
Дана таблица Товар
. На начало транзакций в таблице записей нет.
BEGIN TRAN
SAVE TRANSACTION p1
INSERT Товар (Код_Товара, Название, остаток)
VALUES (1, 'a',10)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (2, 'b',20)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (3, 'c',30)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (4, 'd',40)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (5, 'e',50)
SAVE TRANSACTION p2
DELETE FROM Товар WHERE Код_Товара=4
SAVE TRANSACTION p3
UPDATE Товар SET Название ='g' WHERE Код_Товара=2
SAVE TRANSACTION p4
DELETE FROM Товар
WHERE Код_Товара<>1 AND Код_Товара<>4
ROLLBACK TRANSACTION p3
INSERT Товар (Код_Товара, Название, остаток)
VALUES (6, 'f',70)
ROLLBACK TRANSACTION p2
DELETE FROM Товар WHERE Код_Товара=3
COMMIT
После завершения транзакции в таблице Товар
останутся товары с названиями:
Ответ:
 (1) Названия: ‘a’
, ‘g’
, ‘e’
 
 (2) Названия: ‘a’
, ‘g’
, ‘c’
, ‘e’
 
 (3) Названия: ‘f’
, ‘b’
, ‘c’
, ‘e’
, ‘f’
 
 (4) Названия: ‘a’
, ‘b’
, ‘d’
, ‘e’
 
Номер 3
Дана таблица Товар
. На начало транзакций в таблице записей нет.
BEGIN TRAN
SAVE TRANSACTION p1
INSERT Товар (Код_Товара, Название, остаток)
VALUES (1, 'a',10)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (2, 'b',20)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (3, 'c',30)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (4, 'd',40)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (5, 'e',50)
SAVE TRANSACTION p2
DELETE FROM Товар WHERE Код_Товара=2
SAVE TRANSACTION p3
DELETE FROM Товар WHERE Код_Товара=5
SAVE TRANSACTION p4
DELETE FROM Товар
WHERE Код_Товара<2 OR Код_Товара>4
ROLLBACK TRANSACTION p3
INSERT Товар (Код_Товара, Название, остаток)
VALUES (6, 'f',60)
SAVE TRANSACTION p5
INSERT Товар (Код_Товара, Название, остаток)
VALUES (7, 'g',70)
ROLLBACK TRANSACTION p5
COMMIT
После завершения транзакции в таблице Товар
останутся товары с кодами:
Ответ:
 (1) Код_Товара
: 1
, 3
, 4
, 5
, 6
 
 (2) Код_Товара
: 1
, 3
, 4
, 6
 
 (3) Код_Товара
: 3
, 4
, 6
,7
 
 (4) в таблице записей нет 
Номер 4
Дана таблица Товар
. На начало транзакций в таблице записей нет.
BEGIN TRAN
SAVE TRANSACTION p1
INSERT Товар (Код_Товара, Название, остаток)
VALUES (1, 'a',10)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (2, 'b',20)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (3, 'c',30)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (4, 'd',40)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (5, 'e',50)
UPDATE Товар SET Название ='g' WHERE Код_Товара=3
SAVE TRANSACTION p2
DELETE FROM Товар WHERE Код_Товара=4
UPDATE Товар SET Название ='m' WHERE Код_Товара=5
SAVE TRANSACTION p3
UPDATE Товар SET Название ='k' WHERE Код_Товара=1
SAVE TRANSACTION p4
DELETE FROM Товар
WHERE Код_Товара>1 AND Код_Товара<4
ROLLBACK TRANSACTION p3
INSERT Товар (Код_Товара, Название, остаток)
VALUES (6, 'f',70)
DELETE FROM Товар WHERE Код_Товара=3
COMMIT
После завершения транзакции в таблице Товар останутся товары с названиями:
Ответ:
 (1) Названия: ‘k’
, ‘b’
, ‘m’
 
 (2) Названия: ‘a’
, ‘b’
, ‘g’
, ‘m’
 
 (3) Названия: ‘k’
, ‘b’
, ‘g’
, ‘m’
 
 (4) Названия: ‘a’
, ‘b’
, ‘f’
, ‘m’
 
Упражнение 2:
Номер 1
Дана таблица Товар
. На начало транзакций в таблице записей нет.
BEGIN TRAN A
INSERT Товар (Код_Товара, Название, остаток)
VALUES (1, 'v',40)
BEGIN TRAN B
INSERT Товар (Код_Товара, Название, остаток)
VALUES (2, 'n',50)
UPDATE Товар SET Название ='m' WHERE Код_Товара=1
BEGIN TRAN C
INSERT Товар (Код_Товара, Название, остаток)
VALUES (3, 'm',60)
ROLLBACK TRAN C
INSERT Товар (Код_Товара, Название, остаток)
VALUES (4, 'k',70)
COMMIT
После завершения транзакции в таблице Товар
останутся товары с названиями:
Ответ:
 (1) Названия: 'm'
, 'n'
, 'k'
 
 (2) Названия: 'v'
, 'm'
, 'n'
, 'k'
 
 (3) Названия: 'v'
, 'n'
, 'k'
 
 (4) Названия: 'n'
, 'k'
 
Номер 2
Дана таблица Товар
. На начало транзакций в таблице записей нет.
BEGIN TRAN A
INSERT Товар (Код_Товара, Название, остаток)
VALUES (1, 'v',40)
BEGIN TRAN B
INSERT Товар (Код_Товара, Название, остаток)
VALUES (2, 'n',50)
BEGIN TRAN C
INSERT Товар (Код_Товара, Название, остаток)
VALUES (3, 'm',60)
ROLLBACK TRAN B
INSERT Товар (Код_Товара, Название, остаток)
VALUES (4, 'k',70)
COMMIT
После завершения транзакции в таблице Товар
останутся товары с кодами:
Ответ:
 (1)
Код_Товара: 1
, 4
 
 (2)
Код_Товара: 4
 
 (3)
Код_Товара: 1
, 2
, 4
 
 (4)
Код_Товара: 1
, 2
, 3
, 4
 
Номер 3
Дана таблица Товар
. На начало транзакций в таблице записей нет.
BEGIN TRAN A
INSERT Товар (Код_Товара, Название, остаток)
VALUES (1, 'a',40)
BEGIN TRAN B
INSERT Товар (Код_Товара, Название, остаток)
VALUES (2, 'b',50)
UPDATE Товар SET Название =’m’ WHERE Код_Товара=1
BEGIN TRAN C
INSERT Товар (Код_Товара, Название, остаток)
VALUES (3, 'c',60)
ROLLBACK TRAN C
INSERT Товар (Код_Товара, Название, остаток)
VALUES (4, 'd',70)
UPDATE Товар SET Название =’k’ WHERE Код_Товара=1
ROLLBACK TRAN
После завершения транзакции в таблице Товар останутся товары с названиями:
Ответ:
 (1) в таблице записей нет. 
 (2) Названия: ‘k’
, ‘b’
, ‘c’
, ‘d’
 
 (3) Названия: ‘k’
 
 (4) Названия: ‘d’
, ‘k’
 
Номер 4
Дана таблица Товар
. На начало транзакций в таблице записей нет.
BEGIN TRAN A
INSERT Товар (Код_Товара, Название, остаток)
VALUES (1, 'v',40)
BEGIN TRAN B
INSERT Товар (Код_Товара, Название, остаток)
VALUES (2, 'n',50)
UPDATE Товар SET Название =’k’ WHERE Код_Товара=1
BEGIN TRAN C
INSERT Товар (Код_Товара, Название, остаток)
VALUES (3, 'm',60)
ROLLBACK TRAN С
UPDATE Товар SET Название =’m’ WHERE Код_Товара=2
COMMIT
INSERT Товар (Код_Товара, Название, остаток)
VALUES (4, 'b',70)
ROLLBACK TRAN
После завершения транзакции в таблице Товар останутся товары с кодами:
Ответ:
 (1) в таблице записей нет 
 (2) Код_Товара
: 1
, 3
 
 (3) Код_Товара
: 2
 
 (4) Код_Товара
: 1
, 3
, 4
 
Упражнение 3:
Номер 1
Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA
.
Пользователь UserA
|
Пользователь UserB
|
---|
USE basa_user
SET TRANSACTION ISOLATION LEVEL READ
UNCOMMITTED
BEGIN TRANSACTION TRA
1.SELECT * FROM Товар
3.UPDATE Товар SET
остаток=остаток+10 WHERE Код_Товара=4
ROLLBACK TRANSACTION TRA | USE basa_user
SET TRANSACTION ISOLATION
LEVEL REPEATABLE READ
BEGIN TRANSACTION TRB
2.SELECT * FROM Товар
4.SELECT * FROM Товар
ROLLBACK TRANSACTION TRB |
Какие шаги система выполнит, а какие будут заблокированы?
Ответ:
 
(1)
1 | 2 | 3 | 4 |
---|
Выполняется | Выполняется | Блокируется | Выполняется |
 
 
(2)
1 | 2 | 3 | 4 |
---|
Блокируется | Выполняется | Выполняется | Блокируется |
 
 
(3)
1 | 2 | 3 | 4 |
---|
Блокируется | Блокируется | Выполняется | Блокируется |
 
 
(4)
1 | 2 | 3 | 4 |
---|
Выполняется | Блокируется | Выполняется | Выполняется |
 
Номер 2
Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA
.
Пользователь UserA
|
Пользователь UserB
|
---|
USE basa_user
SET TRANSACTION ISOLATION LEVEL
REPEATABLE READ
BEGIN TRANSACTION TRA
1.SELECT * FROM Товар
3.UPDATE Товар SET
остаток=остаток+10 WHERE Код_Товара=4
ROLLBACK TRANSACTION TRA | USE basa_user
SET TRANSACTION ISOLATION
LEVEL READ UNCOMMITTED
BEGIN TRANSACTION TRB
2.SELECT * FROM Товар
4.SELECT * FROM Товар
ROLLBACK TRANSACTION TRB |
Какие шаги система выполнит, а какие будут заблокированы?
Ответ:
 
(1)
1 | 2 | 3 | 4 |
---|
Выполняется | Выполняется | Выполняется | Выполняется |
 
 
(2)
1 | 2 | 3 | 4 |
---|
Блокируется | Выполняется | Блокируется | Блокируется |
 
 
(3)
1 | 2 | 3 | 4 |
---|
Блокируется | Блокируется | Выполняется | Блокируется |
 
 
(4)
1 | 2 | 3 | 4 |
---|
Выполняется | Блокируется | Выполняется | Выполняется |
 
Номер 3
Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA
.
Пользователь UserA
|
Пользователь UserB
|
USE basa_user
SET TRANSACTION ISOLATION LEVEL
SERIALIZABLE
BEGIN TRANSACTION TRA
1.SELECT * FROM Товар
3.UPDATE Товар SET
остаток=остаток+10 WHERE Код_Товара=4
ROLLBACK TRANSACTION TRA | USE basa_user
SET TRANSACTION ISOLATION
LEVEL REPEATABLE READ
BEGIN TRANSACTION TRB
2.SELECT * FROM Товар
4.DELETE FROM Товар WHERE
Код_Товара=4
ROLLBACK TRANSACTION TRB |
Какие шаги система выполнит, а какие будут заблокированы?
Ответ:
 
(1)
1 | 2 | 3 | 4 |
---|
Выполняется | Выполняется | Выполняется | Выполняется |
 
 
(2)
1 | 2 | 3 | 4 |
---|
Блокируется | Выполняется | Блокируется | Блокируется |
 
 
(3)
1 | 2 | 3 | 4 |
---|
Блокируется | Блокируется | Выполняется | Блокируется |
 
 
(4)
1 | 2 | 3 | 4 |
---|
Выполняется | Блокируется | Выполняется | Выполняется |
 
Номер 4
Задание: Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA
.
Пользователь UserA
|
Пользователь UserB
|
USE basa_user
SET TRANSACTION ISOLATION LEVEL
REPEATABLE READ
BEGIN TRANSACTION TRA
1.SELECT * FROM Товар
3.UPDATE Товар SET
остаток=остаток+10 WHERE Код_Товара=4
ROLLBACK TRANSACTION TRA | USE basa_user
SET TRANSACTION ISOLATION
LEVEL SERIALIZABLE
BEGIN TRANSACTION TRB
2.SELECT * FROM Товар
4.DELETE FROM Товар WHERE
Код_Товара=4
ROLLBACK TRANSACTION TRB |
Какие шаги система выполнит, а какие будут заблокированы?
Ответ:
 
(1)
1 | 2 | 3 | 4 |
---|
Выполняется | Блокируется | Выполняется | Блокируется |
 
 
(2)
1 | 2 | 3 | 4 |
---|
Блокируется | Выполняется | Блокируется | Выполняется |
 
 
(3)
1 | 2 | 3 | 4 |
---|
Блокируется | Блокируется | Выполняется | Блокируется |
 
 
(4)
1 | 2 | 3 | 4 |
---|
Выполняется | Блокируется | Выполняется | Выполняется |
 
Упражнение 4:
Номер 1
Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA
.
Пользователь UserA
|
Пользователь UserB
|
USE basa_user
SET TRANSACTION ISOLATION LEVEL
SERIALIZABLE
BEGIN TRANSACTION TRA
1.SELECT * FROM Товар
3.UPDATE Товар SET
остаток=остаток+10 WHERE
Код_Товара=3
ROLLBACK TRANSACTION TRA | USE basa_user
SET TRANSACTION ISOLATION LEVEL
READ COMMITTED
BEGIN TRANSACTION TRB
2. INSERT
Товар(Код_Товара,Название,
остаток)
VALUES (3,'SS',999)
4.SELECT * FROM Товар
ROLLBACK TRANSACTION TRB |
Какие шаги система выполнит, а какие будут заблокированы?
Ответ:
 
(1)
1 | 2 | 3 | 4 |
---|
Выполняется | Блокируется | Выполняется | Блокируется |
 
 
(2)
1 | 2 | 3 | 4 |
---|
Блокируется | Выполняется | Выполняется | Блокируется |
 
 
(3)
1 | 2 | 3 | 4 |
---|
Блокируется | Блокируется | Выполняется | Блокируется |
 
 
(4)
1 | 2 | 3 | 4 |
---|
Выполняется | Блокируется | Выполняется | Выполняется |
 
Номер 2
Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA
.
Пользователь UserA
|
Пользователь UserB
|
USE basa_user
SET TRANSACTION ISOLATION LEVEL READ
COMMITTED
BEGIN TRANSACTION TRA
1.SELECT * FROM Товар
3.UPDATE Товар SET
остаток=остаток+10 WHERE Код_Товара=4
ROLLBACK TRANSACTION TRA | USE basa_user
SET TRANSACTION ISOLATION
LEVEL SERIALIZABLE
BEGIN TRANSACTION TRB
2. INSERT
Товар(Код_Товара,Название,
остаток)
VALUES (2,'SS',999)
4.SELECT * FROM Товар
ROLLBACK TRANSACTION TRB |
Какие шаги система выполнит, а какие будут заблокированы?
Ответ:
 
(1)
1 | 2 | 3 | 4 |
---|
Выполняется | Выполняется | Блокируется | Выполняется |
 
 
(2)
1 | 2 | 3 | 4 |
---|
Блокируется | Выполняется | Блокируется | Блокируется |
 
 
(3)
1 | 2 | 3 | 4 |
---|
Блокируется | Блокируется | Выполняется | Блокируется |
 
 
(4)
1 | 2 | 3 | 4 |
---|
Выполняется | Блокируется | Выполняется | Выполняется |
 
Номер 3
Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA
.
Пользователь UserA
|
Пользователь UserB
|
USE basa_user
SET TRANSACTION ISOLATION LEVEL READ
UNCOMMITTED
BEGIN TRANSACTION TRA
1. INSERT Товар(Код_Товара,Название,
остаток)
VALUES (3,'SS',999)
3.UPDATE Товар SET
остаток=остаток+10 WHERE Код_Товара=4
ROLLBACK TRANSACTION TRA | USE basa_user
SET TRANSACTION ISOLATION
LEVEL READ
COMMITTED
BEGIN TRANSACTION TRB
2.SELECT * FROM Товар
4.DELETE FROM Товар WHERE
Код_Товара=3
ROLLBACK TRANSACTION TRB |
Какие шаги система выполнит, а какие будут заблокированы?
Ответ:
 
(1)
1 | 2 | 3 | 4 |
---|
Выполняется | Блокируется | Выполняется | Блокируется |
 
 
(2)
1 | 2 | 3 | 4 |
---|
Блокируется | Выполняется | Блокируется | Блокируется |
 
 
(3)
1 | 2 | 3 | 4 |
---|
Блокируется | Блокируется | Выполняется | Блокируется |
 
 
(4)
1 | 2 | 3 | 4 |
---|
Выполняется | Блокируется | Выполняется | Выполняется |
 
Номер 4
Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA
.
Пользователь UserA
|
Пользователь UserB
|
USE basa_user
SET TRANSACTION ISOLATION LEVEL
READ COMMITTED
BEGIN TRANSACTION TRA
1.SELECT * FROM Товар
3.UPDATE Товар SET
остаток=остаток+10 WHERE
Код_Товара=3
ROLLBACK TRANSACTION TRA | USE basa_user
SET TRANSACTION ISOLATION LEVEL
READ UNCOMMITTED
BEGIN TRANSACTION TRB
2. INSERT
Товар(Код_Товара,Название,
остаток)
VALUES (3,'SS',999)
4.DELETE FROM Товар WHERE
Код_Товара=3
ROLLBACK TRANSACTION TRB |
Какие шаги система выполнит, а какие будут заблокированы?
Ответ:
 
(1)
1 | 2 | 3 | 4 |
---|
Выполняется | Выполняется | Выполняется | Блокируется |
 
 
(2)
1 | 2 | 3 | 4 |
---|
Блокируется | Выполняется | Блокируется | Блокируется |
 
 
(3)
1 | 2 | 3 | 4 |
---|
Блокируется | Блокируется | Выполняется | Блокируется |
 
 
(4)
1 | 2 | 3 | 4 |
---|
Выполняется | Блокируется | Выполняется | Выполняется |
 
Упражнение 5:
Номер 1
Дана таблица Товар
. На начало транзакций в таблице записей нет.
BEGIN TRAN
INSERT Товар (Код_Товара, Название, остаток)
VALUES (1, 'a',10)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (2, 'b',20)
SAVE TRANSACTION p1
INSERT Товар (Код_Товара, Название, остаток)
VALUES (3, 'c',30)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (4, 'd',40)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (5, 'e',50)
SAVE TRANSACTION p2
DELETE FROM Товар WHERE Код_Товара=2
SAVE TRANSACTION p3
DELETE FROM Товар WHERE Код_Товара=5
SAVE TRANSACTION p4
DELETE FROM Товар WHERE Код_Товара<>1
ROLLBACK TRANSACTION p1
INSERT Товар (Код_Товара, Название, остаток)
VALUES (6, 'f',70)
COMMIT
После завершения транзакции в таблице Товар
останутся записи о товарах с кодами:
Ответ:
 (1) Код_Товара
: 1
, 3
, 4
, 5
, 6
 
 (2) Код_Товара
: 1
, 3
, 4
, 6
 
 (3) Код_Товара
: 3
, 4
, 6
 
 (4) Код_Товара
: 1
, 2
, 6
 
Номер 2
Задание: Дана таблица Товар
. На начало транзакций в таблице записей нет.
BEGIN TRAN
INSERT Товар (Код_Товара, Название, остаток)
VALUES (1, 'a',10)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (2, 'b',20)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (3, 'c',30)
SAVE TRANSACTION p1
INSERT Товар (Код_Товара, Название, остаток)
VALUES (4, 'd',40)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (5, 'e',50)
SAVE TRANSACTION p2
DELETE FROM Товар WHERE Код_Товара=4
SAVE TRANSACTION p3
UPDATE Товар SET Название ='g' WHERE Код_Товара=2
SAVE TRANSACTION p4
DELETE FROM Товар
WHERE Код_Товара<>1 AND Код_Товара<>4
ROLLBACK TRANSACTION p3
INSERT Товар (Код_Товара, Название, остаток)
VALUES (6, 'f',70)
ROLLBACK TRANSACTION p1
DELETE FROM Товар WHERE Код_Товара=3
COMMIT
После завершения транзакции в таблице Товар
останутся записи о товарах с названиями:
Ответ:
 (1) Названия: ‘a’
, ‘g’
, ‘e’
 
 (2) Названия: ‘a’
, ‘g’
, ‘c’
, ‘e’
 
 (3) Названия: ‘f’
, ‘b’
, ‘c’
, ‘e’
, ‘f’
 
 (4) Названия: ‘a’
, ‘b’
 
Номер 3
Дана таблица Товар
. На начало транзакций в таблице записей нет.
BEGIN TRAN
SAVE TRANSACTION p1
INSERT Товар (Код_Товара, Название, остаток)
VALUES (1, 'a',10)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (2, 'b',20)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (3, 'c',30)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (4, 'd',40)
INSERT Товар (Код_Товара, Название, остаток)
VALUES (5, 'e',50)
SAVE TRANSACTION p2
DELETE FROM Товар WHERE Код_Товара=2
SAVE TRANSACTION p3
DELETE FROM Товар WHERE Код_Товара=5
SAVE TRANSACTION p4
DELETE FROM Товар
WHERE Код_Товара<2 OR Код_Товара>4
ROLLBACK TRANSACTION p3
INSERT Товар (Код_Товара, Название, остаток)
VALUES (6, 'f',60)
SAVE TRANSACTION p5
INSERT Товар (Код_Товара, Название, остаток)
VALUES (7, 'g',70)
ROLLBACK TRANSACTION p2
COMMIT
После завершения транзакции в таблице Товар
останутся записи о товарах с кодами:
Ответ:
 (1) Код_Товара
: 1
, 2
, 3
, 4
, 5
 
 (2) Код_Товара
: 1
, 3
, 4
, 6
 
 (3) Код_Товара
: 3
, 4
, 6
, 7
 
 (4) в таблице записей нет 
Упражнение 6:
Номер 1
Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA
.
Пользователь UserA
|
Пользователь UserB
|
USE basa_user
SET TRANSACTION ISOLATION LEVEL READ
UNCOMMITTED
BEGIN TRANSACTION TRA
1.SELECT * FROM Товар
3.UPDATE Товар SET
остаток=остаток+10 WHERE Код_Товара=4
ROLLBACK TRANSACTION TRA | USE basa_user
SET TRANSACTION ISOLATION
LEVEL REPEATABLE READ
BEGIN TRANSACTION TRB
2.DELETE FROM Товар WHERE
Код_Товара=4
4.SELECT * FROM Товар
ROLLBACK TRANSACTION TRB |
Какие шаги система выполнит, а какие заблокирует?
Ответ:
 
(1)
1 | 2 | 3 | 4 |
---|
Выполняется | Выполняется | Блокируется | Выполняется |
 
 
(2)
1 | 2 | 3 | 4 |
---|
Блокируется | Выполняется | Выполняется | Блокируется |
 
 
(3)
1 | 2 | 3 | 4 |
---|
Блокируется | Блокируется | Выполняется | Блокируется |
 
 
(4)
1 | 2 | 3 | 4 |
---|
Выполняется | Блокируется | Выполняется | Выполняется |
 
Номер 2
Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA
.
Пользователь UserA
|
Пользователь UserB
|
USE basa_user
SET TRANSACTION ISOLATION LEVEL
REPEATABLE READ
BEGIN TRANSACTION TRA
1.SELECT * FROM Товар WHERE
Код_Товара=1
3.UPDATE Товар SET
остаток=остаток+10 WHERE Код_Товара=4
ROLLBACK TRANSACTION TRA | USE basa_user
SET TRANSACTION ISOLATION
LEVEL READ UNCOMMITTED
BEGIN TRANSACTION TRB
2.UPDATE Товар SET
остаток=остаток+10 WHERE
Код_Товара=4
4.SELECT * FROM Товар
ROLLBACK TRANSACTION TRB |
Какие шаги система выполнит, а какие заблокирует?
Ответ:
 
(1)
1 | 2 | 3 | 4 |
---|
Выполняется | Выполняется | Блокируется | Выполняется |
 
 
(2)
1 | 2 | 3 | 4 |
---|
Блокируется | Выполняется | Блокируется | Блокируется |
 
 
(3)
1 | 2 | 3 | 4 |
---|
Блокируется | Блокируется | Выполняется | Блокируется |
 
 
(4)
1 | 2 | 3 | 4 |
---|
Выполняется | Блокируется | Выполняется | Выполняется |
 
Номер 3
Транзакции выполняют различные действия. Первой начинает работать транзакция пользователя UserA
.
Пользователь UserA
|
Пользователь UserB
|
USE basa_user
SET TRANSACTION ISOLATION LEVEL
SERIALIZABLE
1.BEGIN TRANSACTION TRA
SELECT * FROM Товар
3.UPDATE Товар SET
остаток=остаток+10 WHERE Код_Товара=4
ROLLBACK TRANSACTION TRA | USE basa_user
SET TRANSACTION ISOLATION
LEVEL REPEATABLE READ
2. BEGIN TRANSACTION TRB
UPDATE Товар SET
остаток=остаток+10 WHERE
Код_Товара=4
4.DELETE FROM Товар WHERE
Код_Товара=4
ROLLBACK TRANSACTION TRB |
Какие шаги система выполнит, а какие заблокирует?
Ответ:
 
(1)
1 | 2 | 3 | 4 |
---|
Выполняется | Блокируется | Выполняется | Выполняется |
 
 
(2)
1 | 2 | 3 | 4 |
---|
Блокируется | Выполняется | Блокируется | Блокируется |
 
 
(3)
1 | 2 | 3 | 4 |
---|
Блокируется | Блокируется | Выполняется | Блокируется |