Лабораторная по базам данных

Александр9 лет в сервисе
Данные заказчика будут вам доступны после подачи заявки
11.12.2019

Нужен именно текст запросов на создание всех процедур, функций, триггеров и т.д., а не просто сделать это в БД.

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*. Написать процедуру, которая вычисляет количество проведенных процедур и их общую стоимость для заданного диапазона дат (параметры – начальная и конечная дата диапазона)