Лабораторная по базам данных
Нужен именно текст запросов на создание всех процедур, функций, триггеров и т.д., а не просто сделать это в БД.
1. Задания на написание процедур:
1.1. Создать процедуру для вычисления разницы новых и старых показаний.
1.2. Создать процедуру для вычисления долга.
1.3. Создать процедуру для вычисления суммы «к оплате».
2. Задание на написание функции:
2.1 Написать функции, принимающие один параметр – дату, и вычисляющие самый последний тариф (соотв. на холодную и горячую воду), дата принятия которого не позднее указанного значения.
3. Задания на написание триггеров:
3.1. Для нового справочника городов создать триггер на вставку (формирование первичного ключа).
3.2. Для таблицы computation создать триггер, автоматически рассчитывающий поля n_difference_x при ставке новых записей, а также выполняющий расчет стоимости по последнему тарифу.
Использовать функции и процедуры (тело триггера не должно содержать DDL-операций). Тариф получить из функции из предыдущей лабораторной работы.
Указание: задание делается без предиката «for each row» в триггере, поскольку есть ограничение: для триггера с for each row нельзя делать запросы к самой изменяющейся таблице (на которую делается триггер).
4. Создать последовательности (SEQUENCE) и триггеры на вставку значений первичного ключа для всех суррогатных первичных ключей в схеме.
5. Написать функцию, которая возвращает количество посещений санатория, которые имели продолжительность не менее X дней (параметр – количество дней) для определенного клиента (параметр – номер санаторной карты).
6. Написать процедуру, которая рассчитывает рейтинги клиентов следующим образом: +10 к рейтингу за каждое посещение санатория длительностью не менее 3-х суток. Используйте в процедуре вызовы функций из предыдущего пункта.
7. Написать триггер, который в случае нового посещения санатория клиентом (при вставке новой записи в таблицу посещений), автоматически увеличивает его
рейтинг по бизнес-правилу, описанному в предыдущем пункте.
8*. Написать процедуру, которая вычисляет количество проведенных процедур и их общую стоимость для заданного диапазона дат (параметры – начальная и конечная дата диапазона)