Разработка программного продукта для реализации информационной работы автовокзала с использованием базы данных на основе SQL Server

Автор работы: Пользователь скрыл имя, 10 Февраля 2013 в 18:02, курсовая работа

Описание

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

Содержание

Введение 5
1 Описание предметной области и постановки задачи 6
1.1 Требование к разработке 6
1.2 Постановка задачи 6
2 Теоретические основы разработки баз данных 7
2.1 Определения 7
2.2 Триггеры 10
2.3 Хранимые процедуры 10
2.4 Администрирование баз данных 12
3 Проектирование базы данных 13
3.1 Концептуальная модель базы данных 14
3.2 Реляционная модель базы данных 15
3.3 Структура базы данных 17
3.4 Процесс нормализации баз данных 19
3.4 Обоснование наличия НФ 20
4 Программная реализация базы данных 21
4.1 Используемые триггеры 21
5 Руководство пользования программой 24
5.1 Описание программы 27
Заключение 28
Список использованной литературы 29
Приложения 30

Работа состоит из  1 файл

Пояснительная.doc

— 603.00 Кб (Скачать документ)

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

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

 

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

 

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

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

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

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

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

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

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

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

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

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

 

 

 

 

 

 

 

 

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

 

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

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

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

 

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

 

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

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

 

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

 

 

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

 

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

 

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

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

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

 

create trigger new_trigger on dbo.Reysi

instead of delete

as

IF @@ROWCOUNT=1

BEGIN

  DECLARE @y INT

  SELECT @y=ID

  FROM deleted

  delete from Tikets where Reys=@y

  delete from Zakaz where Reys=@y

END

 

 

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

 

 

 

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

 

  1. Запуск программы осуществляется при помощи открытия файла MDIAPP.exe
  2. Для начала необходимо войти в программу под своим пользователем.

 

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

 

 

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

 

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

 

  1. Для работы с данными предлагается использовать меню, а также панель задач. Для каждого действия существует свое меню.
  2. Меню «File» состоит из двух операций: «Выгрузить в Excel» и «Exit»

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

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

:

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

  1. Меню «Edit» - операции по редактированию записей: Вырезать, копировать, вставить.
  2. Меню “Windows” – действие с окнами программы, при открытии нескольких окон данное меню позволяет разместить их на экране удобным для пользователем образом: Каскадом, Горизонтально, Вертикально
  3. Меню «Автовокзалы» - основное меню для работы с данными. Для каждого пункта меню есть соответствующая кнопка на панели задач. Состоит из следующих действий:
    1. Пункт «Города». При выборе открывается форма для редактирования справочника городов.

Рисунок 17 – Форма «Города»

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

Рисунок 18 – Форма «Редактирование Города»

 

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

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

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

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

Рисунок 19 – Форма «Автовокзалы»

 

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

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

 

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

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

Рисунок 21 – Форма «Редактирование автьовокзала»

 

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

 

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

 

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

 

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

 

    1. Пункты меню «Автопарк» и «Сотрудники имеют сходный механизм работы, открытия форм и поиска записей 
    2. Пункт «Рейсы». При выборе данного пункта открывается форма для добавления, изменения записей о рейсах.

Рисунок 24 – Форма «Рейсы»

 

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

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

 

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

Рисунок 26 – Форма «Редактирование рейса»

 

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

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

 

 

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

 

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

 

Заключение

 

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

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

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

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

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

 

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

 

  1. В.В. Фаронов “C 6: Учебный Курс”, Москва, Knowledge, 2001
  2. М.В. Сухарев “Основы C#”, издательство “Наука и техника”, 2003
  3. Г.В. Галисеев, “Компоненты в Delphi 6: профессиональная работа”, издательство “Диалектика”, 2004
  4. В.И. Ключко “Методическое указание к выполнению курсовой работы”, Краснодар, Издательство КубГТУ, 1997
  5. М.П. Малыхина “Базы данных: основы, проектирование, использование”
  6. Т.М. Карпова “Базы данных: модели, разработка, реализация”, издательство “Питер”, 2001
  7. Кандзюба С. П. “Delphi 6/7. Базы данных и приложения. Лекции и упражнения”. – СПб.: ООО «ДиаСофтЮП», 2002. – 576.

 

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

/****** Object:  Database Autovokzaly    Script Date: 22.01.2008 2:22:39 ******/

CREATE 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%)

COLLATE Cyrillic_General_CI_AS

GO

 

exec sp_dboption N'Autovokzaly', N'autoclose', N'false'

GO

 

exec sp_dboption N'Autovokzaly', N'bulkcopy', N'false'

GO

 

exec sp_dboption N'Autovokzaly', N'trunc. log', N'false'

GO

 

exec sp_dboption N'Autovokzaly', N'torn page detection', N'true'

GO

 

exec sp_dboption N'Autovokzaly', N'read only', N'false'

GO

 

exec sp_dboption N'Autovokzaly', N'dbo use', N'false'

GO

 

exec sp_dboption N'Autovokzaly', N'single', N'false'

GO

 

exec sp_dboption N'Autovokzaly', N'autoshrink', N'false'

GO

 

exec sp_dboption N'Autovokzaly', N'ANSI null default', N'false'

GO

 

exec sp_dboption N'Autovokzaly', N'recursive triggers', N'false'

GO

 

exec sp_dboption N'Autovokzaly', N'ANSI nulls', N'false'

GO

 

exec sp_dboption N'Autovokzaly', N'concat null yields null', N'false'

GO

 

exec sp_dboption N'Autovokzaly', N'cursor close on commit', N'false'

GO

 

exec sp_dboption N'Autovokzaly', N'default to local cursor', N'false'

GO

 

exec sp_dboption N'Autovokzaly', N'quoted identifier', N'false'

GO

 

exec sp_dboption N'Autovokzaly', N'ANSI warnings', N'false'

GO

 

exec sp_dboption N'Autovokzaly', N'auto create statistics', N'true'

GO

 

exec sp_dboption N'Autovokzaly', N'auto update statistics', N'true'

GO

 

if( (@@microsoftversion / power(2, 24) = 8) and (@@microsoftversion & 0xffff >= 724) )

exec sp_dboption N'Autovokzaly', N'db chaining', N'false'

GO

 

use [Autovokzaly]

GO

 

/****** Object:  Login Administrator    Script Date: 22.01.2008 2:22:39 ******/

if not exists (select * from master.dbo.syslogins where loginname = N'Administrator')

BEGIN

declare @logindb nvarchar(132), @loginlang nvarchar(132) select @logindb = N'Autovokzaly', @loginlang = N'us_english'

if @logindb is null or not exists (select * from master.dbo.sysdatabases where name = @logindb)

select @logindb = N'master'

if @loginlang is null or (not exists (select * from master.dbo.syslanguages where name = @loginlang) and @loginlang <> N'us_english')

select @loginlang = @@language

exec sp_addlogin N'Administrator', null, @logindb, @loginlang

END

GO

 

/****** Object:  Login Kadry01    Script Date: 22.01.2008 2:22:39 ******/

if not exists (select * from master.dbo.syslogins where loginname = N'Kadry01')

BEGIN

declare @logindb nvarchar(132), @loginlang nvarchar(132) select @logindb = N'Autovokzaly', @loginlang = N'us_english'

if @logindb is null or not exists (select * from master.dbo.sysdatabases where name = @logindb)

select @logindb = N'master'

if @loginlang is null or (not exists (select * from master.dbo.syslanguages where name = @loginlang) and @loginlang <> N'us_english')

select @loginlang = @@language

exec sp_addlogin N'Kadry01', null, @logindb, @loginlang

END

GO

 

/****** Object:  Login Kassir01    Script Date: 22.01.2008 2:22:39 ******/

if not exists (select * from master.dbo.syslogins where loginname = N'Kassir01')

BEGIN

declare @logindb nvarchar(132), @loginlang nvarchar(132) select @logindb = N'Autovokzaly', @loginlang = N'us_english'

if @logindb is null or not exists (select * from master.dbo.sysdatabases where name = @logindb)

select @logindb = N'master'

if @loginlang is null or (not exists (select * from master.dbo.syslanguages where name = @loginlang) and @loginlang <> N'us_english')

Информация о работе Разработка программного продукта для реализации информационной работы автовокзала с использованием базы данных на основе SQL Server