Информационная система для обслуживания пассажиров в кассах вокзалов
Анализ предметной области, определение сущностей и связей. Разработка базы данных, создание таблиц и запросов. Исходные тексты процедур модулей. Тестирование информационной системы на корректность работы. Схема инфологической модели предметной области.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 19.12.2011 |
Размер файла | 4,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Проблема обслуживания пассажиров на любом транспорте всегда имела существенную роль. Учет мест, рейсов, огромное количество пассажиров, билетов, которое нужно учитывать и где-то хранить и своевременно обновлять. Все это требует большого количества бумаг, времени и денег. Что касается ж/д транспорта, то тут проблема обстоит более остро, так как основным видом транспорта дальнего следования в России остаются поезда. Для учета расписания движения поездов, которое изменяется буквально каждую неделю, требуется много времени и большой объем носителя информации. Ошибки в расписании могут повлечь за собой катастрофические последствия, такие как смерть людей, крушения поездов и т.д. В настоящий момент на Московской и Юго-Восточной железной дороге используется автоматизированная система управления «Экспресс - 2». Но по высказываниям разработчиков и пользователей в ней есть недоработки и неточности, которые порой приводят к путанице, также данная система сложна в пользовании.
Таким образом, встает вопрос о разработке новой системы, которая позволит улучшить и упростить работу кассиров, допускать меньше ошибок при оформлении билетов, и вообще возможно избежать многих неточностей.
Важнейшей задачей разработки автоматизированных систем часто являются не столько вычисления, сколько процессы сбора, хранения, организации и распределения информации. Применение вычислительной техники для построения прикладных систем обработки данных показывает, что самым эффективным инструментом здесь являются не универсальные алгоритмические языки высокого уровня, а специализированные языки для создания систем управления данными. Такие средства обычно включаются в состав систем управления базами данных (СУБД). СУБД дает возможность пользователям осуществлять непосредственное управление данными, а программистам быстро разработать более совершенные программные средства их обработки.
В данном курсовом проекте поставлена задача разработки новой информационной системы для обслуживания пассажиров в кассах вокзалов, учета расписаний и упрощения работы кассиров.
Описание и анализ предметной области
Пассажиры перевозятся на специально оборудованных пассажирских поездах. Поезд это состав, состоящий из вагонов определенного типа, а также из локомотива, который собственно и перемещает поезд в пространстве.
Пассажиры при покупке билета получают право на проезд в вагоне нужного им поезда на определенном месте.
Человек, которому нужно совершить поездку из одного места в другое приходит на вокзал и из общего расписания поездов, проходящих через данную станцию, узнает, примерно, какой поезд ему нужен. В расписании указываются номера поездов, конечные пункты маршрута, по которому он движется, а также время и дата прибытия, и время отправления с данной станции. При этом пассажир должен оценить свои финансовые возможности, так как поезда и вагоны бывают различных категорий и типов соответственно.
Основной задачей кассира является оформление и выдача билета на руки пассажиру за сумму установленную Министерством путей сообщения РФ.
Обслуживание пассажира начинается с занесения информации в БД о нем самом. Это ФИО, паспортные данные, номер требуемого поезда, нужный тип вагона, точка назначения, заносится и точка отправления, так как эта информация входит в билет, также пассажир сообщает дату, на которую ему нужен билет. Продажа осуществляется максимум на сорок дней вперед.
После этого по номеру поезда, сообщенного пассажиром, находится расписание движения данного поезда, а также проверяется, проходит ли состав через станцию, которая нужна пассажиру. Если поезд действительно проходит через нужную станцию, то исходя из нужного пассажиру типа вагона находятся вагоны в данном составе имеющие соответствующий тип. Если поезд не проходит через нужную станцию, пассажир должен назвать другой поезд. Далее ищутся свободные места в вагонах. Если вагонов несколько, то ищутся места в том вагоне, где есть свободные места, то есть у вагона должен быть признак заполнения.
После завершения всех вышеуказанных действий оформляется билет (рис. 1)
Поезд |
Отправление |
Вагон |
Цена |
Вид документа |
||
№ Шифр |
Число Месяц Часы Мин. |
№ Тип |
Билет Плацкарта |
Кол. человек |
||
|
||||||
Номер поезда |
Дата отправления поезда, Время отправления поезда |
Номер вагона, Тип вагона |
Плацкарта, (Спальное место) |
Количество человек |
Вид документа |
|
Станция отправлени, Вокзал отправления, Станция прибытия, Вокзал прибытия |
Категория поезда |
|
||||
Номер места |
Защитный код билета |
|||||
Серия проездного документа, Номер проездного документа, Дата оформления, Время оформления, Номер терминала. |
||||||
Паспортные данные (серия, номер), Ф.И.О. |
||||||
Цена билета, в том числе страховой сбор + НСП (с СВ), Признак купе с услугами |
||||||
Дата прибытия поезда, Время прибытия поезда |
Рис. 1 - Билет
Подробнее остановимся на информации содержащейся в билете.
Поле дата и время отправления поезда в объяснении не нуждаются. Каждый поезд имеет свой номер, закрепленный за ним на весь период эксплуатации. Данные номера указываются в расписании станции.
Номер вагона - это номер вагона в составе. Типы вагонов могут быть следующими:
- 2-местный мягкий (16-18 мест)
- купейный (36-38 мест)
- плацкартный (54 места)
- общий (81 место)
- межобластной (места не нумеруются)
В поле цена указываются цена на билет, а также плацкарта - спальное место в вагоне. Виды документа могут быть следующие:
- Полный
- Льготный
- Школьный
- Детский
При выдаче документов последних двух видов требуется свидельство о рождении вместо паспорта. При выдаче льготных билетов необходимо предъявление соответствующих документов дающих право на льготы. Могут указываться следующие категории поездов:
1 - 157: скорые
157 - 170: скоростные
170-998: пассажирские
Здесь необходимо учесть что поезда с номерами 157 - 170 работают только на линии между Санкт-Петербургом и Москвой.
Остальная информация, указанная на рисунке не требует более подробного объяснения.
Таким образом, в базу данных надо вводить информацию о пассажире, расписании движения поездов, станциях (дате и времени прибытия, отправления, времени стоянки), о типах вагонов, категориях поездов, количестве мест и их бронированности.
При завершении рейса информация о пассажирах ехавших в нем должна быть удалена.
Выявление требований к информационной системе
Нужно предусмотреть следующие ограничения на информацию в системе:
Номер поезда не может выходить за указанный выше диапазон.
Категории поездов и вагонов не могут быть иными, а только такими, какими они указаны.
Пассажир при приобретении билета обязательно должен предъявить паспорт или свидетельство о рождении
Пассажир обязательно должен указать тип вагона, который ему нужен, а также пункт назначения и дату.
Количество вагонов не может иметь значения NULL, а также не выходить за диапазон 1-99.
Количество мест в зависимости от типа вагона не может выходить за указанный диапазон.
В основном все данные имеют текстовый характер, за исключением номеров поездов, номеров вагонов, номеров мест. Дата и время имеют соответствующий тип. При описании паспортных данных вполне будет достаточно полей размером в 50 символов или 50 байт.
Поля типа счетчик можно использовать только в самом билете как номер билета, а также при задании общего количества мест. Служебная информация указываемая в билете имеет размер не более 50 символов.
При вводе информации о вагонах необходимо учесть, что номер вагона в составе и просто номер вагона - это две разные вещи. Просто номер вагона состоит из трех символов, закрепленных за вагоном при строительстве на заводе - изготовителе. Номер вагона в составе - это номер вагона именно в данном составе. Итак, для заводского номера вагона достаточно 3 символа, для номера вагона в составе будет вполне достаточно 2 символов, так как максимальное число вагонов в пассажирском составе не может превышать двухзначного числа.
При указании расписания допускается ввод пустого значения при работе с конечными станциями, например, при описании начальной станции рейса можно не указывать время и дату прибытия на нее, аналогично нужно поступить при описании конечной станции.
Работать с данной системой должны только кассиры вокзалов.
Кассир, при работе с системой должен иметь возможность решать следующие задачи:
Оформлять пассажира в базе данных в соответствии со всеми требованиями.
Находить информацию о поезде, маршруте рейса, свободных местах, то есть информацию, которая нужна пассажиру при посадке в поезд.
Заносить в билет служебную информацию.
Удалять информацию о пассажирах при окончании рейса, а также о нем самом.
Рейс имеет начальную дату и конечную дату, а также номер. Маршрут - это расписание прохождения по станциям поезда, выполняющего определенный рейс. Нумерация билетов ведется в соответствии с МПС.
ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ
Исследование предметной области: определение сущностей и связей
Цель системы: обеспечить более качественное и быстрое обслуживание кассирами большего числа пассажиров.
Назначение системы: система предназначена для автоматизации работы кассы, а также повышения эффективности ее работы.
Точка зрения: данная модель может быть рассмотрена с точки зрения кассиров, занимающихся обслуживанием пассажиров.
В качестве цели данного проекта была выбрана предметная область “Касса Ж/Д вокзала”, в ней необходимо отразить:
Список обслуживаемого транспорта;
Информация о стоимости проезда;
Данные о маршрутах (номер, конечный пункт, станции по расписанию);
Расписание движения поездов;
Данные о рейсах (номер рейса, номер маршрута, время отправления);
Обеспечение быстрого поиска информации о рейсах;
Итоги продажи билетов в зависимости от даты.
Просмотрев данные требования, можно выделить следующие сущности (сущность - это частица реального мира, представляющая интерес для пользователя.):
Маршрут (содержит информацию о маршрутах),
Рейс (информация о рейсах),
Поезд (информация о поездах),
Станция (информация о станциях),
Пассажир (информация о пассажире),
Вагон (тип, номер, номер в составе),
Билет (информация, записываемая в билет),
Назначение (время прибытия, время отправления, номер поезда),
Место (номер места в вагоне, цена билета),
Тип вагона (количество мест).
Сущности можно охарактеризовать следующим атрибутами:
для сущности Маршрут - Номер рейса (является ключом данной сущности), название станции, дата и время прибытия, дата и время отправления;
для сущности Рейс - Номер рейса, дата и время начала пути, дата и время конца пути;
для сущности Поезд - Номер поезда, метка поезда, категория поезда;
для сущности Станция- Название станции, время стоянки, населённый пункт;
для Пассажир - Номер пассажира, ФИО, серия паспорта, номер паспорта, дата, номер поезда, точка назначения, точка отправления, тип вагона;
для Вагон - Номер вагона, номер вагона в составе, тип вагона, номер поезда, фирма изготовитель;
для Билет - Номер билета, серия билета, номер места в вагоне, номер поезда, тип вагона, номер вагона, номер пассажира, номер вагона в составе, дата и время оформления;
для Назначение - Номер назначения, номер рейса, номер поезда, дата и время начала пути, дата и время конца пути;
для Место- Номер места, номер места в вагоне, цена, бронь, номер вагона;
для Тип вагона - Тип вагона, количество мест.
Связь - взаимодействие между двумя или более сущностями (отношение). В данной предметной области имеются следующие связи:
Содержит: связь между сущностями Вагон и Место (показывает существование мест в вагоне);
Состоит из: связь между сущностями Вагон и Поезд (показывает то, что поезд состоит из вагонов);
Соответствует: связь между сущностями Вагон- Тип вагона, Назначение- Рейс, Рейс- Билет, Билет- Место ( показывает соответствие между сущностями - например каждому билету соответствует только одно место или билет можно купить на какой-то рейс);
Назначен: связь между сущностями Поезд и Назначение (показывает назначение поезда на рейс);
Проходит: связь между сущностями Рейс и Станция по назначению (говорит о том, что рейс проходит через определенную станцию);
Включена: связь между сущностями Станция и Станция по расписанию (показывает что станции стоянок принадлежат определенным вокзалам).
Разработка и описание информационной модели
Процесс создания информационной модели основывается на функциональной модели. Для разработки информационной модели необходимо выделить сущности Прежде всего производится анализ дуг, имеющихся в функциональной модели. Для этого рассмотрим список дуг:
Билет
Пассажир
Рейс
Поезд
Вагон
Станция
Место
Тип вагона
Сущность представляет множество реальных или абстрактных предметов (людей, объектов, мест, событий и т.д.), обладающих общими атрибутами или характеристиками. Каждой сущности в модели должно быть присвоено уникальное имя.
В результате анализа входной дуги «Пассажир» делаем вывод, что целесообразно создать сущность ПАССАЖИР. Каждый экземпляр данной сущности будет соответствовать конкретному пассажиру.
Дуге «Билет» будет соответствовать сущности БИЛЕТ. В билете хранится почти вся информация, рассматриваемая в данном проекте, поэтому данная сущность будет иметь весомое значение.
Дуге «Рейс» будет соответствовать сущность РЕЙС. Экземплярами сущности будут конкретные рейсы, на которые назначаются поезда.
Дуге ПОЕЗД будет соответствовать сущность ПОЕЗД. Эта сущность будет характеризовать поезд, который назначен, на какой либо рейс.
Дуге ВАГОН будет соответствовать сущность ВАГОН. Экземпляры данной сущности будут соответствовать вагону, но не в составе определенного поезда, а как самостоятельной единице.
Дуге СТАНЦИЯ будет соответствовать сущность СТАНЦИЯ. Каждому экземпляру сущности станция будет соответствовать конкретная станция, которая включена в расписание рейса.
Дуге МЕСТО будет соответствовать сущность МЕСТО. Каждый экземпляр сущности МЕСТО будет соответствовать конкретному месту, на котором будет перевозиться пассажир.
Дуге ТИП ВАГОНА будет соответствовать сущность ТИП ВАГОНА. Экземплярами данной сущности будут определенные типы вагонов, которые будут соответствовать определенным вагонам.
После выявления сущностей приступают к выявлению отношений связи между ними.
Рассмотрим сущности РЕЙС и СТАНЦИЯ. Из описания предметной области известно, что на рейс назначается поезд, который следует по станциям, расписание которых соответствует определенному рейсу. Таким образом, в расписании рейса указываются станции, причем их может быть начиная от двух и кончая неопределенно большим числом. С другой стороны через одну станцию может следовать множество поездов, значит, в расписании движения через станцию можно указать множество рейсов. Из сказанного выше приходим к выводу: одному рейсу может соответствовать множество станций, а одной станции множество рейсов. Таким образом, мы выявили отношение, которое называется «МНОГО-КО-МНОГОМУ» или неспецифическим (рис. 2).
РЕЙС СТАНЦИЯ
Рис. 2 - Неспецифическое отношение между сущностями рейс и станция
Неспецифические отношения - отношение "много-ко-многому"- это связь между двумя сущностями, при которой каждый экземпляр первой сущности связан с произвольным количеством экземпляров второй сущности, а каждый экземпляр второй сущности связан с произвольным количеством экземпляров первой сущности.
Для устранения выявленной неспецифической связи вводят третью «искусственную сущность». В нашем случае можно вести сущность
Станция по расписанию. Экземплярами данной сущности будут станции, закрепленные за рейсом, с помощью которых можно перейти от неспецифического отношения к специфическим.
Посмотрим, что же произойдет после введения связующей сущности. Рейс может следовать по нескольким станциям, но станция закреплена за каким-то определенным рейсом, получаем специфическое отношение «ОДИН КО МНОГИМ». Аналогичные рассуждения применимы и к сущности СТАНЦИЯ. Теперь мы можем четко сказать, какие станции включены в маршрут рейса и через какие станции проходит определенный рейс.
На рисунке 3 показаны отношения между сущностями РЕЙС, СТАНЦИЯ, СТАНЦИЯ ПО РАСПИСАНИЮ
Рис. 3 - Раскрытое неспецифическое отношение сущностей РЕЙС и СТАНЦИЯ
В нашем случае можно выделить еще одно отношение «МНОГО КО МНОГИМ». Это отношение между сущностями РЕЙС и ПОЕЗД, так как на рейс в разное время может быть назначен тот или иной поезд, в то же время один поезд может быть назначен в разное время на тот или иной рейс. Эту проблему решаем аналогично предыдущей - введем связующую сущность - НАЗНАЧЕНИЕ, с помощью которой можно определенно сказать, какой поезд на какой рейс назначен (рис 4).
Рис. 4 - Раскрытое неспецифическое отношение сущностей РЕЙС и СТАНЦИЯ
Далее рассмотрим сущности ВАГОН, МЕСТО, ТИП ВАГОНА. Сущность ВАГОН связывается отношением «ОДИН КО МНОГИМ» с сущностью ПОЕЗД, так как поезд физически состоит и определенного числа вагонов, при этом определенное число вагонов может принадлежать только одному поезду.
Вагон может быть определенного типа, причем множество вагонов может быть определенного типа, но тип у вагона всегда один, получаем отношение «Один ко многим».
В вагоне может быть определенное количество мест. При этом некоторое количество мест может принадлежать только одному вагону, очевидно отношение «Один ко многим».
В результате приведенного выше анализа получим фрагмент модели (рис. 5).
Рис. 5 - Связь сущностей ПОЕЗД, ВАГОН, МЕСТО и ТИП ВАГОНА
Рассмотрим оставшиеся сущности: ПАССАЖИР и БИЛЕТ. Пассажир может приобрести билеты на различные рейсы, при этом у пассажира на руках может быть всего один билет. Получаем связь «Один ко многим». Аналогичным образом получаем связь между сущностями БИЛЕТ и МЕСТО.
Итак, были выявлены отношения между всеми сущностями и устранены отношения типа «много - ко - многим».
Приступаем к следующему этапу - определение первичных ключей сущностей.
Первичный ключ - это потенциальный ключ, который выбран для уникальной идентификации атрибутов внутри сущности.
Таким образом, выбранный первичный ключ никогда не может повторяться в пределах данной сущности.
Возьмем первую сущность - СТАНЦИЯ. В данной сущности первичным ключом может выступать название станции, так как название станций никогда не повторяется, оно всегда уникально. Значениями ключа выступают строки соответствующие названиям станции.
Далее рассмотрим следующую сущность - СТАНЦИЯ ПО РАСПИСАНИЮ. В данной сущности первичным ключом может выступать ключ состоящий из первичных ключей сущностей РЕЙС и СТАНЦИЯ в силу его уникальности и неповторяемости. При этом ключ будет носить название составного. Значением ключа будут являться две цифры, вводимые вручную.
Первичным ключом сущности РЕЙС, очевидно, выступает номер рейса. Значением ключа будет являться число вводимое вручную.
Первичным ключом сущности НАЗНАЧЕНИЕ можно взять номер назначения. Значение данного ключа - число, будет формироваться автоматически путем ввода поля типа счетчик.
Первичным ключом сущности ПОЕЗД можно взять номер поезда в силу его уникальности и неповторяемости, так как из описания предметной области известно, что номер поезда закреплен за ним на весь период эксплуатации. Значение ключа - число, вводимое вручную.
Первичным ключом сущности ВАГОН можно взять заводской номер вагона, но не номер вагона в составе, так как в каждом составе вагоны нумеруются от 1 и до конца.
Первичным ключом сущности ТИП ВАГОНА можно взять именно сам тип вагона, так, как из описания предметной области известно, что существует определенный и конечный список типов вагонов, и они не повторяются.
Первичным ключом сущности МЕСТО нельзя взять номер места в вагоне, так как от вагона к вагону нумерация повторяется. Поэтому можно просто номер места, в общем.
Первичным ключом сущности ПАССАЖИР может выступать номер пассажира.
Первичным ключом сущности БИЛЕТ выступает номер билета.
После выявления первичных ключей приступают к последнему этапу разработки информационной модели - выявлению атрибутов сущностей.
У сущности СТАНЦИЯ можно выделить следующие атрибуты:
Название населенного пункта, в котором находится станция. Так как в некоторых случаях название населенного пункта и станции не совпадают. Например, в Москве есть станции с названиями - «Казанский вокзал», «Ярославский вокзал» и т.д. Обычно в название станции включается название населенного пункта и цифра, указывающая какая это по счету станция в данном населенном пункте, например: Рязань - 1, Рязань - 2, Воронеж - 1, Воронеж - 2.
Время стоянки состава, которое учитывается при составлении графиков движения и расписания.
Вид сущности на диаграмме представлен на рисунке 6.
Рис. 6 - Сущность СТАНЦИЯ
У сущности СТАНЦИЯ ПО РАСПИСАНИЮ будут следующие атрибуты:
1) В силу того, что данная сущность искусственна, то в нее мигрируют первичные ключи сущностей: РЕЙС и СТАНЦИЯ с пометкой FK, что означает - внешний ключ. Это будут: Название станции и номер рейса.
2) Также можно выделить следующие атрибуты: Дата и время прибытия и Дата и время отправления на данную станцию.
Вид сущности на диаграмме представлен на рисунке 7.
Рис. 7 - Сущность СТАНЦИЯ ПО РАСПИСАНИЮ
У сущности РЕЙС будут следующие атрибуты:
Дата и время начала рейса. Это дата и время начала именно рейса и ничего другого.
Дата и время окончания рейса. Имеет значение, аналогичное первому атрибуту данной сущности.
У сущности НАЗНАЧЕНИЕ будут следующие атрибуты:
Дата начала. Это дата начала заступления поезда на выполнение данного рейса. Так как эта дата совпадает с датой начала самого рейса, то атрибут сущности РЕЙС будет играть в данной сущности роль начала выполнения поездом рейса.
Дата конца. Это дата окончания выполнения поездом его назначения на данный рейс. Так как эта дата совпадает с датой окончания самого рейса, то атрибут сущности рейс - дата и время конца будет играть в этой сущности роль окончания выполнения поездом рейса.
Также в эту сущность мигрируют ключи Номер рейса(FK) и номер поезда(FK).
У сущности ПОЕЗД будет всего один атрибут- Категория поезда (см. в параграфе 2)
У сущности ВАГОН будут следующие атрибуты:
Номер вагона в составе. Это не номер вагона-заводской, который является первичным ключом, а номер вагона в данном составе, так как номера вагонов в разных составах повторяются. Поэтому данное поле нельзя было сделать первичным ключом данной сущности.
Тип вагона - внешний ключ из сущности ТИП ВАГОНА.
У сущности ТИП ВАГОНА будут следующие атрибуты:
Завод - изготовитель. Это завод, на котором построен вагон.
Количество мест. Это количество мест в вагоне данного типа(см. параграф 2).
У сущности МЕСТО будут следующие атрибуты:
Бронь. Это логический атрибут, имеющий два значения: «Да», то есть место уже занято и «Нет», то есть место свободно.
Цена. Это цена за проезд на данном месте.
Номер места в вагоне. Это номер места именно в вагоне. Так как нумерация мест повторяется от вагона к вагону, то этот атрибут не смог стать первичным ключом.
Также сюда мигрируют ключи номер вагона и номер поезда. Для определения принадлежности места к вагону, а вагона к поезду.
У сущности БИЛЕТ будут следующие атрибуты:
Серия. Это серия билета.
Номер пассажира. Внешний ключ для связи сущностей пассажир и билет.
Тип вагона. Внешний ключ из сущности тип вагона. Указывается в билете.
Номер вагона. Мигрирует из сущности вагон. Указывается в билете.
Номер поезда. Указывается в билете.
Номер места в вагоне. Мигрирует из сущности МЕСТО под именем роли. Играет роль как информация, которая должна быть указана в билете.
Номер места. Мигрирует как внешний ключ из сущности МЕСТО.
Дата и время оформления. Не требует объяснений.
Номер места в вагоне. Мигрирует из сущности вагон под именем роли.
У сущности ПАССАЖИР будут следующие атрибуты:
ФИО.
Серия паспорта.
Номер паспорта.
Тоска отправления. Станция с которой пассажиру нужно добраться до другой станции.
Точка назначения. Станция до которой нужно добраться пассажиру.
Дата и время. Дата и время на которое пассажиру нужен билет.
Тип вагона. Нужный тип вагона.
На этом разработка информационной модели завершена. Вся модель представлена в приложении 1.
Разработка базы данных
Разработанную в пункте 3 информационную модель приспосабливаем к возможностям Access. Программа Microsoft Access 2000 является реляционной СУБД. СУБД Access имеет стандартизированный интерфейс приложений Windows. База данных является основным компонентом проекта приложения Access и может включать в свой состав таблицы, формы, запросы и другие элементы. Таблица представляет собой основную единицу хранения данных в базе. В соответствии с разработанной выше информационной моделью база данных будет содержать десять таблиц. Все сущности, входящие в информационную модель, с помощью средств Access представляются в табличной форме. Все таблицы создаются в режиме конструктора. Режим конструктора обеспечивает полную свободу в создании полей, ключей, индексов и других средств управления вводом данных в таблицу. Таблица состоит из строк и столбцов и имеет уникальное имя в базе данных. В каждой из таблиц содержится информация о каких-либо объектах одного типа.
Создадим первую таблицу в нашей базе данных - РЕЙС. На рисунке 4.1. представлено окно конструктора таблиц MS Access 2000, где создана таблица Рейс.
Рис. 8 - Таблица «РЕЙС»
В данной таблице задано ключевое поле Номер рейса, которое является первичным ключом, а также поля соответствующие атрибутам сущности РЕЙС.
Создадим следующую таблицу под названием СТАНЦИЯ, которая соответствует сущности из информационной модели - Станция.
Вид конструктора представлен на рисунке 9.
Рис. 9 - Таблица СТАНЦИЯ
В качестве ключевого поля задано поле, название станции, что соответствует первичному ключу сущности СТАНЦИЯ, а также соответствующие атрибуты данной сущности.
Создадим еще одну таблицу «МАРШРУТ» которая будет соответствовать сущности с аналогичным названием в информационной модели (рис. 10).
Рис. 10 - Таблица «МАРШРУТ»
Здесь заданы поля: Номер рейса, Название станции, которые являются внешними ключами, а также поля Дата и время прибытия и Дата и время отправления, которые имеют тип ДАТА/ВРЕМЯ, причем в поле «Формат поля» задан формат полной даты. Таким образом все соответствует сущностям и информационной модели.
Далее создаются оставшиеся таблице в соответствии с их описанием в пункте №3 и с учетом ограничений наложенных на данные при описании предметной области. В результате получим 10 таблиц.
Затем созданные таблицы надо связать в «Схеме данных». Связи соответствуют отношениям в информационной модели между сущностями. Также в идентифицированных связях поставлены условия обеспечения целостности данных, а также каскадного удаления и обновления информации. Эти опции нужны для стабильной работы системы, а также предохраняют от ситуаций именуемых как «Аномалия удаления» и «Аномалия обновления» данных.
Созданная схема данных представлена на рис. 11.
Рис. 11 - Схема данных системы
После связывания таблиц приступаем к вводу данных в таблицы. После ввода данных можно приступать к созданию запросов к нашей базе данных с целью решения поставленной задачи.
Создание запросов
При описании предметной области была поставлена задача продажи билета пассажиру. Также из описания предметной области мы знаем что для этого необходимо сделать.
После занесения пассажира в базу данных делается поиск рейса который соответствует номеру поезда, названного пассажиром. Делаем запрос под названием «Назначения на рейсы» (рис. 12)
Рис. 12 - Запрос «Назначения на рейсы»
В результате запроса на экран будут выведены номера рейсов, а также дата и время начала рейса и дата и время конца рейса. При выполнении данного запроса также появляется окошко с вопросом о вводе номера поезда, этому соответствует строка в условии отбора.
Следующим запросом будет запрос под названием «Расписание рейса» (рис. 13). Данный запрос позволит определить расписание рейса по его номеру.
Рис. 13 - Запрос «Расписание Рейса»
В результате выполнения запроса на рейс 1 получим следующую таблицу (рис. 14)
Рис. 14 - Результат выполнения запроса «Расписание Рейса»
Следующий запрос будет создан под названием «Вагоны в поезде» (рис. 15). Он будет создан для поиска вагонов, которые имеют тип, указанный в требовании пассажира, а также состоящих в составе поезда с номером указанным пассажиром.
Рис. 15 - Запрос «Вагоны в поезде»
Следующим запросом будет запрос под названием «Свободные места» (рис. 16). Он позволит определить свободные места в найденном вагоне, а также цену на проезд и номер места в вагоне
Рис. 16 - Запрос «Свободные места»
Для всех запросов созданы формы. Это упрощает работу пользователя с системой, делает её более эффективной и надежной.
Исходные тексты процедур модулей
Главная форма
Private Sub Кнопка0_Click()
End Sub
Private Sub Пассажир_Click()
On Error GoTo Err_Пассажир_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Пассажиры"
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Пассажир_Click:
Exit Sub
Err_Пассажир_Click:
MsgBox Err.Description
Resume Exit_Пассажир_Click
End Sub
Private Sub Кнопка3_Click()
On Error GoTo Err_Кнопка3_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Пассажир"
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Кнопка3_Click:
Exit Sub
Err_Кнопка3_Click:
MsgBox Err.Description
Resume Exit_Кнопка3_Click
End Sub
Private Sub Кнопка4_Click()
On Error GoTo Err_Кнопка4_Click
DoCmd.Close
Exit_Кнопка4_Click:
Exit Sub
Err_Кнопка4_Click:
MsgBox Err.Description
Resume Exit_Кнопка4_Click
End Sub
Private Sub Кнопка5_Click()
On Error GoTo Err_Кнопка5_Click
DoCmd.Close
Exit_Кнопка5_Click:
Exit Sub
Err_Кнопка5_Click:
MsgBox Err.Description
Resume Exit_Кнопка5_Click
End Sub
Форма пассажир
Private Sub Кнопка20_Click()
On Error GoTo Err_Кнопка20_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "На рейсы назначены"
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Кнопка20_Click:
Exit Sub
Err_Кнопка20_Click:
MsgBox Err.Description
Resume Exit_Кнопка20_Click
End Sub
Private Sub Кнопка21_Click()
On Error GoTo Err_Кнопка21_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Расписание рейса"
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Кнопка21_Click:
Exit Sub
Err_Кнопка21_Click:
MsgBox Err.Description
Resume Exit_Кнопка21_Click
End Sub
Private Sub Кнопка22_Click()
On Error GoTo Err_Кнопка22_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Вагоны в поезде"
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Кнопка22_Click:
Exit Sub
Err_Кнопка22_Click:
MsgBox Err.Description
Resume Exit_Кнопка22_Click
End Sub
Private Sub Кнопка23_Click()
On Error GoTo Err_Кнопка23_Click
Dim stDocName As String
Dim stLinkCriteria As String
stDocName = "Свободные места"
DoCmd.OpenForm stDocName,,, stLinkCriteria
Exit_Кнопка23_Click:
Exit Sub
Err_Кнопка23_Click:
MsgBox Err.Description
Resume Exit_Кнопка23_Click
End Sub
Private Sub Кнопка24_Click()
On Error GoTo Err_Кнопка24_Click
DoCmd.Close
Exit_Кнопка24_Click:
Exit Sub
Err_Кнопка24_Click:
MsgBox Err.Description
Resume Exit_Кнопка24_Click
End Sub
Private Sub Кнопка25_Click()
On Error GoTo Err_Кнопка25_Click
Dim stDocName As String
stDocName = "Номер вагона в составе"
DoCmd.OpenQuery stDocName, acNormal, acEdit
Exit_Кнопка25_Click:
Exit Sub
Err_Кнопка25_Click:
MsgBox Err.Description
Resume Exit_Кнопка25_Click
End Sub
Private Sub Кнопка26_Click()
On Error GoTo Err_Кнопка26_Click
Dim stDocName As String
stDocName = "Номер места в вагоне"
DoCmd.OpenQuery stDocName, acNormal, acEdit
Exit_Кнопка26_Click:
Exit Sub
Err_Кнопка26_Click:
MsgBox Err.Description
Resume Exit_Кнопка26_Click
End Sub
Private Sub ФИО_BeforeUpdate(Cancel As Integer)
End Sub
Форма пассажиры
Private Sub Кнопка15_Click()
On Error GoTo Err_Кнопка15_Click
DoCmd.Close
Exit_Кнопка15_Click:
Exit Sub
Err_Кнопка15_Click:
MsgBox Err.Description
Resume Exit_Кнопка15_Click
End Sub
Тестирование
база данные запрос информационный
Протестируем нашу базу данных на основе контрольного примера. В результате тестирования надо проверить работу всех запросов, а также корректность работы системы.
Допустим, к нам пришел пассажир, подал паспорт и сказал, что он хотел бы приобрести билет на поезд с номером 1 до Рязани из Москвы, на 20-е декабря 2002 года, класс вагона - Плацкартный. Открываем нашу базу данных, появляется главная форма (рис. 17), где необходимо нажать первую кнопку «Оформить пассажира».
Рис. 17 - Главная форма
После нажатия кнопки появится форма для заполнения всех данных о пассажире (рис. 18), и внесения их в базу данных.
Рис. 18 - Форма оформления пассажира
Затем нажимаем кнопку Билет и начинаем поиск информации исходя из требований пассажира с помощью кнопок, которые выполняют запросы. Появится форма оформления билета (рис. 19.)
Рис. 19 - Форма оформления билета
В билет сразу можно внести его номер, номер поезда, серию билета, дату заполнения. Далее выполняем запрос «Найти рейс» (рис6.4.) при этом вводя номер поезда, известный по требованию пассажира.
Рис. 20 - Рез-т запроса «Найти рейс»
После того как мы нашли рейс нам нужно посмотреть расписание рейса, которое хранится в базе данных. Для этого нажмем на кнопку
«Расписание рейса». После ввода номера рейса получим результат запроса(рис. 21).
Рис. 21 - Рез-т выполнения запроса «Расписание рейса»
Итак, видим что на 20-е число есть рейс из Москвы до Ростова на Дону, проходящего через Рязань.
Теперь надо узнать какие вагоны в данном поезде имеют плацкартный тип, если да, то с какими они номерами в составе и вообще. Нажмем кнопку «Вагоны по типу», тем самым выполнив запрос «Найти вагон» (рис. 22).
Рис. 22 - Рез-т выполнения запроса «Найти вагон»
Теперь зная номера вагонов, нетрудно проверить в них наличие мест. Выполним запрос «Свободные места», нажав кнопку «Найти место», введя номер вагона 123 получим результат (рис. 23)
Рис. 23 - Рез-т выполнения запроса «Свободные места»
Видно, что свободны 2-е и 3-е место в вагоне с номером 123 или номером в составе - 10.
Теперь приступаем к заполнению формы билета информацией и продаем его пассажиру. На этом тестирование заканчивается.
Заключение
При выполнении проекта был проведен анализ предметной области. На основе этого была разработана модель, отражающая процесс обслуживания пассажиров. Была разработана соответствующая информационная система, которая выполняет все поставленные перед ней задачи.
Библиографический список
1. Дейт К. Введение в системы баз данных, 1998.
2. Мейер Д. Теория реляционных баз данных, 1987.
3. Макаров Н.П., Пылькин А.Н., Цуканова Н.И. Проектирование баз данных. СУБД Microsoft Access. Москва, 1995.
4. Макаров Н.П., Пылькин А.Н., Цуканова Н.И. Реляционная модель и ER-технология проектирования баз данных. Москва, 2002.
Приложение
Схема инфологической модели предметной области (диаграмма ER-типа)
N
1
N1
N
1
1NN
1
N
N1
N
Размещено на Allbest.ru
Подобные документы
Анализ предметной области. Определение функций пользователя, атрибутов, ключей, сущностей и связей. Проектирование инфологической модели данных. Спецификация входных и выходных запросов. Разработка процедур и средств реализации ограничений целостности.
курсовая работа [7,2 M], добавлен 21.04.2015Разработка базы данных с информацией о сотрудниках, товарах, со справочником типов товаров средствами системы управления базами данных MySQL с помощью SQL-запросов. Разработка инфологической модели предметной области. Структура таблиц, полей базы данных.
контрольная работа [648,7 K], добавлен 13.04.2012Описание предметной области и определение предметной области информационной системы детского сада. Разработка логической и физической модели базы данных дошкольного образовательного учреждения. Анализ функционала информационной системы детского сада.
курсовая работа [1,6 M], добавлен 20.04.2015Разработка базы данных фирмы, представляющей в прокат автомобили; спецификация требований. Создание инфологической модели предметной области. Определение сущности, ее атрибутов и связей между ними; структура таблиц. Реализация базы данных в MS SQL Server.
курсовая работа [1021,2 K], добавлен 10.04.2015Анализ предметной области. Обеспечение качества проектной документации. Построение инфологической (концептуальной) модели предметной области. Проектирование физической структуры базы данных. Разработка интерфейса, организация ввода и поиска данных.
курсовая работа [2,5 M], добавлен 10.01.2016Определение предметной области базы данных ("Сеть ресторанов"), виды ее моделирования. Первоначальный набор сущностей и атрибутов предметной области. Процесс смыслового наполнения базы данных. Атрибуты в концептуальной модели. Характеристика видов связей.
контрольная работа [510,9 K], добавлен 03.12.2014Описание предметной области "Магазин по продаже компьютерных комплектующих". Построение ER и реляционной модели данных, сущности и связи. Создание ER и реляционной модели данных, запросов, представлений, хранимых процедур для предметной области.
курсовая работа [32,2 K], добавлен 15.06.2014Системный анализ предметной области. Структурный подход при разработке инфологической модели. Обеспечение целостности данных. Описание программного средства, создание таблиц, запросов, форм и отчетов для системы автоматизации работы ресторана.
курсовая работа [3,9 M], добавлен 12.12.2011Характеристика предметной области, входных и выходных документов, участников нормализации и алгоритма реализации базы данных. Описание таблиц, проектирование форм, запросов, отчётов, создание главной кнопочной формы. Тестирование программного комплекса.
курсовая работа [5,8 M], добавлен 20.05.2015Построение инфологической концептуальной модели предметной области. Структура базы данных Microsoft Office Access. Формы, запросы и отчеты. Создание форм, запросов и отчетов в базах данных. Схема данных физической и логической сущности в Erwin 4.0.
курсовая работа [5,1 M], добавлен 13.12.2011