where soundtrack.author = :composer_id AND soundtrack.film = film.f_id
ORDER BY film.year_of_creation DESC), :composer_id,:numawar);
end
END
^
SET TERM ; ^
commit;
Результаты запросов:
1) Актёры, которые играли в фильмах вместе с Leonardo DiCaprio :
NAME_ SURNAME_ FILM_
=========== ========================= =========================
Kate Winslet Titanic
2) Средние рейтинги фильмов, в которых Оскары получали канадские режиссёры:
FILM_ MARK
==================================== =========================
Titanic 7
3) в результате выполнения процедуры с параметрами (6,6) в таблице PREMIUM появляется запись:
FILM_ID MAN_ID AWARD_ID
================= =================== =========================
4 9 6
2.4.Выводы
В результате работы был изучен SQL-DML и основные возможности IBExpert. Реализованы индивидуальные SQL-запросы, которые были сохранены в БД в виде представлений и хранимых процедур. Результаты запросов корректны.
Раздел 3. Изучение работы транзакций
3.1. Цели работы
Ознакомление с механизмом транзакций, возможностями ручного управления транзакциями, уровнями изоляции транзакций.
3.2. Программа работы
1) Изучить основные принципы работы транзакций.
2) Провести эксперименты по запуску, подтверждению и откату транзакций.
3) Разобраться с уровнями изоляции транзакций в Firebird.
4) Спланировать и провести эксперименты, показывающие основные возможности транзакций с различным уровнем изоляции.
Работа проводится в IBExpert. Для проведения экспериментов параллельно запускается несколько сессий связи с БД, в каждой сессии настраивается уровень изоляции транзакций. Выполняются конкурентные операции чтения/изменения данных в различных сессиях, а том числе приводящие к конфликтам.
3.3. Выполнение работы
1) Read Committed (зафиксированное чтение).
Этот уровень изоляции позволяет транзакции читать только подтверждённые изменения, сделанные другими транзакциями. Даже если другая транзакция подтверждает после того, как транзакция, использующая read committed, началась, эти изменения могут быть прочитаны.
Example 1:
1я сессия, уровень изоляции Read Committed:
SELECT * from film ;
Результат:
F_ID NAME YEAR_OF_CREATION DURATION BUDGET SITE
1 The Lord of the Rings: The Fellowship of the Ring 2001 178 93000000 3
2 The Lord of the Rings: The Two Towers 2002 179 94000000 3
3 Titanic 1997 194 200000000 4
4 Avatar 2009 162 237000000 5
5 The Terminator 2: Judgment Day 1991 137 102000000 1
6 Catch Me If You Can 2002 141 52000000
7 Manhattan 1979 96 39000000
2я сессия:
INSERT INTO film (f_id,name,year_of_creation,duration,budget)
VALUES (8, 'Gullivers Travels',2010,85,112000000);
Если не подтвердить 2ю сессию, то результат 1й не изменится. После подтверждения 2й сессии, результат 1й:
F_ID NAME YEAR_OF_CREATION DURATION BUDGET SITE
1 The Lord of the Rings: The Fellowship of the Ring 2001 178 93000000 3
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.