Станция техобслуживания автомобилей
Разработка реляционной базы "Договоры" и клиентского приложения "Договор" для организации "Изба-Строй". Экономическое обоснование результатов внедрения программного продукта. Организация обмена данными между серверной частью и клиентским приложением.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 30.11.2011 |
Размер файла | 2,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Приложение «Станция техобслуживания автомобилей» было разработано для предприятия «ИмбаСТО», которое занимается обслуживанием и ремонтом автомобилей. Данное приложение разработано для учета автомобилей, проходящих обслуживание в этой организации. База данных занимает одно из главенствующих мест в системе учета и контроля данного предприятия и требует особо внимания к своей работоспособности, при ее разработке учитывались мнение, как начальников данной организации, так и простых операторов ПК, непосредственно работающих с базой данных. Данное приложение использует технологии. Net Framework 2.0 в алгоритмически-логическом аспекте приложения. В качестве хранилища данных была использована реляционная база, управляемая языком SQL, из наличия использованных средств следует, что данное приложение будет использовано на операционных системах семейства Windows.
1. Описание предметной области
1.1 Общее описание предметной области
Работники станции техобслуживания принимают автомобили, выявляют неисправности и устраняют их. Каждой неисправности соответствует необходимая для её устранения автозапчасть. За обслуживание автомобилей различных марок взимается различная стоимость.
Для учета автомобилей необходима информация об их владельцах, марках, дате поступления и дате выхода, а так же об имеющихся неисправностях.
Для ведения статистики необходимо хранить информацию о том, какой работник обслуживал данный автомобиль. Для работников должно вычисляться отношение отремонтированных им автомобилей и автомобилей, которые отремонтировать не удалось.
Кроме этого необходимо выявление не хватающих запчастей и автомобилей, которые не могут быть отремонтированы по причине их нехватки.
В результате проектирования были разработаны методы получения необходимой информации для учета работников, автомобилей и неисправностей с использованием запросов, представлений и хранимых процедур.
1.2 Описание входных документов и сообщений
Входными документами являются таблицы с данными об автомобилях, марках автомобилей, неисправностях, автозапчастях и работниках организации. Входными сообщениями являются действия пользователя по выбору показателей, которые требуется рассчитать или запросов, которые необходимо исполнить, а так же значения переменных, необходимых для расчетов.
1.3 Описание выходных документов и сообщений
Выходными документами и сообщения будут являться результаты выполнения запросов, а так же модифицированные поля таблиц.
1.4 Список ограничений
1. Ограничения, связанные с типом данных полей.
2. Максимальные длины строковых данных: Ф.И.О. владельца автомобиля и работника - 50 символов, названия автозапчастей и марок автомобилей - 25 символов, описание неисправности - 50 символов.
3. Ограничения, связанные с целостностью по ссылкам.
2. Проектирование базы данных
В данном курсовом проекте была разработана реляционная база данных для описания предметной области «Станция техобслуживания автомобилей». Разработанная база данных предназначена для ввода, накопления и долговременного хранения информации об автомобилях, марках автомобилей, неисправностях, автозапчастях и работниках организации; также в ней формируется информация для анализа.
2.1 Инфологическая модель базы данных
При концептуальном проектировании были выбраны основные сущности:
1) «автомобиль»;
2) «марка автомобиля»;
3) «неисправность»;
4) «автозапчасть»;
5) «работник»;
2.1.1 Описание сущностей
В результате изучения предметной области и проектирования базы данных, был составлен следующий список атрибутов:
1) сущность «автомобиль»
Id
Марка_id
Ф.И.О._владельца
Работник_id
Дата прихода
Дата выхода
Состояние
2) сущность «марка автомобиля»
Id
Название
Наценка за ремонт
3) сущность «неисправность»
Id
Описание
id_Автомобиля
id_Запчасти
4) сущность «автозапчасть»
Id
Название
Цена замены
Количество в наличии
5) сущность «работник»
Id
Ф.И.О.
Дата рождения
2.1.2 Описание связей
Классификация связей приведена в таблице 2.1
Таблица 2.1. Классификация связей
Номер связи |
Родительская сущность |
Дочерняя сущность |
Тип связи |
|
1 |
Автомобиль |
Марка автомобиля |
М:1 |
|
2 |
Автомобиль |
Неисправность |
1:М |
|
3 |
Автомобиль |
Работник |
М:1 |
|
4 |
Неисправность |
Автозапчасть |
М:1 |
Выбор связи один ко многим обусловлен предметной областью. Так, например один автомобиль может иметь много неисправностей и один работник может обслуживать несколько автомобилей.
2.1.3 ER-диаграмма
Рисунок 2.1 - ER-диаграмма
2.2 Даталогическая модель
2.2.1 Диаграмма связи по полям
В процессе проектирования базы данных были выявлены следующие функциональные зависимости:
Таблица 2.2 - Состав таблицы Автомобиль
Имя |
Функциональные зависимости |
Id |
Размещено на http://www.allbest.ru/
Марка_id |
||
Ф.И.О._владельца |
||
Работник_id |
||
Дата прихода |
||
Дата выхода |
||
Состояние |
Таблица 2.3 - Состав таблицы Марка автомобиля
Имя |
Функциональные зависимости |
Id |
Размещено на http://www.allbest.ru/
Название |
||
Наценка за ремонт |
Таблица 2.4 - Состав таблицы Неисправность
Имя |
Функциональные зависимости |
Id |
Размещено на http://www.allbest.ru/
Описание |
||
id_Автомобиля |
||
Id_Запчасти |
Таблица 2.5 - состав таблицы Запчасти
Имя |
Функциональные зависимости |
Id |
Размещено на http://www.allbest.ru/
Название |
||
Цена замены |
||
Количество в наличии |
Таблица 2.6 - состав таблицы Работники
Имя |
Функциональные зависимости |
Id |
Размещено на http://www.allbest.ru/
Ф.И.О. |
||
Дата рождения |
3. Организация выборки информации из базы данных
Ниже приведены использующиеся в данной работе запросы. На основе всех из них, кроме первого, построены представления. Результаты их выполнения приведены в следующем разделе.
1. Выборка автомобилей, для которых не хватает запчастей
SELECT DISTINCT dbo. Автомобили.id, dbo. [Марки автомобилей]. Название AS Марка, dbo. Автомобили.Ф.И.О._владельца, dbo. Автомобили. [Дата прихода]
FROM dbo. Автомобили INNER JOIN
dbo. Неисправности_автомобили ON dbo. Автомобили.id = dbo. Неисправности_автомобили.id_Автомобиля INNER JOIN
dbo. [Марки автомобилей] ON dbo. Автомобили. Марка_id = dbo. [Марки автомобилей].id INNER JOIN
dbo. Запчасти ON dbo. Неисправности_автомобили.id_Запчасти = dbo. Запчасти.id
WHERE ((SELECT COUNT(*) AS Expr1
FROM dbo. Неисправности_автомобили AS Неисправности_автомобили_1
WHERE (id_Запчасти = dbo. Запчасти.id)) > dbo. Запчасти. [Количество в наличии])
2. Выборка автомобилей, которые не удалось отремонтировать
SELECT dbo. Автомобили.id, dbo. [Марки автомобилей]. Название AS Марка, dbo. Автомобили.Ф.И.О._владельца, dbo. Работники.Ф.И.О. AS Работник,
dbo. Автомобили. [Дата прихода], dbo. Автомобили. [Дата выхода], dbo. Автомобили. Состояние
FROM dbo. Автомобили INNER JOIN
dbo. [Марки автомобилей] ON dbo. Автомобили. Марка_id = dbo. [Марки автомобилей].id INNER JOIN
dbo. Работники ON dbo. Автомобили. Работник_id = dbo. Работники.id
WHERE (NOT (dbo. Автомобили. [Дата выхода] IS NULL)) AND (dbo. Автомобили. Состояние LIKE ' % Неисправен % ')
3. Выборка автомобилей дорогих марок
SELECT а.id, м. Название AS Марка, а.Ф.И.О._владельца, р.Ф.И.О. AS [Ф.И.О. работника], а. [Дата прихода], а. [Дата выхода], а. Состояние
FROM dbo. Автомобили AS а INNER JOIN
dbo. [Марки автомобилей] AS м ON а. Марка_id = м.id INNER JOIN
dbo. Работники AS р ON а. Работник_id = р.id
WHERE (м. [Наценка за ремонт] > 50)
4. Выборка автомобилей, обслуживаемых работником Василием
SELECT а.id, м. Название, а.Ф.И.О._владельца, р.Ф.И.О., а. [Дата прихода], а. [Дата выхода], а. Состояние
FROM dbo. Автомобили AS а INNER JOIN
dbo. [Марки автомобилей] AS м ON а. Марка_id = м.id INNER JOIN
dbo. Работники AS р ON а. Работник_id = р.id
WHERE (р.Ф.И.О. LIKE ' % Вас % ')
5. Выборка запчастей, которые необходимо закупить
SELECT id, Название, [Цена замены], [Количество в наличии]
FROM dbo. Запчасти AS зп
WHERE ((SELECT COUNT(*) AS Expr1
FROM dbo. Неисправности_автомобили
WHERE (id_Запчасти = зп.id)) > [Количество в наличии])
6. Статистика неисправностей
SELECT Название AS _Марка_,
(SELECT COUNT(*) AS Expr1
FROM dbo. Неисправности_автомобили INNER JOIN
dbo. Автомобили ON dbo. Неисправности_автомобили.id_Автомобиля = dbo. Автомобили.id
WHERE (dbo. Автомобили. Марка_id = м.id)) AS [Количество неисправностей]
FROM dbo. [Марки автомобилей] AS м
7. Статистика работников
SELECT DISTINCT р.id, р.Ф.И.О.,
(SELECT COUNT(*) AS у
FROM dbo. Автомобили
WHERE (Работник_id = р.id) AND (Состояние = 'Исправен') AND (GETDATE() >= [Дата выхода])) AS Успешно,
(SELECT COUNT(*) AS н
FROM dbo. Автомобили AS Автомобили_3
WHERE (Работник_id = р.id) AND (Состояние = 'Неисправен') AND (GETDATE() >= [Дата выхода])) AS Неудачно, CONVERT (decimal,
(SELECT COUNT(*) AS у
FROM dbo. Автомобили AS Автомобили_2
WHERE (Работник_id = р.id) AND (Состояние = 'Исправен') AND (GETDATE() >= [Дата выхода]))) / CONVERT (decimal,
(SELECT COUNT(*) AS н
FROM dbo. Автомобили AS Автомобили_1
WHERE (Работник_id = р.id) AND (Состояние = 'Неисправен') AND (GETDATE() >= [Дата выхода]))) AS Коэффициент
FROM dbo. Автомобили AS а INNER JOIN
dbo. Работники AS р ON а. Работник_id = р.id
4. Разработка представлений для отображения результатов выборки
Ниже приведены представления, соответствующих запросам приведенным в предыдущей главе.
Рисунок 4.1 - Представление результатов 2-й выборки
Рисунок 4.2 - Представление результатов 3-й выборки
Рисунок 4.3 - Представление результатов 4-й выборки
Рисунок 4.4 - Представление результатов 5-й выборки
Рисунок 4.5 - Представление результатов 6-й выборки
Рисунок 4.6 - Представление результатов 7-й выборки
Рисунок 4.7 - Представление результатов 8-й выборки
5. Проектирование хранимых процедур
В данном проекте были созданы две хранимые процедуры:
1. Для определения цены ремонта:
CREATE PROCEDURE [dbo]. [GET_PRICE]
- Add the parameters for the stored procedure here
@AUTO_ID int,
@CONST_FEE int
AS
BEGIN
- SET NOCOUNT ON added to prevent extra result sets from
- interfering with SELECT statements.
SET NOCOUNT ON;
- Insert statements for procedure here
SELECT (SUM (Запчасти. [Цена замены]) + @CONST_FEE)*
(SELECT [Наценка за ремонт] FROM [Марки автомобилей] WHERE id=
(SELECT Марка_id FROM Автомобили WHERE id=@AUTO_ID)) / 100
AS Цена_ремонта
FROM Автомобили
INNER JOIN
Неисправности_автомобили ON Неисправности_автомобили.id_Автомобиля = Автомобили.id
INNER JOIN Запчасти ON Неисправности_автомобили.id_Запчасти = Запчасти.id
END
Рисунок 5.1. Результаты работы хранимой процедуры 1
2. Для увеличения числа запчастей в наличии
CREATE PROCEDURE [dbo]. [Поступление_запчастей]
- Add the parameters for the stored procedure here
@NUM int
AS
BEGIN
UPDATE Запчасти
WHERE id=@ZAPCH_ID
END
Рисунок 5.2. Результаты работы хранимой процедуры 2
6. Разработка механизмов управления данными в базе при помощи триггеров
6.1 Триггер для добавления данных
При добавлении неисправности, триггер выводит сообщение, если не хватает запчастей для её устранения
CREATE TRIGGER [dbo]. [CARINSERT]
ON [dbo]. [Неисправности_автомобили]
FOR INSERT
AS
BEGIN
SET NOCOUNT ON;
IF (SELECT id_Запчасти FROM [inserted]) IS NULL BEGIN RETURN END
IF (SELECT [Количество в наличии] FROM Запчасти, [inserted]
WHERE Запчасти.id=[inserted].id_Запчасти)<0
BEGIN
PRINT ' Запчастей нет в наличии '
END
IF @@ERROR!= 0
BEGIN
END
RETURN
END
7.2 Триггер для удаления данных
Триггер для каскадного удаления данных из таблицы Неисправности при удалении записи из таблицы Автомобили
CREATE TRIGGER [dbo]. [CARSCASCADE_DEL]
ON [dbo]. [Автомобили]
FOR DELETE
AS
BEGIN
- SET NOCOUNT ON added to prevent extra result sets from
- interfering with SELECT statements.
SET NOCOUNT ON;
- Insert statements for trigger here
DELETE Неисправности_автомобили
FROM Неисправности_автомобили a, deleted d
WHERE a.id_Автомобиля = d.id
IF @@ERROR!= 0
BEGIN
PRINT 'Error occurred during related tables' ROLLBACK TRAN
END
RETURN
END
6.3 Триггер для обновления данных
Триггер выводит на экран цену ремонта, если неисправность была устранена.
CREATE TRIGGER [dbo]. [CARUPDATE]
ON [dbo]. [Автомобили]
FOR UPDATE
AS
BEGIN
SET NOCOUNT ON;
DECLARE @PRICE decimal
select @PRICE = (SELECT (SUM (Запчасти. [Цена замены]) + 1000)*
(SELECT [Наценка за ремонт] FROM [Марки автомобилей] WHERE id=
(SELECT Марка_id FROM Автомобили WHERE id=(SELECT [id] FROM [inserted]))) / 100
AS Цена_ремонта
FROM Автомобили
INNER JOIN
Неисправности_автомобили ON Неисправности_автомобили.id_Автомобиля = Автомобили.id
INNER JOIN Запчасти ON Неисправности_автомобили.id_Запчасти = Запчасти.id)
IF (((SELECT [Состояние] FROM [inserted]) LIKE ' % Исправен % ') AND ((SELECT [Состояние] FROM [deleted]) LIKE ' % Неисправен % '))
BEGIN
PRINT 'Цена ремонта = ' + Convert (char(20), @PRICE)
END
IF @@ERROR!= 0
BEGIN
PRINT 'Error occurred during related tables' ROLLBACK TRAN
END
RETURN
END
7. Разработка технологий доступа к базе данных
7.1 Выбор пользователей базы данных
В данном случае было выбрано 2 группы пользователей: администраторы и пользователи. Для этого в базу данных были добавлены соответствующие роли, а в клиентском приложении предусмотрена работа в двух режимах.
7.2 Выбор пользователей базы данных
При запуске клиентского приложения, взаимодействие с БД осуществляется в режиме пользователя. Из меню «Файл» можно сменить пользователя. Администратор может редактировать таблицы, а не только просматривать.
Серверное приложение разрешает пользователям использовать только запрос SELECT и вызывать хранимые процедуры, не вносящие изменений в БД. Администраторы имеют полный доступ ко всем элементам БД.
8. Организация обмена данными между серверной частью и клиентским приложением
Клиентское приложение осуществляет через экранные формы взаимодействие пользователя с таблицами данных и управляющим сервером по технологии ADO.NET.
9. Организация обмена данными между серверной частью и клиентским приложением
техобслуживание автомобиль реляционный серверный
В данном проекте обмен данными с другими БД не использовался, однако в случае необходимости для этого необходимо в начале создать так называемое соединение (Connection), после чего на основании этого соединения создать удаленное представление (Remote View).
10. Экономическое обоснование результатов внедрения программного продукта
Данный программный продукт был внедрен с целью увеличения производительности труда, за счет автоматизации учета автомобилей. Продукт относительно не требователен к ресурсам как сервера, так и отдельной рабочей станции. Для сервера достаточно будет не менее 512 мегабайт оперативной памяти и одноядерного процессора семейства Intel Pentium 4, стоимостью приблизительно 10000 руб., для рабочей станции - не менее 256 мегабайт оперативной памяти и одноядерного процессора семейства Intel Pentium 4, стоимостью приблизительно 8000 руб. Так как на предприятии «Изба-Строй» информация о договорах необходима 8 сотрудникам, то необходимо приобрести 8 рабочих станции и 1 сервер. В сумме на приобретение компьютеров будет затрачено 74000 руб. Все компьютеры находятся в одном здании на расстоянии 10х4, 15х2 и 25х2 метров от сервера. Метр сетевого кабеля стоит 5 рублей, коммутатор на 16 портов стоит 1000 рублей. В сумме на прокладку ЛВС будет затрачено 1600 рублей. На приобретение программного обеспечения необходимо затратить 50 000 руб. Всего необходимо 125 600 рублей.
Экономический эффект от внедрения разработки в течение года использования можно определить по формуле:
,
где - калькуляция расходов на разработку программного продукта, - нормативный коэффициент капитальных вложений (0.2), - экономия от замены ручной обработки информации на автоматизированную обработку.
Экономию средств от внедрения продукта можно рассчитать по формуле:
. (5)
Здесь - затраты на ручную обработку информации, руб.,
,
- объем информации, обрабатываемой вручную, Мбайт, Ц - стоимость одного часа работы, руб./час, - коэффициент, учитывающий дополнительные затраты времени на логические операции при ручной обработке информации, - норма выработки, Мбайт/час. За - затраты на автоматизированную обработку информации, руб., - время автоматической обработки (час), - стоимость одного часа машинного времени, руб./час; - время работы оператора, час; - стоимость одного часа работы оператора, руб./час.
Эу = Он*Ц*Гд/Нр - ta*Цм*t0*Ц0 = 500*220*1.5/2 - 30*1*5*1*200
= 82500 - 30000 = 52500
Эффективность разработки:
Er = 52500 - 0.2*25 000 = 47500
Тогда эффективность разработки может быть определена по формуле:
= 47500*0.4/25000 = 0.76
Использование на предприятии разработанного программного продукта экономически целесообразно, так как значение .
11. Требования к техническому обеспечению
Для работы приложений требуется следующее программное обеспечение: операционной системе Windows 2000/XP/Vista c установленным. Net Framwork 2.0. Аппаратные требования данного продукта совпадают с аппаратными требованиями операционной системы, для которых он предназначен.
Объем ОЗУ для эффективной работы приложения определяется по формуле:
,
где - минимальные требования со стороны операционной системы, - минимальный размер подгружаемых модулей, - дополнительное пространство ОЗУ.
Итак, имеем:
V= 200+150+50=400 мегабайт
Свободное пространство на жестком диске определяется равенством:
,
где - объем инсталляционного пакета программы; - объем файлов базы данных; - объем временных файлов, создающихся программой в ходе запуска.
Итак, имеем
W=2+4+1=9 мегабайт
Заключение
В итоге курсового проектирования была разработана реляционная база «Договоры» и клиентское приложение «Договор» для организации «Изба-Строй». Были подробно рассмотрены все аспекты функционирования этой системы, логической, программной и физической ее реализации.
Развивать полученную модель можно в сторону достижения большей функциональности и эргономичности, добавления новых возможностей, расширяющих стандартные средства.
Список литературы
1. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений / Под ред. проф. А.Д. Хомоненко. - Издание второе, дополненное и переработанное. - СПб.: КОРОНА принт, 2002. - 672 с.
2. Глушаков С.В., Ломотько Д.В. Базы данных: Учебный курс. - Харьков: Фолио; Ростов н/Д: Феникс; Киев: Абрис, 2000. - 504 с.
3. Мишенин А.И. Теория экономических информационных систем - М.: Финансы и статистика, 1999. - 168 с.
4. Смирнова Г.Н., Сорокин А.А., Тельнов Ю.Ф. Проектирование экономических информационных систем: Учебник для высших учебных заведений / Под ред. Ю.Ф.
Размещено на Allbest.ru
Подобные документы
Проект реляционной базы данных "Спортивные соревнования": oпиcaние предметнoй oблacти. Организация выборки информации из БД, механизмы управления, обмен данными между серверной частью и клиентским приложением. Экономическое обосновaние внедрения проекта.
курсовая работа [5,3 M], добавлен 21.06.2011Автоматизация процессов трудоустройства безработных; разработка приложения "DBcontrolle" для государственного учреждения "Ставропольская трудовая биржа". Управление данными в базе, триггеры. Обмен данными между серверной частью и клиентским приложением.
курсовая работа [1004,9 K], добавлен 03.07.2011Разработка реляционной базы данных "Библиотека" с помощью СУБД Microsoft SQL Server 2000 и программной оболочки в Microsoft Access. Экономическое обоснование результатов внедрения программного продукта. Инструкция по эксплуатации клиентского приложения.
курсовая работа [3,4 M], добавлен 01.07.2011Разработка хранимой процедуры, предназначенной для изменения поля "Цена" в таблице "Заказ" с учетом увеличения стоимости товара. Проектирование реляционной базы данных, триггеров, клиентского приложения. Анализ результатов внедрения программного продукта.
курсовая работа [1,8 M], добавлен 25.06.2011Разработка базы данных "Гостиница" с помощью приложения Microsoft Access 2010 для автоматизации процессов бронирования, оформления клиентов и формирования итоговых финансовых отчетов. Экономическое обоснование результатов внедрения программного продукта.
курсовая работа [803,5 K], добавлен 29.06.2011Разработка информационной базы данных для гостиницы, с помощью которой пользователь может найти нужную информацию о подходящей ему категории гостиницы. Проектирование реляционной базы данных. Экономическое обоснование внедрения программного продукта.
курсовая работа [2,0 M], добавлен 23.06.2011Концептуальное и инфологическое проектирование реляционной базы данных "Поликлиника". Выборка информации, представления для ее отображения. Проектирование хранимых процедур, триггеров. Экономическое обоснование результатов внедрения программного продукта.
курсовая работа [1,7 M], добавлен 03.07.2011Описание входных и выходных документов и сообщений. Проектирование реляционной базы данных. Разработка механизмов управления данными в базе при помощи триггеров. Разграничение полномочий пользователя. Организация обмена данными между приложениями.
курсовая работа [1,6 M], добавлен 22.06.2011Автоматизация системы снятия показаний счетчиков энергии. Разработка базы данных и клиентского приложения для структур жилищно-коммунального хозяйства, занимающихся составлением квитанций. Описание предметной области. Тестирование клиентского приложения.
курсовая работа [953,3 K], добавлен 01.09.2016Проектирование физической и логической моделей удаленной базы данных для АЗС. Разработка базы данных в СУБД Firebird с помощью утилиты IBExpert. Создание клиентского приложения для Windows с использованием клиент-серверной технологии в среде C++ Builder.
курсовая работа [3,9 M], добавлен 18.01.2017