- •Введение
- •1.Постановка задачи
- •2. Проектирование бд
- •3.1 Описание предметной области
- •2.2 Выделение и нормализация сущностей
- •Логическая схема базы данных
- •Обоснование связей между сущностями
- •3. Функциональная декомпозиция системы
- •Сценарий взаимодействия пользователя с системой
- •Спецификация функций
- •Спецификация процедур
- •Спецификация триггеров
- •Представление
- •5. Тестирование системы
- •5.1 Заполнение бд актуальными данными
- •5.2 Тестирование функций
- •5.3 Тестирование процедур
- •Тестирование триггеров
- •Тестирование представлений
- •Заключение
Представление
Представление хранит виртуальную таблицу info в которой содержатся все данные по ставкам (имена клиентов, кличка лошади и сумма ставки), сортированную по убыванию ставки.
SQL – код:
create view info (Family_client,Name_client,Father_name_client,Price, Name_horse) as
select Family_client,Name_client,Father_name_client,Price,Name_horse from
klients join horse join price on (klients.ID_client = price.ID_client) and
(horse.ID_horse =price.ID_horse) group by Price order by Price desc|
5. Тестирование системы
5.1 Заполнение бд актуальными данными
Все таблицы БД заполнены актуальными данными. Каждая из таблиц содержит данные, характеризующие соответствующую сущность. Листинг заполнения БД приведён в приложении Б.
Описание вспомогательных SELECT-запросов
SELECT – запрос для проверки работы триггера sum_money, срабатывающего после добавления в таблицу ставки, подсчитывает сумму всех ставок.
Чтобы проверить его работу сделаем выборку данных из объекта
@summoney
SQL – код:
select @summoney count;
Общая сумма ставок.
2) SELECT – запрос для проверки работы триггера count_horse, вычисляющего количество лошадей в БД.
Чтобы проверить его работу сделаем выборку данных из объекта
@counthorse
SQL – код:
select @counthorse count;
Количество лошадей.
3) SELECT – запрос для проверки работы триггера count_klients, вычисляющего количество клиентов.
Чтобы проверить его работу сделаем выборку данных из объекта
@countclient
SQL – код:
select @countclient count;
Количество клиентов.
4) SELECT – запрос для проверки работы триггера count_runners, вычисляющего количество наездников.
Чтобы проверить его работу сделаем выборку данных из объекта
@countrunner
SQL – код:
select @countrunner count;
Количество наездников.
SELECT – запрос для проверки работы представления, хранящего виртуальную таблицу info в которой содержатся все данные по ставкам (имена клиентов, кличка лошади и сумма ставки), сортированную по убыванию ставки.
Выполним запрос к представлению
SQL – код:
select * from info;
Результат – таблица со сведениями о ставках.
5.2 Тестирование функций
Вызовем функцию count_clients, подсчитывающую количество клиентов, т.е. персон сделавших ставки.
Количество клиентов.
Вызовем функцию count_price, выдающую количество ставок, сделанных клиентом. Входным параметром является id клиента.
Получаем количество ставок у 5 клиента.
Вызовем функцию get_name, показывающую на лошади, с какой кличкой выступает наездник. Результат – имя лошади. Входным параметром является id наездника.
Получаем что наездник с номером 4 управляет лошадью с кличкой Fire.
5.3 Тестирование процедур
база данные аэропорт триггер
Тестируем процедуру count_price подсчитывающую сумму всех ставок на определенный забег. Входные параметры – дата и время забега.
Получаем, что на этот забег сделано ставок на 27000.
Тестируем процедуру win, которая выводит номера клиентов, чья ставка оказалась выигрышной. Также выводит тип забега, в котором был выигрыш.
Получаем, что есть два клиента с выигрышными ставками в двух разных забегах.
Тестируем процедуру add_cl добавляющую клиента, а также его ставку. Входные параметры: фамилия, имя, отчество, размер ставки, id лошади.
Получаем нового добавленного клиента и ставку.
Тестируем процедуру del_cl удаляющую клиента и связанную с ним ставку. Входной параметр – id клиента.
Для работы функции в начале работы с ней нужно прописать:
SET AUTOCOMMIT=0;
SET FOREIGN_KEY_CHECKS=0;
Клиент и связанная с ним ставка удалены из БД.
Тестируем процедуру change_price, меняющую ставку клиента по id ставки используя курсор. Входные параметры – id ставки и сумма новой ставки.
Ставка с id 1 поменялась с 3000 на 5000.
Тестируем процедуру Процедура info_ippodrom показывающую основную информацию об ипподроме, подсчитанную с помощью триггеров.
Информация которая подсчитывалась триггерами приведена в этой таблице.
