Реферат

Реферат Проектирование базы данных предметной области Фирма по продаже пластиковых окон.

Работа добавлена на сайт bukvasha.net: 2015-10-28

Поможем написать учебную работу

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

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 22.11.2024






ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

СРЕДНЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«РЯЗАНСКИЙ СТАНКОСТРОИТЕЛЬНЫЙ КОЛЛЕДЖА»
Курсовой проект
по дисциплине «Базы данных»

Тема: Проектирование базы данных предметной области «Фирма по продаже пластиковых окон».
Пояснительная записка
КП. 00.01.ПЗ

Курсовой проект разработан

студентом группы П-31

Желунициным А. Ю.

Руководитель курсовой работы

_______________/Юдаева О.В./

«___»________________ 2010 г.

Рязань 2010 г.

Содержание

1.

Задание на курсовой проект 4

Введение 5

2. Постановка задачи и анализ предметной области 6

3. Назначение проектируемой базы данных 7

4. Проектирование инфологической модели данных 8

4.1. Информационные потребности пользователя 8

(анализ запросов). 8

4.2. Определение сущностей и связей 8

4.3. Определение функций пользователя, атрибутов, ключей 9

4.4. Выявление и описание ограничений целостности 10

4.5. Разработка инфологической модели предметной области. 12

5.Проектирование даталогической модели БД 15

5.1.Выбор СУБД. 15

5.2.Отображение инфологической модели 15

на даталогическую модель 15

6.Реализация БД 18

6.1.Разработка средств реализации ограничений целостности 18

6.2.Разработка процедур ведения БД 19

(добавление, удаление, изменение, контроль) 19

6.3.Разработка процедур реализации запросов и интерфейса пользователя. 21

ВрДвижРейса. Запрос, определяющий время отправления и прибытия каждого рейса. 21

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

SELECT ОбслужРейса.КодЛетчика, [Сведения о летчиках].Фамилия, [Сведения о летчиках].Имя, [Сведения о летчиках].Отчество, Самолеты.НомСам, ОбслужРейса.Дата, РасписаниеРейсов.ВрОтпр, РасписаниеРейсов.ВрПриб 24

FROM [Сведения о летчиках] INNER JOIN ((Маршрут INNER JOIN РасписаниеРейсов ON Маршрут.КодМарш = РасписаниеРейсов.КодМарш) INNER JOIN (Самолеты INNER JOIN ОбслужРейса ON Самолеты.НомСам = ОбслужРейса.НомСам) ON РасписаниеРейсов.КодРейса = ОбслужРейса.КодРейса) ON [Сведения о летчиках].КодЛетчика = ОбслужРейса.КодЛетчика 24

WHERE (((ОбслужРейса.Дата)=[Forms]![Изменение 24

ОбслуживаниеРейса]![Дата]) AND 24

(select[часы]from[ВрДвижРейса])));|outline">((РасписаниеРейсов.ВрПриб)>(select[часы]from[ВрДвижРейса]))); 24

7. Интерфейс и руководство пользователя 28

8. Спецификация входных и выходных запросов. 33

9.Спецификация запросов пользователей 35

10. Заключение. 36

11.Список использованной литературы…………………..............................27
Федеральное агентство по образованию

ФГОУ СПО «Рязанский станкостроительный колледж»

Согласовано

Председатель ЦК Информатики и ВТ

___________________ А.Н. Юдаев

«_____»____________________ 20__ г.

Утверждаю

Зам. директора по УР

__________________ Глазков А.Н.

«____»__________________ 20__ г.

Дата выдачи

«___»______________20__ г.

Дата окончания

«___»______________ 20__ г.















Задание на курсовой проект


по дисциплине «Базы данных»
студенту(ке)____________________________________________________, группы П-31

специальность 230105.51 Программное обеспечение вычислительной техники и автоматизированных систем

Тема работы: Проектирование базы данных предметной области

______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
_____________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________

Содержание курсового проекта

1.

2.

3.

4.

4.1.

4.2.

4.3.

4.4.

4.5.

5.

5.1.

5.2.

6.

6.1.

6.2.

6.3.

7.

8.

9.

10.

11.

Введение

Постановка задачи и анализ предметной области

Назначение проектируемой базы данных

Проектирование инфологической модели данных

Информационные потребности пользователя (анализ запросов).

Определение сущностей и связей

Определение функций пользователя, атрибутов, ключей.

Выявление и описание ограничений целостности.

Разработка инфологической модели предметной области.

Проектирование даталогической модели БД.

Выбор СУБД.

Отображение инфологической модели на даталогическую модель.

Реализация БД

Разработка средств реализации ограничений целостности.

Разработка процедур ведения БД (добавление, удаление, изменение, контроль).

Разработка процедур реализации запросов и интерфейса пользователя.

Интерфейс и руководство пользователя

Спецификация входных и выходных документов.

Спецификация запросов пользователя

Заключение

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

Руководитель проекта ________________________________ /Юдаева О.В./
Задание принял к исполнению _________________/___________________/

«___»____________________20___ г.

Введение



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

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

2. Постановка задачи и анализ предметной области



Спроектировать базу данных для предметной области Аэропорт. Эта база данных будет использоваться как работниками Аэропорта, так и пассажирами.

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

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

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

3. Назначение проектируемой базы данных



Спроектированная база данных данного примера предназначена для автоматизированного учета работы Аэропорта.

Данная разработка должна использоваться для программного обеспечения ОС Microsoft Windows 2000/NT/2003. Microsoft Office 2000/2003. СУБД Microsoft Access 2000/2003, Delphi 2005/2006, SQL. Для персональных компьютеров не ниже Pentium III, Pentium IV, Celeron.


4. Проектирование инфологической модели данных

4.1. Информационные потребности пользователя

(анализ запросов).


При разработке данного курсового проекта была выбрана следующая предметная область: «Аэропорт».

В ней необходимо отразить:

  • список обслуживающего персонала (как летчиков, так и самолетов);

  • информацию о стоимости билета;

  • расписание движения (время отправления, прибытия);

  • данные о маршрутах (номер, аэропорт назначения, направление);

  • данные о рейсах (номер рейса; номер маршрута, по которому осуществляется движение; время отправления);

  • данные об аэропортах (название, номер маршрута, расстояние);

  • предоставление возможности добавления некоторых данных (об обслуживающем персонале), их удаление, изменение;

  • итоги продажи билетов по различным рейсам в зависимости от даты;

4.2. Определение сущностей и связей



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

Связь - соединение между двумя и более сущностями. Экземпляр связи - конкретная связь между конкретными представителями объектов.

Сущности, представленные в данном курсовом проекте:

  • Маршрут
    (содержит информацию о маршрутах),

  • Рейс (информация о рейсах),

  • Летчики
    (информация о летчиках),

  • Самолеты
    (информация о самолетах),

  • Аэропорт
    (информация об аэропортах),

  • Категория направления
    (наименование видов направлений движения самолетов),

  • Количество билетов (число проданных билетов за определенный рейс).

4.3. Определение функций пользователя, атрибутов, ключей


Атрибут - свойство сущности или связи.

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

Сущность Маршрут.
Содержит следующие атрибуты: Код маршрута, название конечного аэропорта, направление движения. Код маршрута является ключом.

Сущность Рейс. Содержит следующие атрибуты: Код рейса, номер маршрута, время прибытия, время отправления. Ключом будет являться Код рейса.

Сущность Летчики. Содержит следующие атрибуты: Код летчика, фамилия, имя, отчество, паспортные данные, дата рождения. Ключ – Код летчика.

Сущность Самолеты. Содержит следующие атрибуты: Н
омер самолета
, год поступления на эксплуатацию, тип самолета, количество мест. Ключ Номер самолета.

Сущность Аэропорт. Содержит следующие атрибуты: н
омер маршрута
, к которому относится данный аэропорт, его название, расстояние до аэропорта. Ключ – составной из номера маршрута и названия аэропорта;

Сущность Категория

направления
. Содержит следующие атрибуты: Код направления, название, стоимость за 1 км, ставка за рейс (необходима для расчета заработной платы летчикам). Ключ – Код направления

Сущность Количество

билетов
. Содержит следующие атрибуты: код рейса, дата, количество проданных билетов, сумма. Составной ключ: дата, код рейса.

4.4. Выявление и описание ограничений целостности


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

Для обеспечения целостности данных в Access есть 4 варианта:

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

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

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

  4. Если указано каскадное удаление, то связанные записи подчиненной таблицы удаляются автоматически.

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

  • Запрещение null значения: данные, заносимые в столбец или таблицу, не должны равняться нулю.

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

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

  • Ограничение уникальных ключей: необходимость ввода различных (уникальных) данных.

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

Таблица Летчики

В поле Дата рождения на данные накладывается ограничение от 01.01.1965 до 01.01.80.

Таблица Аэропорты

В поле Расстояние на данные накладывается ограничение >0.

Таблица Маршруты

В поле Код маршрута на данные накладывается ограничение 100.

Таблица Количество билетов

В поле Количество на данные накладывается ограничение >0.

Таблица Самолеты

В поле Количество мест на данные накладывается ограничение >10.

4.5. Разработка инфологической модели предметной области.


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

Определим связи данной предметной области на этапе разработки инфологической модели.

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

  • Один к одному (1:1)

  • Один ко многим (1:М или М:1)

  • Многие ко многим (М:N)

Класс принадлежности сущности к связи может быть обязательным (каждый экземпляр сущности обязательно должен быть связан с другой сущностью) и необязательным (каждый экземпляр сущности не требует связи с экземпляром другой сущности).

В данном курсовом проекте используются двухсторонние и трехсторонние связи.
1)


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

Первичный ключ для Обслуживает рейс будет определен при распределении всех других атрибутов.

Рейс обслуживается Летчиком на Самолете - трехарная связь.

Класс принадлежности объектов Рейс, Летчик, Самолет – обязательный.
2)



При двухсторонней связи требуется три предварительных отношения.

Рейс относиться к такому-то Маршруту - бинарная связь. Класс принадлежности объектов Код рейса, Код маршрута – обязательный.
3)



Маршрут имеет такой-то Аэропорт - бинарная связь. Класс принадлежности объектов Код маршрута, Название аэропорта – обязательный.

4) Маршрут имеет такую-то Категорию направление - бинарная связь. Класс принадлежности объектов Код маршрута, код направления – обязательный.



5) По итогу Рейса продано столько-то Количества билетов - бинарная связь. Класс принадлежности объекта Код рейса – обязательный.


  1. Проектирование даталогической модели БД

5.1.Выбор СУБД.



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

5.2.Отображение инфологической модели

на даталогическую модель



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

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

Аэропорты (КодМарш, НазвАэропорта, Расстояние).

ДниНедели (Код дня, День недели).

ИтогиДня (КодРейса, Дата, ЧислоПроданБил, Сумма).

Маршрут (КодМарш, КонАэропорт, КодНапр).

ОбслужРейса (Дата,КодРейса, НомСам, КодЛетчика).

Проданные места (КодРейса, Дата, Место, Цена).

РасписаниеРейсов (КодРейса, КодМарш, ДеньНедели, ВрОтпр, ВрПриб).

Самолеты (НомСам, Поступил, ТребРемонт, ТипСам, КоличМест).

Летчики (КодЛетчика, Фамилия, Имя, Отчество, Паспорт, ДатаРожд).

СписокМест (Список80Места, Список50Места, Список60Места).

СтоимПоНапр (КодНапр, НаименНапр, СтоимЗа1км, СтавкаЗаРейс).
Таблица: Аэропорты

Имя поля

Тип данных

Обязательное поле

Индексированное поле

Условие на значение

КодМарш

Числовой

Да

Да(совпадения допускаются)




НазвАэропорта

Текстовый

Да




Расстояние

Числовой

Да

Нет

>0

Таблица: ДниНедели

Имя поля

Тип данных

Обязательное поле

Индексированное поле

Условие на значение

КодДня

Числовой

Да

Да(совпадения не допускаются)




ДеньНедели

Текстовый

Да

Нет




Таблица: ИтогиДня

Имя поля

Тип данных

Обязательное поле

Индексированное поле

Условие на значение

Дата

Дата/время

Да

Да(совпадения допускаются)




КодРейса

Числовой

Да




ЧислоПроданБил

Числовой

Да

Нет

>0

Сумма

Денежный

Да

Нет




Таблица: Маршрут

Имя поля

Тип данных

Обязательное поле

Индексированное поле

КодМарш

Числовой

Да

Да(совпадения не допускаются)

КонАэропорт

Текстовый

Да

КодНапр

Числовой

Да

Нет

Таблица: ОбслужРейса

Имя поля

Тип данных

Обязательное поле

Индексированное поле

Дата

Дата/Время

Да

Да (Совпадения допускаются)

КодРейса

Числовой

Да

НомСам

Текстовый

Да

КодЛетчика

Числовой

Да


Таблица: Проданные места

Имя поля

Тип данных

Обязательное поле

Индексированное поле

Условие на значение

КодРейса

Числовой

Да

Да(совпадения допускаются)




Дата

Дата/Время

Да




Место

Числовой

Да

Нет

>0

Цена

Денежный

Да

Нет




Таблица: РасписаниеРейсов

Имя поля

Тип данных

Обязательное поле

Индексированное поле

КодРейса

Счетчик

Да

Да(совпадения не допускаются)

КодМарш

Числовой

Да

Да(совпадения допускаются)

ДеньНедели

Числовой

Да

Нет

ВрОтпр

Текстовый

Да

Нет

ВрПриб

Текстовый

Да

Нет

Таблица: Самолеты

Имя поля

Тип данных

Обязательное поле

Индексированное поле

Условие на значение

НомСам

Текстовый

Да

Да(допускаются не совпадения)




Поступл

Дата/Время

Да

Нет




ТребРемонт

Логический

Да

Нет




ТипСам

Текстовый

Да

Нет




КоличМест

Числовой

Да

Нет

>10

Таблица: Сведения о летчиках

Имя поля

Тип данных

Обязательное поле

Индексированное поле

Условие на значение

КодЛетчика

Счетчик

Да

Да(совпадения не допускаются)




Фамилия

Текстовый

Да

Нет




Имя

Текстовый

Да

Нет




Отчество

Текстовый

Да

Нет




Паспорт

Текстовый

Да

Да(совпадения не допускаются)




ДатаРожд

Дата/Время

Да

Нет

≥#01.01.1965# And <#01.01.80#

Таблица: СтоимПоНапр

Имя поля

Тип данных

Обязательное поле

Индексированное поле

КодНапр

Счетчик

Да

Да(совпадения не допускаются)

НаименНапр

Текстовый

Да

СтоимЗа 1 км

Денежный

Да

Нет

СтавкаЗаРейс

Денежный

Да

Нет

Схема даталогической модели базы данных (схема данных).


  1. Реализация БД

6.1.Разработка средств реализации ограничений целостности


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

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

  1. Ограничения на атрибуты (тип атрибута, диапазон допустимых значений).

2. Число кортежей отношения должно быть равно числу первичных ключей (наличие кортежей –дубликатов не допускается).

Первое ограничение накладывается на атрибуты всех отношений на этапе определения типа атрибута. Кроме этого некоторые поля таблиц имеют условие на значение, например, в отношении Летчики атрибут ДатаРожд должен быть в интервале от 01.01.1965 до 01.01.80.

Второе ограничение накладывается на отношения на этапе заполнения таблиц данными о БД.

Существует также два общих правила целостности. Они касаются потенциальных и внешних ключей:

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

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


  1. Потенциальный ключ отношения не может иметь пустого значения (NULL). Так как объект, не имеющий идентичности, не существует.

  2. Если r2 – некоторое отношение с внешним ключом X , то должно существовать такое базовое отношение r1 с первичным ключом K , что каждое значение X в r2 совпадает со значением К в каком-либо кортеже отношения r1.

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

Например, при удалении записи из таблицы Самолеты удаляются все связанные с ней записи в подчиненных таблицах.

6.2.Разработка процедур ведения БД

(добавление, удаление, изменение, контроль)




В данном проекте созданы следующие запросы:
Запрос на удаление УдалениеВременныхДанных:

DELETE ИтогиДня.Дата, ИтогиДня.КодРейса, ИтогиДня.ЧислоПроданБил, ИтогиДня.Сумма

FROM ИтогиДня;

Запрос на добавление ПриобретМеста:

INSERT INTO [Проданные места] ( КодРейса, Дата, Место, Цена )

SELECT Forms!Билет4!Рейс AS Рейс, Forms!Билет4!Дата AS дата, Forms!Билет4!Место AS место, Forms!Билет4!Цена AS цена;

Запрос на добавление Подсчет(Мест/Суммы):

INSERT INTO ИтогиДня ( КодРейса, Дата, ЧислоПроданБил, Сумма )

SELECT [Проданные места].КодРейса, [Проданные места].Дата, Count([Проданные места].Место) AS [Count-Место], Sum([Проданные места].Цена) AS [Sum-Цена]

FROM [Проданные места]

GROUP BY [Проданные места].КодРейса, [Проданные места].Дата;

6.3.Разработка процедур реализации запросов и интерфейса пользователя.


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

В данном проекте созданы следующие запросы:
ВидСамолета. Запрос для получения количества мест в самолете в определенный день и рейс. Связывает отношения РасписаниеРейсов, ОбслуживаниеРейсов, Самолеты.

SELECT РасписаниеРейсов.КодРейса, ОбслужРейса.Дата,

РасписаниеРейсов.ВрОтпр, Самолеты.КоличМест AS КоличМест,

Самолеты.ТипСам

FROM РасписаниеРейсов INNER JOIN (Самолеты INNER JOIN

ОбслужРейса ON Самолеты.НомСам=ОбслужРейса.НомСам) ON

РасписаниеРейсов.КодРейса=ОбслужРейса.КодРейса

GROUP BY РасписаниеРейсов.КодРейса, ОбслужРейса.Дата,

РасписаниеРейсов.ВрОтпр, Самолеты.ТипСам

HAVING (((РасписаниеРейсов.КодРейса)=Forms!Билет2!ПолеСоСписком31)

And ((ОбслужРейса.Дата)=Forms!Билет1!Поле16));

ВрДвижРейса. Запрос, определяющий время отправления и прибытия каждого рейса.


SELECT РасписаниеРейсов.ВрОтпр AS часы, РасписаниеРейсов.ВрПриб

AS врдвиж

FROM РасписаниеРейсов

WHERE(((РасписаниеРейсов.КодРейса)=[Forms]![Изменение ОбслуживаниеРейса]![КодРейса]));
Время отправл. Запрос используется для получения расписания движения самолетов в определенный день и по определенному маршруту (дата и пункт назначения вводятся в форме “Билет1”, при этом получаем, кроме расписания, и количество мест в самолете. Запрос связывает отношения РасписаниеРейсов, Аэропорты, Самолеты.

SELECT РасписаниеРейсов.КодМарш, РасписаниеРейсов.КодРейса, РасписаниеРейсов.ВрОтпр, Аэропорты.НазвАэропорта, Самолеты.КоличМест, ОбслужРейса.Дата

FROM (ДниНедели INNER JOIN (Аэропорты INNER JOIN РасписаниеРейсов ON Аэропорты.КодМарш = РасписаниеРейсов.КодМарш) ON ДниНедели.КодДня = РасписаниеРейсов.ДеньНедели) INNER JOIN (Самолеты INNER JOIN ОбслужРейса ON Самолеты.НомСам = ОбслужРейса.НомСам) ON РасписаниеРейсов.КодРейса = ОбслужРейса.КодРейса

WHERE

(((Аэропорты.НазвАэропорта)=[Forms]![Билет1]![ПолеСоСписком0]) AND

((ОбслужРейса.Дата)=[Forms]![Билет1]![Поле16]) AND

((РасписаниеРейсов.ДеньНедели)=Weekday([Forms]![Билет1]![Поле16])))

ORDER BY РасписаниеРейсов.ВрОтпр;
ВсеМеста. Запрос для получения списка всех мест в самолете в определенный день и рейс.

SELECT IIf(ВидСамолета!КоличМест=80,[Список

мест]!список80места,IIf(ВидСамолета!КоличМест=60,[Список

мест]!список60места,[Список мест]!список50места)) AS Место

FROM [Список мест], ВидСамолета

WHERE (((IIf([ВидСамолета]![КоличМест]=80,[Список

мест]![список80места],IIf([ВидСамолета]![КоличМест]=60,[Список

мест]![список60места],[Список мест]![список50места]))) Is Not Null));
Занятые места. Запрос для получения списка занятых мест по конкретному рейсу в определенный день.

SELECT [Проданные места].Место, [Проданные места].КодРейса, [Проданные места].Дата

FROM [Проданные места]

WHERE ((([Проданные места].КодРейса) =

[Forms]![Билет2]![ПолеСоСписком31]) AND (([Проданные места].Дата) =

[Forms]![Билет1]![Поле16]));
ИтогиРейса. Запрос для получения количества проданных билетов и суммы в определенный день.

SELECT ИтогиДня.Дата, РасписаниеРейсов.КодМарш, Маршрут.КонАэропорт, РасписаниеРейсов.ВрОтпр, ИтогиДня.ЧислоПроданБил, ИтогиДня.Сумма, РасписаниеРейсов.КодРейса

FROM (Маршрут INNER JOIN РасписаниеРейсов ON Маршрут.КодМарш = РасписаниеРейсов.КодМарш) INNER JOIN ИтогиДня ON РасписаниеРейсов.КодРейса = ИтогиДня.КодРейса

WHERE (((ИтогиДня.Дата)=[Forms]![ВводДаты]![ПолеСоСписком1]));
ОбслуживаниеРейса. Какие летчики (ФИО),самолеты обслуживают рейс и в какое время.

SELECT [Сведения о летчиках].КодЛетчика, [Сведения о летчиках].Фамилия, [Сведения о летчиках].Имя, [Сведения о летчиках].Отчество, ОбслужРейса.Дата, РасписаниеРейсов.ВрОтпр, ОбслужРейса.КодРейса, РасписаниеРейсов.КодМарш, Маршрут.КонАэропорт, ОбслужРейса.НомСам

FROM [Сведения о летчиках] INNER JOIN ((Маршрут INNER JOIN РасписаниеРейсов ON Маршрут.КодМарш = РасписаниеРейсов.КодМарш) INNER JOIN ОбслужРейса ON РасписаниеРейсов.КодРейса = ОбслужРейса.КодРейса) ON [Сведения о летчиках].КодЛетчика = ОбслужРейса.КодЛетчика

GROUP BY [Сведения о летчиках].КодЛетчика, [Сведения о летчиках].Фамилия, [Сведения о летчиках].Имя, [Сведения о летчиках].Отчество, ОбслужРейса.Дата, РасписаниеРейсов.ВрОтпр, ОбслужРейса.КодРейса, РасписаниеРейсов.КодМарш, Маршрут.КонАэропорт, ОбслужРейса.НомСам

ORDER BY ОбслужРейса.Дата;

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

SELECT ОбслужРейса.КодЛетчика, [Сведения о летчиках].Фамилия, [Сведения о летчиках].Имя, [Сведения о летчиках].Отчество, Самолеты.НомСам, ОбслужРейса.Дата, РасписаниеРейсов.ВрОтпр, РасписаниеРейсов.ВрПриб

FROM [Сведения о летчиках] INNER JOIN ((Маршрут INNER JOIN РасписаниеРейсов ON Маршрут.КодМарш = РасписаниеРейсов.КодМарш) INNER JOIN (Самолеты INNER JOIN ОбслужРейса ON Самолеты.НомСам = ОбслужРейса.НомСам) ON РасписаниеРейсов.КодРейса = ОбслужРейса.КодРейса) ON [Сведения о летчиках].КодЛетчика = ОбслужРейса.КодЛетчика

WHERE (((ОбслужРейса.Дата)=[Forms]![Изменение

ОбслуживаниеРейса]![Дата]) AND

(select[часы]from[ВрДвижРейса])));|outline"> ((РасписаниеРейсов.ВрПриб)>(select[часы]from[ВрДвижРейса])));


ПолнаяСтоим. Вывод стоимости билетов для всех рейсов и всех типов билета.

SELECT Аэропорты.НазвАэропорта, РасписаниеРейсов.КодРейса, Int([Стоим За 1км]*[Аэропорты].[Расстояние]) AS 1кл, Int([1кл]*0.75) AS 2кл, Int([1кл]*0.52) AS д1кл, Int([д1кл]*0.75) AS д2кл

FROM СтоимПоНапр INNER JOIN ((Маршрут INNER JOIN Аэропорты ON Маршрут.КодМарш = Аэропорты.КодМарш) INNER JOIN РасписаниеРейсов ON Маршрут.КодМарш = РасписаниеРейсов.КодМарш) ON СтоимПоНапр.КодНапр = Маршрут.КодНапр;

ПоНачалуДвиж. Запрос, определяющий список летчиков и самолетов, совершающих рейс до момента прибытия очередного (требующего введения сведений об обслуживании).

SELECT ОбслужРейса.КодЛетчика, [Сведения о летчиках].Фамилия, [Сведения о летчиках].Имя, Самолеты.НомСам, [Сведения о летчиках].Отчество, ОбслужРейса.Дата, РасписаниеРейсов.ВрОтпр, РасписаниеРейсов.ВрПриб

FROM [Сведения о летчиках] INNER JOIN ((Маршрут INNER JOIN РасписаниеРейсов ON Маршрут.КодМарш = РасписаниеРейсов.КодМарш) INNER JOIN (Самолеты INNER JOIN ОбслужРейса ON Самолеты.НомСам = ОбслужРейса.НомСам) ON РасписаниеРейсов.КодРейса = ОбслужРейса.КодРейса) ON [Сведения о летчиках].КодЛетчика = ОбслужРейса.КодЛетчика

WHERE (((ОбслужРейса.Дата)=[Forms]![Изменение

ОбслуживаниеРейса]![Дата]) AND ((РасписаниеРейсов.ВрОтпр)<(select

[врдвиж]from[ВрДвижРейса])));
СвобЛет. Запрос для получения списка тех летчиков, которые фактически могут обслужить данный рейс.

SELECT [Сведения о летчиках].КодЛетчика, [Сведения о летчиках].Фамилия, [Сведения о летчиках].Имя, [Сведения о летчиках].Отчество

FROM [Сведения о летчиках]

WHERE ((([Сведения о летчиках].КодЛетчика) Not In (select [КодЛетчика] from [ПоВрДвиж]))) OR ((([Сведения о летчиках].КодЛетчика) Not In (select [КодЛетчика] from [ПоНачалуДвиж] )));
Свободные места. Запрос для получения списка свободных мест в определенный день и рейс (для ввода номера места в билете).

SELECT ВсеМеста.Место

FROM ВсеМеста

WHERE Not Exists (select [Занятые места].[Место] from [Занятые места] where [Занятые места].[Место]=[ВсеМеста].[Место]);
СвобСам. Запрос для получения списка самолетов, которые фактически могут обслужить данный рейс.

SELECT Самолеты.НомСам, Самолеты.ТребРемонт

FROM Самолеты

WHERE (((Самолеты.НомСам) Not In (select [НомСам] from [ПоВрДвиж])) AND ((Самолеты.ТребРемонт)=False)) OR (((Самолеты.НомСам) Not In (select [НомСам] from [ПоНачалуДвиж] )) AND ((Самолеты.ТребРемонт)=False));
СтавкаЗаРейс (все). Запрос для получения заработной платы всех летчиков за определенный месяц.

SELECT ОбслужРейса.КодЛетчика, ОбслужРейса.Дата, Аэропорты.НазвАэропорта, [СтавкаЗаРейс]*[Расстояние] AS СуммаЗаРейс, Month([Дата]) AS Месяц, [Сведения о летчиках].Фамилия, [Сведения о летчиках].Имя, [Сведения о летчиках].Отчество, Аэропорты.Расстояние, РасписаниеРейсов.ВрОтпр

FROM СтоимПоНапр INNER JOIN ([Сведения о летчиках] INNER JOIN (((Маршрут INNER JOIN Аэропорты ON Маршрут.КодМарш = Аэропорты.КодМарш) INNER JOIN РасписаниеРейсов ON Маршрут.КодМарш = РасписаниеРейсов.КодМарш) INNER JOIN ОбслужРейса ON РасписаниеРейсов.КодРейса = ОбслужРейса.КодРейса) ON [Сведения о летчиках].КодЛетчика = ОбслужРейса.КодЛетчика) ON СтоимПоНапр.КодНапр = Маршрут.КодНапр

WHERE (((Month([Дата]))=[Forms]![Выбор месяца]![ПолеСоСписком1]));
СтавкаЗаРейсЛетч. Запрос для получения заработной платы определенного летчика за определенный день.

SELECT [Сведения о летчиках].Фамилия, [Сведения о летчиках].Имя, [Сведения о летчиках].Отчество, ОбслужРейса.КодЛетчика, ОбслужРейса.Дата, Аэропорты.НазвАэропорта, Аэропорты.Расстояние, Month([Дата]) AS 11, [СтавкаЗаРейс]*[Расстояние] AS СуммаЗаРейс, РасписаниеРейсов.ВрОтпр

FROM СтоимПоНапр INNER JOIN ([Сведения о летчиках] INNER JOIN (((Маршрут INNER JOIN Аэропорты ON Маршрут.КодМарш = Аэропорты.КодМарш) INNER JOIN РасписаниеРейсов ON Маршрут.КодМарш = РасписаниеРейсов.КодМарш) INNER JOIN ОбслужРейса ON РасписаниеРейсов.КодРейса = ОбслужРейса.КодРейса) ON [Сведения о летчиках].КодЛетчика = ОбслужРейса.КодЛетчика) ON СтоимПоНапр.КодНапр = Маршрут.КодНапр

WHERE (((ОбслужРейса.КодЛетчика)=[Forms]![Сведения о

летчиках]![КодЛетчика]) AND

((Month([Дата]))=[Forms]![ВыборМесЛетч]![ПолеСоСписком1]));
Стоимость. Запрос для получения стоимости билета для всех видов билета по определенному маршруту. Связывает отношения Аэропорты
, СтоимостьПоНапр, Маршрут.


SELECT Аэропорты.НазвАэропорта, Аэропорты.Расстояние, СтоимПоНапр.[Стоим За 1км], Int([Стоим За 1км]*[Аэропорты].[Расстояние]) AS 1кл, Int([1кл]*0.75) AS 2кл, Int([1кл]*0.52) AS д1кл, Int([д1кл]*0.75) AS д2кл

FROM СтоимПоНапр INNER JOIN (Маршрут INNER JOIN Аэропорты ON Маршрут.КодМарш = Аэропорты.КодМарш) ON СтоимПоНапр.КодНапр = Маршрут.КодНапр

WHERE (((Аэропорты.НазвАэропорта)=[Forms]![Билет1]![ПолеСоСписком0]));

7. Интерфейс и руководство пользователя


Для запуска данного проекта достаточно сделать двойной щелчок мышью по файлу “Аэропорт.mdb. Автоматически загружается Microsoft Access и открывается главная кнопочная форма (Рис.1). Из нее можно попасть, нажимая соответствующие кнопки, в формы просмотра данных о летчиках, самолетах, заказа билета, изменения данных базы, просмотра отчетов, а также кнопка Выход, нажав которую вы сможете выйти из программы. При нажатии кнопки О программе Вы сможете прочитать краткую информацию о целях программы и ее разработчике.



Рис.1. Иллюстрация «Главной формы»
Для того чтобы просмотреть информацию о летчиках, выберите на Главной форме
кнопку Летчики. При этом откроется форма Летчики
(Рис.2).


Рис.2. Иллюстрация формы «Летчики»

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



Рис.3. Иллюстрация формы «Сведения о летчиках»
Для просмотра информации обо всех летчиках в форме Летчики нажмите кнопку О
бо всех
(Рис.4).



Рис.4. Иллюстрация формы «Сведения о летчиках список»
Аналогично можно просмотреть информацию о самолетах.

При нажатии на Главной форме кнопки Заказ

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



Рис.5. Иллюстрация формы «Билет 1»
Вам откроется окно выбора времени отправления (Рис.6). Выберите нужное время и нажмите кнопку Далее.


Рис.6. Иллюстрация формы «Билет 2»


Откроется окно выбора места и типа билета (Рис.7), заполните требуемые поля, и нажмите Далее.


Рис.7. Иллюстрация формы «Билет 3»
Будет открыто окно с информацией о билете (Рис.8), для печати билета нажмите кнопку Готово.


Рис.8. Иллюстрация формы «Билет 4»
Для изменения данных, их удаления или ввода новых сведений, нажмите в Главном меню кнопку Изменение данных. При этом откроется кнопочная форма «Изменение данных» (Рис.9), где Вы можете выбрать область для своих действий, нажав соответствующую кнопку.



Рис.9. Иллюстрация формы «Изменение данных».
Если вам необходимо просмотреть или распечатать какой-либо отчет об аэропорте нажмите на Главной форме кнопку
Просмотр отчетов
. На появившейся форме (Рис.10) выберите требуемый отчет. При создании отчетов в появляющиеся окна запросов следует вводить требуемые параметры.


Рис.10. Иллюстрация формы «Просмотр отчетов»
При нажатии кнопки О программе появляется форма (Рис.11) с информацией об авторах и назначении проекта.



Рис.11 Вид формы «О программе».
При щелчке кнопки Выход происходит выход из приложения.

8. Спецификация входных и выходных запросов.


Основной и единственный исполняемый модуль программы Аэропорт.mdb. Этот модуль содержит таблицы данных, запросы к данным, формы ввода-вывода.

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

Таблица: Аэропорты

Таблица: ДниНедели

Таблица: ИтогиДня

Таблица: Маршрут

Таблица: ОбслужРейса

Таблица: Проданные места

Таблица: РасписаниеРейсов

Таблица: Самолеты

Таблица: Сведения о летчиках

Таблица: Список мест

Таблица: СтоимПоНапр

Microsoft Access позволяет автоматизировать обработку баз данных путем программирования на языке Visual Basic for Application.

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

В данной программе используются следующие модули:

Модуль: Form_Билет1

Модуль: Form_Билет2

Модуль: Form_Билет3

Модуль: Form_Билет4

Модуль: Form_ВводДаты

Модуль: Form_Выбор месяца

Модуль: Form_ВыборМесЛетч

Модуль: Form_ГЛАВНАЯ

Модуль: Form_Летчики

Модуль: Form_Самолеты

Модуль: Form_Самолеты список

Модуль: Form_Сведения о летчиках

Модуль: Form_СведЛетч список

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

9.Спецификация запросов пользователей


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

Запрос: ВидСамолета

Запрос: ВрДвижРейса

Запрос: Время отправл

Запрос: ВсеМеста

Запрос: Занятые места

Запрос: ИтогиРейса

Запрос: ОбслуживаниеРейса

Запрос: ПоВрДвиж

Запрос: Подсчет (Мест/Суммы)

Запрос: ПолнаяСтоим

Запрос: ПоНачалуДвиж

Запрос: ПриобретМеста

Запрос: СвобЛет

Запрос: Свободные места

Запрос: СвобСам

Запрос: СиавкаЗаРейс (все)

Запрос: СтавкаЗаРейсЛетч

Запрос: Стоимость

Запрос: УдалениеВременДанных

10. Заключение.


В данном курсовом проекте была создана база данных по предметной области Аэропорт. При этом использовалась программа Microsoft Access XP.

Данный курсовой проект может применяться как самостоятельная программа в малых авиакомпаниях для составления и ведения расписания движения самолетов.
11. Список используемой литературы

  1. Голицина О.Л., Максимов Н.В., Попов И.И. Базы данных: Учебное пособие. – М: ФОРУМ: ИНФРА-М, 2004

  2. Кузин А.В,, Демин В.М. Разработка баз данных в системе Microsoft Access: Учебник. – М.: ФОРУМ: ИНФРА-М, 2005

  3. Фуфаев Э.В. Базы данных: Учебное пособие для студентов СПО/ Э.В. Фуфаев, Д.Э. Фуфаев. – Издательский центр «Академия», 2005

  4. Проектирование баз данных. СУБД Microsoft Access: Учебное пособие для вузов/Н.Н. Гринченко, Е.В. Гусев, Н.П. Макаров, А.Н. Пылькин, Н.И. Цуканова. – М.: Горячая линия – Телеком, 2004

  5. Рудикова Л.В. Базы данных. Разработка приложений. – СПб.: БХВ-Петербург,

1. Сочинение Безобразное и прекрасное в произведении Гофмана Малыш Цахес
2. Книга ЭКСПЕРИМЕНТ по органической химии в средней школе Л.А.ЦВЕТКОВ
3. Реферат на тему Oates
4. Реферат на тему Організаційна структура управління підприємством невиробничої сфери та її вдосконалення в умовах
5. Реферат Иерархия в многопроцессорных системах
6. Книга Основы организации и функционирования предприятия
7. Реферат Выбор моделей и разработка конструкции одежды для одного технологического потока
8. Реферат на тему Peter Jane And Harry Essay Research Paper
9. Курсовая Основы деятельности системы органов государственной власти
10. Реферат Типы государств 2