
- •Задание на курсовую работу
- •Аннотация
- •Содержание
- •Обоснование модели данных
- •Обоснование выбора субд
- •Описание функций групп пользователей
- •Описание функций управления данными
- •Организация защиты бд
- •Заключение
- •Список использованных источников
- •Приложения Приложение а. Руководство пользователя
- •Приложение в. Исходный код программы
Приложения Приложение а. Руководство пользователя
Для взаимодействия с базой данных была написана программа на языке программирования Python. Интерфейс взаимодействия: консольный. Для начала работы должен быть создан проект в ПО MySQL Workbench на localhost. Далее всю работу на себя берет написанная программа.
Рисунок 1. Стартовое окно программы
Добавим по два водителя, маршрута и автобуса соответственно. Для начала работы следует вписать номер опции и нажать Enter. Для выхода из программы следует ввести символ цифры ноль и нажать Enter
Рисунок 2. Добавление водителя
На рисунке 2 был успешно добавлен водитель Иван Павлов с 3 классом квалификации и двухлетнем стажем. Зарплата сформируется автоматически на основе введенных данных. Для того, чтобы вернутся в стартовый выбор следует нажать Enter (рисунок 3)
Рисунок 3. Возвращение программы в исходное состояние
Добавим еще одного водителя. Затем добавим маршрут (рисунок 4).
Рисунок 4. Добавление маршрута
Теперь осталось добавить автобус (рисунок 5).
Рисунок 5. Добавление двух автобусов
После добавления всех элементов, следует проверить, записались ли они. Нажмем «показать маршруты» чтобы убедиться в этом (рисунок 6).
Рисунок 6. Вывод всех маршрутов
Действительно, маршруты записались. Очевидно, что остальные элементы записались. Теперь же стоит проверить записались ли элементы в базу данных. Воспользуемся ПО MySQL Workbench (рисунок 7).
Рисунок 7. Запись о водителях в MySQL Workbench
Действительно, введенные данные появились в БД. Также на рисунке 7 видно, что водителям зарплата автоматически рассчиталась.
Свяжем водителей с маршрутами и автобусами (рисунок 8). Связь происходит по средствам ID каждого элемента БД.
Рисунок 8. Создание связи водитель-маршрут-автобус
Посмотрим на получившиеся связи (рисунок 9).
Рисунок 9. Связь водитель-маршрут-автобус
Теперь же сменим протяженность маршрута, предварительно запомнив ранее введенные значения (рисунок 10). Протяженность изменена с 15 на 35.
Рисунок 10. Успешное обновление маршрута
Теперь же попробуем добавить еще одного водителя и автобус на маршрут 198 и посмотреть всех водителей на нем (рисунок 11). И действительно, добавив нового водителя Boris Tooth и новый автобус с номером 102 и привязав их на маршрут 198, был получен соответствующий результат (рисунок 11).
Рисунок 11. Водители на маршруте 198
Рисунок 12. Все имеющиеся водители
Теперь же посмотрим наименования всех автобусов на 86 и 198 маршрутах. По идее на 86 должен быть автобус с номером 100, а на остальных с номерами 101 и 102 соответственно (рисунок 13).
Рисунок 13. Номера автобусов по ID маршрута
Теория подтвердилась практикой. Теперь же выведем все интервалы всех автобусов по всем маршрутам (рисунок 14).
Рисунок 14. Номера автобусов по всем маршрутам
Кроме этого, есть режим вывода всех временных интервалов только по определенному маршруту (рисунок 15).
Рисунок 15. Интервалы по маршруту 198 для каждого автобуса
Теперь же выведем суммарную протяженность и протяженность только 86 маршрута (рисунок 16).
Рисунок 16. Протяженность всех и 86 маршрутов
В качестве предпоследней опции выведем всех водителей на определенном автобусе. Для этого надо будет создать новый автобус и посадить в него уже существующего водителя (рисунок 17). Был создан автобус с номером 104 и выдан водителю Boris Tooth на маршрут 198. Отсюда получаем следующую картину:
Рисунок 17. Все автобусы водителя Boris Tooth
Действительно, вывелись все автобусы, которые были выданы этому водителю. Восемнадцатая опция позволяет выдать справку: полный отчет по автобусному парку (рисунок 18)
Рисунок 18. Полный отчет об автобусном парке.
Сравним полученное с тем, что отображается в MySQL Workbench (рисунок 19)
Рисунок 19. Все таблицы в MySQL Workbench
Содержимое таблиц действительно совпадает, а значит СУБД реализована успешно.
Попробуем удалить любого из водителей. Удаление происходит по ID. В теории должен удалиться как водитель, так и все связи, коррелированные с ним (рисунок 20а,б).
Рисунок 20а. Удаление водителя
Рисунок 20б. Итог удаления водителя
Как можно увидеть, связи и маршруты сами по себе остались нетронутыми, но связи, которые были с ныне удаленным водителем Boris Tooth, пропали.