Проектирование базы данных 'Станция технического обслуживания автомобилей'
Курсовая работа
Проектирование базы
данных
«Станция
технического обслуживания автомобилей»
Введение
В связи с увеличением объема информации и необходимостью ее
преобразования, растет потребность в автоматизации существующих процессов обработки
данных. К таким процессам можно отнести анализ, систематизацию, отображение и
редактирование информации.
Современные технологии разработки прикладных программ делают
построение баз данных быстрым и качественным. Квалифицированный пользователь с
помощью Microsoft Access сегодня может за один вечер создать на персональном
компьютере то, что на ранних ЭВМ требовало месяцев работы. Кроме того, теперь
стало значительно легче находить ошибки, устранять их и изменять проект
непосредственно в процессе создания базы данных.
База данных - это, прежде всего, хранилище объектов данных,
т.е. набор возможных понятий или событий, описываемых базой данных, с
возможностью поиска этих объектов по признакам. Базой данных можно считать не
только таблицы, индексирующие файлы со знаниями разных форматов, но и сами эти
файлы, потому, что они являются не типизированными хранилищами знаний в такой
базе данных. Базы данных могут применяться как вспомогательное средство,
позволяющее реализовать какую-то полезную функцию.
Проектируемая база данных «Станция технического обслуживания
автомобилей» позволяет систематизировать быстрый поиск нужной информации в
данной предметной области.
В БД должны храниться сведения об автомобилях: производитель,
модель, гос. номер, год выпуска, страна-производитель, номер паспорта
владельца, газовое оборудование; сведения о владельцах: Ф.И.О., адрес, телефон,
а так же номер паспорта; сведения о работниках: Ф.И.О. Работника,
идентификационный номер работника; сведения о работах: код работы, описание, дата
выполнения, продолжительность, гос. номер.
Целью данной курсовой работы является
проектирование базы данных «Станция технического обслуживания автомобилей».
Важнейшие задачи, стоящие перед нами в процессе
выполнения работы, следующие:
·Изучение особенностей предметной области «Станция
технического обслуживания автомобилей»;
· Разработка схемы БД;
· Реализация разработанной схемы в конкретной СУБД (MS
Access);
· Создание форм для ввода данных, отчетов, запросов.
Создание любой базы данных начинается с выбора структуры базы
данных. В нашем случае удобнее использовать пять таблиц с данными. Далее
сделаем несколько запросов на выборку по различным параметрам, а также отчеты к
ним. Для удобства работы с данными создадим несколько форм и кнопки переходов
между ними.
Курсовая работа состоит из введения, двух глав, заключения,
списка использованной литературы.
1.
Проектирование базы данных
запрос технический автомобиль
В базе данных «Станция технического обслуживания автомобилей»
должны быть следующие атрибуты:
· Производитель
· Модель
· Год выпуска
· Газовое оборудование
· Страна-производитель
· Гос. номер авто
· Ф.И.О. владельца
· Номер паспорта владельца
· Адрес владельца
· Телефон владельца
· Ф.И.О. Работника
· Код работы
· Описание работы
· Дата выполнение работы
· Продолжительность работы
Выделим 4 сущности: «Авто», «Владельцы», «Работники»,
«Работы».
Сущность «Авто» имеет следующие атрибуты:
производитель
модель
гос. номер
страна-производитель
газовое оборудование
год выпуска
Так как все исходные атрибуты сущности «Авто» могут
иметь повторяющиеся значения, то добавим атрибут индивидуальный номер фильма,
который не должен иметь повторяющихся значений.
Сущность «Владельцы» имеет следующие атрибуты:
Ф.И.О. владельца
адрес владельца
телефон владельца
номер паспорта владельца
Так как все исходные атрибуты сущности «Режиссеры» могут
иметь повторяющиеся значения, то добавим атрибут индивидуальный номер
режиссера, который не должен иметь повторяющихся значений.
Сущность «Работники» имеет следующие атрибуты:
Ф.И.О. работника
Так как все исходные атрибуты сущности «Работники»
могут иметь повторяющиеся значения, то добавим атрибут индивидуальный номер
работника, который не должен иметь повторяющихся значений.
Сущность «Работы» имеет следующие атрибуты:
описание работы
дата выполнения работы
продолжительность работы
Так как все исходные атрибуты сущности «Работы» могут
иметь повторяющиеся значения, то добавим атрибут код работы, который не должен
иметь повторяющихся значений.
Примем соглашения.
Соглашение 1:
Каждый владелец может иметь несколько автомобилей,
следовательно степень связи для сущности «Авто» равна N. В свою очередь, любое
авто принадлежит одному владельцу, следовательно степень связи для сущности
«Владельцы» равно 1.
Соглашение 2:
Каждый автомобиль обязательно принадлежит владельцу,
следовательно, класс принадлежности для сущности «Авто» обязателен. Каждый
владелец обязательно владеет хотя бы одним автомобилем, следовательно, класс
принадлежности для сущности «Владельцы» обязателен.
Рис. 1.1 ER-диаграмма связи сущностей Авто и Владельцы
Таким образом, у нас есть бинарная связь один ко многим с
обязательным классом принадлежности для обеих сущностей, для её реализации
необходимо создать два отношения (по одному для каждой сущности), причем в
отношении для многосвязной сущности «Авто» необходимо добавить для установления
связи первичный ключ односвязной сущности «Владельцы» номер паспорта.
Соглашение 3:
Над одним авто может быть выполнена только одна работа,
следовательно, степень связи для сущности «Авто» равна 1. В свою очередь каждая
работа может выполняться над несколькими авто, следовательно, степень связи для
сущности «Работы» равно N.
Соглашение 4:
Над автомобилем выполняется работа. Работы выполняются над
автомобилями.
Рис. 1.2 ER-диаграмма связи сущностей Авто и Работы
Таким образом, у нас есть бинарная связь один ко многим с
обязательным классом принадлежности для обеих сущностей, для её реализации
необходимо создать два отношения (по одному для каждой сущности), причем в
отношении для многосвязной сущности «Работы» необходимо добавить для
установления связи первичный ключ односвязной сущности «Авто» гос. номер.
Любой работник может выполнять любую работу, следовательно,
степень связи для сущности «Работы» равна N. В свою очередь любая
работа может быть выполнена любым работником, следовательно, степень связи для
сущности «Работники» равно N.
Соглашение 6:
Работники выполняют работы. Работы выполняются работниками.
Рис. 1.3 ER-диаграмма связи сущностей Работники и Работы
Таким образом, имеется бинарная связь «многие ко многим», для
её реализации необходимо создать три отношения: по одному для каждой сущности с
соответствующими атрибутами и первичными ключами и 3е - для связи; в качестве
атрибутов - первичные ключи обеих сущностей; первичный ключ - составной.
Таблица связи (код работы, индивидуальный номер работника)
Рис. 1.4 Функциональная зависимость сущности «Авто»
Гос. номер àПроизводитель
Гос. номер àМодель
Гос. номер àГод выпуска
Гос. номер àСтрана-производитель
Гос. номер àГаз
Гос. номер àНомер паспорта
Гос. номер - детерминант, гос. номер - возможный ключ, значит
отношение «Авто» находится в БКНФ.
Рис. 1.5 Функциональная зависимость сущности «Владельцы»
Номер паспорта àФ.И.О.
Номер паспорта àАдрес
Номер паспорта àТелефон
Номер паспорта - детерминант, номер паспорта - возможный
ключ, значит отношение «Владельцы» находится в БКНФ.
Рис. 1.6 Функциональная зависимость сущности «Работы»
Код работы àОписание
Код работы àДата выполнения
Код работы àПродолжительность
Код работы àГос. номер
Код работы - детерминант; Код работы - возможный ключ, значит
отношение «Работы» находится в БКНФ.
Рис. 1.7 Функциональная зависимость сущности «Владельцы»
Идентификационный номер àФ.И.О.
Идентификационный номер - детерминант, Идентификационный
номер - возможный ключ, значит отношение «Работники» находится в БКНФ.
Рассмотрим реализацию БД средствами MS ACCESS.
«Авто» (производитель, модель, гос. номер, год выпуска,
газовое оборудование, страна-производитель, номер паспорта владельца)
Отношению в реляционной базе соответствует таблица «AVTO»
Рис. 1.8 Конструктор таблицы «AVTO».
Рис. 1.9 Таблица сущности «Авто»
«Владельцы» (Ф.И.О., адрес, телефон, номер паспорта).
Отношению в реляционной базе соответствует таблица «VLADELCY»
Рис. 1.10 Конструктор таблицы «VLADELCY»
Рис. 1.11 Таблица сущности «Владельцы»
«Работы» (Код работы, описание работы, дата выполнения,
гос. номер).
Отношению в реляционной базе соответствует таблица «RABOTU».
Рис. 1.12 Конструктор таблицы «RABOTU».
Рис. 1.13 Таблица сущности «Работы»
Таблица связи (Код работы, идентификационный номер
работника).
Отношению в реляционной базе соответствует таблица «DLYSVYZI»
Рис. 1.14 Конструктор таблицы «DLYSVYZI»
Рис. 1.15 Таблица cвязи
«Работники» (Ф.И.О., идентификационный номер
работника).
Отношению в реляционной базе соответствует таблица «RABOTNIKI».
Рис. 1.16 Конструктор таблицы «RABOTNIKI»
Рис. 1.17 Таблица сущности «Работники»
Рис. 1.18 Схема данных
2.
Описание БД и системы управления
2.1 Запросы
. Модели автомобилей производителя Lexus
SELECT MODEL FROM AVTOPROIZV= «Lexus»;
Рис. 2.1 Запрос 1
SELECT PROIZV, MODEL
FROM AVTO;
Рис. 2.2 Запрос 2
. Производитель, модель и гос. номер авто,
принадлежащих Кузину Валерию Валентиновичу
SELECT AVTO.PROIZV, AVTO.MODEL,
AVTO.GOSNOMERVLADELCY INNER JOIN AVTO ON VLADELCY.PASPORTNOMER =
AVTO.PASPORTNOMER VLADELCY.FIO=» Кузин Валерий Валентинович»;
Рис. 2.3 Запрос 3
. Производитель, модель, год выпуска и гос. номер
авто, выпущенного раньше 2005 года с сортировкой по дате выпуска
SELECT PROIZV, MODEL, GOSNOMER, GODVIPUSKAAVTOGODVIPUSKA
< 2005 order by GODVIPUSKA;
Рис. 2.4 Запрос 4
. Дата выполнения и описание работ, выполненных
Сменовым Эдуардом Викторовичем.
SELECT RABOTU.DATAV, RABOTU.OPISANIERABOTU INNER
JOIN (RABOTNIKI INNER JOIN DLYSVYZI ON RABOTNIKI.IDR = DLYSVYZI.IDR) ON
RABOTU.KODRABOTU = DLYSVYZI.KODRABOTU RABOTNIKI.FIO= «Сменов Эдуард Викторович»;
Рис. 2.5 Запрос 5
. Список марок авто, гос. номеров и работ, которые над
ними производились
SELECT AVTO.PROIZV, AVTO.GOSNOMER,
RABOTU.OPISANIEAVTO INNER JOIN RABOTU ON AVTO.GOSNOMER = RABOTU. GOSNOMERAVTO;
Рис. 2.6 Запрос 6
. Производители, год выпуска и модели самых новых авто
(по году выпуска)
SELECT PROIZV, MODELAVTOGODVIPUSKA =(SELECT
MAX(GODVIPUSKA) AS MAXGV FROM AVTO);
Рис. 2.7 Запрос 7
. Вывести всю информацию о 3 самых продолжительных
работах
SELECT TOP 3 *RABOTUBY PRODOLG DESC;
Рис. 2.8 Запрос 8
9. Имена владельцев, производители и гос. номера авто,
принадлежащих им
SELECT VLADELCY.FIO, AVTO.PROIZV,
AVTO.GOSNOMERVLADELCY INNER JOIN AVTO ON VLADELCY.PASPORTNOMER =
AVTO.PASPORTNOMER;
Рис. 2.9 Запрос 9
10. Вся информация о всех работниках
SELECT *RABOTNIKI;
Рис. 2.10 Запрос 10
11. Ф.И.О., телефон и адрес владельцев авто из Рязани
SELECT FIO, TELEFON, ADRESVLADELCYADRES LIKE
«*Рязань*»;
Рис. 2.11 Запрос 11
12. Список стран-производителей авто
SELECT DISTINCT STRANAAVTO;
Рис. 2.12 Запрос 12
13. Ф.И.О. владельца, который имеет наибольшее количество
авто, и это количество
SELECT Temp.FIO, Temp. MaxAVTO[SELECT
VLADELCY.FIO, Count(*) AS MaxAVTO FROM VLADELCY INNER JOIN AVTO ON
VLADELCY.PASPORTNOMER =AVTO.PASPORTNOMER GROUP BY VLADELCY.FIO]. AS Temp INNER
JOIN [SELECT Max(MaxAVTO) AS Maxim FROM (SELECT VLADELCY.FIO, Count(*) AS
MaxAVTO FROM VLADELCY INNER JOIN AVTO ON
VLADELCY.PASPORTNOMER=AVTO.PASPORTNOMER GROUP BY VLADELCY.FIO)]. AS Temp0 ON
Temp. MaxAVTO=Temp0. Maxim;
Рис. 2.13 Запрос 13
14. Количество часов, затраченных на работы в определенные
дни
TRANSFORM SUM(PRODOLG)KODRABOTURABOTUBY
KODRABOTUDATAV;
Рис. 2.14 Запрос 14
. Описание и продолжительность самой краткосрочной
работы
SELECT OPISANIE, PRODOLGRABOTUPRODOLG =(SELECT
MIN(PRODOLG) FROM RABOTU);
Рис. 2.15 Запрос 15
. Вывести всех производителей авто
SELECT PROIZV
FROM AVTO;
Рис. 2.16 Запрос 16
17. Производитель и год выпуска авто, имеющих газовое
оборудование
SELECT PROIZV, GODVIPUSKAAVTOGAZ;
Рис. 2.17 Запрос 17
. Добавить информацию о новом работнике в автосервисе.
INSERT INTO RABOTNIKI(«Джейсон Стэтхем», 7);
До добавления:
Рис. 2.18 Таблица «RABOTNIKI» до добавления новой записи
Рис. 2.19 Запрос 18
Рис. 2.20 Запрос 18
Рис. 2.20 Таблица «RABOTNIKI» после добавления новой записи
. Изменить адрес Логинова Егора Юрьевича
UPDATE VLADELCY SET ADRES = 'г. Рязань, Московское
шоссе, 15'
WHERE PASPORTNOMER = «34 88 336882»;
До изменения:
Рис. 2.21 Таблица «VLADELCY» до изменения записи
Запрос:
Рис. 2.22 Запрос 19
Рис. 2.23 Запрос 19
После изменения:
Рис. 2.24 Таблица «VLADELCY» после изменения записи
. Удалить запись об автомобиле с госномером е244вв 23.
DELETE *AVTOGOSNOMER = «е244вв 23»;
До удаления:
Рис. 2.25 Таблица «AVTO» до удаления записи
Запрос:
Рис. 2.26 Запрос 20
Рис. 2.27 Запрос 20
После удаления:
Рис. 2.28 Таблица «AVTO» после удаления записи
2.2
Формы
Общая форма базы данных «Станция технического
обслуживания автомобилей»
На форме расположены кнопки для открытия подчинённых форм
(Авто, Владельцы, Работы, Работники), кнопки для выполнения запросов, а также
кнопка закрытия главной формы.
В режиме «Форма»
Рис. 2.29 Общая форма базы данных «Станция технического
обслуживания автомобилей»
В режиме «Конструктор»
Рис. 2.30 Общая форма базы данных «Станция технического
обслуживания автомобилей» в режиме конструктор
Форма «Авто»
Рис. 2.31 Форма «Авто»
В режиме «Конструктор»
Рис. 2.32 Форма «Актеры» в режиме конструктор
Запросы для полей со списком
Рис. 2.33 Запрос для поля со списком «Производитель»
Запросы для полей со списком
Рис. 2.34 Запрос для поля со списком «Год выпуска»
Запросы для полей со списком
Рис. 2.35 Запрос для поля со списком «Страна»
Форма «Владельцы»
Рис. 2.36 Форма «Владельцы»
В режиме «Конструктор»
Рис. 2.37 Форма «Владельцы» в режиме конструктор
Форма «Работы»
Рис. 2.38 Форма «Работы»
В режиме «Конструктор»
Рис. 2.39 Форма «Работы» в режиме конструктор
Запросы для полей со списком
Форма связи «Работа-Работники»
Рис. 2.41 Форма связи «Работа-Работники»
В режиме «Конструктор»
Рис. 2.42 Форма связи «Работа-Работники» в режиме конструктор
Запросы для полей со списком
Рис. 2.43 Запрос для поля со списком «Код работы»
Рис. 2.44 Запрос для поля со списком «ID работника»
Заключение
В данном проекте была создана реляционная база данных
«Станция технического обслуживания автомобилей», которая содержит пять таблиц с
данными: таблицу по автомобилям, таблицу для владельцев, таблицу по работам,
таблицу для работников и таблицу для связи работ и работников.
Основные этапы разработки:
1. Определение цели создания базы данных
2. Определение нужных полей в базе данных
3. Определение таблиц, которые должна
содержать база данных.
4. Определение таблиц, к которым относятся
поля.
5. Определение первичных ключей.
6. Определение связей между таблицами.
7. Усовершенствование структуры базы
данных.
8. Ввод данных и создание других объектов
базы данных (например, форм и запросов).
База данных обеспечивает эффективную работу, создаёт удобство
пользования. Для получения информации об автомобилях, владельцах, работниках и
работах пользователь совершает минимум действий, что позволяет сократить время
работы с БД.
С работой данной БД может разобраться даже начинающий
программист, так как она сделана максимально удобной и понятной.
Список
использованной литературы
1.
Бекаревич Ю., Пушкина Н. Microsoft Access за 21 занятие. - М.: Олма-Пресс,
2006. - 544 с.
.
Лори Ульрих Фуллер, Кен Кук, Джон Кауфельд. Microsoft Office Access 2007 для
«чайников». - М.: Вильямс, 2007. - 384 с.
.
Михеева В., Харитонова И. Microsoft Access 2003. - М.: Нова, 2005. - 1072 с.
.
Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных. Учебник для ВУЗов /под
ред. проф. А.Д. Хомоненко // СПб.:КОРОНАпринт, 2000. - 416 с.
.
Хомоненко А., Гридин В.В. Microsoft Access. Быстрый старт. - М., 2008. - 304 с.
.
Корнеев В.В. и др. Базы данных. Интеллектуальная обработка информации
М.:Нолидж, 2000. - 352 с.