Организация информационной работы автовокзала

 

Министерство общего и профессионального образования РФ

КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ

Кафедра Вычислительной техники и автоматизированных систем

управления








ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту

по дисциплине "Базы Данных"

на тему: "Организация информационной работы автовокзала"




Выполнил

студент группы ПО1

Демченко Алексей Николаевич

Руководитель проекта

канд. техн. наук, доц. М.П. Малыхина


Реферат


Объем пояснительной записки составляет 41 листов формата А4. Пояснительная записка содержит 28 иллюстрацию. Количество использованных источников - 7. Количество приложений - 2.

Ключевыми словами в данной работе являются:

Delphi

- SQL

СЕРВЕР

- ПРИЛОЖЕНИЕ

SDAC

- ЗАПРОС

ТРИГГЕР

ХРАНИМАЯ ПРОЦЕДУРА

ПОИСК

- ТАБЛИЦА

Цель работы курсового проекта - это разработка программной системы для организации информационной работы автовокзала. Программа-приложение разрабатывалась в среде Borland Delphi 7.0 с применением стандартных компонентов. База данных и ее составляющие разрабатывалась и выполняется на сервере Microsoft SQL Server 2000 Personal Edition.


Введение


В настоящее время трудно представить какую-либо сферу деятельности человека, где бы ни стояла проблема создания и использования информационных систем. Сегодня такие системы стали насущной потребностью, и спрос на грамотных специалистов в этой области постоянно растет. А поскольку все здание информационных систем базируется на концепции баз данных, то естественно, что без более или менее детального знакомства с основами дисциплины "Базы данных" в наше время невозможно быть не только квалифицированным программистом, но даже и грамотным пользователем компьютеров. Поэтому можно смело сказать, что навыки работы в этой области не только повышают интеллектуальный потенциал пользователя, но являются в этом вопросе одним из основополагающих факторов. Сегодня в соответствии с действующим государственным образовательным стандартом базы данных изучаются как самостоятельная дисциплина (на компьютерных специальностях) или как раздел дисциплины "Информатика" (на прочих специальностях). История исследований систем баз данных - это, по сути, история развития приложений, достигших исключительной производительности и оказавших потрясающее влияние на экономику. Если еще 20 лет назад эта сфера была всего лишь областью фундаментальных научных исследований, то теперь на исследованиях баз данных основана целая индустрия информационных услуг, ежегодный бюджет которой только в США составляет 10 миллиардов долларов. Достижения в исследованиях баз данных стали основой фундаментальных разработок коммуникационных систем, транспорта и логистики, финансового менеджмента, систем с базами знаний, методов доступа к научной литературе, а также большого количества гражданских и военных приложений. Они также послужили фундаментом значительного прогресса в ведущих областях науки - от информатики до биологии.

1. Описание предметная область


Предметная область, часть которой представлена в этой программе - реализация информационной работы автовокзала. Это обширная и часто используемая в современном мире задача, требующая точности исполнения. В данной программе будет реализован процесс организации расписания автовокзала, продажи и заказов билетов.


1.1Требования к разработке


-пополнение базы данных при поступлении на учет нового автотранспорта;

просмотр расписания движения автобусов;

подсчет вырученных средств от продажи билетов;

возможность быстрого поиска;

- наличие удобных форм для продажи билетов и их заказов;

отслеживание изменений всех объектов при изменении одного из них.


1.2Постановка задачи


Написать программу, которая позволит реализовать процедуру продажи билетов, заказа билетов и просмотра расписания. Разработанный программный продукт должен частично или полностью заменить стандартные методы информационной организации работы автовокзалов.

Программа должна предусматривать:

·Понятный интерфейс приложения, доступный любому человеку;

·Авторизацию при входе в программу-приложение;

·работу с SQL сервером;

·администрирование базы данных;

·упрощение на уровне приложения структуры базы;

·Delphi приложение должно использовать запросы для связи с SQL;

·использование триггеров и встроенных процедур.


2. Теоретические основы разработки баз данных


.1 Определения


Стержневые идеи современных информационных технологий базируются на концепции баз данных.

Согласно этой концепции, основой информационных технологий являются данные, которые должны быть организованы в базы данных в целях адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей.

Одним из важнейших понятий в теории баз данных является понятие информации. Под информацией понимаются любые сведения о каком-либо событии, процессе, объекте. К информации может относиться все, что может интересовать пользователя любого уровня.

Данные - это информация, представленная в определенном виде, позволяющем автоматизировать ее сбор, хранение и дальнейшую обработку человеком или информационным средством. Для компьютерных технологий данные - это информация в дискретном, фиксированном виде, удобная для хранения, обработки на ЭВМ, а также для передачи по каналам связи.

База данных (БД) - именованная совокупность данных, отражающая состояние объектов и их отношений в рассматриваемой предметной области, или иначе БД - это совокупность взаимосвязанных данных при такой минимальной избыточности, которая допускает их использование оптимальным образом для одного или нескольких приложений в определенной предметной области. БД состоит из множества связанных файлов.

Система управления базами данных (СУБД) - совокупность языковых и программных средств, предназначенных для создания, ведения и совместного использования БД многими пользователями.

Автоматизированная информационная система (АИС) - это система, реализующая автоматизированный сбор, обработку, манипулирование данными, функционирующая на основе ЭВМ и других технических средств и включающая соответствующее программное обеспечение (ПО) и персонал. В дальнейшем в этом качестве будет использоваться термин информационная система (ИС), который подразумевает понятие автоматизированная.

ИС может функционировать самостоятельно или служить компонентом более сложной системы.

Каждая ИС в зависимости от ее назначения имеет дело с той или иной частью реального мира, которую принято называть предметной областью (ПрО) системы. Выявление ПрО - это необходимый начальный этап разработки любой ИС. Именно на этом этапе определяются информационные потребности всей совокупности пользователей будущей системы, которые, в свою очередь, предопределяют содержание ее базы данных. По области применения ИС можно разделить на системы, используемые в образовании, производстве, бизнесе, науке и других областях.

В большинстве случаев прибегают к разбиению всего множества объектов ПрО на группы объектов, однородных по структуре, обладающих одинаковыми свойствами, например. В каждом фрагменте ПрО выделяется система объектов и связи между объектами, выделяются процессы, происходящие в этом фрагменте, а также конечное число пользователей.

Банк данных (БнД) является разновидностью ИС. БнД - это система специальным образом организованных данных: баз данных, программных, технических, языковых, организационно-методических средств, предназначенных для обеспечения централизованного накопления и коллективного многоцелевого использования данных.

Под задачами обработки данных обычно понимается специальный класс решаемых на ЭВМ задач, связанных с видом, хранением, сортировкой, отбором по заданному условию и группировкой записей однородной структуры.

При этом для пользователя предусматривается генерация различных отчетов, как правило, табличной формы.

Отдельные программы или комплекс программ, реализующие автоматизацию решения прикладных задач обработки данных, называются приложениями. Поскольку одни и те же данные могут использоваться для решения многих задач, то и приложений к одной и той же базе данных может быть много. Приложения, созданные средствами СУБД, относят к приложениям СУБД. Приложения, созданные вне среды СУБД с помощью систем программирования, использующих средства доступа к БД, к примеру, Delphi или C++Builder, называют внешними приложениями. Все приложения, работающие с одной и той же базой данных, должны функционировать корректно, не мешать друг другу и учитывать все изменения, которые вносятся другими приложениями. Такая координация работы приложений осуществляется СУБД.

Проектируемая БД должна обладать определенными свойствами. Назовем основные свойства БД.

Целостность. В каждый момент времени существования БД сведения, содержащиеся в ней, должны быть непротиворечивы. Целостность БД достигается вследствие введения ограничений целостности, в частности, к ним относятся ограничения, связанные с нормализацией БД. Желательно отслеживать диапазон допустимых значений, соотношения между значениями в полях, особенности написания формата. Существуют ограничения, работающие только при удалении записей. Например, нельзя удалять запись, связанную с другой неудаляемой записью.

Восстанавливаемость. Данное свойство предполагает возможность восстановления БД после сбоя системы или отдельных видов порчи системы. Сюда относится проверка наличия файлов, составляющих приложение. В основном свойство восстанавливаемости обеспечивается дублированием БД и использованием техники повышенной надежности.

Безопасность. Безопасность БД предполагает защиту данных от преднамеренного и непреднамеренного доступа, модификации или разрушения. Применяется запрещение несанкционированного доступа, защита от копирования и криптографическая защита. Также необходимы и чисто административные меры, например ограничение доступа к носителям информации.

Эффективность. Свойство эффективности обычно понимается как:

минимальное время реакции на запрос пользователя;

минимальные потребности в памяти;

сочетание этих параметров.

Предельные размеры и эксплуатационные ограничения. Предельные размеры, а также другие ограничения, накладываемые эксплуатацией данной БД, могут существенно повлиять на проектное решение.

Создание баз данных, поддержка их в целостном, непротиворечивом состоянии, обеспечение безопасности их использования и сохранности информации вплоть до восстановления ее после различных сбоев, предоставление различных информационных услуг пользователям и многое другое обеспечивается системами управления баз данных, которым посвящен следующий подраздел книги.

Модель данных - это некоторая абстракция, в которой отражаются самые важные аспекты функционирования выделенной предметной области, а второстепенные - игнорируются. Модель данных включает в себя набор понятий для описания данных, связей между ними и ограничений, накладываемых на данные. В модели данных различают три главные составляющие:

структурную часть, определяющую правила порождения допустимых для данной СУБД видов структур данных;

управляющую часть, определяющую возможные операции над такими структурами;

классы ограничений целостности данных, которые могут быть реализованы средствами этой системы.

Каждая СУБД поддерживает ту или иную модель данных. Необходимо отметить, что понятие модели данных фактически вошло в обиход специалистов в области БД только вместе с появлением реляционного подхода. Все ранние системы не основывались на каких-либо абстрактных моделях. Абстрактные представления ранних систем появились позже на основе анализа и выявления общих признаков у различных систем.

Ранние (корреляционные) СУБД активно использовались в течение многих лет. В свое время в подобные системы многие компании инвестировали большие средства. Они применялись дольше, чем используется какая-либо из реляционных СУБД, а некоторые из ранних систем используются даже в наше время. За время их существования накоплены громадные базы данных, и одной из актуальных проблем информационных систем является использование этих систем совместно с современными системами.

Итак, по существу модель данных, поддерживаемая механизмами СУБД, полностью определяет множество конкретных баз данных, которые могут быть созданы средствами этой системы, а также способы модификации состояния БД с целью отображения тех изменений, которые происходят в предметной области.


.2 Триггеры


Триггеры представляют собой методы, с помощью которых можно обеспечивать целостность базы данных даже в том случае, если она используется множеством приложений.

Триггер - это специальный тип хранимой процедуры, которая автоматически выполняется при каждой попытке изменить защищаемые ей данные. Триггеры обеспечивают целостность данных, предотвращая их несанкционированное или неправильное изменение.

Допустим, что в базе данных есть таблицы, связанные через поле Surname. Например, это могут быть таблица клиентов предприятия и их заказов. Разумно определить триггер, который при каждой попытке удалить запись клиента проверит наличие у него заказов и позволит удалить эту запись только при их отсутствии. Конечно, подобную задачу можно решить при помощи средств декларативной ссылочной целостности. Однако при помощи триггеров можно создавать значительно более сложные рабочие правила. Можно создать триггер, который при каждом добавлении записи в таблицу заказов анализирует предыдущие заказы этого же клиента и определяет приемлемый срок оплаты этого заказа.

Триггеры не принимают параметров и не возвращают значений. Они выполняются неявно. То есть триггер запускается только при попытке изменения данных.


.3 Хранимые процедуры


Данный раздел посвящен одному из механизмов повышения эффективности функционирования информационных систем, который базируется на использовании хранимых процедур.

Хранимая процедура - это последовательность компилированных операторов Transact-SQL, хранящихся в системной базе данных SQL Server. Хранимые процедуры предварительно откомпилированы, поэтому эффективность их выполнения выше, чем у обычных запросов. Хранимые процедуры работают непосредственно на сервере и хорошо укладываются в модель клиент - сервер.

Существует два вида хранимых процедур: системные и пользовательские.

Системные хранимые процедуры предназначены для получения информации из системных таблиц и выполнения различных служебных операций и особенно полезны при администрировании базы данных. Их имена начинаются с sp_ (stored procedure).

Пользовательские хранимые процедуры создаются непосредственно разработчиками или администраторами базы данных.

Полезность хранимых процедур определяется в первую очередь высокой (по сравнению с обычными T-SQL запросами) скоростью их выполнения. Кроме того, они являются средством систематизации часто выполняемых операций. При выполнении в первый раз хранимой процедуры можно выделить ряд этапов.

1.Процедура разбивается на отдельные компоненты лексическим анализатором выражений.

2.Компоненты, ссылающиеся на объекты базы данных (таблицы, индексы, представления и т. п.), сопоставляются с этими объектами с предварительной проверкой их существования. Этот процесс носит название разрешение ссылок.

.В системной таблице syscomments сохраняется исходный текст процедуры, а в таблице sysobjects - ее название.

4.Создается предварительный план выполнения запроса. Этот предварительный план называется нормализованным планом или деревом запроса и хранится в системной таблице sysprocedures.

5.При первом выполнении хранимой процедуры дерево запроса считывается и окончательно оптимизируется. Выполняется ранее созданный план процедуры.

Такая схема дает возможность при повторных вызовах не тратить время на синтаксический анализ, разрешение ссылок и компиляцию дерева запросов. А при последующих вызовах выполняется только пятый шаг. Причем план хранимой процедуры после первого выполнения содержится в быстродействующем процедурном кэше. Это значит, что во время вызова процедуры скорость его считывания будет очень высока. Использование хранимых процедур имеют еще ряд дополнительных преимуществ.

Хранимые процедуры позволяют выделять правила в отдельную структуру. В дальнейшем эти правила используются многими приложениями, образуя устойчивый к ошибкам интерфейс данных. Выгода такого подхода состоит в том, что можно осуществлять изменение правил только для отдельной части объектов базы данных, а не для всех ее приложений.

Использование хранимых процедур значительно повышает производительность запросов, однако наибольшей ее прирост достигается при выполнении многократно повторяющихся операций, когда план запроса постоянно хранится в системном кэше.

Хранимые процедуры могут принимать аргументы при запуске и возвращать значения (в виде результирующих наборов данных).

Хранимые процедуры могут запускаться по расписанию (в режиме автоматического выполнения), задаваемому при запуске SQL Server.

Хранимые процедуры используются для извлечения или изменения данных в любое время.

Хранимые процедуры, в отличие от триггеров, вызываются явно. То есть при непосредственном обращении к процедуре из приложения, сценария, пакета или задачи.

Хранимые процедуры - мощное средство обработки данных. Системные хранимые процедуры играют очень важную роль в администрировании и поддержке базы данных. Пользовательские хранимые процедуры применяются при решении практически любых задач. Кроме того, пользователь может получить право выполнения хранимой процедуры, даже если он не имеет права доступа к объектам, к которым обращается процедура.

2.4 Администрирование баз данных


Администрирование любой системы управления базами данных сводится к следующему ряду задач:

создание и удаление баз данных и файлов данных;

создание учетных записей, групп пользователей и распределение прав;

резервное копирование баз данных;

восстановление данных;

Администрирование системы

Администрирование системы реализовано следующим образом:

Созданы 3 пользователя:

Администратор(Administrator) имеет полные привилегии

Сотрудник отделов кадров (Kadry01) имеет привилегии на редакцию таблиц о сотрудниках.

Продавец билетов (Kassir01) имеет право только на редактирование таблиц продажи билетов и заказа билетов.

Менеджер организации движения (Manager01) имеет право на редактирование таблиц для составления расписания движения транспорта


Рисунок 1 - Пользователи базы данных


3. Проектирование базы данных


.1 Концептуальная модель


Фундаментальными реалиями в концептуальном моделированием являются данные с их свойствами и связи между ними. Главными элементами модели данных являются типы объектов, их атрибуты и типы связей. Типы объектов часто представляют в виде существительных, а типы связей - в виде глаголов.


Рисунок 2 - обозначения элементов диаграммы


На основании этих данных выделим основные объекты базы данных и связи между ними.


Рисунок 3 - концептуальная модель


3.1 Реляционная модель базы данных


Реляционный подход обозначает определенную идеологию создания баз данных. Настойчивое желание пользователей оперировать более крупными объектами, чем элементы данных ТГ-моделей (макрообъектами), предопределило ее появление и способствовало тому, что эта идеология довольно быстро завоевала мир. На скорость распространения идей реляционного подхода значительное влияние в основном оказали два фактора. Создал Кодд - IBM

Во-первых, БД представляется на внешнем, не зависящем от структуры ЭВМ уровне в виде совокупности двумерных таблиц, повседневно встречающихся в человеческой практике. Работа с таблицами привычна и понятна каждому пользователю. При этом весьма важно, что поиск и обработка информации, хранящейся в таблицах, не зависит от организации хранения данных в памяти ЭВМ, что значительно упрощает взаимодействие пользователя с банком данных и существенно повышает производительность его труда.

Во-вторых, манипулирование данными реляционной базы данных, которая с математической точки зрения представляет собой конечный набор конечных отношений различной арности между заранее определенным множеством элементарных данных, осуществляется в соответствии со специально разработанной для этой цели реляционной теорией. Над отношениями модели можно осуществлять различные алгебраические операции. Теория РБД как раз и определяет, какие операции и каким образом необходимо выполнять над отношениями, чтобы достичь заданной цели.

В настоящее время реляционный подход к построению информационных систем является наиболее распространенным. К числу достоинств реляционного подхода можно отнести:

наличие небольшого набора абстракций, которые позволяют сравнительно просто моделировать большую часть распространенных предметных областей и допускают точные формальные определения, оставаясь интуитивно понятными;

наличие простого и в то же время мощного математического аппарата, опирающегося главным образом на теорию множеств и математическую логику и обеспечивающего теоретический базис реляционного подхода к организации БД;

возможность ненавигационного манипулирования данными без необходимости знания конкретной физической организации баз данных во внешней памяти.

В результате преобразования концептуальной модели была построена следующая реляционная модель базы данных. (рисунок 4)


Рисунок 4 - реляционная модель базы данных


3.3 Структура базы данных


Составляющими базу таблицы:


Таблица "Автовокзалы" - содержит информацию о автовокзалах:

Рисунок 5 - таблица автовокзалы

Таблица "Автопарк" - содержит информацию о транспорте, принадлежащим автовокзалам

Рисунок 6 - таблица автопарк


Таблица "Персонал" - содержит информацию о сотрудниках, работающих на автовокзалах

Рисунок 7 - таблица "Персонала"


Таблица "Города" - отражает города, между которыми совершаются перемещения, а так же включает карту города

Рисунок 8 - таблица "Города"

Таблица "Рейсы" - предоставляет данные о рейсах между городами (автовокзалами):

Рисунок 9 - таблица "Рейсы"


Таблица "Заказы" - предоставляет информацию о заказах билетов:

Рисунок 10 - таблица "Заказы"


Таблица "Билеты" - содержит данные о проданных билетах к рейсам:

Рисунок 11 - таблица "Рейсы"


3.4 Процесс нормализации базы данных


Данный процесс - это формальный метод анализа отношений на основе их первичных или потенциальных ключей и существующих функциональных зависимостей, являющийся одним из наиболее строгих способов улучшения характеристик БД. Существует пять нормальных форм (НФ) баз данных.

Первая нормальная форма

Отношение находится в первой нормальной форме, если все его атрибуты имеют простые (атомарные) значения. Другими словами, значения в домене каждого атрибута отношения не являются ни списками, ни множествами простых или сложных значений. Одним словом, в отношении не должно быть повторяющихся групп. В противном случае отношение считается ненормализованным и ему соответствует многоуровневая таблица (иерархия) в отличие от однородной табличной структуры нормализованного отношения.

Условие атомарности значений неукоснительно должно выполняться для всех отношений схемы реляционной базы данных. Схема всей базы данных находится в 1НФ, если каждая схема отношения находится в 1НФ.

Нормальные формы более высокой степени, чем рассмотренные, связаны с понятиями определенных зависимостей.

Вторая нормальная форма применяется к отношениям с составными ключами, т. е. к таким отношениям, первичный ключ которых состоит из двух или более атрибутов. Отношение, у которого первичный ключ включает только один атрибут, всегда находится во 2НФ.

Третья нормальная форма говорит от том, что не ключевые атрибуты не должны зависеть друг от друга.

Четвертая нормальная форма

Многозначные зависимости можно считать обобщением функциональных зависимостей в том смысле, что каждая функциональная зависимость является многозначной, где множество зависимых значений является одноэлементным множеством.

Пятая нормальная форма, это такое отношение называется термином "n-декомпозитируемое отношение" для некоторого п > 2. Это значит, что для данного отношения возможна декомпозиция без потерь на п проекций, а на меньшее число проекций декомпозиция без потерь невозможна. Пятая нормальная форма - это последняя нормальная форма, которую можно получить путем декомпозиции, и на практике 5НФ почти не используется. Заметим, что зависимость соединения является обобщением как многозначной зависимости, так и функциональной зависимости.


.5 Обоснование наличия НФ


Рассмотрим три нормальных формы, которые применяются при проектировании баз данных и служат для оптимизации базы и приведения ее к согласованному виду:

1)Атомарность ключа - значения ключа должны быть атомарные. Не должно быть составных ключей типа ФИО, адрес и т.д. (Рисунок 3)


Рисунок 12 - доказательство первой нормальной формы


2)Составной ключ - если ключ состоит из двух и более атрибутов - все не ключевые атрибуты таблицы должны зависеть от ключа в целом, а не от его отдельных атрибутов.

3)Не ключевые атрибуты должны зависеть только от ключа и не зависеть друг от друга.

Рисунок 13 - таблица "Рейсы"


Как можно видеть из реляционной схемы базы данных, все таблицы находятся в третьей нормальной форме: ключи во всех таблицах атомарные, если ключ составной - единственный не ключевой атрибут полностью зависит от него, все не ключевые атрибуты зависят только от ключевых и не зависят друг от друга.


4. Программная реализация


.1 Используемые триггеры


В программе были реализованы триггеры, основной задачей которых было отслеживание удалений из таблиц.

Имя триггера - DEL_REYS

Описание - при удалении Рейса производителя удаляются все билеты к этому рейсы, и все заказы к этому рейсу, с ним связанные. Триггер был реализован как instead of DELETE для того, чтобы сначала произвести удаление из таблицы заказы билетов и продажи билетов, а потом удалить и сам рейс.


create trigger new_trigger on dbo.Reysiof delete@@ROWCOUNT=1@y INT@y=IDdeletedfrom Tikets where Reys=@yfrom Zakaz where Reys=@y


Аналогичные триггеры были созданы для Таблиц Доставка-Водитель, Доставка-Маршрут, Продавец - Реализация товара - Обзор продаж.


5. Руководство пользования программой


1.Запуск программы осуществляется при помощи открытия файла MDIAPP.exe

2.Для начала необходимо войти в программу под своим пользователем.


Рисунок 14 - вход в программу


3.После входа пользователю предлагается главная таблица - Обзор продаж - учет всех проданных товаров.


Рисунок 15 - Основная форма программы


. Для работы с данными предлагается использовать меню, а также панель задач. Для каждого действия существует свое меню.

5. Меню "File" состоит из двух операций: "Выгрузить в Excel" и "Exit"

"Exit" - выходит из программы;

"Выгрузить в Excel" - позволяет выгрузить в Excel любую табличную форму открытую на экране


Рисунок 16 - Выгрузка в Excel


4.Меню "Edit" - операции по редактированию записей: Вырезать, копировать, вставить.

5.Меню "Windows" - действие с окнами программы, при открытии нескольких окон данное меню позволяет разместить их на экране удобным для пользователем образом: Каскадом, Горизонтально, Вертикально

.Меню "Автовокзалы" - основное меню для работы с данными. Для каждого пункта меню есть соответствующая кнопка на панели задач. Состоит из следующих действий:

a.Пункт "Города". При выборе открывается форма для редактирования справочника городов.


Рисунок 17 - Форма "Города"

Для просмотра карты города или добавления, необходимо на нужной записи щелкнуть 2 раза левой клавиши мыши. При этом откроется форма с данными данного города:


Рисунок 18 - Форма "Редактирование Города"


Для загрузки карты города необходимо нажать кнопку "Загрузить рисунок". При этом откроется окно выбора рисунка.

При нажатии кнопки "ОК" внесенные изменения будут сохранены.

При нажатии кнопки "Cancel" внесенные изменения будут отменены.

b.Пункт "Автовокзалы". При выборе открывается форма для редактирования автовокзалов.


Рисунок 19 - Форма "Автовокзалы"

Для поиска каких либо данных необходимо выбрать столбец, в котором нужно произвести поиск, и начать набирать необходимый текст:


Рисунок 20 - Быстрый поиск


Поиск и переключение на нужную запись происходит автоматически.

Двойной клик левой клавиши мыши откроет формы для редактирования записи:


Рисунок 21 - Форма "Редактирование автьовокзала"


Для поиска записи, по какому либо условию, можно воспользоваться фильтром, встроенным в табличную форму:


Рисунок 22 - Пример фильтра


Если есть необходимость задать неопределенное условие поиска, можно выбрать пункт "(Custom…)"/ При этом откроется форма, в которой можно устанавливать нужные параметры поиска:

Рисунок 23 -Фильтр по условиям


c.Пункты меню "Автопарк" и "Сотрудники имеют сходный механизм работы, открытия форм и поиска записей

d.Пункт "Рейсы". При выборе данного пункта открывается форма для добавления, изменения записей о рейсах.


Рисунок 24 - Форма "Рейсы"


При нажатии кнопки "Удалить" программа спрашивает пользователя, точно ли он хочет произвести удаление:

Рисунок 25 - Попытка удаления записи


При нажатии кнопок "Добавить" и "Изменить" открывается форма для редактирования рейса:


Рисунок 26 - Форма "Редактирование рейса"


В данной форме можно добавить билеты на рейс или заказать билет:


Рисунок 27 - Редактирование Билетов Рисунок 28 - Редактирование заказов

5.1 Описание программы


Написанная программа служит хорошим примером работы с базами данных. Она имеет удобное меню навигации и дружественный интерфейс, она выполняет все поставленные задачи, данная программа может использоваться на автовокзалах для продажи билетов и их бронирования. Пользователь может с легкостью изменять данные, производить быстрый поиск, следить за наличием свободных мест.


Заключение


В данном курсовом проекте были успешно реализованы все поставленные задачи, были подробно рассмотрены: задача курсового проекта, а также порядок выполнения задания.

Разработанная база данных и программа-приложение может использоваться в автовокзалах.

Программа-приложение имеет интуитивно понятный интерфейс, что способствует быстрому внедрению программы.

Программа имеет большое количество различных программных возможностей и ориентированна на пользователя, не имеющего большого опыта работы с программными продуктами такого типа. Это качество значительно расширяет круг возможных пользователей программы и увеличивает ее коммерческую привлекательность.

Ещё как интеграция информационных систем во все сферы жизни увеличивается с каждым днем, то актуально становится разработка подобных баз данных. При этом разработчик должен учитывать то, что наиболее простые БД могут быть подвержены избыточности, но при этом нельзя и увлекаться делением БД на много составных таблиц. Также современные средства дружественного интерфейса позволяют разработать интуитивно понятные приложения, что является одним из основных требований заказчика. При создании БД необходимо принять во внимание область, для которой разрабатывается база данных. Например, при формировании БД для магазина, разработчик должен ориентировать её в первую очередь на продажу.


Список использованной литературы


1.В.В. Фаронов "C 6: Учебный Курс", Москва, Knowledge, 2001

2.М.В. Сухарев "Основы C#", издательство "Наука и техника", 2003

.Г.В. Галисеев, "Компоненты в Delphi 6: профессиональная работа", издательство "Диалектика", 2004

.В.И. Ключко "Методическое указание к выполнению курсовой работы", Краснодар, Издательство КубГТУ, 1997

.М.П. Малыхина "Базы данных: основы, проектирование, использование"

.Т.М. Карпова "Базы данных: модели, разработка, реализация", издательство "Питер", 2001

.Кандзюба С. П. "Delphi 6/7. Базы данных и приложения. Лекции и упражнения". - СПб.: ООО "ДиаСофтЮП", 2002. - 576.


Приложение 1 - Листинг БД скрипта

программный информационный сервер автовокзал

/****** Object: Database Autovokzaly Script Date: 22.01.2008 2:22:39 ******/DATABASE [Autovokzaly] ON (NAME = N'Autovokzaly_Data', FILENAME = N'E:\Autovokzaly\DataBase\Autovokzaly_Data.MDF' , SIZE = 9, FILEGROWTH = 10%) LOG ON (NAME = N'Autovokzaly_Log', FILENAME = N'E:\Autovokzaly\DataBase\Autovokzaly_Log.LDF' , SIZE = 1, FILEGROWTH = 10%)Cyrillic_General_CI_ASsp_dboption N'Autovokzaly', N'autoclose', N'false'sp_dboption N'Autovokzaly', N'bulkcopy', N'false'sp_dboption N'Autovokzaly', N'trunc. log', N'false'sp_dboption N'Autovokzaly', N'torn page detection', N'true'sp_dboption N'Autovokzaly', N'read only', N'false'sp_dboption N'Autovokzaly', N'dbo use', N'false'sp_dboption N'Autovokzaly', N'single', N'false'sp_dboption N'Autovokzaly', N'autoshrink', N'false'sp_dboption N'Autovokzaly', N'ANSI null default', N'false'sp_dboption N'Autovokzaly', N'recursive triggers', N'false'spdboption N'Autovokzaly', N'ANSI nulls', N'false'sp_dboption N'Autovokzaly', N'concat null yields null', N'false'sp_dboption N'Autovokzaly', N'cursor close on commit', N'false'sp_dboption N'Autovokzaly', N'default to local cursor', N'false'sp_dboption N'Autovokzaly', N'quoted identifier', N'false'sp_dboption N'Autovokzaly', N'ANSI warnings', N'false'sp_dboption N'Autovokzaly', N'auto create statistics', N'true'sp_dboption N'Autovokzaly', N'auto update statistics', N'true'( (@@microsoftversion / power(2, 24) = 8) and (@@microsoftversion & 0xffff >= 724) )sp_dboption N'Autovokzaly', N'db chaining', N'false'[Autovokzaly]

/****** Object: Login Administrator Script Date: 22.01.2008 2:22:39 ******/not exists (select * from master.dbo.syslogins where loginname = N'Administrator')@logindb nvarchar(132), @loginlang nvarchar(132) select @logindb = N'Autovokzaly', @loginlang = N'us_english'@logindb is null or not exists (select * from master.dbo.sysdatabases where name = @logindb)@logindb = N'master'@loginlang is null or (not exists (select * from master.dbo.syslanguages where name = @loginlang) and @loginlang <> N'us_english')@loginlang = @@languagesp_addlogin N'Administrator', null, @logindb, @loginlang

/****** Object: Login Kadry01 Script Date: 22.01.2008 2:22:39 ******/not exists (select * from master.dbo.syslogins where loginname = N'Kadry01')@logindb nvarchar(132), @loginlang nvarchar(132) select @logindb = N'Autovokzaly', @loginlang = N'us_english'@logindb is null or not exists (select * from master.dbo.sysdatabases where name = @logindb)@logindb = N'master'@loginlang is null or (not exists (select * from master.dbo.syslanguages where name = @loginlang) and @loginlang <> N'us_english')@loginlang = @@languagesp_addlogin N'Kadry01', null, @logindb, @loginlang

/****** Object: Login Kassir01 Script Date: 22.01.2008 2:22:39 ******/not exists (select * from master.dbo.syslogins where loginname = N'Kassir01')@logindb nvarchar(132), @loginlang nvarchar(132) select @logindb = N'Autovokzaly', @loginlang = N'us_english'@logindb is null or not exists (select * from master.dbo.sysdatabases where name = @logindb)@logindb = N'master'@loginlang is null or (not exists (select * from master.dbo.syslanguages where name = @loginlang) and @loginlang <> N'us_english')@loginlang = @@languagesp_addlogin N'Kassir01', null, @logindb, @loginlang

/****** Object: Login Manager Script Date: 22.01.2008 2:22:39 ******/not exists (select * from master.dbo.syslogins where loginname = N'Manager')@logindb nvarchar(132), @loginlang nvarchar(132) select @logindb = N'Autovokzaly', @loginlang = N'us_english'@logindb is null or not exists (select * from master.dbo.sysdatabases where name = @logindb)@logindb = N'master'@loginlang is null or (not exists (select * from master.dbo.syslanguages where name = @loginlang) and @loginlang <> N'us_english')@loginlang = @@languagesp_addlogin N'Manager', null, @logindb, @loginlang

/****** Object: Login Mechanic Script Date: 22.01.2008 2:22:39 ******/not exists (select * from master.dbo.syslogins where loginname = N'Mechanic')@logindb nvarchar(132), @loginlang nvarchar(132) select @logindb = N'Autovokzaly', @loginlang = N'us_english'@logindb is null or not exists (select * from master.dbo.sysdatabases where name = @logindb)@logindb = N'master'@loginlang is null or (not exists (select * from master.dbo.syslanguages where name = @loginlang) and @loginlang <> N'us_english')@loginlang = @@languagesp_addlogin N'Mechanic', null, @logindb, @loginlang

/****** Object: Login BUILTIN\Администраторы Script Date: 22.01.2008 2:22:39 ******/sp_addsrvrolemember N'BUILTIN\Администраторы', sysadmin

/****** Object: User Administrator Script Date: 22.01.2008 2:22:39 ******/not exists (select * from dbo.sysusers where name = N'Administrator')sp_grantdbaccess N'Administrator', N'Administrator'

/****** Object: User guest Script Date: 22.01.2008 2:22:39 ******/not exists (select * from dbo.sysusers where name = N'guest' and hasdbaccess = 1)sp_grantdbaccess N'guest'

/****** Object: User Kadry01 Script Date: 22.01.2008 2:22:39 ******/not exists (select * from dbo.sysusers where name = N'Kadry01')sp_grantdbaccess N'Kadry01', N'Kadry01'

/****** Object: User Kassir01 Script Date: 22.01.2008 2:22:39 ******/not exists (select * from dbo.sysusers where name = N'Kassir01')sp_grantdbaccess N'Kassir01', N'Kassir01'

/****** Object: User Manager Script Date: 22.01.2008 2:22:39 ******/not exists (select * from dbo.sysusers where name = N'Manager')sp_grantdbaccess N'Manager', N'Manager'

/****** Object: User Mechanic Script Date: 22.01.2008 2:22:39 ******/not exists (select * from dbo.sysusers where name = N'Mechanic')sp_grantdbaccess N'Mechanic', N'Mechanic'

/****** Object: User Administrator Script Date: 22.01.2008 2:22:39 ******/sp_addrolemember N'db_owner', N'Administrator'

/****** Object: Table [dbo].[AutoPark] Script Date: 22.01.2008 2:22:40 ******/TABLE [dbo].[AutoPark] (

[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,

[AutoVokzal] [int] NULL ,

[AutoNumber] [nchar] (10) COLLATE Cyrillic_General_CI_AS NULL ,

[Kol_voMest] [int] NULL ,

[Model] [nchar] (10) COLLATE Cyrillic_General_CI_AS NULL

) ON [PRIMARY]

/****** Object: Table [dbo].[AutoVokzal] Script Date: 22.01.2008 2:22:40 ******/TABLE [dbo].[AutoVokzal] (

[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,

[Region] [nchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[Sity] [nchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[Street] [nchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[Flat] [int] NULL ,

[Phone] [nchar] (10) COLLATE Cyrillic_General_CI_AS NULL ,

[Director] [nchar] (20) COLLATE Cyrillic_General_CI_AS NULL ,

[NAME] [nchar] (50) COLLATE Cyrillic_General_CI_AS NULL

) ON [PRIMARY]

/****** Object: Table [dbo].[Personal] Script Date: 22.01.2008 2:22:40 ******/TABLE [dbo].[Personal] (

[Id] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,

[FirstName] [nchar] (20) COLLATE Cyrillic_General_CI_AS NULL ,

[SurName] [nchar] (20) COLLATE Cyrillic_General_CI_AS NULL ,

[Dolgnost] [nchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[Pol] [bit] NULL ,

[BirhtDay] [datetime] NULL ,

[INN] [nchar] (10) COLLATE Cyrillic_General_CI_AS NULL ,

[NumberPension] [nchar] (10) COLLATE Cyrillic_General_CI_AS NULL ,

[Region] [nchar] (10) COLLATE Cyrillic_General_CI_AS NULL ,

[Sity] [nchar] (10) COLLATE Cyrillic_General_CI_AS NULL ,

[Street] [nchar] (10) COLLATE Cyrillic_General_CI_AS NULL ,

[Flat] [int] NULL ,

[Phone] [nchar] (10) COLLATE Cyrillic_General_CI_AS NULL ,

[AvtoVokzal] [int] NULL ,

[LogonName] [nchar] (10) COLLATE Cyrillic_General_CI_AS NULL ,

[Password] [nchar] (10) COLLATE Cyrillic_General_CI_AS NULL

) ON [PRIMARY]

/****** Object: Table [dbo].[Reysi] Script Date: 22.01.2008 2:22:40 ******/TABLE [dbo].[Reysi] (

[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,

[Code] [nchar] (10) COLLATE Cyrillic_General_CI_AS NULL ,

[Data] [datetime] NULL ,

[Driver] [int] NULL ,

[SecondDriver] [int] NULL ,

[PunktOtpravlenia] [int] NULL ,

[PunktNaznachenia] [int] NULL ,

[Kontroler] [int] NULL ,

[NamberPlatformi] [nchar] (10) COLLATE Cyrillic_General_CI_AS NULL

[AutoVokzal] [int] NULL ,

[Avto] [int] NULL

) ON [PRIMARY]

/****** Object: Table [dbo].[Sity] Script Date: 22.01.2008 2:22:40 ******/TABLE [dbo].[Sity] (

[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,

[Name] [nchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[Region] [nchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[Map] [image] NULL

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

/****** Object: Table [dbo].[Tikets] Script Date: 22.01.2008 2:22:40 ******/TABLE [dbo].[Tikets] (

[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,

[Plase] [int] NULL ,

[Tsena] [real] NULL ,

[Bagage] [bit] NULL ,

[Reys] [int] NOT NULL ,

[Zakaz] [int] NULL

) ON [PRIMARY]

/****** Object: Table [dbo].[Zakaz] Script Date: 22.01.2008 2:22:40 ******/TABLE [dbo].[Zakaz] (

[ID] [int] IDENTITY (1, 1) NOT FOR REPLICATION NOT NULL ,

[Date] [datetime] NULL ,

[Reys] [int] NULL ,

[FIO] [nchar] (50) COLLATE Cyrillic_General_CI_AS NULL ,

[TelephoneNumber] [nchar] (10) COLLATE Cyrillic_General_CI_AS NULL

) ON [PRIMARY]TABLE [dbo].[AutoPark] WITH NOCHECK ADD[PK_AutoPark] PRIMARY KEY CLUSTERED

(

[ID]

) ON [PRIMARY]TABLE [dbo].[AutoVokzal] WITH NOCHECK ADD[PK_AutoVokzal] PRIMARY KEY CLUSTERED

(

[ID]

) ON [PRIMARY]TABLE [dbo].[Personal] WITH NOCHECK ADD[PK_Personal] PRIMARY KEY CLUSTERED

(

[Id]

) ON [PRIMARY]TABLE [dbo].[Reysi] WITH NOCHECK ADD[PK_Reysi] PRIMARY KEY CLUSTERED

(

[ID]

) ON [PRIMARY]TABLE [dbo].[Sity] WITH NOCHECK ADD[PK_Sity] PRIMARY KEY CLUSTERED

(

[ID]

) ON [PRIMARY]TABLE [dbo].[Tikets] WITH NOCHECK ADD[PK_Tikets] PRIMARY KEY CLUSTERED

(

[ID]

) ON [PRIMARY]TABLE [dbo].[Zakaz] WITH NOCHECK ADD[PK_Zakaz] PRIMARY KEY CLUSTERED

(

[ID]

) ON [PRIMARY]TABLE [dbo].[AutoPark] ADD[FK_AutoPark_AutoVokzal] FOREIGN KEY

(

[AutoVokzal]

) REFERENCES [dbo].[AutoVokzal] (

[ID]

)TABLE [dbo].[Personal] ADD[FK_Personal_AutoVokzal] FOREIGN KEY

(

[AvtoVokzal]

) REFERENCES [dbo].[AutoVokzal] (

[ID]

)

TABLE [dbo].[Reysi] ADD[FK_Reysi_AutoPark] FOREIGN KEY

(

[Avto]

) REFERENCES [dbo].[AutoPark] (

[ID]

),[FK_Reysi_AutoVokzal] FOREIGN KEY

(

[AutoVokzal]

) REFERENCES [dbo].[AutoVokzal] (

[ID]

),[FK_Reysi_Personal] FOREIGN KEY

(

[Driver]

) REFERENCES [dbo].[Personal] (

[Id]

),[FK_Reysi_Personal1] FOREIGN KEY

(

[SecondDriver]

) REFERENCES [dbo].[Personal] (

[Id]

),[FK_Reysi_Personal2] FOREIGN KEY

(

[Kontroler]

) REFERENCES [dbo].[Personal] (

[Id]

),[FK_Reysi_Sity] FOREIGN KEY

(

[PunktOtpravlenia]

) REFERENCES [dbo].[Sity] (

[ID]

),[FK_Reysi_Sity1] FOREIGN KEY

(

[PunktNaznachenia]

) REFERENCES [dbo].[Sity] (

[ID]

)TABLE [dbo].[Tikets] ADD[FK_Tikets_Reysi] FOREIGN KEY

(

[Reys]

) REFERENCES [dbo].[Reysi] (

[ID]

),[FK_Tikets_Zakaz] FOREIGN KEY

(

[Zakaz]

) REFERENCES [dbo].[Zakaz] (

[ID]

)TABLE [dbo].[Zakaz] ADD[FK_Zakaz_Reysi] FOREIGN KEY

(

[Reys]

) REFERENCES [dbo].[Reysi] (

[ID]

)QUOTED_IDENTIFIER OFFANSI_NULLS ON

/****** Object: Trigger dbo.DEL_reys Script Date: 22.01.2008 2:22:40 ******/trigger DEL_reys on dbo.Reysiof delete@@ROWCOUNT=1@y INT@y=IDdeletedfrom Tikets where Reys=@yfrom Zakaz where Reys=@yQUOTED_IDENTIFIER OFFANSI_NULLS ON

GO


Приложение 2 - Листинг программы


program Mdiapp;,in 'MAIN.PAS' {MainForm},in 'about.pas' {AboutBox},in 'DataModule.pas' {DataModule1: TDataModule},in 'USity.pas' {FSity},in 'UAutovokzaly.pas' {FAutovokzaly},in 'UEditAutovokzal.pas' {FEditAutovokzal},in 'UAutoPark.pas' {FAutoPark},in 'UEditAutopark.pas' {FEditAutopark},in 'UPersonal.pas' {FPersonal},in 'UEditPersonal.pas' {FEditPersonal},in 'UReisy.pas' {Freisy},in 'UEditReys.pas' {FEditReis},in 'UEditSity.pas' {FEditSity};

{$R *.RES}.Initialize;

Application.Title := 'Курсовая работа "Автовокзалы"';

Application.CreateForm(TDataModule1, DataModule1);.CreateForm(TMainForm, MainForm);.CreateForm(TAboutBox, AboutBox);.Run;.MAIN;Windows, SysUtils, Classes, Graphics, Forms, Controls, Menus,, Dialogs, Buttons, Messages, ExtCtrls, ComCtrls, StdActns,, ToolWin, ImgList, DBActns, DBClientActns, dxExEdtr, dxCntner,, dxDBCtrl, dxDBGrid, dxDBTL, ShellApi;= class(TForm)HelpAbout1Execute(Sender: TObject);FileExit1Execute(Sender: TObject);SityExecute(Sender: TObject);AutovokzalysExecute(Sender: TObject);AutoparkExecute(Sender: TObject);PersonalExecute(Sender: TObject);ReisyExecute(Sender: TObject);SaveExcelExecute(Sender: TObject);FormCreate(Sender: TObject);

{ Private declarations }

{ Public declarations };: TMainForm;

{$R *.dfm}about, USity, UAutovokzaly, UAutoPark, UPersonal, UReisy, DataModule;TMainForm.HelpAbout1Execute(Sender: TObject);.ShowModal;;TMainForm.FileExit1Execute(Sender: TObject);;;TMainForm.SityExecute(Sender: TObject);.CreateForm(TFSity,FSity);.Show;TMainForm.AutovokzalysExecute(Sender: TObject);.CreateForm(TFAutovokzaly,FAutovokzaly);.Show;TMainForm.AutoparkExecute(Sender: TObject);.CreateForm(TFAutoPark,FAutoPark);.Show;TMainForm.PersonalExecute(Sender: TObject);.CreateForm(TFPersonal,FPersonal);.Show;TMainForm.ReisyExecute(Sender: TObject);.CreateForm(TFreisy,Freisy);.Show;TMainForm.SaveExcelExecute(Sender: TObject);FName:String;:String;

// with Sender as TdxDBGrid, TdxDBTreeList do begin

// MessageDlg(FName, mtInformation, [mbOk], 0);Screen.ActiveForm.ActiveControl <> nil then begin:= Screen.ActiveForm.ActiveControl.ClassName;(AObject = 'TdxDBTreeList') or (AObject = 'TdxDBGrid') then beginSaveDialog1.Execute then begin:= SaveDialog1.FileName;AObject = 'TdxDBGrid' thenScreen.ActiveForm.ActiveControl as TdxDBGrid do(FName, False)Screen.ActiveForm.ActiveControl as TdxDBTreeList do(FName);ShellExecute

(Handle, 'open', @FName[1], nil, nil, SW_SHOWNORMAL)<32 then('Не буду !', mtInformation, [mbOk], 0)('Создан файл '+FName, mtInformation, [mbOk], 0);;

// WinExec() CreateProcess();;;TMainForm.FormCreate(Sender: TObject);.MSConnection1.Connect;.DataModule;, Classes, DBAccess, SdacVcl, DB, MSAccess, MemDS;AutovokzalyAfterInsert(DataSet: TDataSet);AutoParkAfterInsert(DataSet: TDataSet);PersonalAfterInsert(DataSet: TDataSet);ReisyAfterInsert(DataSet: TDataSet);

{ Private declarations }

{ Public declarations };: TDataModule1;UEditAutovokzal, UEditAutopark, UEditPersonal, UEditReys, UReisy;

{$R *.dfm}TDataModule1.AutovokzalyAfterInsert(DataSet: TDataSet);.ShowModal;TDataModule1.AutoParkAfterInsert(DataSet: TDataSet);.ShowModal;TDataModule1.PersonalAfterInsert(DataSet: TDataSet);.ShowModal;TDataModule1.ReisyAfterInsert(DataSet: TDataSet);.ShowModal;;.


Министерство общего и профессионального образования РФ КУБАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра Вычислительной техники и автоматизиро

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ