Автор работы: Пользователь скрыл имя, 05 Марта 2014 в 13:10, курсовая работа
В настоящее время существует множество способов хранения и обработки информации. Лучшим из них является базы данных. Сегодня невозможно представить ничего без баз данных. Они присутствуют везде. Достоинством баз данных является простота использования, легкость в получении данных. Недостатком является хранение и обработка данных. При слабом компьютере работа с достаточно большой базой данных займет длительное время. Главной задачей курсовой работы является создание клиент-серверного приложения для работы с базой данных. Создание таблиц, хранение и обработка данных будет осуществляться не на клиентском компьютере, а не сервере.
Введение 3
1 Назначение разработанного приложения 4
2 Создание индексов в среде MS SQL Server 5
3 Структура базы данных 8
3.1 Состав таблиц базы данных 8
3.2 Структура таблиц базы данных 9
3.3 SQL-код по созданию таблиц и описания ограничений 11
4 Схема диалога пользователя с разработанным приложением 15
4.1 Корректировка таблиц-справочников 15
4.2 Основная функциональность приложения по ведению базы данных 18
4.3 Построение печатных форм 20
4.4 Дополнительная функциональность приложения 24
5 Использованные средства MS SQL Server 27
5.1 Использование представлений 27
5.2 Использование хранимых процедур 28
Заключение 29
Список использованных источников 30
go
drop table Расписание
go
drop table Рейсы
go
drop table Самолеты
go
drop table Сотрудники
go
drop table Экипаж
go
create table Покупатель
(
КодПокупателя int primary key identity,
ФИО varchar(50) not null,
ДатаРождения datetime not null,
СерияПаспорта varchar(2) not null,
НомерПаспорта int not null
)
go
create table Билет
(
КодБилета int primary key identity,
КодПокупателя int not null,
КодРейса int not null,
ДатаПродажи datetime not null,
Цена money not null,
Место int not null
)
go
create table Багаж
(
КодБагажа int primary key identity,
КодБилета int not null,
ТипБагажа nvarchar(25) not null,
Вес int not null
)
go
create table Расписание
(
КодРасписания int primary key identity,
НомерМаршрута int not null,
ПунктВылета varchar(15) not null,
ПунктПрилета varchar(15) not null,
ВремяОтправления datetime not null
)
go
create table Рейсы
(
КодРейса int primary key identity,
ДатаВылета datetime not null,
КодРасписания int not null,
КодСамолета int not null,
)
go
create table Самолеты
(
КодСамолета int primary key identity,
НомерСамолета int not null,
КодМарки int not null,
ГодВыпуска datetime not null,
КодАвиакомпании int not null
)
go
create table Марка
(
КодМарки int primary key identity,
Название varchar(20)
)
go
create table Сотрудники
(
КодСотрудника int primary key identity,
ФИО varchar(50),
)
go
create table Экипаж
(
КодЭкипажа int primary key identity,
КодРейса int not null,
КодСотрудника int not null,
Должность varchar(20) not null
)
go
create table Авиакомпании
(
КодАвиакомпании int primary key identity,
Название varchar(20) not null,
Страна varchar(15) not null
)
/*
Определение связей между таблицами
*/
go
ALTER TABLE Билет ADD
CONSTRAINT FK_Билет_Покупатель
FOREIGN KEY(КодПокупателя)
REFERENCES Покупатель(КодПокупателя),
CONSTRAINT FK_Билет_Рейсы
FOREIGN KEY(КодРейса)
REFERENCES Рейсы(КодРейса)
go
ALTER TABLE Багаж ADD
CONSTRAINT FK_Багаж_Билет
FOREIGN KEY(Кодбилета)
REFERENCES Билет(КодБилета)
go
ALTER TABLE Рейсы ADD
CONSTRAINT FK_Рейсы_Расписание
FOREIGN KEY(КодРасписания)
REFERENCES Расписание(КодРасписания),
CONSTRAINT FK_Рейсы_Самолеты
FOREIGN KEY(КодСамолета)
REFERENCES Самолеты(КодСамолета)
go
ALTER TABLE Самолеты ADD
CONSTRAINT FK_Самолеты_Марка
FOREIGN KEY(КодМарки)
REFERENCES Марка(КодМарки),
CONSTRAINT FK_Самолеты_Авиакомпании
FOREIGN KEY(КодАвиакомпании)
REFERENCES Авиакомпании(КодАвиакомпании)
go
ALTER TABLE Экипаж ADD
CONSTRAINT FK_Экипаж_Рейсы
FOREIGN KEY(КодРейса)
REFERENCES Рейсы(КодРейса),
CONSTRAINT FK_Экипаж_Сотрудники
FOREIGN KEY(КодСотрудника)
REFERENCES Сотрудники(КодСотрудника)
Таблицы-справочники содержат в себе основную информацию аэропорта. В данном приложении это информация о покупателях, расписание полетов, экипаж самолета, авиакомпании и марка самолета.
Для просмотра таблиц справочников необходимо выбрать соответвующий пункт меню справочников (рисунок 4.1).
Рисунок 4.1 – Пункты меню для выбора таблиц-справочников
Каждую таблицу можно открыть (рисунок 4.2).
Рисунок 4.2 – Открытие справочника
Все записи можно изменить или добавить новую (рисунок 4.3).
Рисунок 4.3 – Изменение и добавление записи
Помимо этого, запись из таблицы-справочника можно удалить (рисунок 4.5) при отсутствия связанной записи в дочерней таблице. Перед удалением появится информационное окно (рисунок 4.4).
Каскадное удаление не предусмотрено в данной БД для предотвращения потери данных. Удалить запись можно при условии, если на эту запись не ссылаются другие таблицы.
Рисунок 4.4 – Предупреждение об удалении записи
Рисунок 4.5 – Результат удаления записи
Помимо таблиц-справочников существуют дочерние таблицы. В них содержится дополнительная информация о таблицах-справочниках (рисунок 4.6).
Рисунок 4.6 – Дочерние таблицы
Дочерние таблицы хранят в себе данные о билетах покупателя, его багаже, информацию о рейсах, самолетах и экипаже рейса.
Каждая дочерняя таблица изменяется как и таблицы-справочники. Вместо кодов родительских таблиц используется удобный выпадающий список родительских полей (рисунок 4.7).
Рисунок 4.7 – Выпадающий список
Любое поле можно изменить (рисунок 4.8).
Рисунок 4.8 – Изменение записи
В каждую таблицу можно добавить запись (рисунок 4.9).
Рисунок 4.9 – Добавление записи
Для построения отчетов предназначен пункт меню (рисунок 4.10).
Рисунок 4.10 – Выбор печатной формы
В разработанной БД присутствует 5 отчетов:
1. Авиакомпании (рисунок 4.11);
2. Информация о покупателе (рисунок 4.12);
3. Годовой отчет продажи билетов (рисунок 4.13);
4. Самолеты авиакомпаний (рисунок 4.14);
5. Информация о покупателях (рисунок 4.15).
Рисунок 4.11– Отчет «Авиакомпании»
Для создания отчета Информация о покупателях используется запрос Информация о покупателях. Текст отчета ниже:
SELECT ФИО,
ДатаПродажи,
Цена
FROM Покупатель, Билет
WHERE Покупатель.кодпокупателя=
and введите_год=Year(ДатаПродажи);
Рисунок 4.12 – Отчет «Покупатели»
Для создания отчета Годовой отчет о продажи билетов используются запрос Годовой отчет по продажам. Текст запроса описан ниже:
SELECT ФИО,
ДатаПродажи,
Цена
FROM Покупатель, Билет
WHERE Покупатель.кодпокупателя=
and введите_год=Year(ДатаПродажи)
Рисунок 4.13 – Отчет «Годовой отчет продажи билетов»
Рисунок 4.14 – Отчет «Самолеты Авиакомпаний»
Для создания отчета был использован запрос:
exec ИнфоПокупатель Сидоров
Рисунок 4.15 – Отчет «Информация о покупателе»
Формирования запроса для отчета Годовой отчет продажи билетов:
SELECT ФИО,
ДатаПродажи,
Цена
FROM Покупатель, Билет
WHERE Покупатель.кодпокупателя=
and введите_год=Year(ДатаПродажи);
Формирования запроса для отчета Информация о покупателях:
SELECT Покупатель.ФИО,
Покупатель.СерияПаспорта,
Покупатель.НомерПаспорта,
Покупатель.ДатаРождения,
Билет.ДатаПродажи,
Билет.Цена,
Багаж.Вес
FROM Билет, Багаж, Покупатель
WHERE (((Покупатель.кодПокупателя)=[
AND ((Билет.КодБилета)=[Багаж].[
Использование отсортированных записей упрощает поиск и обработку данных. В данном приложении используется собственная индексация в таблице Авиакомпании. Сортировка происходит по Названию и страны авиакомпании.
При добавлении новой записи (рисунок 4.16).
Рисунок 4.16 – Добавление новой записи
Запись добавляется в конец списка, потому что данные не обновлены на сервере. Для этого нужно нажать на кнопку обновить все (рисунок 4.17).
Рисунок 4.17 – Обновление записей
После обновления запись займет соответствующее место в списке (рисунок 4.18).
Рисунок 4.18 – Отсортированный список
Для вывода на экран монитора всех таблиц используются представления приведенные в таблице 5.1.
Таблица 5.1 – Представления
Название |
Назначение |
Где используется |
1 СамолетыИнфо |
Выборка полей из таблиц |
Просмотр таблицы самолеты, отчет самолетов авиакомпаний |
2 ОбладательБагажа |
Выборка полей из таблиц |
Просмотр таблицы Багаж |
3 БилетРейсы |
Выборка полей из таблиц |
Просмотр таблицы Билет,Экипаж |
Ниже приведен текст SQL, создающий представления:
/* представление для отображения самолетов без кодов родителей*/
go
drop view СамолетыИнфо
go
create view СамолетыИнфо
as
select НомерСамолета,
Марка.Название as Марка,
ГодВыпуска,
Авиакомпании.Название as НазвАвиа,
Страна
from Самолеты,Марка,Авиакомпании
where Самолеты.КодМарки=Марка.
and Самолеты.КодАвиакомпании=
Авиакомпании.КодАвиакомпании
/*представление для таблицы Багаж*/
go
drop view ОбладательБагажа
go
create view ОбладательБагажа
as
select Багаж.КодБилета,
ФИО,
ДатаПродажи,
ТипБагажа,
Вес
from Покупатель,Билет,Багаж
where Покупатель.КодПокупателя=
and Билет.КодБилета=Багаж.
/* представление для таблицы Билет,Экипаж*/
go
drop view БилетРейсы
go
create view БилетРейсы
as
select Рейсы.КодРейса,
Расписание.КодРасписания,
ПунктВылета,
ПунктПрилета,
ВремяОтправления,
ДатаВылета
from Билет,Рейсы,Расписание
where Билет.КодРейса=Рейсы.КодРейса
and Рейсы.КодРасписания=
Таблица 5.2 – Хранимые процедуры
Название |
Назначение |
Где используется |
1 ИнфоПокупатель |
Поиск покупателя по ФИО |
Для отчета информации о покупателе |
Ниже приведен текст SQL, создающий процедуры:
/*процедура для отображения информации о покупателе*/
go
drop proc ИнфоПокупатель
go
create procedure ИнфоПокупатель @ФИО varchar(40)
as
select ФИО,
ДатаРождения,
Цена,
Место,
Вес
From Покупатель,Билет,Багаж
where Покупатель.
and Билет.КодБилета=Багаж.
and ФИО=@ФИО
В результате было разработано база данных управлением аэропорта. Приложение создано в среде MS Acces 2013 и MS SQL SERVER 2008.
В ходе выполнения создания приложения были выполнены следующие действия:
Данную базу данных можно легко изменять для выполнения самых разнообразных задач.
1 Винкоп, С. Использование Microsoft SQL Server
7.0 : специальное издание / С. Винкоп. –
СПб. : Издательский дом «Вильямс», 2001.
– 816 с.
2 Хоторн, Р. Разработка баз данных
Microsoft SQL Server 2000 на примерах / Р. Хоторн.
– М. : Бином, 2001. – 464 с.
3 Змитрович, А.И. Базы данных : учебное пособие для вузов / А.И. Змитрович. – Мн. : Университетское, 1991. – 271 с.
4 Риордан, Р. Программирование в Microsoft
SQL Server 2000. Шаг за шагом / Р. Риордан. – М.
: Эком, 2002. – 608 с.
5 Кренке, Д. Теория и практика построения баз данных / Д. Кренке. – 8-е изд. – СПб. : Питер, 2003. – 800 с.