Главная / Базы данных /
Основы 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 |
|---|
| Блокируется | Блокируется | Выполняется | Блокируется |