Программная система, предназначенная для диспетчера автобусного парка

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

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 17.06.2013
Размер файла 2,3 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Министерство образования РФ

СПбГЭТУ "ЛЭТИ"

Кафедра МОЭВМ

Контрольная работа

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

Вариант 9

Студент гр. 3342: Митягин С.А.

Преподаватель: Лукина О.С.

Содержание

1. Задание

2. Проектирование

2.1 Сущности

2.2 Построение отношений

3. Структура таблиц

4. Содержание таблиц

5. Реализация интерфейса

5.1 Иерархия экранных форм

5.2 Экранные формы

6. Описание запросов

7. Описание отчетов

1. Задание

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

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

Диспетчеру автопарка могут потребоваться следующие сведения:

- Список водителей, работающих на определенном маршруте с указанием графика их работы?

- Какие автобусы обслуживают данный маршрут?

- Какие маршруты начинаются или заканчиваются в пункте с заданным названием?

- Когда начинается и заканчивается движение автобусов на каждом маршруте?

- Какова протяженность определенного маршрута?

- Какова общая протяженность маршрутов, обслуживаемых автопарком?

- Какие автобусы не вышли на линию, и по какой причине (неисправность, отсутствие водителя)?

- Сколько водителей каждого класса работает в автопарке?

- Водитель с самым большим стажем работы?

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

2. Проектирование

2.1 Сущности

Водители (Паспортные данные, класс, стаж, оклад)

Маршрут (№маршрута, название начального пункта, название конечного пункта, время начала движения, время конца движения, интервал, протяженность)

Автобус (№ гос регистрации, тип, вместимость)

Раскрываем термин "Паспортные данные":

Водители (Серия_номер паспорта, ФИО, Дата рождения, прописка, класс, стаж, оклад)

Графическое изображение сущностей и связей между ними приведено на рис. 1.

2.2 Построение отношений

программа автоматизация диспетчер интерфейс

Для связи третьего порядка Водят генерируются отношения по правилу №9.

Получаем отношения:

Водители (№паспорта, ФИО, Дата рождения, прописка, класс, стаж, оклад)

Маршрут (№маршрута, название начального пункта, название конечного пункта, время начала движения, время конца движения, интервал, протяженность)

Автобус (№ гос регистрации, тип, вместимость)

Водят (№паспорта, №маршрута, № гос регистрации, дата)

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

Поломки (№ гос регистрации, дата_поломки)

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

Оклад (Класс, Базовая_ставка)

Проверяем отношения на избыточность:

Ни одно отношение не включает в себя полностью атрибуты другого отношения.

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

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

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

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

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

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

Таким образом, избыточных отношений нет.

Функциональные зависимости:

Отношение Водители находится в НФБК, так как атрибут №паспорта однозначно определяет остальные атрибуты отношения. Остальные же атрибуты могут повторяться. Таким образом, атрибут № паспорта является детерминантом отношения.

№ паспорта ФИО, Дата_рождения, Прописка, Класс, Стаж, оклад

Отношение Маршруты находится в НФБК, так как атрибут №маршрута однозначно определяет остальные атрибуты отношения. Остальные же атрибуты могут повторяться. Таким образом, атрибут №маршрута является детерминантом отношения.

№ маршрута назв_нач_пункта, назв_кон_пункта, время_нач_движ, время_кон_движ, интервал, протяженность

Отношение Автобусы не находится в НФБК, так как атрибут №гос_регистрации

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

№ гос_регистрации Тип, Вместимость

Тип Вместимость

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

№паспорта, №маршрута, №гос регистрации дата

Отношение Поломки находится в НФБК, так как атрибут №гос регистрации однозначно определяет дату поломки, которая может меняться. Таким образом, атрибут №гос регистрации является детерминантом отношения.

№ гос регистрации дата_поломки

Отношение Оклад находится в НФБК, так как атрибут Стаж однозначно определяет величину денежного начисления, которая может меняться. Таким образом, атрибут Стаж является детерминантом отношения.

Стаж денежное начисление

Графическое изображение поученных отношений изображено на рис. 2:

Как было доказано выше избыточных отношений нет.

Рассмотрим функциональные зависимости новых отношений:

Отношение Автобусы находится в НФБК, так как атрибут №гос_регистрации однозначно определяет тип автобуса, который может повторяться. Таким образом, атрибут №гос_регистрации является детерминантом отношения.

№ гос_регистрации тип

Отношение Тип_автобуса находится в НФБК, так как атрибут Тип однозначно определяет вместимость автобуса. Таким образом, атрибут Тип является детерминантом отношения.

Тип вместимость

Таким образом, все указанные отношения находятся в НФБК.

Рис. 3. Структура базы данных

3. Структура таблиц

Таблица "Оклад" - Содержит данные о денежной ставке за класс.

Поле

Тип данных

Комментарий

Klass

Текстовый

Название класса - ключ

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

Размер 10

Oklad

Числовой

Величина начисления

Целое

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

Таблица "Водители" - Содержит данные о водителях в парке.

Поле

Тип данных

Комментарий

Pasp

Текстовый

Серия + номер паспорта - ключ

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

Размер 11

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

Like "???? ??????"

FIO

Текстовый

Фамилия и инициалы

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

Размер 50

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

Like "* ?.?."

staj

Числовой

Стаж (лет)

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

Целое

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

>0

klas

Текстовый

Класс водителя - вторичный ключ

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

Размер 1

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

(="A") Or (="B") Or (="C")

oklad

Числовой

Рассчитанная величина оклада

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

Целое

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

>0

data_roj

Дата/время

Дата рождения

Adres

Текстовый

Место проживания, прописка

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

Размер 200

Связь по ключу klas с таблицей "Оклад" предусматривает обеспечение ссылочной целостности и каскадное обновление.

Таблица "Автобусы" - Содержит данные об автобусах в парке

Поле

Тип данных

Комментарий

avtob

Текстовый

Номер автобуса -ключ

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

Размер 6

Type

Текстовый

Тип автобуса - вторичный ключ

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

Размер 50

Связь по ключу Type с таблицей "Тип_вместимость" предусматривает обеспечение ссылочной целостности.

Таблица " Тип_вместимость" - Содержит данные о вместимости автобусов определенного типа.

Поле

Тип данных

Комментарий

Type

Текстовый

Тип автобуса - ключ

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

Размер 50

Vmestim

Числовой

Вместимость

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

Целое

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

>0

Таблица " Поломки " - Содержит данные о поломках автобусов и дат поломок.

Поле

Тип данных

Комментарий

id_Pol

Счетчик

Искусственный ключ

avtob

Текстовый

Номер автобуса

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

Размер 6

date

Дата/время

Дата поломки

Связь по ключу avtob с таблицей "Автобусы" предусматривает обеспечение ссылочной целостности.

Таблица " Маршруты" - Содержит данные о маршрутах, обслуживаемых автопарком.

Поле

Тип данных

Комментарий

marshr

Числовой

Номер маршрута - ключ

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

Целое

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

>0

Nach_punkt

Текстовый

Название начального пункта

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

Размер 50

Konechn_punkt

Текстовый

Название конечного пункта

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

Размер 50

Nach_dvij

Дата/время

Время начала движения

Kon_vrema

Дата/время

Время окончания движения

Interval

Числовой

Интервал движения (в мин)

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

Целое

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

>0

Protaj

Числовой

Протяженность (в мин) Обязательное поле

Целое

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

>0

Таблица "Водят" - Содержит данные, какой водитель на каком автобусе какой маршрут и какое время обслуживал.

Поле

Тип данных

Комментарий

id_vod

Счетчик

Искусственный ключ

Pasp

Текстовый

Серия + номер паспорта - вторичный ключ

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

Размер 11

avtob

Текстовый

Номер автобуса - вторичный ключ

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

Размер 6

marshr

Числовой

Номер маршрута - вторичный ключ

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

Целое

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

>0

date

Дата/время

Дата

Связь по ключу Pasp с таблицей "Водители" предусматривает обеспечение ссылочной целостности.

Связь по ключу avtob с таблицей "Автобусы" предусматривает обеспечение ссылочной целостности.

Связь по ключу marshr с таблицей "Маршруты" предусматривает обеспечение ссылочной целостности.

4. Содержание таблиц

Приведено содержание таблиц на момент отладки базы.

Таблица "Водители"

Паспорт

Фамилия И.О.

стаж

класс

оклад

Дата рождения

Адрес

3000 034582

Иванов А.В.

5

B

15000

09.04.1979

пр. Богатырский дом 100 кв 20

3000 121034

Белов А.С.

7

B

17000

09.04.1983

ул. Дыбенко дом 12 кв 12

3000 123034

Иванов И.И.

9

A

29000

10.02.1970

ул. Камышовая дом 35 к 1 кв 292

3000 452114

Белов С.А.

10

A

30000

29.10.1985

пр. Авиаконструкторов дом 15 кв 4

3000 542421

Старов П.В.

7

B

17000

08.09.1985

пр. Богатырский дом 55 к 3 кв 103

3000 762234

Еремеев О.П.

5

C

10000

30.11.1980

ул. Ильюшина дом 22 кв 3

3000 906823

Титов П.М.

10

B

20000

17.04.1984

пр. Испытателей дом 11 кв 45

3021 123345

Галич Н.О.

10

B

20000

08.08.1983

пр. Богатырский дом 67 к 2 кв 333

3021 134553

Жданов М.Ю.

10

B

20000

09.01.1983

ул. Камышовая дом 22 кв 107

3021 234945

Петров О.Н.

7

B

17000

05.12.1980

пр. Авиаконструкторов дом 212 кв 561

3021 343421

Нестеров П.М.

4

B

14000

15.11.1985

пр. Богатырский дом 232 кв 12

3021 347520

Белов И.С.

10

B

20000

19.11.1985

пр. Испытателей дом 5 кв 23

3021 438954

Егоров Л.Д.

4

B

14000

01.01.1973

ул. Гакелевская дом 55 кв 6

3021 452213

Иванов С.Г.

4

B

14000

05.01.1983

пр. Маршала-Новикова 23

3021 485621

Кузнецов Н.А.

8

C

13000

17.09.1973

пр. Сизова дом 44 кв 12

3021 509210

Кузнецов В.Н.

10

A

30000

30.03.1975

пр. Мориса-Тереза дом 115 кв 69

4000 421131

Петров А.И.

5

C

10000

23.09.1981

пр. Сизова дом 59 кв 111

4000 455202

Зайцев О.С.

10

B

20000

05.03.1981

ул. Долгоозерная дом 1 кв 1

4000 455220

Бабушкин Р.Ю.

10

A

30000

05.03.1978

ул. Яхтенная дом 15 кв 2

4000 509123

Нагорный Д.И.

7

B

17000

09.12.1982

ул. Камышовая дом 11 кв 501

4000 576933

Сидоров С.А.

3

C

8000

06.07.1981

ул. Байконурская дом 43 кв 3

4000 673921

Швондер А.С.

9

A

29000

09.12.1979

пр. Яхтенная дом 15 кв 77

4000 678423

Быков П.А.

10

B

20000

06.09.1982

ул. Гакелевская дом 76 кв 55

4000 789842

Сидоров С.Л.

4

B

14000

09.12.1980

ул. Камышовая дом 104 кв 5

Таблица "Автобусы"

Номер автобуса

Тип

а 004вп

Лиаз 05гв

а 007пп

Экарус (гармошка)

а 070пр

Экарус 95гв

в 007рп

Экарус (гармошка)

в 909ао

Лиаз 90гв

н 006оо

Лиаз 90гв

о 009пр

Лиаз (гармошка)

п 004пп

Лиаз 05гв

п 009оо

Лиаз (гармошка)

р 005рр

Лиаз (гармошка)

р 007аа

Экарус (гармошка)

с 050ар

Лиаз 05гв

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

Номер

Начальный пункт

Конечный пункт

Начало движения

Окончание движения

Интервал

Протяженность

1

м. Старая деревня

ул. Камышовая

00.01.1900

00.01.1900

15

110

2

пр. Сизова

м. Пионерская

00.01.1900

00.01.1900

25

180

3

м. Плошадь мужества

м. Пионерская

00.01.1900

00.01.1900

15

100

4

пр. Испытателей

ул. Камышовая

00.01.1900

00.01.1900

20

60

5

пр. Авиаконструкторов

Ланское шоссе

00.01.1900

00.01.1900

20

120

Таблица "Водят"

Номер паспорта

Номер автобуса

маршрут

дата

3021 234945

а 007пп

1

23.05.2006

4000 576933

в 007рп

1

22.05.2006

3021 438954

в 007рп

1

23.05.2006

3000 034582

н 006оо

2

22.05.2006

4000 455202

н 006оо

2

23.05.2006

4000 455220

а 004вп

2

22.05.2006

3021 509210

а 004вп

2

23.05.2006

3000 121034

п 004пп

2

22.05.2006

3021 347520

п 004пп

2

23.05.2006

3021 485621

р 007аа

3

22.05.2006

3021 343421

р 007аа

3

23.05.2006

4000 678423

п 009оо

3

22.05.2006

4000 673921

п 009оо

3

23.05.2006

3000 452114

в 909ао

4

22.05.2006

3021 452213

в 909ао

4

23.05.2006

4000 789842

а 070пр

4

22.05.2006

4000 509123

а 070пр

4

23.05.2006

3021 123345

р 005рр

5

22.05.2006

3000 906823

р 005рр

5

23.05.2006

3000 762234

о 009пр

5

22.05.2006

4000 421131

о 009пр

5

23.05.2006

3000 542421

с 050ар

5

22.05.2006

3021 134553

с 050ар

5

23.05.2006

3000 123034

а 007пп

1

24.05.2006

3021 438954

в 007рп

1

24.05.2006

3000 034582

н 006оо

2

24.05.2006

3021 509210

а 004вп

2

24.05.2006

3000 121034

п 004пп

2

24.05.2006

3021 343421

р 007аа

3

24.05.2006

4000 678423

п 009оо

3

24.05.2006

3000 452114

в 909ао

4

24.05.2006

3021 123345

р 005рр

5

24.05.2006

4000 421131

о 009пр

5

24.05.2006

3021 134553

с 050ар

5

24.05.2006

Таблица "Тип_вместимость"

Тип

Вместимость (чел)

Лиаз (гармошка)

250

Лиаз 05гв

150

Лиаз 90гв

130

Экарус (гармошка)

200

Экарус 95гв

150

Таблица "Поломки"

id

Номер автобуса

дата поломки

1

п 009оо

25.05.2006

2

а 070пр

25.05.2006

Таблица "Оклад"

Класс

Оклад

A

20000

B

10000

C

5000

5. Реализация интерфейса

5.1 Иерархия экранных форм

5.2 Экранные формы

Рис. - Форма "Главная"

Главный интерфейс базы.

Источник данных: нет

Элементы формы:

Рисунки, событие onClick.

Стрелка 1 - открытие формы Маршруты

Стрелка 2- открытие формы Автобусы

Стрелка 3 - открытие формы Водители

Стрелка 4 - открытие формы НеВышли

Стрелка 5 - открытие отчета поПарку

Стрелка 6 - открытие формы График работы

"Выход" - выход.

При открытии выполняется команда Развернуть.

Рис. - Форма "Маршруты"

Выводит данные о маршрутах.

Источник данных: таблица Маршруты

Элементы:

Поля, куда выводятся основные характеристики маршрута.

Кнопки листания.

Кнопка поиска.

Кнопка 29 - открыть форму "МаршВод"

Кнопка 27 - открыть форму "СписокАвтоб" либо "СписокАвтобВсех"

Кнопка 40 - открыть форму "МаршПоиск"

Кнопка 48 - открыть отчет "Справка"

Кнопка добавления - Кнопка 45- открывает форму "МаршВводНов"

Кнопка удаления - Кнопка 47 - открывает форму "МаршрутыУдалПодт" на подтверждение удаления. И вызывает запрос МаршУдал.

Рис. - Форма "МаршВод"

Список водителей на данном маршруте.

Источник записей: запрос МаршВод.

Элементы:

Подчиненная форма МАршВодПод.

Источник записей: Запрос МАршВодПод.

Поле связи - pasp

Рис. - Форма "СписокАвтоб" или "СписокАвтобВсех"

Вывод списка автобусов на данном маршруте.

Источник записей: запрос СписАвтоб для "СписокАвтоб"

Или запрос СписокАвтобВсех для "СписокАвтобВсех"

Рис. - Форма "МаршПоиск"

Поиск маршрутов по названиям начального и конечного путей.

Источник данных: нет

Элементы:

Поле со списком 1, источник данных

SELECT МаршНачПункт.nach FROM МаршНачПункт;

Поле со списком 2, источник данных

SELECT МаршКонПункт.konech FROM МаршКонПункт;

Кнопка 3 - применить фильтр к подчиненной форме.

Рис. - Форма "МаршВводНов"

Ввод данных о новом маршруте.

Источник записей: нет

Элементы:

Поле со списком 1. Источник записей:

SELECT МаршНачПункт.nach FROM МаршНачПункт;

Поле со списком 2. Источник записей:

SELECT МаршКонПункт.konech FROM МаршКонПункт;

Кнопка Ввести - запрос МаршВводНов

Рис. - Форма "Автобусы"

Выводит список автобусов, возможность добавления, удаления автобуса.

Источник данных: таблица Автобусы

Элементы:

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

Поле связи: нет

Поле со списком 1 источник данных:

SELECT DISTINCT АвтобТип.type FROM АвтобТип;

Кнопка на запрос ДобавНовАвтоб.

Кнопка на вызов запроса на удаление АвтобУдал

Рис. - Форма "Водители"

Выводит данные о водителях. Выбор принятия на работу нового или увольнение.

Источник данных: таблица Водители

Элементы:

Кнопка Общий график на открытие запроса ГрафикЛин_перекрестный

Подчиненная форма ПоКлассам

Источник записей: запрос ПоКлассам

Поле связи: нет

Подчиненная форма МахСтаж

Источник записей: запрос МахСтаж

Поле связи: нет

Кнопка Уволит водителя - запрос ВодтелиУволн

Кнопка Принять водителя - открыть форму "АнкетаВод"

Рис. - Форма "АнкетаВод"

Вводит данные по принятию нового водителя.

Источник данных: нет

Элементы:

Поле со списком. Источник строк: "A";"B";"C"

Кнопка Принять - вызов запроса АнкетаВод, после чего данные будут загружены в промежуточную таблицу, и после подтверждения будут перегружены в основную, с помощью запроса АнкетаВодЗагр

Рис. - Форма "НеВышли"

Выводит данные о не вышедших на маршрут автобусах, и причине.

Источник данных: запрос НеВышли

Рис. - Форма "График работы"

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

Источник данных: нет

Элементы:

Подчиненный запрос: форма: подчиненная форма ГрафикЛин_перекрестный

запрос: ГрафикЛин_перекрестный

поле связи: нет

Подчиненный запрос: форма: подчиненная форма ГрафикАвтоб_лин_перекрестный

запрос: ГрафикАвтоб_лин_перекрестный

поле связи: нет

Поле со списком "Паспорт". Источник данных:

SELECT СвободныеВодители.pasp FROM СвободныеВодители;

Поле со списком "Номер автобуса". Источник данных:

SELECT СвободныеАвтоб.avtob FROM СвободныеАвтоб;

Поле со списком "Номер автобуса". Источник данных:

SELECT Маршруты.marshr FROM Маршруты;

Кнопка Ввести - на вызов запроса ВводСтрокиГрафика

6. Описание запросов

Запрос "АвтобУдал"

Удаление записи из таблицы Автобусы.

DELETE *

FROM Автобусы

WHERE avtob=Forms!Автобусы!avtobud;

Результат: удалена запись

Forms!Автобусы!avtobud

type

Запрос "АнкетаВодЗагр"

Добавляет запись в промежуточную таблицу ВодителиЗагр

INSERT INTO ВодителиЗагр (Pasp, FIO, staj, klas, data_roj, Adres)

VALUES (Forms!АнкетаВод!pasp, Forms!АнкетаВод!fio, Forms!АнкетаВод!staj, Forms!АнкетаВод!klas, Forms!АнкетаВод!date, Forms!АнкетаВод!Adres);

Результат:

Forms!АнкетаВод!pasp

Forms!АнкетаВод!fio

Forms!АнкетаВод!staj

Forms!АнкетаВод!klas

Forms!АнкетаВод!date

Forms!АнкетаВод!Adres

Запрос " АнкетаВод"

Добавляет запись в таблицу Водители

INSERT INTO Водители

SELECT ВодителиЗагр.Pasp AS Pasp, ВодителиЗагр.FIO AS FIO, ВодителиЗагр.staj AS staj, ВодителиЗагр.klas AS klas, Оклад.Oklad AS Oklad, ВодителиЗагр.data_roj AS data_roj, ВодителиЗагр.Adres AS Adres

FROM ВодителиЗагр, Оклад

WHERE (ВодителиЗагр.klas=Оклад.klass) and

(ВодителиЗагр.Pasp not in (SELECT Pasp FROM Водители));

Результат:

ВодителиЗагр.Pasp

ВодителиЗагр.FIO

ВодителиЗагр.staj

ВодителиЗагр.klas

Оклад.Oklad

ВодителиЗагр.data_roj

ВодителиЗагр.Adres

Запрос "ВводСтрокиГрафика"

Добавляет запись в таблицу Водят

INSERT INTO Водят (Pasp, avtob, marshr, [date])

SELECT Forms![График работы]!pasp, Forms![График работы]!avtob, Forms![График работы]!marshr, Forms![График работы]!date;

Результат:

Forms![График работы]!pasp

Forms![График работы]!avtob

Forms![График работы]!marshr

Forms![График работы]!date

Запрос "ВодтелиУволн"

Удаляет запись из таблицы Водители

DELETE *

FROM Водители

WHERE Pasp=Forms!Водители!PaspUv;

Результат:

Удалена запись вида:

Forms!Водители!PaspUv

FIO

staj

klas

Oklad

data_roj

Adres

Запрос "ГрафикАвтоб_лин"

Формирует таблицу, содержащую номера автобусов, дату, и номер маршрута или сообщение о поломке, в случае неисправности.

Необходим, для составление графика работы автобусов.

SELECT Автобусы.avtob,

Водят.date,

Водят.marshr as Выход

FROM Автобусы inner join Водят on Автобусы.avtob=Водят.avtob

WHERE

(Автобусы.avtob not in (SELECT Поломки.avtob FROM Поломки))

UNION SELECT Поломки.avtob,

Поломки.date,

"Поломка" as Выход

FROM Поломки;

Результат:

номер

дата

Выход

а 004вп

22.05.2006

2

а 004вп

23.05.2006

2

а 004вп

24.05.2006

2

а 007пп

23.05.2006

1

а 007пп

24.05.2006

1

а 070пр

25.05.2006

Поломка

в 007рп

22.05.2006

1

в 007рп

23.05.2006

1

в 007рп

24.05.2006

1

в 909ао

22.05.2006

4

в 909ао

23.05.2006

4

в 909ао

24.05.2006

4

н 006оо

22.05.2006

2

н 006оо

23.05.2006

2

н 006оо

24.05.2006

2

о 009пр

22.05.2006

5

о 009пр

23.05.2006

5

о 009пр

24.05.2006

5

п 004пп

22.05.2006

2

п 004пп

23.05.2006

2

п 004пп

24.05.2006

2

п 009оо

25.05.2006

Поломка

р 005рр

22.05.2006

5

р 005рр

23.05.2006

5

р 005рр

24.05.2006

5

р 007аа

22.05.2006

3

р 007аа

23.05.2006

3

р 007аа

24.05.2006

3

с 050ар

22.05.2006

5

с 050ар

23.05.2006

5

с 050ар

24.05.2006

5

Запрос "ГрафикЛин"

Формирует таблицу, содержащую фамилии водителей, даты, и номера маршрутов. Необходим, для составление графика работы водителей.

SELECT Водители.FIO, Водят.date, Водят.marshr & " " & Водят.avtob AS marshr

FROM Водители RIGHT JOIN Водят ON Водители.Pasp=Водят.Pasp;

Результат:

Фамилия И.О.

дата

маршрут+автобус

Галич Н.О.

24.05.2006

5 р 005рр

Петров А.И.

24.05.2006

5 о 009пр

Жданов М.Ю.

24.05.2006

5 с 050ар

Петров О.Н.

23.05.2006

1 а 007пп

Сидоров С.А.

22.05.2006

1 в 007рп

Егоров Л.Д.

23.05.2006

1 в 007рп

Иванов А.В.

22.05.2006

2 н 006оо

Зайцев О.С.

23.05.2006

2 н 006оо

Бабушкин Р.Ю.

22.05.2006

2 а 004вп

Кузнецов В.Н.

23.05.2006

2 а 004вп

Белов А.С.

22.05.2006

2 п 004пп

Белов И.С.

23.05.2006

2 п 004пп

Кузнецов Н.А.

22.05.2006

3 р 007аа

Нестеров П.М.

23.05.2006

3 р 007аа

Быков П.А.

22.05.2006

3 п 009оо

Швондер А.С.

23.05.2006

3 п 009оо

Белов С.А.

22.05.2006

4 в 909ао

Иванов С.Г.

23.05.2006

4 в 909ао

Сидоров С.Л.

22.05.2006

4 а 070пр

Нагорный Д.И.

23.05.2006

4 а 070пр

Галич Н.О.

22.05.2006

5 р 005рр

Титов П.М.

23.05.2006

5 р 005рр

Еремеев О.П.

22.05.2006

5 о 009пр

Петров А.И.

23.05.2006

5 о 009пр

Старов П.В.

22.05.2006

5 с 050ар

Жданов М.Ю.

23.05.2006

5 с 050ар

Иванов И.И.

24.05.2006

1 а 007пп

Егоров Л.Д.

24.05.2006

1 в 007рп

Иванов А.В.

24.05.2006

2 н 006оо

Кузнецов В.Н.

24.05.2006

2 а 004вп

Белов А.С.

24.05.2006

2 п 004пп

Нестеров П.М.

24.05.2006

3 р 007аа

Быков П.А.

24.05.2006

3 п 009оо

Белов С.А.

24.05.2006

4 в 909ао

Запрос "ДобавНовАвтоб"

Добавляет строку в таблицу Автобусы.

INSERT INTO Автобусы (avtob, Type)

VALUES (Forms!Автобусы!avtob, Forms!Автобусы!Type);

Результат:

Строка вида:

Forms!Автобусы!avtob

Forms!Автобусы!Type

Запрос "МаршВводНов"

Добавление строки в таблицу Маршруты

INSERT INTO Маршруты (marshr, Nach_punkt, Konechn_punkt, Nach_dvij, Kon_vrema, int, Protaj)

VALUES (Forms!МаршВводНов!nom, Forms!МаршВводНов!nach, Forms!МаршВводНов!konech, Forms!МаршВводНов!nvr, Forms!МаршВводНов!kvr, Forms!МаршВводНов!int,Forms!МаршВводНов!prot);

Результат:

Строка вида:

Forms!МаршВводНов!nom

Forms!МаршВводНов!nach

Forms!МаршВводНов!konech

Forms!МаршВводНов!nvr

Forms!МаршВводНов!kvr

Forms!МаршВводНов!int

Forms!МаршВводНов!prot

Запрос "МаршВод"

Выбирает данные из таблицы Водители, удовлетворяющие заданному маршруту и дате.

SELECT DISTINCT Водители.FIO, Водители.Pasp

FROM Водители RIGHT JOIN Водят ON Водители.Pasp=Водят.Pasp

WHERE (((Водят.marshr)=Forms!Маршруты!marshr));

Результат:

FIO

Pasp

Егоров Л.Д.

3021 438954

Иванов И.И.

3000 123034

Петров О.Н.

3021 234945

Сидоров С.А.

4000 576933

Запрос "МаршПоиск"

Выбирает данные из таблицы Маршруты, по заданным кольцам.

SELECT Маршруты.marshr, Маршруты.Nach_punkt, Маршруты.Konechn_punkt

FROM Маршруты

WHERE (Маршруты.Nach_punkt=Forms!МаршПоиск!nachal) Or (Маршруты.Konechn_punkt=Forms!МаршПоиск!konech);

Результат:

marshr

Nach_punkt

Konechn_punkt

2

пр. Сизова

м. Пионерская

3

м. Плошадь мужества

м. Пионерская

Запрос "МаршУдал"

Удаляет запись из таблицы Маршруты

DELETE *

FROM Маршруты

WHERE marshr=Forms!Маршруты!marshr;

Результат:

Удалена строка вида:

Forms!Маршруты!marshr

Nach_punkt

Konechn_punkt

Nach_dvij

Kon_vrema

int

Protaj

Запрос "МахСтаж"

Выбор из таблицы Водители тех, у кого наибольший стаж

SELECT Водители.FIO, staj

FROM Водители

WHERE staj in (SELECT max(staj) FROM Водители);

Результат:

FIO

staj

Зайцев О.С.

10

Бабушкин Р.Ю.

10

Кузнецов В.Н.

10

Белов И.С.

10

Быков П.А.

10

Белов С.А.

10

Галич Н.О.

10

Титов П.М.

10

Жданов М.Ю.

10

Запрос "НеВышли"

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

На эту дату.

SELECT Автобусы.avtob,

"Нет водителя" as Причина

FROM Автобусы

WHERE (Автобусы.avtob not in (SELECT Водят.avtob FROM Водят WHERE date=date())) and

(Автобусы.avtob not in (SELECT Поломки.avtob FROM Поломки WHERE date=date()))

UNION SELECT Поломки.avtob,

"Поломка"

FROM Поломки

WHERE (date=date());

Результат:

avtob

Причина

а 004вп

Нет водителя

а 007пп

Нет водителя

а 070пр

Поломка

в 007рп

Нет водителя

в 909ао

Нет водителя

н 006оо

Нет водителя

о 009пр

Нет водителя

п 004пп

Нет водителя

п 009оо

Поломка

р 005рр

Нет водителя

р 007аа

Нет водителя

с 050ар

Нет водителя

Запрос "ПоКлассам"

Находит число водителей по классам.

SELECT Водители.klas, count(pasp) AS Человек

FROM Водители

GROUP BY Водители.klas;

Результат:

klas

Человек

A

5

B

15

C

4

Запрос "ПоПарку"

Необходим для создания отчета по парку.

Находит какие водители, по какому маршруту, и на каких автобусах работают в эту дату.

SELECT Автобусы.Type, Автобусы.avtob, Водители.FIO, Маршруты.marshr, Маршруты.Nach_punkt, Маршруты.Konechn_punkt, Маршруты.Nach_dvij, Маршруты.Kon_vrema, Маршруты.Interval, Маршруты.Protaj

FROM Водители INNER JOIN (Маршруты RIGHT JOIN (Автобусы RIGHT JOIN Водят ON Автобусы.avtob=Водят.avtob) ON Маршруты.marshr=Водят.marshr) ON Водители.Pasp=Водят.Pasp

WHERE (Водят.date=date());

Результат:

Type

avtob

FIO

marshr

Nach_punkt

Konechn_punkt

Nach_dvij

Kon_vrema

Interval

Protaj

Лиаз (гармошка)

р 005рр

Галич Н.О.

5

пр. Авиаконструкторов

Ланское шоссе

00.01.1900

00.01.1900

20

120

Лиаз (гармошка)

о 009пр

Петров А.И.

5

пр. Авиаконструкторов

Ланское шоссе

00.01.1900

00.01.1900

20

120

Лиаз 05гв

с 050ар

Жданов М.Ю.

5

пр. Авиаконструкторов

Ланское шоссе

00.01.1900

00.01.1900

20

120

Экарус (гармошка)

а 007пп

Иванов И.И.

1

м. Старая деревня

ул. Камышовая

00.01.1900

00.01.1900

15

110

Экарус (гармошка)

в 007рп

Егоров Л.Д.

1

м. Старая деревня

ул. Камышовая

00.01.1900

00.01.1900

15

110

Лиаз 90гв

н 006оо

Иванов А.В.

2

пр. Сизова

м. Пионерская

00.01.1900

00.01.1900

25

180

Лиаз 05гв

а 004вп

Кузнецов В.Н.

2

пр. Сизова

м. Пионерская

00.01.1900

00.01.1900

25

180

Лиаз 05гв

п 004пп

Белов А.С.

2

пр. Сизова

м. Пионерская

00.01.1900

00.01.1900

25

180

Экарус (гармошка)

р 007аа

Нестеров П.М.

3

м. Плошадь мужества

м. Пионерская

00.01.1900

00.01.1900

15

100

Лиаз (гармошка)

п 009оо

Быков П.А.

3

м. Плошадь мужества

м. Пионерская

00.01.1900

00.01.1900

15

100

Лиаз 90гв

в 909ао

Белов С.А.

4

пр. Испытателей

ул. Камышовая

00.01.1900

00.01.1900

20

60

Запрос "ПоПаркуСвод"

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

SELECT DISTINCT (SELECT sum(protaj) FROM Маршруты) AS [Общая протяженность], (SELECT count(pasp) FROM Водители) AS [Количество водителей], (SELECT round(avg(staj)) FROM Водители) AS [Средний стаж], (SELECT round(avg(Date()-Водители.data_roj)/365) FROM Водители) AS [Средний возраст]

FROM Водители INNER JOIN (Маршруты RIGHT JOIN (Автобусы RIGHT JOIN Водят ON Автобусы.avtob=Водят.avtob) ON Маршруты.marshr=Водят.marshr) ON Водители.Pasp=Водят.Pasp

WHERE (Водят.date=date());

Резульиат:

Общая протяженность

Количество водителей

Средний стаж

Средний возраст

570

24

7

25

Запрос "СвободныеАвтоб"

Формирует список автобусов, для которых не нашлось водителя.

SELECT Автобусы.avtob

FROM Автобусы

WHERE (Автобусы.avtob not in (SELECT Водят.avtob FROM Водят WHERE date=date())) and

(Автобусы.avtob not in (SELECT Поломки.avtob FROM Поломки WHERE date=date()));

Результат:

avtob

а 007пп

в 007рп

н 006оо

а 004вп

п 004пп

Запрос "СвободныеВодители"

Формирует список водителей, для которых не нашлось автобуса.

SELECT Водители.pasp

FROM Водители

WHERE (Водители.pasp not in (SELECT Водят.pasp FROM Водят WHERE date=date()));

Результат:

pasp

3021 234945

4000 576933

4000 455202

4000 455220

3021 347520

3021 485621

4000 673921

3021 452213

4000 789842

4000 509123

3000 906823

3000 762234

3000 542421

Запрос "СписАвтоб"

Формирует список автобусов на данном маршруте, в эту дату.

SELECT DISTINCT Водят.avtob, Водят.marshr, Водят.date

FROM Водят

WHERE (((Водят.marshr)=Forms!Маршруты!marshr) And ((Водят.date)=Forms!Маршруты!data));

Результат:

avtob

marshr

date

а 007пп

1

25.05.2006

в 007рп

1

25.05.2006

Запрос "СписАвтобВсех"

Формирует список автобусов на данном маршруте всего, за все время

SELECT DISTINCT Водят.avtob, Водят.marshr

FROM Водят

WHERE (((Водят.marshr)=Forms!Маршруты!marshr));

Результат:

avtob

marshr

а 004вп

2

н 006оо

2

п 004пп

2

Запрос "Справка"

Формирует список водителей и автобусов на данную дату.

Нужен, для создания отчета-Справки по маршруту.

SELECT Водители.FIO, Водят.avtob

FROM Водители RIGHT JOIN Водят ON Водители.Pasp = Водят.Pasp

WHERE (((Водят.date)=[Forms]![Маршруты]![data]));

Результат:

3000 123034

а 007пп

1

24.05.2006

3021 438954

в 007рп

1

24.05.2006

3000 034582

н 006оо

2

24.05.2006

3021 509210

а 004вп

2

24.05.2006

3000 121034

п 004пп

2

24.05.2006

3021 343421

р 007аа

3

24.05.2006

4000 678423

п 009оо

3

24.05.2006

3000 452114

в 909ао

4

24.05.2006

3021 123345

р 005рр

5

24.05.2006

4000 421131

о 009пр

5

24.05.2006

7. Описание отчетов

Рис. - Отчет "Справка"

Источник данных: Запрос Справка и таблица Маршруты

Группировка по полю marshr - номер маршрута - по возрастанию.

Рис. - Отчет "ПоПарку"

Источник данных: запрос ПоПарку

Поля группировки: type - тип автобуса

Marsgr - номер маршрута

Расчетные поля: Число автобусов = count(avtob)

Элементы: подчиненный отчет.

Источник данных: запрос ПоПаркуСвод.

Размещено на Allbest.ru


Подобные документы

  • Использование реляционной СУБД ACCESS для создания базы данных работы диспетчера автобусного парка. Цель, задачи, функции и структура БД, инфологическое проектирование. Объекты БД; перечень SQL-запросов. Интерфейс, настройки, средства создания таблиц.

    курсовая работа [3,0 M], добавлен 21.05.2012

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

    курсовая работа [163,4 K], добавлен 20.01.2010

  • Назначение базы данных для обеспечения работы автобусного парка. Основные возможности админпанели. Выполняемые базой данных и приложением функции. Инфологическое моделирование данных. Описание разработанного web-приложения. Проектирование базы данных.

    курсовая работа [2,2 M], добавлен 01.02.2013

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

    курсовая работа [1,9 M], добавлен 04.04.2013

  • Понятие базы данных и системы управления данными (СУБД). Ее функции: ввод и хранение информации, создание таблиц, графиков, отчетов. Разработка программного продукта для автобусного парка - автоматизированной системы "Автопарк" с использованием MySQL.

    курсовая работа [3,7 M], добавлен 04.02.2013

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

    курсовая работа [1,6 M], добавлен 19.11.2010

  • Системный анализ и анализ требований. Концептуальная модель данных. Проектирование логической структуры реляционной базы данных. Даталогическая модель базы данных. Алгоритмы реализации модулей и их реализация (запросы, таблицы, формы, отчеты, макросы).

    курсовая работа [1,6 M], добавлен 17.12.2015

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

    дипломная работа [4,6 M], добавлен 20.01.2013

  • Создание программы, осуществляющей хранение информации о Ресторане. Структура предприятия, нормализация отношений. Разработка пользовательского интерфейса базы данных "АРМ администратора ресторана" в Borland Delphi 7. Характеристики для поиска данных.

    курсовая работа [835,5 K], добавлен 18.06.2015

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

    дипломная работа [4,3 M], добавлен 25.01.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.