Смекни!
smekni.com

База данных для ремонта автомобилей (стр. 1 из 2)

Содержание

Введение

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 Ремонт;