Задание: Рассмотрим автовокзал, который занимается обслуживанием и учетом пассажиров на междугородных автобусных маршрутах. На автовокзале имеется расписание движения автобусов, содержащее информацию о маршрутах и рейсах. Кроме того, на автовокзале имеется справочное бюро, в котором можно получить информацию о наличии мест на определенный рейс конкретной даты. И, наконец, на автовокзале есть кассы, в которых пассажир может приобрести билет. Кассы начинают предварительную продажу билетов за определенный промежуток времени до дня отправления автобуса (например, за 10 дней).
Необходимо построить такую базу данных, в которой хранится информация как о технических характеристиках маршрутов, содержащаяся в расписании, так и информация о наличии мест на рейсы, и информация о пассажирах, купивших билеты на определенный рейс.
Ниже предлагается вариант организации информации о рейсах и пассажирах (однако исполнитель задания может предложить собственный вариант организации данных).
Администратор базы данных к началу продажи билетов на рейс, т. е., например, за 10 дней до отправления, создает таблицу, соответствующую рейсу и дате отправления. Назовем эту таблицу схемой рейса; в момент создания схема рейса содержит только номера мест, а в процессе продажи билетов схема будет заполняться информацией о пассажире, которому продан билет на соответствующее место. Причем в схеме может находиться собственно информация о пассажире (фамилия, имя, отчество) или ссылка на нее.
После того как рейс выполнен, таблица со схемой рейса удаляется, но перед этим список пассажиров этого рейса можно отправить в архив, который хранится в течение определенного срока, а информацию о рейсе — в таблицу выполненных рейсов. Если по какой-либо причине рейс отменяется, то информация об этом помещается в таблицу отмененных рейсов.
При описанной организации данные можно сгруппировать следующим образом:
- расписание рейсов (номер рейса, маршрут, тип автобуса, расстояние в км, дни отправления, время отправления, время прибытия, цена билета);
- схема рейса (номер места, информация о пассажире: фамилия, имя, отчество);
- адреса схем рейсов (номер рейса, дата отправления, ссылка на схему рейса);
- архив пассажиров (номер рейса, дата отправления, номер места, фамилия, имя, отчество);
- выполненные рейсы (номер рейса, дата отправления, количество проданных мест, полученная сумма);
- отмененные рейсы (номер рейса, дата, причина отмены рейса).
В создаваемой системе, прежде всего, необходимо обеспечить ведение данных: организацию таблиц для схем рейсов и ссылок на них, ввод и редактирование данных в таблицах, архивирование данных, удаление таблиц.
Кроме того, в рассматриваемой задаче представляют интерес запросы. Например, следующие:
- наличие свободных мест на рейс;
- количество пассажиров уже выполненного рейса, доходность рейса;
- список всех пассажиров определенного рейса (выполненного или того, на который идет продажа билетов);
- определить, покупал ли билет человек с заданной фамилией и, если покупал, то на какой рейс.
Количественные данные рассматриваемой задачи позволяют также вести их статистический учет, можно для наглядности использовать графическое представление данных. Например, определять количество перевезенных пассажиров и объем перевозок (в денежном выражении) по дням, по месяцам в целом по всем направлениям или по определенному
Этой базы данных ещё нет в наличии, но её можно заказать
Готовая база данных "Пассажирское автопредприятие"