Содержание
Введение
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 NotNull Constraint СпециалистыFK
REFERENCES Специалисты(КодСпециалиста),
КодКлиента Long NotNull 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 NotNull,
Телефон Integer,
Адрес Text,
ПаспортныеДанные IntegerNot 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 NotNull Constraint ДоговорFK
REFERENCES Договор(КодДоговора)
Название Text,
ПредварительнаяСтоимостьCurrency
);
Отсюда следует описаниеструктуры таблицы:
— КодРемонта. Поле, вкоторое вводится номер ремонта. Данное поле является первичным ключом;
— Название – тип Text. Указывается названиекомпонентов.
— ПредварительнаяСтоимость– тип Currency. Указывается стоимость на используемые компоненты.
/>
Рисунок 7 — Таблица Ремонт
Запрос на созданиетаблицы Израсходованные запчасти (рисунок 8):
CREATE TABLEИзрасходованныеЗапчасти (
КодИзрасходованныхЗапчастейAutoincrement Constraint ДеталиPK PRIMARY KEY,
КодДоговора Long NotNull 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.