Содержание
Введение
1. Описание компании "СмартАвто"
2. Бизнес-правила
3. Разработка логической и физической модели базы данных
4. Создание таблиц при помощи языка SQL
5. Создание запросов
6. Создание форм и отчетов
7. Усовершенствование
Заключение
Список литературы
Введение
В курсовой работе будет разработана базы данных организации, которая занимается ремонтом автомобилей и реализована в виде программного продукта, также будут получены навыки по моделированию структуры баз данных с использованием CASE - средств, и созданию средствами языка SQL.
1. Описание компании
В качестве предметной области базы данных выбрана организация «СмартАвто», занимается ремонтом автомобилей, различных видов.
Обязательной частью работы организации является договор, в который заключается между клиентом и фирмой. В договоре имеется информация о специалистах, предварительная стоимость запчастей необходимых для ремонта.
В любой коммерческой организации необходимо хранить подробную информацию о клиентах. При заключении договора регистрируются данные о виде неисправности, стоимости ремонта, запчастях необходимых для ремонта, даты, и времени необходимого для ремонта. Так же существуют данные, в которых отображается полная информация о запчастях необходимых для ремонта. Можно вводить данные о новых специалистах, и стоимость составляющих.
Процесс ремонта можно описать следующим образом: клиент приходит в фирму, заносит в базу свои данные, при оформлении договора ему сообщается о неисправности затем выбирается специалист для ремонта неисправности.
2. Бизнес - правила
Для построения любой базы данных необходимо определить бизнес-правила, по которым формируются сущности в ER-модели и заполняются таблицы. Правила:
1. Все клиенты имеют код, адрес, телефон
2. При выборе неисправности, необходимо указать компоненты необходимые для ремонта
3. Когда заключается договор, указывается дата ремонта, вид неисправности, стоимость ремонта
4. Стоимость ремонта зависит от вида неисправности и запчастей
3. Разработка логической модели и преобразовании в физическую
На основе этих бизнес-правил можно создать ER-диаграмму модели данных.
Построение логической модели осуществим с помощью программного средства ERWin 4.0.
Выберем тип модели Logical/Physical, и на логическом уровне определим:
- сущности,
- связи между ними,
- первичные ключи и атрибуты сущностей.
Результат построения Логической модели представлен на рисунке 1, а Физическая модель изображена на рисунке 2.
Рисунок 1 - Логическая модель
В построенной модели используется следующий вид связи - не идентифицирующая связь, типа «один ко многим». Значит, что один экземпляр одной сущности связан с множеством экземпляров другой сущности.
На рисунке также отражены процедуры обеспечения ссылочной ценности. Ссылочная целостность означает метод обеспечения правильности и непротиворечивости хранящихся данных, это означает, что внешний ключ должен всегда либо содержать значение в пределах области значений внешних ключей (т.е. значений, которые в настоящий момент находятся в столбце первичного ключа), либо принимать значение Null (если это допустимо).
«U:R» и «D:R» означают, что удаление или обновление первичного ключа запрещено если есть один и более соответствующих ему экземпляров дочерней сущности.
«I:R» и «U:R» означают, что вставка или обновление дочерней строки запрещена если значение внешнего ключа в новой строке не соответствует ни одному значению первичного ключа в родительской таблице.
Рисунок 2 - Физическая модель
Физическим аналогом атрибута сущности является столбец таблицы. Здесь мы вводим ограничения на данные каждого из столбцов, присваивая каждому определенный тип.
4. Создание таблиц при помощи языка SQL
При реализации ER модели применяются 5 таблиц, и характер связей отражен схемой данных и показан на рисунке 3.
Рисунок3 - Схема данных
Объекты физической базы данных создаются с помощью языка описания данных SQL (команды DDL). CREATE TABLE используется для первоначального создания объекта базы данных.
Запрос на создание таблицы Договор (рисунок 4):
CREATE TABLE Договор (
КодДоговора Autoincrement Constraint ДоговорыPK PRIMARY KEY,
КодСпециалиста Long Not Null Constraint СпециалистыFK
REFERENCES Специалисты (КодСпециалиста),
КодКлиента Long Not Null Constraint КлиентыFK
REFERENCES Клиенты (КодКлиента),
ДатаРемонта DateTime,
ВремяРемонта Text,
СтоимостьРемонта Currency,
ВидНеисправности Text
);
Из этой инструкции следует следующее описание структуры таблицы:
- КодДоговора - Отражает код текущего договора. Данное поле является первичным ключом;
- КодСпециалиста - тип Long. Это поле в которое вводится кодспециалиста;
- КодКлиента - тип Long. Поле, в которое вводится кодКлиента в договоре.
- ДатаРемонта - тип DateTime. Здесь необходимо поставить дату заключения договора.
- ВремяРемонта - тип Text. Необходимо указать время необходимое для ремонта неисправности.
- СтоимостьРемонта - тип Currency. Поле для введения стоимости ремонта.
- ВидНеисправности - тип Text. Оставляются данные о виде неисправности.
Рисунок 4 - Таблица Договор
Запрос на создание таблицы Клиенты (рисунок 5):
CREATE TABLE Клиенты (
КодКлиента AUTOINCREMENT Constraint КлиентыPK PRIMARY KEY,
ФамилияК Text Not Null,
ИмяК Text Not Null,
ОтчествоК Text Not Null,
Телефон Integer,
Адрес Text,
ПаспортныеДанные Integer Not Null
);
Из этой инструкции следует следующее описание структуры таблицы:
- КодКлиента. Поле, в которое вводится кодКлиента в договоре. Данное поле является первичным ключом;
- ФамилияК - тип Text. Указывается фамилия нового клиента.
- ИмяК - тип Text. Указывается Имя нового клиента.
- ОтчествоК - тип Text. Указывается Отчество нового клиента.
- Телефон - тип Integer. Указывается телефон клиента.
- Адрес - тип Text. Указывается место проживание клиента.
- ПаспортныеДанные - тип Integer. Указываются паспортные данные.
Рисунок 5 - Таблица Клиенты
Запрос на создание таблицы Специалисты (рисунок 6):
CREATE TABLE Специалисты (
КодСпециалиста AUTOINCREMENT Constraint СпециалистыPK PRIMARY KEY,
Фамилия Text Not Null,
Имя Text Not Null,
Отчество Text Not Null,
Квалификация Text,
ВремяРаботы DateTime
);
Отсюда следует описание структуры таблицы:
- КодСпециалиста. Поле, в которое вводится кодспециалиста в договоре. Данное поле является первичным ключом;
- Фамилия - тип Text. Указывается фамилия Специалиста.
- Имя - тип Text. Указывается Имя Специалиста.
- Отчество - тип Text. Указывается Отчество Специалиста.
- Квалификация - тип Text. Указывается квалификация специалиста.
- Адрес - тип Text. Указывается место проживание клиента.
- ВремяРаботы- тип DateTime. Указываются время начало работы того или иного Специалиста.
Рисунок 6 - Таблица Специалисты
Запрос на создание таблицы Ремонт (рисунок 7):
CREATE TABLE Ремонт (
КодРемонта Autoincrement Constraint РемонтPK PRIMARY KEY,
КодДоговора Long Not Null Constraint ДоговорFK
REFERENCES Договор (КодДоговора)
Название Text,
ПредварительнаяСтоимость Currency
);
Отсюда следует описание структуры таблицы:
- КодРемонта. Поле, в которое вводится номер ремонта. Данное поле является первичным ключом;
- Название - тип Text. Указывается название компонентов.
- ПредварительнаяСтоимость - тип Currency. Указывается стоимость на используемые компоненты.
Рисунок 7 - Таблица Ремонт
Запрос на создание таблицы Израсходованные запчасти (рисунок 8):
CREATE TABLE ИзрасходованныеЗапчасти (
КодИзрасходованныхЗапчастей Autoincrement Constraint ДеталиPK PRIMARY KEY,
КодДоговора Long Not Null Constraint ДоговорыFK
REFERENCES Договор (КодДоговора),
Детали Text
);
Отсюда следует описание структуры таблицы:
- КодИзрасходованныхЗапчастей. Поле, в которое вводится номера компонентов. Данное поле является первичным ключом;
- КодДоговора. Указывается код Договора, в котором необходимо использовать запчасти.
- Детали - тип Text. Список запчастей в данном договоре.
Рисунок 8 - Таблица Израсходованные компаненты
5. Создание запросов
Выполним запрос Информация о договорах (рисунок 9):
SELECT Фамилия, КодДоговора, ДатаРемонта, ВремяРемонта, СтоимостьРемонта
FROM Специалисты INNER JOIN Договор ON Специалисты.КодСпециалиста=Договор.КодСпециалиста;
Рисунок 9 - Запрос информация о договорах
Выполним запрос на Поиск Клиентов по ФИО (рисунок 10):
SELECT *
FROM Клиенты
WHERE ФамилияК=[введите фамилию] AND ИмяК=[введите имя] AND ОтчествоК=[введите отчество];
Рисунок 10 - Запрос на поиск клиентов по Фамилии
Выполним запрос на Информацию о специалистах (рисунок 11):
SELECT КодСпециалиста, Фамилия, Имя, Отчество, ВремяРаботы, Квалификация
FROM Специалисты;
Рисунок 11 - Запрос на Информацию о специалистах
Выполним запрос на Информацию о стоимости запчастей (рисунок 12):
SELECT *
FROM Ремонт;
Рисунок 12 - Запрос на Информацию о стоимости запчастей
6. Создание форм и отчетов
Исходная форма, представляет собой меню, где пользователь выбирает нужную ему область Баз Данных (Договор, Клиенты, Специалисты и Отчет), рисунок 13.
При нажатии на вкладки появляются формы, которые изображены и описаны на следующих рисунках.
Рисунок 13 - Исходная форма
Форма Клиенты (рисунок 14), Договор (рисунок 15), были созданы с помощью конструктора и состоят из полей одноименных таблиц, за исключением ключевого поля. Эти формы предназначены для ввода новых и редактирования старых данных.
Рисунок 14 - Вкладка Клиенты
Рисунок 15 - Вкладка Договор
Как видно из рисунка на форме клиенты расположена кнопка поиск Клиентов, при нажатии на которую вводятся данные ФИО, и в результате появляется таблица с информацией о данном клиенте, если они имеются.
При нажатии на кнопку добавить Договор представлены все параметры Договора который заключается при ремонте автомобиля (рисунок 16).
Рисунок 16 - Форма Договор
Так же через эту форму можем вызвать запрос информации о специалистах, специалисты и какой договор, стоимость ремонта (рисунок 17,18).
Рисунок 17 - Информация о договорах
Рисунок 18 - Информация о Специалистах
Можем провести фильтрацию по квалификации специалиста (рисунок 19), и восстановить обратно всех клиентов. Пример фильтрации по квалификации главный механик представлен на рисунке 20.
Рисунок 19 - Фильтрация
Рисунок 20 - Пример фильтрации по главному механику
Из рисунка видно, что в таблице содержится только информация о главных механиках, что и было необходимо. Фильтрацию можно провести по любой квалификации. Также в данной форме можно добавлять новых поступивших на работу специалистов, и вносить все необходимые данные о них.
На вкладке Клиенты можно проводить поиск Клиентов по ФИО, и просмотреть всю необходимую интересующую нас информацию (рисунок 21). При нажатии на кнопку Добавить Клиентов появляется форма на которой можно добавлять и сохранять информацию о клиентах (рисунок 22).
Рисунок 21 - Поиск информации о Клиентах
Рисунок 22 - Форма Клиенты
Нажмем на вкладку Отчет, можно заметить два отчета о Клиентах и Договорах, так же можно сохранить информацию в Microsoft Office и распечатать (рисунок 23).
Рисунок 23 - Форма Отчеты
Пример Отчета о Клиентах изображен на рисунке 24, а о Договорах на рисунке 25.
Рисунок 24 - Отчеты о Клиентах
Рисунок 25 -Отчеты о Договорах
7. Усовершенствования базы организации «СмартАвто»
Ее можно усовершенствовать, добавив еще клиентов, заключив договоры, ввести печать, так же гарантию на ремонт, увеличить количество специалистов, выводить сведенья об ошибках, вести учет за израсходованными запчастями, проводить поиск договоров по дате.
Заключение
В данной курсовой работе мы создали логическую модель базы данных компании «СмартАвто», и ее физическую реализацию, а для этого были созданы бизнес правила, которые накладываются на данные, хранимые в будущей БД.
Затем написали SQL инструкции для создания каждой из применяемых в приложении таблиц. Создание и результат выполнения запросов, состав и взаимодействие участвующих в реализации форм и отчетов, представлены на рисунках, а листинг кнопок представлен в приложении А.
Список литературы
1 Атре Ш. Структурный подход к организации баз данных в МИС. - М.: Финансы и статистика, 1983.
2 Поленов М.А. Microsoft Access - СПб.: БХВ-Петербург, 2002.
3 Цикритизис Д., Лоховски Ф. Модели и базы данных. - М.: Финансы и статистика, 1985.
4 К. Дейт «Введение в системы баз данных» - М.: Наука, 1995.
|