База данных для магазина музыкальных инструментов

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,94 Мб
  • Опубликовано:
    2013-11-25
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

База данных для магазина музыкальных инструментов















Курсовая работа

База данных для магазина музыкальных инструментов


Введение


За последние годы индустрия продаж музыкальных инструментов постепенно ушла в сеть. Причин для этого более чем достаточно. Прежде всего, магазин музыкальных инструментов в сети Интернет существенно экономит средства и налоги при продаже поставляемой продукции. Еще одной особенностью становятся отпускные цены товара, которые в разы ниже, нежели у конкурентов вне сети. Примером успешного ведения онлайн бизнеса подобного рода стал магазин музыкальных инструментов Sibklavishi.ru. По сути дела говоря, именно этот онлайн-стор #"650823.files/image001.gif">



1.3 Определение логической модели реляционной БД


При определении логической структуры на основе концептуальной модели каждая сущность адекватно отображается реляционной таблицей, свойства сущности образуют атрибуты (поля таблицы), записи таблицы соответствуют объектам реального мира, а связи между таблицами - отношениям между сущностями в реальном мире.

Рисунок 2 Логическая модель БД

2.      Решение задач средствами проектирования СУБД

 

.1 Задачи БД


1.      Учёт всех инструментов

.        Вывод информации обо всех инструментах

.        Учёт клиентов

.        Учет сотрудников

.        Возможность редактирования списка сотрудников

.        Расчет общей стоимости инструментов

.        Печать отчетов по всей продукции

.        Расчет ежемесячной выплаты по кредиту и анализ кредитоспособности клиента

.        Расчет премий сотрудникам

 

.2 Решение поставленных задач


Одна из основных функций любой базы данных является возможность своевременного ввода-вывода информации, хранящейся в ней. Ввод данных в систему проще всего производить путём добавления информации через форму.

Формы Access позволяют выполнять задания, которые нельзя выполнить в режиме таблицы. Формы позволяют вычислять значения и выводить на экран результат. Источником данных для формы являются записи таблицы или запроса.

Для осуществления добавления записей в базу данных созданы 2 формы: «Оформление покупки» и «Добавление клиента». Навигацию по формам осуществляет форма «Главная».

Рисунок 3. Главная форма

Создание форм производится с помощью Конструктора, путем добавления на форму необходимых элементов. В этом режиме для работы доступна панель Элементов управления, которая содержит набор стандартных частей любой формы. С помощью этих элементов можно осуществить вывод необходимой информации в окне созданной формы.

При нажатии на каждую кнопку Главной формы вызывается макрос, открывающий ту или иную форму. Например, при нажатии на кнопку «Каталог продукции», срабатывает код:

Private Sub Кнопка0_Click()

Call Macros1Sub

Данный код вызывает Macros1, который в свою очередь открывает форму «Каталог»:

Sub Macros1 (). OpenForm «Каталог»

End Sub

Рисунок 4. Форма «Каталог»

Данная форма выводит построчно данные из таблицы «Инструменты», содержащей информацию об инструментах магазина (Страна, Модель, Фирма и т.д.). Особенностью формы «Каталог» является элемент Label, отображающий информацию о возможности покупки в кредит. Его функционал осуществлен следующим образом: Если для данного инструмента в таблице «Инструменты» значение поля «Рассрочка» является истинным, то ежемесячная плата по кредиту высчитывается из Стоимости инструмента и выводится в Caption, если же значение поля «Рассрочка» не является истинным, то Label становится невидимым. Ниже представлен код, осуществляющий функционал:

Private Sub Form_Current()

Dim MonthPay As Currency

MonthPay = (0.19 * Стоимость. Value + Стоимость. Value) / 12= Round (MonthPay, 2)

Рассрочка. Value = True Then. CreditLabel. Visible = True:. CreditLabel. Visible = FalseIf

. CreditLabel. Caption = «Возможна покупка в кредит за» & MonthPay & «р. в месяц»

Me. CreditLabel. FontSize = 13. CreditLabel. ForeColor = 16777215. CreditLabel. TextAlign = 3Sub

Рисунок 5. Форма «Оформление покупки»

Данная форма больше остальных насыщена программным кодом из-за обилия условий для обработки. Данные, введенные пользователем в соответствующие поля, вносятся в таблицы «Продажи» и «Клиенты», при условии, что они введены корректно. В частности, если для инструмента невозможна рассрочка (см. табл. «Инструменты»), то при нажатии пользователем «Оформить покупку» и галочки напротив «Кредит», данные не будут занесены в таблицы, а пользователь получит сообщение «К сожалению, данный инструмент нельзя приобрести в кредит». Ниже предоставлен код, обрабатывающий условия и заносящий данные:

Private Sub Кнопка10_Click()

Dim sSQL As Stringrst As DAO. RecordsetEmployeeId As StringEmployeeLastName As StringEmployeeName As StringInstrumentPrice As StringInstrumentId As StringClientId As String

Me. ИмяКлПоле. Value = «» Or IsNull (Me. ИмяКлПоле. Value) Then GoTo emptyFieldsMe. ФамилКлПоле. Value = «» Or IsNull (Me. ФамилКлПоле. Value) Then GoTo emptyFieldsMe. НаимПоле. Value = «» Or IsNull (Me. НаимПоле. Value) Then GoTo emptyFieldsMe. ФирмаПоле. Value = «» Or IsNull (Me. ФирмаПоле. Value) Then GoTo emptyFieldsMe. МодельПоле. Value = «» Or IsNull (Me. МодельПоле. Value) Then GoTo emptyFieldsMe. ОтделПоле. Value = «» Or IsNull (Me. ОтделПоле. Value) Then GoTo emptyFields

sSQL = «SELECT [ID Инструмента] as ID, [Рассрочка] as Payment, [Стоимость] as Price FROM [Инструменты] WHERE [Наименование] = '» & Me. НаимПоле. Value & «'» &» AND [Фирма] = '» & Me. ФирмаПоле. Value & «'» &» AND [Модель] = '» & Me. МодельПоле. Value & «'»rst = CurrentDb. OpenRecordset(sSQL)

rst. RecordCount = 0 Then GoTo noSuchInstrumentrst! [Payment] = False And Me. Флажок7. Value = True Then GoTo noPayments

rst. RecordCount <> 0 Then= rst! [ID]= rst! [Price]If

= «SELECT [ID сотрудника] as ID, [Имя сотрудника] as Name, [Фамилия сотрудника] as LastName FROM [Сотрудники] WHERE [Отдел] = '» & Me. ОтделПоле. Value & «'»rst = CurrentDb. OpenRecordset(sSQL)rst. RecordCount = 0 Then GoTo noSuchDepartment

rst. RecordCount <> 0 Then= rst! [ID]= rst! [Name]= rst! [LastName]If

= «SELECT [ID Клиента] as ID FROM [Клиенты] WHERE [Имя Клиента] = '» & Me. ИмяКлПоле. Value & «'» &» AND [Фамилия клиента] = '» & Me. ФамилКлПоле. Value & «'»

Set rst = CurrentDb. OpenRecordset(sSQL)

rst. RecordCount = 0 Then= «INSERT INTO [Клиенты] ([Имя Клиента], [Фамилия Клиента]) VALUES ('» & Me. ИмяКлПоле. Value & «', '» & Me. ФамилКлПоле. Value & «')». Execute sSQL= «SELECT [ID Клиента] as ID FROM [Клиенты] WHERE [Имя клиента] = '» & Me. ИмяПоле. Value & «'» &» AND [Фамилия Клиента] = '» & Me. ФамилКлПоле. Value & «'»

Set rst = CurrentDb. OpenRecordset(sSQL)= rst! [ID]= rst! [ID]If

Passed

:FirstPart As StringSecondPart As String

 = «INSERT INTO [Продажи] ([ID Клиента], [ID Сотрудника], [ID Инструмента], [Наименование], [Фирма], [Модель], [Стоимость], [Фамилия Сотрудника], [Имя Клиента], [Фамилия Клиента], [Отдел], [В кредит])»

SecondPart = «VALUES (» & ClientId &»,» & EmployeeId &»,» & InstrumentId &», '» & Me. НаимПоле. Value & «', '» & Me. ФирмаПоле. Value & «', '» & Me. МодельПоле. Value & «',» & InstrumentPrice &», '» & EmployeeLastName & «', '» & Me. ИмяКлПоле. Value & «', '» & Me. ФамилКлПоле. Value & «', '» & Me. ОтделПоле & «', '» & Me. Флажок7 & «')». Execute FirstPart & SecondPart«Покупка оформлена»Sub:«Заполните все поля»Sub:«Такого инструмента в базе нет»

Exit Sub:«К сожалению, данный товар нельзя приобрести в кредит»Sub:«Такого отдела в магазине нет»SubSub

Следующая форма создана для добавления новых клиентов в базу данных. В 2 поля вводится соответственно имя и фамилия клиента, а кнопка в левом верхнем углу заносит данные в таблицу «Клиенты»


Рисунок 6. Форма «Клиенты»

 

Данная форма имеет простую структуру и не содержит искусственно внедренного программного кода. Она создана исключительно средствами Конструктора форм.


Рисунок 7. Форма «Премия»

Следующая форма называется «Премия» и её функцией является расчет премии для каждого сотрудника. Премия составляет 2% от общей суммы проданных сотрудником инструментов. Программный код предоставлен ниже:

Private Sub Кнопка1_Click()sSQL As Stringqdf As DAO. QueryDefrst As DAO. Recordset

IsNull (Me. Фамилия. Value) Then«Введите фамилию сотрудника»SubIf

= «SELECT [ID Сотрудника] as ID FROM [Сотрудники] WHERE [Фамилия сотрудника] = '» & Me. Фамилия. Value & «'»qdf = CurrentDb. CreateQueryDef(«», sSQL)rst = qdf. OpenRecordset(dbOpenForwardOnly)

rst. RecordCount = 0 Then

MsgBox «Такой сотрудник не работает в этом магазине»

Exit SubIf

= «SELECT SUM([Стоимость]) as Total FROM [Продажи] WHERE [Фамилия сотрудника] = '» & Me. Фамилия. Value & «'»qdf = CurrentDb. CreateQueryDef(«», sSQL)rst = qdf. OpenRecordset(dbOpenForwardOnly)

IsNull (rst! [Total]) Then«На даный момент премию для сотрудника» & Me. Фамилия. Value & «платить не за чтоы»SubIf

«Премия для сотрудника» & Me. Фамилия. Value & «составила» & (rst! [Total] * 0.02) & «р

End Sub

 

Запросы

Запрос позволяет выбрать необходимые данные из одной или нескольких взаимосвязанных таблиц, произвести вычисления и получить результат в виде таблицы. В отличие от базовых (основных) таблиц БД, эти таблицы называются динамическими, потому что данные, содержащиеся в этих таблицах, могут каждый раз меняться в зависимости от условий выборки при открытии запроса.

В реляционной СУБД MS Access могут применяться следующие виды запросов:

·        запрос на выборку - выбирает данные из взаимосвязанных таблиц и других запросов. Результатом является таблица, которая существует до закрытия запроса. На основе такого запроса могут строиться запросы других видов. Таблицу с результатами запроса на выборку можно использовать для работы с данными в таблицах, на которых построен запрос. Например, через таблицу запроса можно корректировать данные в исходных таблицах базы данных. Запросы могут служить источниками записей для форм, отчетов и страниц доступа к данным.

·        запрос на создание таблицы - также выбирает данные из взаимосвязанных таблиц и других запросов, но, в отличие от запроса на выборку, результат сохраняет в новой постоянной таблице.

·        запросы на обновление, добавление, удаление - являются запросами действия, в результате выполнения которых изменяются данные в таблицах.

Средствами запроса можно:

·        Выбрать записи, удовлетворяющие условиям отбора;

·        Включить в результирующую таблицу нужные поля и произвести необходимые вычисления;

·        Создать новую таблицу БД, используя данные из существующих таблиц и т.д.

Одной из функций данной БД является вывод данных о всех товарах того или иного продавца. Для этого необходимо создать запрос в режиме Конструктора. Данные будут браться из таблицы «Инструменты» и «Сотрудники». Добавляем в запрос нужные поля, прописываем условия отбора.

Рисунок 8. Запрос на выборку - товары одного продавца

Следующий запрос дает возможность сосчитать количество и стоимость всех инструментов магазина. Для этого достаточно данных таблицы «Инструменты». Для поля «ID инструмента» используем Групповую операцию Count, а для «Стоимость» - Sum.


Рисунок 9. Подсчет общего количества и стоимости товаров

Модули, как и запросы, играют важную роль в функционировании всей базы данных. Они автоматизируют такие функции, как поиск, добавление, удаление и редактирование записей.

Модули

Модуль «Навигация по формам»

Данный модуль, написанный на языке VBA, задает действия макросам, которые выполняются при нажатии кнопок Главной формы.

Option Compare Database

Macros1 (). OpenForm «Каталог»SubMacros2 (). OpenForm «Оформление покупки»SubMacros3 (). OpenForm «Добавление клиентов»

End Sub

Sub Macros4 (). OpenReport «Инструменты», acViewPreviewSubMacros5 (). OpenForm «Премия»Sub

2.2 Разработка необходимых отчетов для вывода результатов работы с БД


Отчеты позволяют представить и распечатать данные в соответствии с требованиями пользователя. Причем возможности оформления данных для вывода на печать почти настолько же гибки, как и возможности отображения их на экране.

Отчеты предназначены исключительно для вывода данных на печать. В них отсутствует необходимость наличия управляющих элементов для ввода данных. Отчеты информационной системы могут составляться по различным критериям.

Создание отчетов происходит в режиме Мастера. Выбираются необходимые данные, создаются группировки и указывается вид представления.

Дорабатывается макет уже в режиме Конструктора, где, как и в случае с формами, можно добавить в окно необходимые элементы управления для дальнейшего их программирования.

На форму «Каталог» добавлена кнопка, при нажатии на которую, срабатывает макрос, выводящий на экран Отчет по каталогу инструментов в режиме предпросмотра. Код макроса представлен ниже:

Sub Macros4 ()

DoCmd. OpenReport «Инструменты», acViewPreview

End Sub

Рисунок 10. Отчет по каталогу инструментов

Заключение


В процессе выполнения данной работы была создана информационная система магазина музыкальных инструментов. Система нацелена на упрощение и автоматизацию работы с информацией для конечных пользователей

Получившаяся в результате ИС состоит из таблиц и форм, взаимодействие пользователя с системой осуществляется в диалоговом режиме. Основным связующим элементом ИС является система меню. Все операции производятся на основе информации, хранящейся в базе ИС.

Полученная ИС предоставила возможность оперативного поиска необходимой информации о товарах магазина, вести учет клиентов и сотрудников, рассчитывать премию для сотрудников и оформлять покупки через форму.


Список источников


1. Методические указания к лабораторным работам по дисциплине «Информационные системы» Лебедева С.В.

2.      www.on-line-teaching.com

3.      www.askit.ru

4.      www.sql.ru

.        «Microsoft Access для студента», Ю.Б. Бекаревич, Н.В. Пушкина; БХВ-Петербург, 2005

.        «Базы данных, разработка приложений для студента», Л.В. Рудикова; БХВ-Петербург, 2006

Похожие работы на - База данных для магазина музыкальных инструментов

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!