1 record(s) was(were) updated in MADE_IN
2) Создать хранимую процедуру в соответствии с индивидуальным заданием.
Индивидуальное задание: наградить 5 самых популярных пар актеров за последний фильм, где они оба снимались.
SET TERM ^ ;
create or alter procedure BEST_DUET (
NUMAWAR integer)
as
declare variable MOVIE_ID integer;
declare variable SECOND_MAN integer;
declare variable RAT integer;
declare variable FIRST_MAN integer;
begin
begin
for SELECT first 5 AMAN.man_id as first_act, BMAN.man_id as second_act, SUM(rating.rating) as sum_reit from
man AMAN, man BMAN, part, career, rating
WHERE AMAN.man_id = part.man_id AND
part.film_id IN (SELECT DISTINCT part.film_id FROM part, career
WHERE part.man_id = BMAN.man_id AND part.role_id = career.id
and career.name = 'actor') and
part.role_id = career.id and career.name = 'actor' and
AMAN.man_id < BMAN.man_id and rating.film_id = part.film_id
group by first_act, second_act
ORDER BY sum_reit DESC
into :first_man, :second_man, :rat do
begin
SELECT first 1 film.f_id from film, career,part,man
WHERE man.man_id =:first_man and man.man_id = part.man_id AND film.f_id = part.film_id and
part.film_id IN (SELECT DISTINCT film_id FROM part WHERE man_id = :second_man) and
part.role_id = career.id and career.name = 'actor'
ORDER BY film.year_of_creation DESC
into :movie_id;
if ((select premium.film_id from premium where premium.man_id = :first_man and premium.film_id = :movie_id
and premium.award_id = :numawar) is null) then
INSERT INTO premium values (:movie_id, :first_man,:numawar) ;
if ((select premium.film_id from premium where premium.man_id = :second_man and premium.film_id = :movie_id
and premium.award_id = :numawar) is null) then
INSERT INTO premium values (:movie_id, :second_man,:numawar) ;
end
end
end
^
SET TERM ; ^
GRANT SELECT ON MAN TO PROCEDURE BEST_DUET;
GRANT SELECT ON PART TO PROCEDURE BEST_DUET;
GRANT SELECT ON CAREER TO PROCEDURE BEST_DUET;
GRANT SELECT ON RATING TO PROCEDURE BEST_DUET;
GRANT SELECT ON FILM TO PROCEDURE BEST_DUET;
GRANT SELECT,INSERT ON PREMIUM TO PROCEDURE BEST_DUET;
GRANT EXECUTE ON PROCEDURE BEST_DUET TO SYSDBA;
4.4.Выводы
В результате работы были изучены основные возможности языка PSQL для реализации более сложной обработки данных на стороне сервера с помощью хранимых процедур и триггеров.
Раздел 5. Консольное приложение для работы с БД
5.1. Цели работы
Изучение технологий работы с базами данных на примере JDBC. Применение полученных знаний для разработки собственного консольного клиента в соответствии с индивидуальным заданием.
5.2. Программа работы
1) Изучить основы Java DataBase Connectivity.
2) Разместить БД на сервере (tiger.ftk.spbstu.ru:/var/lib/firebird, пользователь: SYSDBA, пароль: masterkey).
3) Установить в среде разработки драйвер JDBC для доступа к БД.
4) Соединиться из среды разработки с созданной ранее в соответствии с индивидуальным заданием БД
5) Разработать полезное и удобное консольное приложение со следующей функциональностью:
- Реализовать функции модификации БД в соответствии с индивидуальным заданием
- Обеспечить поддержку целостности БД при выполнении операций (контроль корректности ссылок при изменении и добавлении записей, проверка входных значений, каскадное удаление зависимых записей)
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.