ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовому проекту
на тему: “ Автовокзал ”
(тема курсового проекта)
Члены комиссии
Кафедра ВТ и АСУ
Утверждаю:
Зав. кафедрой____________
________________________
ЗАДАНИЕ
на курсовое проектирование
факультета КТАС
специальности 230105 _____
Бикташеву Игорю Альбертовичу______
(ф. и. о., шифр)
Реферат
2
Объем пояснительной записки составляет 41 листов формата А4.
Пояснительная записка содержит 28 иллюстрацию. Количество использованных
источников – 7. Количество приложений – 2.
3
Содержание
Введение...............................................................................................................5
Заключение.........................................................................................................28
Приложения........................................................................................................30
4
Введение
5
1 Описание предметная область
Предметная область, часть которой представлена в этой программе –
реализация информационной работы автовокзала. Это обширная и часто
используемая в современном мире задача, требующая точности исполнения. В
данной программе будет реализован процесс организации расписания
автовокзала, продажи и заказов билетов.
6
2 Теоретические основы разработки баз данных
2.1 Определения
9
2.2 Триггеры
10
2. Компоненты, ссылающиеся на объекты базы данных (таблицы,
индексы, представления и т. п.), сопоставляются с этими объектами с
предварительной проверкой их существования. Этот процесс носит название
разрешение ссылок.
3. В системной таблице syscomments сохраняется исходный текст
процедуры, а в таблице sysobjects - ее название.
4. Создается предварительный план выполнения запроса. Этот
предварительный план называется нормализованным планом или деревом запроса
и хранится в системной таблице sysprocedures.
5. При первом выполнении хранимой процедуры дерево запроса
считывается и окончательно оптимизируется. Выполняется ранее созданный
план процедуры.
Такая схема дает возможность при повторных вызовах не тратить время на
синтаксический анализ, разрешение ссылок и компиляцию дерева запросов. А
при последующих вызовах выполняется только пятый шаг. Причем план хранимой
процедуры после первого выполнения содержится в быстродействующем
процедурном кэше. Это значит, что во время вызова процедуры скорость его
считывания будет очень высока.
Использование хранимых процедур имеют еще ряд дополнительных
преимуществ.
- Хранимые процедуры позволяют выделять правила в отдельную структуру.
В дальнейшем эти правила используются многими приложениями, образуя
устойчивый к ошибкам интерфейс данных. Выгода такого подхода состоит в
том, что можно осуществлять изменение правил только для отдельной части
объектов базы данных, а не для всех ее приложений.
- Использование хранимых процедур значительно повышает
производительность запросов, однако наибольшей ее прирост достигается при
выполнении многократно повторяющихся операций, когда план запроса
постоянно хранится в системном кэше.
- Хранимые процедуры могут принимать аргументы при запуске и
возвращать значения (в виде результирующих наборов данных).
- Хранимые процедуры могут запускаться по расписанию (в режиме
автоматического выполнения), задаваемому при запуске SQL Server.
- Хранимые процедуры используются для извлечения или изменения данных
в любое время.
- Хранимые процедуры, в отличие от триггеров, вызываются явно. То есть
при непосредственном обращении к процедуре из приложения, сцена рия,
пакета или задачи.
Хранимые процедуры - мощное средство обработки данных. Системные
хранимые процедуры играют очень важную роль в администрировании и
поддержке базы данных. Пользовательские хранимые процедуры применяются
при решении практически любых задач. Кроме того, пользователь может
получить право выполнения хранимой процедуры, даже если он не имеет права
доступа к объектам, к которым обращается процедура.
11
2.4 Администрирование баз данных
12
3 Проектирование базы данных
атрибут
обьект-тип связь-тип;
13
Номер
Название Телефон Адрес Директор
Кол-во
Автовокзалы Содерж
Транспорт мест
1 и
1 т N Модель
1
Организуе Название
Личные Работа т
данные ю
т Везет
Адрес N 1 Города
Сотрудники
Учетные
1 1 Карта
данные
Дата
Продается Заказыва
ют
Место
N N
N 1
Билеты Заказы
Выдаетс
я
15
Рисунок 4 - реляционная модель базы данных
16
3.3 Структура базы данных
17
Таблица «Города» – отражает города, между которыми совершаются
перемещения, а так же включает карту города
18
3.4 Процесс нормализации базы данных
19
3.5 Обоснование наличия НФ
4 Программная реализация
21
5 Руководство пользования программой
22
:
Рисунок 16 – Выгрузка в Excel
6. Меню «Edit» - операции по редактированию записей: Вырезать,
копировать, вставить.
7. Меню “Windows” – действие с окнами программы, при открытии
нескольких окон данное меню позволяет разместить их на экране удобным
для пользователем образом: Каскадом, Горизонтально, Вертикально
8. Меню «Автовокзалы» - основное меню для работы с данными. Для каждого
пункта меню есть соответствующая кнопка на панели задач. Состоит из
следующих действий:
a. Пункт «Города». При выборе открывается форма для редактирования
справочника городов.
23
Рисунок 18 – Форма «Редактирование Города»
24
Поиск и переключение на нужную запись происходит автоматически.
Двойнок клик левой клавиши мыши откроет формы для редактирования
записи:
25
Рисунок 24 – Форма «Рейсы»
26
В данной форме можно добавить билеты на рейс или заказать билет:
27
5.1 Описание программы
28
Заключение
29
Список использованной литературы
30
Приложение 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
31
GO
use [Autovokzaly]
GO
GO
38
Приложение 2 – Листинг программы
program Mdiapp;
uses
Forms,
MAIN in 'MAIN.PAS' {MainForm},
about in 'about.pas' {AboutBox},
DataModule in 'DataModule.pas' {DataModule1: TDataModule},
USity in 'USity.pas' {FSity},
UAutovokzaly in 'UAutovokzaly.pas' {FAutovokzaly},
UEditAutovokzal in 'UEditAutovokzal.pas' {FEditAutovokzal},
UAutoPark in 'UAutoPark.pas' {FAutoPark},
UEditAutopark in 'UEditAutopark.pas' {FEditAutopark},
UPersonal in 'UPersonal.pas' {FPersonal},
UEditPersonal in 'UEditPersonal.pas' {FEditPersonal},
UReisy in 'UReisy.pas' {Freisy},
UEditReys in 'UEditReys.pas' {FEditReis},
UEditSity in 'UEditSity.pas' {FEditSity};
{$R *.RES}
begin
Application.Initialize;
Application.Title := 'Курсовая работа "Автовокзалы"';
Application.CreateForm(TDataModule1, DataModule1);
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TAboutBox, AboutBox);
Application.Run;
end.
unit MAIN;
interface
type
TMainForm = class(TForm)
procedure HelpAbout1Execute(Sender: TObject);
procedure FileExit1Execute(Sender: TObject);
procedure SityExecute(Sender: TObject);
procedure AutovokzalysExecute(Sender: TObject);
procedure AutoparkExecute(Sender: TObject);
procedure PersonalExecute(Sender: TObject);
procedure ReisyExecute(Sender: TObject);
procedure SaveExcelExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
39
{$R *.dfm}
if ShellExecute
(Handle, 'open', @FName[1], nil, nil, SW_SHOWNORMAL)<32 then
MessageDlg('Не буду !', mtInformation, [mbOk], 0)
else
MessageDlg('Создан файл '+FName, mtInformation, [mbOk], 0);
end;
// WinExec() CreateProcess()
end;
end;
end;
end.
unit DataModule;
interface
uses
SysUtils, Classes, DBAccess, SdacVcl, DB, MSAccess, MemDS;
type
procedure AutovokzalyAfterInsert(DataSet: TDataSet);
procedure AutoParkAfterInsert(DataSet: TDataSet);
procedure PersonalAfterInsert(DataSet: TDataSet);
procedure ReisyAfterInsert(DataSet: TDataSet);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DataModule1: TDataModule1;
implementation
{$R *.dfm}
41
procedure TDataModule1.ReisyAfterInsert(DataSet: TDataSet);
begin
FEditReis.ShowModal;
end;
end.
42