Базы данных

Автор работы: Пользователь скрыл имя, 17 Июня 2013 в 06:49, курсовая работа

Краткое описание

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

Содержимое работы - 1 файл

Поясн записка.doc

— 1.53 Мб (Скачать файл)

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

СПбГЭТУ «ЛЭТИ»


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

 

 

 

 

 

 

 

 

 

 

 

Пояснительная записка  к индивидуальному заданию 

по дисциплине

"Базы данных"

 

 

Вариант 9

 

 

 

 

 

 

 

 

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

 

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

 

 

 

 

 

 

 

 

 

 

2006

1. Задание

 

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

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

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

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

 

 

 

 

 

 

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

2.1. Сущности:

 

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

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

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

 

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

 

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

 

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

 


 

 

 

Водят

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 1

 

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

 

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

 

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

 

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

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

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

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

 

 

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

 

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

 

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

 

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

 

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

 

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

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

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

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

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

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

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

 

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

 

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

 

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

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

 

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

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

 

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

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

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

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

 

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

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

 

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

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

 

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

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

 

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

 


 

 

 


 

Сломался

 

 

Водят


 

 


Является

       Имеет начисление

 


 

 

 

 

 

 

 

 

 

Рис. 2

 

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

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

 

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

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

 

 

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

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

 

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

 

2.2.4. Структура базы данных


 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 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

Дата/время

Дата

Информация о работе Базы данных