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

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

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

Особое внимание следует уделить новинкам среди продаваемых музыкальных инструментов. К примеру, популярный ныне Hapi Drum (Глюкофон).

Это разновидность Ханг драма (hang drum) — перкуссионного инструмента, состоящего из двух соединенных металлических полусферических половинок, который в 2000 году придумали Феликс Ронер (Felix Rohner) и Сабина Шерер (Sabina Schдrer) из компании PANArt, Швейцария. Hapi Drum, по сравнению со своим собратом, издает более долгие звуки, похожие на звуки колокольчика, использующегося в буддистских медитациях. Продавцом перкуссии является Didgeridoo Store. Магазин ранее занимался продажей диджериду (духовые инструменты, представляющие собой длинную бамбуковую трубу), однако его владелец Грэм Доэ (Grahm Doe) был заинтересован в расширении ассортимента. Сейчас этот инструмент является одним из наиболее популярных в Соединенных Штатах Америки.

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

Для открытия музыкального магазина хватит и регистрации индивидуального предпринимателя, или организации с ограниченной ответственностью. Не важно, какую форму вы выберете, процедура регистрации от этого практически не изменится, однако при регистрации организации с ограниченной ответственностью необходимо иметь устав и фонд в размере десяти тысяч рублей. Конечно индивидуальный предприниматель как форма регистрации тоже имеет некоторые недостатки, зато он не обязан вести бухгалтерский учёт и размер налога для него составляет всего тринадцать процентов. Так что индивидуальный предприниматель — это идеальный вариант для открытия магазина музыкальных инструментов. Перед открытием нужно решить очень важный вопрос, а именно — определиться с ассортиментом. Вы можете открыть обычный магазин гитар, или целый музыкальный супермаркет. Всё зависит от индивидуальных предпочтений и стартового капитала будущего владельца. Проще всего начинать с маленького ассортимента, однако, это пагубно повлияет на количество покупателей. Так же вы можете пускать в продажу не только музыкальные инструменты, но и световое оборудование, а также любую другую технику, необходимую для организации концертов. Товаром может стать все, что так или иначе связано с музыкальной индустрией и имеет спрос.

13 стр., 6114 слов

Выполнение макета магазина музыкальных инструментов в стиле «ретро»

... и удобств в магазине, развлечений и воспитания вкусов покупателей. Интерьер магазина и обслуживание должны ... Кроме того, оформление магазина может служить косвенным инструментом ценообразования и формирования ... с использованием эффекта синергии или взаимного дополнения другими торговыми предприятиями), управлению, маркетингу и рекламной и PR-работе. Требования к торговому оборудованию. Если в магазинах ...

Определившись с концепцией, можно начинать искать помещение помещение. Зачастую помещение арендуется, в идеале это должно быть помещение в одном из центральных районов города. Это обеспечит большое количество прохожих, которые заметят магазин. Не редко такие магазинчики открываются в торговых центрах. Это тоже обеспечивает хороший приток потенциальных покупателей. Помещение магазина не должно быть тесным, тем более если вы планируете продавать пианино или рояль. Оптимальным вариантом считается помещение площадью от ста квадратных метров и больше. Однако кроме самого торгового зала (который должен быть просторным) необходимо ещё оборудовать отдельную комнату под склад, и предоставить покупателям место, где они смогут опробовать понравившейся инструмент. После этого можно заняться подбором персонала. Отталкиваться стоит от того, что продавать музыкальные инструменты сможет только музыкант. Однако не простой музыкант, этот человек должен отличаться высокой коммуникабельностью, он должен уметь понравится людям. К тому же продавец обязан хорошо разбираться в марках музыкальных инструментов, наверняка ему придётся давать консультации, так что лучше если он даст покупателю правильную информацию. В противном случае можно сделать самому себе негативную рекламу.

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

Что касается необходимых инвестиций, основная их часть пойдёт на оплату аренды, оформление самого помещения и на первую партию товара. Если рассматривать коммерческий вариант, рассчитанный на высокую финансовую отдачу, тогда старт бизнеса обойдется вам в 170 тысяч долларов. Рискуя такими деньгами, стоит все взвесить. Но нужно признать, что если удастся хорошо себя зарекомендовать, прибыль будет стабильной и магазин окупится примерно за два года.

1. Анализ предметной области

1.1 Информационный анализ и выявление основных сущностей предметной области и их основных свойств

информационный база данный реляционный

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

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

Обслуживанием данного заведения занимаются наши сотрудники, также имеющие достаточно характеристик. Следующая сущность — «Сотрудники»

Информация о покупателях тоже должна быть документирована. Имена, телефоны, покупки — также должны быть частью базы данных магазина. Новая сущность — это «Клиенты»

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

Во многих музыкальных магазинах сейчас предоставляется возможность оплаты в кредит некоторых товаров магазина. Не будет исключением и наш. Также стоит упомянуть, что рабочее пространство нашего магазина поделено на 5 частей. Это пять отделов музыкальных инструментов: струнные (гитары, домры, лютни), смычковые (скрипки, виолончели, контрабасы), клавишные (рояли, синтезаторы, фортепиано), духовые (тромбоны, саксофоны, флейты) и ритм секция (барабаны, бубны, драм машины).

К каждому отделу прикреплен один продавец-консультант. Каждый продавец получает премию — 2% за каждый товар, что был продан в его отделе.

Сущность «Инструменты». Фундаментом бизнеса являются, соответственно, сами музыкальные инструменты, поэтому это одна из самых важных частей информационной системе. Наиболее важная информация о них должна отображаться в базе данных. Атрибуты: ID инструмента, Наименование, Год изготовления, Модель, Фирма, Стоимость, Страна изготовитель, Возможность предоставления кредита и Фотография товара.

Сущность «Сотрудники». Информация о работниках должна быть исчерпывающей для упрощения внутренней системы данных. Атрибуты: ID сотрудника, Фамилия, Имя, Телефон, Отдел магазина.

Сущность «Клиенты» содержит информацию обо всех покупателях. Атрибуты: ID Клиента, Фамилия, Имя, Взятый кредит.

Сущность «Продажи». Для ведения учета всех проданных инструментов, рассчета прибыли и премий, необходимо располагать информацией о всех атрибутах, участвующих в этом процессе. Атрибуты: ID Продажи, ID Инструмента, ID Клиента, Наименование, Фирма, Модель и Стоимость инструмента.

Основные сущности предметной области и их свойства

Таблица 1. Описание логической структуры таблицы «Инструменты»

Описание

Имя поля

Тип данных поля

Длина

Ключевое поле

ID инструмента

Счетчик

Длинное целое

Наименование

Текстовый

50

Год

Числовой

Длинное целое

Фирма

Текстовый

50

Модель

Текстовый

50

Класс

Текстовый

50

Отдел

Текстовый

50

Текстовый

50

Фото

Поле объекта OLE

Стоимость

Денежный

Денежный

Рассрочка

Логический

Да / Нет

Таблица 2. Описание логической структуры таблицы «Сотрудники»

Описание

Имя поля

Тип данных поля

Длина

Ключевое поле

ID сотрудника

Числовой

Длинное целое

Фамилия

Текстовый

50

Имя

Текстовый

50

Отчество

Текстовый

50

Телефон

Текстовый

50

Отдел

Числовой

Длинное целое

Таблица 3. Описание логической структуры таблицы «Клиенты»

Описание

Имя поля

Тип данных поля

Длина

Ключевое поле

ID Клиента

Числовой

Длинное целое

Фамилия

Текстовый

50

Имя

Текстовый

50

Отчество

Текстовый

50

Кредиты

Логический

Да / Нет

Таблица 4. Описание логической структуры таблицы «Продажи»

Описание

Имя поля

Тип данных поля

Длина

Ключевое поле

ID Продажи

Счетчик

Длинное целое

Наименование

Текстовый

50

Фирма

Текстовый

50

Модель

Текстовый

50

Стоимость

Денежный

Денежный

— Внешний ключ

ID Сотрудника

Числовой

Длинное целое

— Внешний ключ

ID Клиента

Числовой

Длинное целое

— Внешний ключ

ID Инструмента

Счетчик

Длинное целое

ID диска

Числовой

Длинное целое

№Паспорта клиента

Числовой

Длинное целое

ID Сотрудника

Числовой

Длинное целое

Внешний ключ — это атрибут (или группа атрибутов), значение которого повторяет содержание первичного ключа главной таблицы. Главной называется таблица, содержащая первичный ключ. Таблица, содержащая внешний ключ называется связанной.

Свойства внешнего ключа: типы данных первичного и внешнего ключа должны совпадать; размеры полей должны совпадать; в отличие от первичного ключа, значения во внешнем ключе могут повторяться («совпадения допускаются»); имя поля внешнего ключа не обязательно должно совпадать с именем первичного ключа

1.2 Построение концептуальной модели (модель сущность-связь) и связи сущностей

Модель предметной области, включающая в себя её основные сущности, их свойства и отношения между ними, называется концептуальной моделью предметной области. Концептуальная модель создаётся на этапе предварительного проектирования информационной системы и основывается на полном и глубоком анализе предметной области. Она строится без привязки к конкретной СУБД. Концептуальная модель представляет данные, которые подлежат хранению в базе.

Связь

Название

Семантика отношений

Тип связи

Пояснение

R1

Оформляют

1:М

Один сотрудник может оформить 0, 1 или несколько продаж

R2

Оформляются

М:1

Одна продажа может быть оформлена только одним сотрудником

R3

Покупают

1:М

Один клиент может совершить 0, 1 или несколько покупок

R4

Покупаются

М:1

Один инструмент может купить лишь один клиент

R5

Оформляют

1:М

Одна продажа может состоять из 0, 1 или нескольких товаров

R6

Оформляются

М:1

Один инструмент можно продать лишь раз

1:М — тип связи один-ко-многим (одному представителю сущности А соответствует несколько представителей сущности Б).

М:1 — тип связи многие-к-одному (является обратной связи 1:М)

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

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

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

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

2.1 Задачи БД

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Call Macros1

End Sub

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

Sub Macros1 ()

DoCmd. OpenForm «Каталог»

End Sub

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

Данная форма выводит построчно данные из таблицы «Инструменты», содержащей информацию об инструментах магазина (Страна, Модель, Фирма и т.д.).

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

Private Sub Form_Current()

Dim MonthPay As Currency

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

MonthPay = Round (MonthPay, 2)

If Рассрочка. Value = True Then

Me. CreditLabel. Visible = True

Else:

Me. CreditLabel. Visible = False

End If

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

Me. CreditLabel. FontSize = 13

Me. CreditLabel. ForeColor = 16777215

Me. CreditLabel. TextAlign = 3

End Sub

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

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

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

Dim sSQL As String

Dim rst As DAO. Recordset

Dim EmployeeId As String

Dim EmployeeLastName As String

Dim EmployeeName As String

Dim InstrumentPrice As String

Dim InstrumentId As String

Dim ClientId As String

If Me. ИмяКлПоле. Value = «» Or IsNull (Me. ИмяКлПоле. Value) Then GoTo emptyFields

If Me. ФамилКлПоле. Value = «» Or IsNull (Me. ФамилКлПоле. Value) Then GoTo emptyFields

If Me. НаимПоле. Value = «» Or IsNull (Me. НаимПоле. Value) Then GoTo emptyFields

If Me. ФирмаПоле. Value = «» Or IsNull (Me. ФирмаПоле. Value) Then GoTo emptyFields

If Me. МодельПоле. Value = «» Or IsNull (Me. МодельПоле. Value) Then GoTo emptyFields

If Me. ОтделПоле. 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 & «’»

Set rst = CurrentDb. OpenRecordset(sSQL)

If rst. RecordCount = 0 Then GoTo noSuchInstrument

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

If rst. RecordCount <> 0 Then

InstrumentId = rst! [ID]

InstrumentPrice = rst! [Price]

End If

sSQL = «SELECT [ID сотрудника] as ID, [Имя сотрудника] as Name, [Фамилия сотрудника] as LastName FROM [Сотрудники] WHERE [Отдел] = ‘» & Me. ОтделПоле. Value & «’»

Set rst = CurrentDb. OpenRecordset(sSQL)

If rst. RecordCount = 0 Then GoTo noSuchDepartment

If rst. RecordCount <> 0 Then

EmployeeId = rst! [ID]

EmployeeName = rst! [Name]

EmployeeLastName = rst! [LastName]

End If

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

Set rst = CurrentDb. OpenRecordset(sSQL)

If rst. RecordCount = 0 Then

sSQL = «INSERT INTO [Клиенты] ([Имя Клиента], [Фамилия Клиента]) VALUES (‘» & Me. ИмяКлПоле. Value & «’, ‘» & Me. ФамилКлПоле. Value & «’)»

CurrentDb. Execute sSQL

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

Set rst = CurrentDb. OpenRecordset(sSQL)

ClientId = rst! [ID]

Else

ClientId = rst! [ID]

End If

GoTo Passed

Passed:

Dim FirstPart As String

Dim SecondPart As String

FirstPart = «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 & «’)»

CurrentDb. Execute FirstPart & SecondPart

MsgBox «Покупка оформлена»

Exit Sub

emptyFields:

MsgBox «Заполните все поля»

Exit Sub

noSuchInstrument:

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

Exit Sub

noPayments:

MsgBox «К сожалению, данный товар нельзя приобрести в кредит»

Exit Sub

noSuchDepartment:

MsgBox «Такого отдела в магазине нет»

Exit Sub

End Sub

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

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

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

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

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

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

Dim sSQL As String

Dim qdf As DAO. QueryDef

Dim rst As DAO . Recordset

If IsNul l (Me. Фамилия. Value) Then

MsgBox «Введите фамилию сотрудника»

Exit Sub

End If

sSQL = «SELECT [ID Сотрудника] as ID FROM [Сотрудники] WHERE [Фамилия сотрудника] = ‘» & Me. Фамилия. Value & «’»

Set qdf = CurrentDb . CreateQueryDef(«», sSQL)

Set rst = qdf . OpenRecordset(dbOpenForwardOnly)

If rst . RecordCount = 0 Then

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

Exit Sub

End If

sSQL = «SELECT SUM([Стоимость]) as Total FROM [Продажи] WHERE [Фамилия сотрудника] = ‘» & Me. Фамилия. Value & «’»

Set qdf = CurrentDb . CreateQueryDef(«», sSQL)

Set rst = qdf . OpenRecordset(dbOpenForwardOnly)

If IsNul l (rst! [Total]) Then

MsgBox «На даный момент премию для сотрудника» & Me. Фамилия. Value & «платить не за чтоы»

Exit Sub

End If

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

End Sub

Запросы

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

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

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

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

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

  • Выбрать записи, удовлетворяющие условиям отбора;
  • Включить в результирующую таблицу нужные поля и произвести необходимые вычисления;
  • Сгруппировать записи с одинаковыми значениями в одном или нескольких полях и выполнить над ними групповые функции по подмножеству (sum — сумма, count — подсчет количества записей, average — вычисление среднего);
  • Создать новую таблицу БД, используя данные из существующих таблиц и т.д.

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

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

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

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

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

Модули

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

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

Option Compare Database

Sub Macros1 ()

DoCmd. OpenForm «Каталог»

End Sub

Sub Macros2 ()

DoCmd. OpenForm «Оформление покупки»

End Sub

Sub Macros3 ()