Uploaded by Deadpeople Forever

Пояснительная записка Ооржак

advertisement
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«Сибирский государственный университет науки и технологий
имени академика М.Ф. Решетнева»
Институт информатики и телекоммуникаций
Кафедра информатики и вычислительной техники
КУРСОВАЯ РАБОТА
Управление данными
Разработка системы учета записей
в салоне красоты «BeautyAccounting»
Руководитель
А.Г. Зотин
подпись, дата
Обучающийся БИС 17–01, 171217018
номер группы, зачетной книжки
19.06.2020
подпись, дата
Красноярск 2020 г.
инициалы, фамилия
А.К. Ооржак
инициалы, фамилия
Институт информатики и телекоммуникаций
Кафедра информатики и вычислительной техники
ЗАДАНИЕ
на курсовую работу по дисциплине Управление данными
обучающемуся Ооржак Ай-Кат Катовне
Группа
БИС 17–01
Форма обучения очная
Тема работы:
Разработка системы учета записей в салоне красоты
«BeautyAccounting»
Срок сдачи курсовой работы 19.06.2020
Перечень вопросов, подлежащих разработке при написании теоретической части:
Обзор информационно-справочных систем салонов красоты; обзор информационных
потоков; концептуальное проектирование базы данных; логическое проектирование
базы данных; выбор целевой СУБД; разработка бизнес-правил.
Перечень вопросов, подлежащих разработке при написании практической части:
Физическое проектирование базы данных; разработка структуры программного продукта; реализация бизнес-правил; разработка интерфейса; программная реализация
проекта; формирование руководств программиста и пользователя; тестирование разработанного программного продукта.
Дата выдачи задания:
Руководитель
20.02.2020
Зотин А.Г., доцент кафедры ИВТ
(подпись)
Задание принял к исполнению (дата) 20.02.2020
(подпись обучающегося, И.О. Фамилия)
СОДЕРЖАНИЕ
ВВЕДЕНИЕ .................................................................................................................. 4
1 ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ ................................................................ 5
1.1 Обзор сервисов для салонов красоты .............................................................. 5
1.2 Концептуальное проектирование базы данных ............................................. 8
1.3 Логическое проектирование базы данных.................................................... 10
1.4 Выбор целевой СУБД ..................................................................................... 12
1.5 Физическое проектирование базы данных ................................................... 15
Выводы по главе .................................................................................................... 18
2. РАЗРАБОТКА ПРОГРАММНОГО ПРОДУКТА .............................................. 19
2.1 Структура программного продукта ............................................................... 19
2.2 Реализация бизнес–правил ............................................................................. 19
2.3 Руководство программиста ............................................................................ 22
2.4 Руководство пользователя .............................................................................. 23
2.5 Тестирование программного продукта ......................................................... 27
Выводы по главе .................................................................................................... 28
ЗАКЛЮЧЕНИЕ ......................................................................................................... 29
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ................................................ 30
ПРИЛОЖЕНИЕ А ..................................................................................................... 31
ПРИЛОЖЕНИЕ Б ...................................................................................................... 33
ВВЕДЕНИЕ
Актуальность. На сегодняшний день запись клиентов в салон красоты
происходит трудоемко. Для того, чтобы записать только одного клиента уходит
очень много времени. Девушка администратор должна найти нужный журнал,
сообщить о свободных датах и предоставляемых мастерах. Это занимает около
10 минут. После всех манипуляций с журналом происходит запись клиента.
Поэтому данный вид записи имеет недостатки такие, как: ошибки в записях, не
читаемость информации о клиенте, потеря журнала, порча журнала. В результате, салон теряет клиентов, а, следовательно, прибыль.
Если разработать информационную систему учёта записей для салона
красоты, то запись клиентов уменьшится в 10–12 раз и ошибок, вызванных человеческим фактором, станет меньше.
Цель и задачи. Целью данной курсовой работы является разработка системы учета записей в салоне красоты «BeautyAccounting» с интуитивно понятным интерфейсом и возможностью составления отчетов и вывода графиков.
Для достижения поставленной цели необходимо решить следующие
задачи:
− выполнить обзор сведений, учитываемых в салонах красоты;
− провести анализ существующих сервисов для салонов красоты;
− провести концептуальное проектирование базы данных;
− построить логическую модель базы данных;
− выбрать целевую СУБД;
− выполнить физическое проектирование базы данных;
− реализовать структуру программного продукта;
− разработать руководство пользователя и программиста;
− осуществить программную реализацию;
− провести тестирование программного продукта.
Структура работы. Пояснительная записка к курсовой работе состоит
из введения, двух глав, заключения и списка использованных источников из 9
наименований. Изложена на 37 страницах и содержит 28 рисунков и 5 таблиц.
В первой главе курсовой работы приводится описание проектирования
базы данных для разрабатываемого приложения. Отражен обзор аналогов программных продуктов. Показаны результаты концептуального, логического и
целевого проектирования базы данных. Обоснован выбор целевой СУБД. Представлен результат физического проектирования базы данных.
Во второй главе описана разработка программного продукта и его структура. Показана реализация бизнес–правил. Отражены руководства программиста и пользователя. Описаны результаты тестирования программного продукта.
В заключении подведены итоги курсовой работы.
1 ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ
Проектирование базы данных неразрывно связано с понятием «предметная область». Предметная область – часть реального мира, подлежащая изучению с целью организации управления и, в конечном счете, автоматизации.
Предметная область представляется множеством фрагментов, например, предприятие – цехами, дирекцией, бухгалтерией и т.д. Каждый фрагмент предметной области характеризуется множеством объектов и процессов, использующих
объекты, а также множеством пользователей, характеризуемых различными
взглядами на предметную область. [5]
До сих пор многие предприятия сферы услуг ведут учёт на бумаге, а запись осуществляют по телефону. На всю процедуру записи клиента уходит
примерно 8–10 минут. Если поток клиентов большой, это становится очень
трудоемко. С такой системой данные клиентов легко перепутать, сложно отследить постоянных гостей и предложить им специальные условия и участие в
акциях. Решение проблемы – это автоматизация записи клиентов. В настоящее
время автоматизация салона красоты и внедрение программы, управляющей
бизнес–процессами, являются жизненной необходимостью и так же, как любой
другой бизнес, салон красоты требует своевременного точного ведения учета и
контроля. Автоматизация позволит управлять расписанием, базой клиентов.
Работа администратора станет намного легче. Из чего следует, что уровень обслуживания повысится и привлечет большее число клиентов, а, следовательно,
прибыль.
1.1 Обзор сервисов для салонов красоты
Для того чтобы понять, как разработать программный продукт, автоматизирующий запись клиентов, необходимо рассмотреть существующие программные продукты, а также их недостатки и преимущества. Наиболее распространенными являются такие сервисы, как: Yclients, Hesus, Gbooking.
Программный продукт «Yclients»
«Yclients» автоматизирует онлайн–запись и администрирование компании. Виджет записи, с помощью которого клиенты будут выбирать удобные дату и время, можно установить на сайте и в социальных сетях, его внешний вид
корректируется. Дополнительно «Yclients» предлагает разработать персональное мобильное приложение (стоимость использования – от 1 000 до 2 500 рублей в месяц) [9].
Контроль в сфере услуг становится проще после автоматизации бизнес–
процессов. «Yclients» позволяет вести учёт, начиная с момента формирования
заявки и заканчивая сопровождением клиента после покупки. Вы контролируете складские запасы, ведёте расчёты с поставщиками, работаете с несколькими
кассами и счетами, начисляете зарплату и учитываете расходные материалы. И
всё это – в режиме реального времени.
Личный кабинет позволяет управлять расписанием, базой клиентов и
программой лояльности, например, выявлять активных пользователей и выстраивать систему скидок. Также сервис предлагает отслеживать статистику –
какая из услуг более востребована или какой сотрудник самый эффективной.
Есть возможность автоматической рассылки напоминаний клиентам. Кроме того, сервис автоматизирует внутренние процессы: позволяет вести складской и
финансовый учет, управлять филиалами сетевых компаний, рассчитывать зарплаты. «Yclients» используют более 1300 компаний: салоны красоты, медицинские центры, квеструмы, автосервисы. Главное окно программы представлено
на рисунке 1.1.
Рисунок 1.1 – Главное окно программы «Yclients»
Программный продукт «Hesus»
Функционал системы онлайн–бронирования «Hesus» ограничен сервисом
предварительной записи, зато модуль универсален и его легко детализировать
под задачи бизнеса. Пользователь сможет настроить параметры бронирования:
если стандартных критериев записи недостаточно, можно использовать выбор
места, отрегулировать по собственному желанию временные интервалы, добавить схему размещения (например, ресторанного зала, автобуса или гостиницы). Онлайн–запись интегрируется с сайтом и социальными сетями [9].
Программа позволяет опционально создавать правила для присвоения
скидок клиентам, а также добавлять их в категории и удалять из категорий.
Скидки присваиваются по потраченным средствам и количеству визитов.
Если скидки начисляются и по визитам, и по потраченным средствам, то
итоговая стоимость услуги будет рассчитана c учётом большей из них. Кроме
того, вы получаете возможность удалять клиентов из программы лояльности.
Например, если заказчик не посещал заведение более установленного срока,
скидка аннулируется системой.
Большой плюс – функция предоплаты для клиентов через «Яндекс.Деньги» или с помощью карты, что встречается редко. Это позволяет снизить процент отказавшихся в последний момент. Также существует партнёр6
ская программа: ресурс, разместивший ссылку на сервис у себя на сайте, получает 11% с каждого взноса нового пользователя «Hesus», пришедшего по этой
ссылке. Компания сообщает о 29 500 созданных модулей. Главное окно программы представлено на рисунке 1.2.
Рисунок 1.2 – Главное окно программы «Hesus»
Программный продукт «Gbooking»
«Gbooking» предлагает систему онлайн–записи с «напоминалками» для
клиентов по почте. Программа умеет выявлять популярные услуги, отслеживать активных клиентов, позволяет настраивать систему скидок. Также есть
электронный журнал администратора, с его помощью можно минимизировать
свободные окна в расписании. Нюансы работы разных компаний из сферы
услуг учтены в настройках – например, повторное посещение для медцентров,
планирование смен мастеров для салонов красоты. Сервис пока не работает с
соцсетями, но запустил мобильное приложение, также есть возможность разработать брендированное приложение (стоимость определяется индивидуально)
[9].
Он позволяет создать расписание и разместить на сайте красивый виджет
для онлайн–записи клиентов, с помощью которого они могут увидеть свободные часы и зарезервировать время посещения. Кроме того, сервис отправляет
клиентам напоминания по sms, чтоб они не забыли о визите. Если клиент часто
посещает ваше заведение – можно предоставить ему мобильное приложение
для более простой записи. А администратор получает в свое распоряжение
электронный журнал, позволяющий вести учёт посещений клиентов. Более того, GBooking может размещать вашу кнопку записи на сайтах в своей партнерской сети. Стоимость сервиса начинается от 990 рублей в месяц.
Личный кабинет для клиента со всей историей посещений. Функция отмены и переноса записей в онлайн–режиме. Фотогалерея и описание вашего
бизнеса. Отзывы и информация о каждом сотруднике. Запись на промо и скрдочные акции.
7
В разных тарифах есть возможность размещаться на сайтах–партнёрах –
iTop.ru, Zoon.ru и отраслевых площадках. К системе подключено 500 компаний.
Главное окно программы представлено на рисунке 1.3.
Рисунок 1.3 – Главное окно программы «GBooking»
На основания рассмотренных данных можно сделать выводы, что большинство сервисов не удовлетворяют требованиям наличия записи расходов,
доходов, списка закупок и поиска записей. Разрабатываемый программный
продукт обеспечит наличие необходимых требований и таким образом позволит в полной мере ощутить удобство использования.
1.2 Концептуальное проектирование базы данных
Концептуальное проектирование – сбор, анализ и редактирование требований к данным. Для этого осуществляются следующие мероприятия:
− обследование предметной области, изучение ее информационной
структуры;
− выявление всех фрагментов, каждый из которых характеризуется пользовательским представлением, информационными объектами и связями между
ними, процессами над информационными объектами;
− моделирование и интеграция всех представлений. [5]
Концептуальное проектирование состоит в создании концептуальной модели данных для анализируемой фирмы. Данная модель данных возникает на
основе информации, записанной в классификациях условий пользователей.
Концептуальное проектирование базы данных совершенно не зависит от таких
деталей ее реализации, как тип подобранной целевой СУБД, набор выполняемых прикладных программ, языки программирования, тип подобранной вычислительной площадки, а также от всех иных сторон физической реализации. При
разработке концептуальная модель данных часто испытывается тестированием
и проверке на согласие требованиям пользователей. Спроектированная концеп8
туальная модель данных фирмы – источник информации для этапа логического
проектирования базы данных.
Для наиболее эффективного выполнения поставленных задач ниже приведены концептуального проектирования, таблицы 1.1 и 1.2.
Таблица 1.1 – Сведения о типах сущностей проекта
№
1
2
3
4
5
6
7
Имя сущности
Тип процедуры
Товары
Услуги
Услуги
Записи
Сотрудники
Клиенты
Описание
Содержит описание типов процедур
Содержит список товаров
Содержит перечень услуг
Содержит список работающих залов
Хранит информацию о сотрудниках
Хранит информацию о клиентках
Содержит в себе список записей
Тип
сильный
сильный
сильный
сильный
слабый
сильный
сильный
Таблица 1.2 – Сведения о типах связей проекта
№
1
2
3
4
5
6
7
Тип сущности
Сотрудники
Тип процедуры
Товар
Услуги
Записи
Сотрудники
Клиенты
Тип связи
Осуществляет
Описывает
Учитывает
Учитывает
Учитывает
Осуществляет
Учитывает
Тип сущности
Тип процедуры
Товар
Услуги
Зал
Услуги
Записи
Записи
Кардинальность
N:M
N:M
N:M
1:M
M:1
1:M
N:M
Так же приведена ER–модель проекта на рисунке 1.4. ER–модель – это
модель данных, позволяющая описывать концептуальные схемы предметной
области. Она используется при высокоуровневом (концептуальном) проектировании баз данных. С её помощью можно выделить ключевые сущности и обозначить связи, которые могут устанавливаться между этими сущностями.
9
Рисунок 1.4 – ER–модель проекта
1.3 Логическое проектирование базы данных
Логическое проектирование базы данных – это процесс создания модели
используемой информации на основе выбранной модели организации данных,
но без учета типа целевой СУБД и других физических аспектов реализации.
Второй этап проектирования базы данных называется логическим проектированием базы данных. Его цель состоит в создании логической модели данных для исследуемой части предприятия. Концептуальная модель данных, созданная на предыдущем этапе, уточняется и преобразуется в логическую модель данных. Логическая модель данных учитывает особенности выбранной
модели организации данных в целевой СУБД (например, реляционная модель).
[5]
В таблице 1.3 представлены атрибуты и домены базы данных, спроектированные на логическом уровне.
№
1.
Сущность
Сотрудники (Employee)
Атрибут сущности
Псевдоним атрибута
Домен атрибута
ID сотрудника
Фамилия
Имя
Отчество
idEmp
SerName
FirstName
MiddleName
idTypeProc
Числовой
Текстовый
Текстовый
Текстовый
Числовой
Address
DateOB
Текстовый
Числовой
ID тип процедуры
Адрес
Дата рождения
10
Продолжение таблицы 1.3
№
1.
2.
Сущность
Сотрудники (Employee)
Клиенты
(Clients)
3.
Себестоимость
(Costprice)
4.
Зал (Factory)
6.
Записи (Posts)
7.
8.
Продукты
(Product)
Услуги (Service)
9.
Услуги зала (ServiceFactory)
10.
Товары для услуг
(ServiceProd)
11.
Тип процедуры
(TypeProc)
Атрибут сущности
Псевдоним атрибута
Домен атрибута
Дата договора
Телефон
ID клиента
Фамилия
Имя
Отчество
Номер
Дата рождения
DateOrder
Phone
idClients
Sername
Firstname
Middlename
Phone
DateOfB
Числовой
Числовой
Числовой
Текстовый
Текстовый
Текстовый
Числовой
Числовой
ID себестоимость
ID продукта
Стоимость
ID зала
Название зала
ID записи
Дата записи
ID клиента
ID сотрудника
ID услуги
ID зала
ID продукта
Название
ID тип процедуры
ID услуги
Название услуги
ID тип процедуры
IDCostPrice
idProduct
Cost
idFactory
NameFactory
idPosts
DateP
idClient
isEmp
idService
idFactory
idProduct
Name
idTypeProc
idService
NameService
idTypeProc
Числовой
Числовой
Числовой
Числовой
Текстовый
Числовой
Числовой
Числовой
Числовой
Числовой
Числовой
Числовой
Текстовый
Числовой
Числовой
Текстовый
Числовой
Стоимость
ID услуги зала
ID услуги
ID зала
ID товара для услуг
ID услуги
ID продукта
ID тип процедуры
Название типа
Cost
idServiceFactory
idService
idFactory
idServiceProd
idService
idProduct
idTypeProc
TypeName
Числовой
Числовой
Числовой
Числовой
Числовой
Числовой
Числовой
Числовой
Текстовый
На этапе логического проектирования учитывается специфика конкретной модели данных, но может не учитываться специфика конкретной СУБД.
Логическая модель описывает понятия предметной области, их взаимосвязь, а
также ограничения на данные, налагаемые предметной областью.
Для базы данных программы была разработана логическая модель, представленная на рисунке 1.6.
11
Рисунок 1.5 – Логическая модель базы данных приложения
1.4 Выбор целевой СУБД
Для разработки программного продукта необходимо выбрать базу данных. Наиболее распространенными являются MySQL, PostgreSQL, Oracle.
MySQL
MySQL – это самая распространенная полноценная серверная СУБД.
MySQL очень функциональная, свободно распространяемая СУБД, которая
успешно работает с различными сайтами и веб приложениями. Обучиться использованию этой СУБД довольно просто, так как на просторах интернета вы
легко найдете большее количество информации.
Несмотря на то, что в ней не реализован весь SQL функционал, MySQL
предлагает довольно много инструментов для разработки приложений. Так как
это серверная СУБД, приложения для доступа к данным, в отличии от SQLite
работают со службами MySQL.
СУБД MySQL получила широкое распространение в качестве средства
работы с базами данных в Интернете. Программа совершенно нетребовательна
к ресурсам сервера, на котором работает, очень быстрая и к тому же совершенно бесплатная: исходные коды и дистрибутивы для различных платформ доступны на сайте в Интернете. Изначально программа была ориентирована на
операционную систему Linux, но сейчас уже существуют версии программы
для операционных систем Windows, UNIX, NetBSD, FreeBSD, AIX. В последнее
время программа завоевывает популярность у пользователей Macintosh с использованием операционной системой Mac OSX.
12
Преимущества MySQL:
− простота в работе – установить MySQL довольно просто. Дополнительные приложения, например, GUI, позволяет довольно легко работать с БД;
− богатый функционал – MySQL поддерживает большинство функционала
SQL;
− безопасность – большое количество функций, обеспечивающих безопасность, которые поддерживается по умолчанию;
− масштабируемость. MySQL легко работает с большими объемами данных и легко масштабируется;
− скорость – упрощение некоторых стандартов позволяет MySQL значительно увеличить производительность.
Недостатки MySQL:
− известные ограничения – по задумке в MySQL заложены некоторые
ограничения функционала, которые иногда необходимы в особо требовательных приложениях;
− проблемы с надежностью – из–за некоторых способов обработки данных MySQL (связи, транзакции, аудиты) иногда уступает другим СУБД по
надежности;
− медленная разработка – Хотя MySQL технически открытое ПО, существуют жалобы на процесс разработки. Стоит заметить, что существуют другие
довольно успешные СУБД созданные на базе MySQL, например MariaDB. [8]
PostgreSQL
PostgreSQL является самым профессиональным из всех трех рассмотренных нами СУБД. Она свободно распространяемая и максимально соответствует
стандартам SQL. PostgreSQL или Postgres стараются полностью применять
ANSI/ISO SQL стандарты своевременно с выходом новых версий.
От других СУБД PostgreSQL отличается поддержкой востребованного
объектно–ориентированного и/или реляционного подхода к базам данных.
Например, полная поддержка надежных транзакций, т.е. атомарность, последовательность, изоляционность, прочность (Atomicity, Consistency, Isolation,
Durability (ACID).) Благодаря мощным технологиям Postgre очень производительна. Параллельность достигнута не за счет блокировки операций чтения, а
благодаря реализации управления многовариантным параллелизмом (MVCC),
что также обеспечивает соответствие ACID. PostgreSQL очень легко расширять
своими процедурами, которые называются хранимые процедуры. Эти функции
упрощают использование постоянно повторяемых операций.
Хотя PostgreSQL и не может похвастаться большой популярностью в отличии от MySQL, существует довольно большое число приложений облегчающих работу с PostgreSQL, несмотря на всю мощность функционала. Сейчас довольно легко установить эту СУБД используя стандартные менеджеры пакетов
операционных систем.
Достоинства PostgreSQL:
13
− открытое ПО соответствующее стандарту SQL – PostgreSQL – бесплатное ПО с открытым исходным кодом. Эта СУБД является очень мощной системой;
− большое сообщество – существует довольно большое сообщество в котором вы запросто найдёте ответы на свои вопросы;
− большое количество дополнений – несмотря на огромное количество
встроенных функций, существует очень много дополнений, позволяющих разрабатывать данные для этой СУБД и управлять ими;
− расширения – существует возможность расширения функционала за счет
сохранения своих процедур;
− объектность – PostrgreSQL это не только реляционная СУБД, но также и
объектно–ориентированная с поддержкой наследования и много другого.
Недостатки PostgreSQL:
− производительность – при простых операциях чтения PostgreSQL может значительно замедлить сервер и быть медленнее своих конкурентов, таких
как MySQL;
− популярность – по своей природе, популярностью эта СУБД похвастаться не может, хотя и присутствует довольно большое сообщество;
− хостинг – в силу выше перечисленных факторов иногда довольно
сложно найти хостинг с поддержкой этой СУБД. [8]
Oracle
Надежность, безопасность, высокая производительность, удобство в работе. Это главное, что характеризует продукты Oracle на протяжении уже многих лет. Наиболее важным – это является для СУБД, ставшей на сегодняшний
день практически обязательной частью любой серьезной информационной системы. Но не только эти характеристики позволяют продуктам Oracle удерживать лидерство на рынке СУБД. Стремительно развивающиеся информационные технологии требуют от современных СУБД расширения классической
функциональности лишь по хранению и обработке данных. Двигаясь в ногу со
временем, корпорация Oracle по сути ломает сложившиеся взгляды на СУБД,
наделяя ее все новыми и новыми возможностями.
Современная СУБД Oracle это мощный программный комплекс, позволяющий создавать приложения любой степени сложности. Ядром этого комплекса является база данных, хранящая информацию, количество которой за
счет предоставляемых средств масштабирования практически безгранично. C
высокой эффективностью работать с этой информацией одновременно может
практически любое количество пользователей (при наличии достаточных аппаратных ресурсов), не проявляя тенденции к снижению производительности системы при резком увеличении их числа. [6]
Недостатки Oracle:
− миграция из устаревших файловых систем в ASM может быть проблемой и часто требует отключения системы;
− трудно (если не невозможно) просматривать содержимое ASM при помощи стандартных инструментов ОС. В некоторых случаях данные ASM могут
быть случайно перезаписаны администраторами ОС, которые используют тома
14
диска, которые (для них) кажутся пустыми. Однако существуют административные способы предотвратить это;
− резервное копирование не может быть выполнено с помощью традиционных методов (это называется в Oracle “user managed backup”), которые просто копируют файлы ОС, поэтому вам нужны встроенные инструменты или используйте собственные инструменты Oracle (например, RMAN). [7]
Можно сделать выводы, что большинство критериев зависят по большей
части от поставленной задачи. Моя цель – сделать простую, но очень удобную
и эргономичную систему. Поэтому, для разработки программного продукта
была выбрана СУБД MySQL.
1.5 Физическое проектирование базы данных
Этап физического проектирования базы данных требует поиска проектных
решений, обеспечивающих эффективную поддержку построенной логической
структуры базы данных в среде хранения базы данных. На этом этапе решаются
вопросы построения структуры хранимых данных, размещения хранимых
данных в пространстве памяти, выбора эффективных методов доступа к
различным компонентам физической базы данных. Описывается также
отображение логической структуры базы данных в структуру хранения.
Принятые на этом этапе проектные решения оказывают определяющее влияние
на производительность информационной системы. Они документируются в
форме схемы хранения на языке определения хранимых данных. [5]
Таблица 1.4 – Структура таблиц базы данных
Наименование
поля
Address
Размер Значение по Условие на
поля умолчанию значение
Сотрудники (Employee)
Идентификатор INT
11
сотрудника
(Автоинкремент)
Фамилия
VARCHAR
100
Имя
VARCHAR
100
Отчество
VARCHAR
100
Идентификатор INT
11
типа процедуры
Адрес
VARCHAR
255
DateOB
Дата рождения DATE
Меньше текущей даты
DateOrder
Дата договора
DATE
Phone
Телефон
INT
ВК,
индекс
Уникальное
ВК,
индекс
idEmp
SerName
FirstName
MiddleName
idTypeProc
Содержание
поля
Тип поля
12
15
Ключ /
индекс
ПК,
Индекс
Индекс
Индекс
ВК,
индекс
Продолжение таблицы 1.4
Наименование
поля
idClients
Sername
Firstname
Middlename
Phone
DateOfB
IDCostPrice
Cost
idFactory
NameFactory
idPosts
DateP
idClient
isEmp
idService
idFactory
idProduct
Name
idTypeProc
Содержание
поля
Размер
поля
Тип поля
Значение Условие
по
на
умолчанию значение
Клиенты (Clients)
Идентификатор INT
11
клиента
(Автоинкремент)
Фамилия
VARCHAR
255
Имя
VARCHAR
255
Отчество
VARCHAR
255
Номер
VARCHAR
12
Дата рождения DATE
Себестоимость (Costprice)
Идентификатор INT
11
себестоимости (Автоинкремент)
Стоимость
DOUBLE
Зал (Factory)
Идентификатор INT
11
зала
(Автоинкремент)
Название зала VARCHAR
100
Записи (Posts)
Идентификатор INT
11
издательства
(Автоинкремент)
Дата и время
DATETIME
записи
Идентификатор INT
11
издательства
Идентификатор INT
11
издательства
Идентификатор INT
11
издательства
Идентификатор INT
11
издательства
Продукты (Product)
Идентификатор INT
11
продукта
(Автоинкремент)
Название това- VARCHAR
50
ра
Идентификатор INT
11
Типа процедуры
16
Ключ /
индекс
ПК,
Индекс
Уникальное
Меньше
текущей
даты
ПК,
Индекс
ПК,
Индекс
ПК,
Индекс
Уникальное
ПК,
Индекс
Уникальное
Продолжение таблицы 1.4
Наименование
поля
Содержание
поля
Размер
поля
Тип поля
Значение Условие
по
на
умолчанию значение
Услуги зала (ServiceFactory)
idServiceFactory Идентификатор
INT
11
услуги зала (Автоинкремент)
idService
Идентификатор INT
11
услуги
idFactory
Идентификатор INT
11
зала
Товары для услуг (ServiceProd)
idServiceProd
Идентификатор INT
11
услуг товара
(Автоинкремент)
idService
Идентификатор INT
11
услуги
idProduct
Идентификатор INT
11
продукта
Тип процедуры (TypeProc)
idTypeProc
Идентификатор INT
11
типа процеду- (Автоинкремент)
ры
TypeName
50
Название типа VARCHAR
Рисунок 1.6 – Физическая модель базы данных
17
Ключ /
индекс
ПК,
Индекс
ПК,
Индекс
ПК,
Индекс
Уникальное
Выводы по главе
В первой главе курсовой работы был осуществлён Обзор сервисов для салонов красоты для того, чтобы лучше понимать на что стоит обратить внимание при разработке. После этого было осуществлено концептуальное проектирование базы данных, построены таблицы, описывающие сведения о типах
сущностей проекта, сведения о типах связей проекта, а также построена ER–
модель. Выполнено логическое проектирование базы данных и, в результате,
произведена нормализация до третьей нормальной формы.
Для защиты данных и обеспечения большей гибкости базы данных за
счет исключения избыточности и несогласованности зависимости были установлены отношения между таблицами в соответствии с установленными правилами.
В ходе сравнения трёх СУБД была выбрана оптимальная СУБД для курсового проекта. Ей стала СУБД MySQL. В процессе физического проектирования базы данных была создана база данных, состоящая из 9 таблиц. Проектирование
осуществлялось
в
dbForge
Studio
For
MySQL.
18
2. РАЗРАБОТКА ПРОГРАММНОГО ПРОДУКТА
Во второй главе курсовой работы разрабатывается структура программного продукта, выполняется реализация бизнес–правил. После реализации проекта разрабатываются руководства программиста и пользователя. Для того,
чтобы свести к минимуму возможные ошибки в работе системы производится
тестирование программного продукта и исправление ошибок.
2.1 Структура программного продукта
Программа разработана в среде «Embarcadero Rad Studio 2010» с использованием СУБД MySQL 5.5 и программой для администрирования dbForge
Studio 2019 for MySQL. Продукт состоит из 17 форм (модулей), его схема представлена на рисунке 2.1.
Рисунок 2.1 – Схема программного продукта
2.2 Реализация бизнес–правил
Бизнес-правила представляют собой специализированный вид логики,
описывающей ограничения на образ действий, которые система или люди
должны учитывать в своем поведении. Эти правила определяются целым рядом
факторов, включая директивы распорядительных органов, промышленные
стандарты, деловую хватку и простой здравый смысл. Нередко они изменяются
от страны к стране, от отрасли к отрасли, и даже от бизнеса к бизнесу.
Бизнес-правила существуют на разных уровнях. Некоторые из них оказывают влияние на всю систему, и многие системы, на самом деле, целиком создаются лишь для того, чтобы ввести в действие бизнес-правила. Бизнесправила также могут значительно различаться по размерам области влияния.
Но, несмотря на это, все бизнес-правила имеют одно общее свойство: они
управляют некоторой составляющей бизнеса. По определению, бизнес-правило
есть ограничение, применяемое по отношению к человеку, бизнесу, составля-
ющей бизнеса или действию. Далее речь пойдет о некоторых подробностях, характерных для унифицированных языков моделирования. [1].
Были разработаны следующие бизнес-правила:
− база данных должна обеспечивать ссылочную целостность, автоматическое обновление таблиц в приложении;
− база данных должна позволять осуществлять быстрый поиск и фильтрацию списка: записей, клиентов, сотрудников, материалов, услуг, помещений;
− база данных должна иметь удобный способ ввода новых данных и редактирования имеющихся;
− база данных должна позволять формировать отчеты;
− база данных должна позволять собирать статистику по доходности: сотрудников, от клиентов по дате, помещений по услугам, каждого из помещений, каждой из услуг.
Разработана диаграмма прецедентов пользователя рисунке 2.2.
Рисунок 2.2 – UML-диаграмма прецедентов
Диаграмма активности устанавливает правила обязательной последовательности действий, которым должны следовать, рисунок 2.3.
20
Рисунок 2.3 – Диаграмма активности
В листинге 2.1 представлен SQL-запрос на себестоимость каждой из
услуг.
Листинг 2.1 – SQL-запрос на себестоимость каждой из услуг
SELECT
`service`.`idService` AS `idService`,
`service`.`NameService` AS `NameService`,
SUM(`view_prod_by_type_cost`.`Cost`) AS `Cost_of_prod_for_serv`
FROM ((`serviceprod`
JOIN `service`
ON ((`serviceprod`.`idService` = `service`.`idService`)))
JOIN `view_prod_by_type_cost`
ON ((`view_prod_by_type_cost`.`idProduct` = `serviceprod`.`idProduct`)))
GROUP BY `service`.`idService`,
`service`.`NameService`;
В листинге 2.2 представлен SQL-запрос на выборку всех клиенток с
датами и стоимостью по каждой записи в салоне.
Листинг 2.2 – SQL-запрос на себестоимость каждой из услуг
SELECT
`view_clients`.`FIOc` AS `FIOc`,
`posts`.`DateP` AS `DateP`,
`service`.`Cost` AS `Cost`
FROM ((`posts`
JOIN `view_clients`
ON ((`posts`.`idClient` = `view_clients`.`idClients`)))
JOIN `service`
ON ((`posts`.`idService` = `service`.`idService`)))
GROUP BY `posts`.`DateP`,
`posts`.`idClient`,
`posts`.`idService`,
`view_clients`.`idClients`,
`view_clients`.`FIOc`,
21
`service`.`idService`,
`service`.`Cost`;
В листинге 2.3 представлен SQL-запрос на выборку всех сотрудников по
полной стоимости и чистой доходности от каждой записи.
Листинг 2.3 – SQL-запрос на формирование списка всех сотрудников по полной
стоимости и чистой доходности от каждой записи
SELECT
`employee`.`idEmp` AS `idEmp`,
`employee`.`SerName` AS `SerName`,
`employee`.`FirstName` AS `FirstName`,
`employee`.`MiddleName` AS `MiddleName`,
`posts`.`DateP` AS `DateP`,
`view_factory_income`.`Fact_income` AS `Fact_income`,
(`view_factory_income`.`Fact_income` * 0.47) AS `salary`
FROM ((`posts`
JOIN `employee`
ON ((`posts`.`isEmp` = `employee`.`idEmp`)))
JOIN `view_factory_income`
ON ((`posts`.`idFactory` = `view_factory_income`.`idFactory`)));
В листинге 2.4 представлен SQL-запрос на выборку помещений и доходу
от каждого из них.
Листинг 2.4 – SQL-запрос на формирование списка всех помещений и доходу от
каждого из них
SELECT
`view_factory_service`.`idFactory` AS `idFactory`,
`view_factory_service`.`NameFactory` AS `NameFactory`,
SUM(`view_factory_service`.`Income`) AS `Fact_income`
FROM `view_factory_service`
GROUP BY `view_factory_service`.`idFactory`,
`view_factory_service`.`NameFactory`;
В листинге 2.5 представлен SQL-запрос на выборку по каждой услуге и
чистой доходности в помещении.
Листинг 2.4 – SQL-запрос на формирование списка по каждой услуге и чистой
доходности в помещении
SELECT
`factory`.`idFactory` AS `idFactory`,
`factory`.`NameFactory` AS `NameFactory`,
`view_service_income`.`NameService` AS `NameService`,
`view_service_income`.`Income` AS `Income`
FROM ((`servicefactory`
JOIN `factory`
ON ((`servicefactory`.`idFactory` = `factory`.`idFactory`)))
JOIN `view_service_income`
ON ((`view_service_income`.`idService` = `servicefactory`.`idService`)));
2.3 Руководство программиста
При разработке программного продукта использовались следующие программно-аппаратные ресурсы:
22
− стандартная клавиатура;
− манипулятор «мышь»;
− процессор Intel® Celeron® CPU N3050 @ 1.60 GHz;
− ОЗУ (оперативное запоминающее устройство) 8 Гб;
− среда разработки приложений «Embarcadero Rad Studio 2010»;
− СУБД MySQL 5.5;
− программа для администрирования dbForge Studio 2019 for MySQL;
− генератор отчетов Fast Report 4;
− язык программирования Delphi.
Установка программы осуществляется путем переноса папки с программой с носителя на компьютер пользователя. Запуск производится exe-файлом
после запуска базы данных.
2.4 Руководство пользователя
Пользователь, попав на главную форму, может перейти в любую из доступных таблиц, отображённых на навигационной панели сверху. Пример
отображения таблицы рисунок 2.4.
Рисунок 2.4 – Главная форма
Для фильтрации записей, нужно выбрать одно из условий фильтрации:
клиент, сотрудник, услуги, зал. После ввода данных для фильтрации, информация в таблице будет отфильтрована, примеры показаны на рисунках 2.5–2.7.
23
Рисунок 2.5 – Фильтрация по клиентам
Рисунок 2.6 – Фильтрация сотрудников
24
Рисунок 2.7 – Фильтрация услуг
Пользователь может воспользоваться функцией поиска. Для этого в поисковую строку, расположенную сверху прямо под таблицей, необходимо ввести
поисковой запрос. Поиск осуществляется по всем полям, рисунок 2.8.
Рисунок 2.8 – Поиск
25
В таблицах редактирование записей расположено внизу активной таблицы. Необходимо нажать на «Добавить», «Изменить, «Удалить», и появится активная панель для редактирования данных (Рисунки 2.9–2.10)
Рисунок 2.9 – Режим добавления клиента
Рисунок 2.10 – Режим добавления записи
Для того, чтобы пользователь имел наглядное представление о доходе по
каждому сотруднику, то необходимо зайти на форму «Employee» и нажать на
кнопку «Доход сотрудников». В результате, можно увидеть график дохода по
каждому сотруднику и возможность вывода отчета, рисунок 2.11.
26
Рисунок 2.11 – Вывод графика по доходности сотрудника
2.5 Тестирование программного продукта
Для того, чтобы удостовериться в работоспособности программного продукта,
возможности выполнения всех заданных в техническом задании транзакций,
корректности реализации бизнес–правил, поведении программного продукта
при ошибочных действиях пользователя (неправильный ввод данных,
внештатное прерывание работы программного продукта, попытка обращения к
недоступным для него данным и т. п.) было проведено тестирование при
объёме данных примерно в 150 строк записей. В результате процесса
тестирования были устранены основные неточности и ошибки в логике работы,
произведено добавление проверяющих условий и информационных окон об
ошибках. Ошибки и результаты тестирования обобщены в таблице 2.1.
Таблица 2.1 – Результаты тестирования
№
1
Цель испытания
Проверка корректности работы объектов
ввода
2
Проверка корректности средств отображения табличных данных
Объект
Объекты ввода, представленные в окнах «Записи»,
«Сотрудники»,
«Клиенты», «Материалы по
услугам», «Себестоимость
товаров»,
«Материалы», «Тип процедуры»,
«Услуги зала», «Залы»,
«Услуги»
Объекты вывода табличных
данных, представленные в окнах: «Клиенты», «Материалы
по услугам», «Себестоимость
товаров»,
27
Результат
Все поля позволяют ввести корректные данные, ввод
некорректных данных
не позволяется
Табличные данные
выводятся корректно
3
4
5
6
7
Проверка корректности работы SQL запросов
Проверка корректности работы отчетов
Проверка корректности работы графиков
Поверка корректности
поиска необходимых данных
Проверка обновления графиков, в зависимости от установленного
фильтра
«Материалы», «Тип процедуры»,
«Услуги зала», «Залы»,
«Услуги»
SQL запросы, представленные на невизуальном модуле.
Отчеты, представленные в окнах
«Записи», «Материалы», «Себестоимость товаров»,
«Залы», «Клиенты»
Графики, представленные в окнах «Записи»,
«Клиенты»,
«Сотрудники»,
«Себестоимость товаров»,
«Услуги зала»,
«Залы», «Услуги»
Объекты ввода данных
для поиска в окне «Записи»
Графики, представленные в окнах «Клиенты»,
«Сотрудники»
SQL запросы правильно составлены и
отображаются
Все отчеты выводят
корректные результаты
Все графики выводят
корректные результаты
Продолжение таблицы 2.1
Поиск по данным выполняется корректно
Обновление графиков, в зависимости от
установленного
фильтра отображается корректно
В ходе тестирование большинство тестов были успешны. Ошибки, возникшие в ходе тестирования были успешно устранены.
Выводы по главе
Во второй главе курсовой работы была определена структура программного продукта. Произведён обзор спектра возможностей для приложения. Помимо этого, приведена краткая теория для бизнес–правил, а также построены
UML–диаграммы активности и прецедентов для большей наглядности возможностей программы. Для дальнейшего сопровождения программного продукта
написаны руководства программиста и пользователя.
Для того, чтобы убедиться в работоспособности и отказоустойчивости
проекта произведено тестирование программы. Ошибки, полученные в ходе тестирования
были
оперативно
исправлены.
28
ЗАКЛЮЧЕНИЕ
В результате выполнения курсовой работы была разработана автоматизированная система учета записей в салоне красоты.
Для этого сначала были рассмотрены варианты сервисов, автоматизирующий процесс записи клиентов. Затем было произведено концептуальное проектирование базы данных, построены таблицы, описывающие сведения о типах
сущностей проекта, сведения о типах связей проекта, а также построена ER–
модель. Выполнено логическое проектирование базы данных. Выбрана целевая
СУБД. Выбор производился среди трёх СУБД: PostgreSQL, MySQL и Oracle. По
итогам сравнения в качестве СУБД для курсового проекта стала СУБД MySQL.
Осуществлено физическое проектирование БД – описание структуры хранения
данных и эффективных методов доступа к данным базы. В ходе процесса физического проектирования базы данных была сформирована таблица с описанием физической реализации сущностей. База данных состоит из 9 таблиц.
При реализации проекта сначала была разработана структура приложения, затем разработаны бизнес–правила, которые были описаны при помощи
языка UML для большей наглядности возможностей программы. Написаны руководства программиста и пользователя для демонстрации работы программы и
дальнейшего её сопровождения. Произведено тестирование программы для того, чтобы убедиться в работоспособности и отказоустойчивости проекта.
По итогу курсовой работы была реализована автоматизированная система
салона красоты, позволяющая пользователю просмотреть список записей и связанную с ним информацию, добавить новые данные и вывести доходность салона в виде графиков. Со стороны пользователя были реализованы возможности для управления записями в БД, а именно их поиск, фильтрация, добавление,
удаление и редактирование.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1) Жданова К.Д., Заскалько Е.В. Системы управления бизнес-правилами в
условиях современного бизнеса // Международный студенческий научный
вестник. – 2015. – № 6.
2) Когаловский М.Р. Технология баз данных на персональных ЭВМ–
2013.
3) Тиори Т., Фрай Дж. Проектирование структур баз данных. М, –1985.
4) Хаббард Дж. Автоматизированное проектирование баз данных. М, –
1984.
5) Логическое проектирование [Электронный ресурс] Режим доступа:
URL: http://karpov–k.me/computernaya–nauka/bd/353–logicheskoe–proektirovanie–
bd (дата обращения 3.06.2020)
6) Основная информация Oracle [Электронный ресурс] Режим доступа:
URL: http://omega.ru/oracleinfo.html (дата обращения 3.06.2020)
7) Недостатки Oracle [Электронный ресурс] Режим доступа: URL:
https://kztarif.ru/kompjutery/oracle-pljusy-i-minusy (дата обращения 3.06.2020)
8) PostgreSQL и MySQL [Электронный ресурс] Режим доступа: URL:
https://devacademy.ru/article/sqlite-vs-mysql-vs-postgresql
9) 7 сервисов для онлайн–записи клиентов [Электронный ресурс] Режим
доступа: URL: https://secretmag.ru/business/methods/7–servisov–dlya–onlajn–
zapisi.htm (дата обращения: 3.06.2020).
ПРИЛОЖЕНИЕ А
ТЕХНИЧЕСКОЕ ЗАДАНИЕ НА РАЗРАБОТКУ
Введение
На сегодняшний день запись клиентов в салон красоты происходит трудоемко. Для того, чтобы записать только одного клиента уходит очень много
времени. Девушка администратор должна найти нужный журнал, сообщить о
свободных датах и предоставляемых мастерах. Это занимает около 10 минут.
После всех манипуляций с журналом происходит запись клиента. Поэтому данный вид записи имеет недостатки такие, как: ошибки в записях, не читаемость
информации о клиенте, потеря журнала, порча журнала. В результате, салон теряет клиентов, а, следовательно, прибыль. В связи с этим разработка системы
учета записей в салоне красоты «BeautyAccounting» является актуальной задачей.
Общие положения.
Полное наименование: разработка системы учета записей в салоне красоты «BeautyAccounting».
Краткое наименование: «BeautyAccounting».
Вид разработки: информационно–справочная система.
Разработчик: Ооржак Ай-Кат Катовна.
Основание для разработки
Разработка системы учета записей в салоне красоты ведется на основании
учебного плана СибГУ им. М. Ф. Решетнева по направлению подготовки
09.03.02 «Информационные системы и технологии».
Плановые сроки начала и окончания выполнения работы
Плановый срок начала работ по разработке системы учета записей в салоне красоты «BeautyAccounting» – 20.02.2020
Плановый срок окончания работ по разработке системы учета записей в
салоне красоты «BeautyAccounting» – 13.06.2020
Назначение разработки
Разрабатываемый программный продукт предназначен для организации
работы администратора и бухгалтера салона красоты.
Требования к программе
Требования к функциональным характеристикам
В системе учета записей в салоне красоты должно быть предусмотрено
защита от некорректного ввода данных в виде скрывающейся панели.
Системы учета записей в салоне красоты должна:

просмотр информации о записях;
 поиск и фильтрация записей;
 добавление данных (новый клиент, сотрудник, материал по услугам,
товар, услуга, зал, форматы;
 представление статистической информации в виде графиков.
Ввод данных должен выполняться в таблицах программы через exe–файл.
Вывод информации должен выполняться в виде таблиц приложения.
Создаваемые отчеты в системе учета записей в салоне красоты должны
предоставлять следующую информацию:
 список товаров по типам услуг;
 список записей по услугам;
 список записей по залам;
 список клиентов;
 список товаров с себестоимостью.
Требования к надежности
В системе учета записей в салоне красоты должен быть обеспечен контроль за корректностью введённых данных. Возникновение каких–либо внутренних ошибок не должно приводить к утере данных. Система учета записей в
салоне красоты должна быть отказоустойчива.
Для защиты от несанкционированного использования должно быть
предусмотрено ограничение на вход в систему.
Условия эксплуатации
Приложение рассчитано на эксплуатацию пользователями салона
красоты.
Требования к составу и параметрам технических средств
 процессор: Intel Pentium 4 и более поздней версии 1 ГГц и выше;
 ОЗУ (оперативное запоминающее устройство): 1 Гб.
Требования к информационной и программной совместимости
 Операционная система: Windows 10.
 ODBC-драйвер для MySQL версии не менее 5.2.6.
Состав и содержание работ по выполнению курсовой работы
Таблица А.1 – Календарный план–график выполнения стадий и этапов разработки
Наименование работ
Анализ информационных потоков в сфере салонов красоты
Обзор сервисов для салонов красоты
Концептуальное проектирование базы данных
Разработка бизнес–правил
Логическое проектирование базы данных
Выбор целевой СУБД
Физическое проектирование базы данных
Разработка структуры программного продукта
Разработка пользовательского интерфейса
Программная реализация системы учета записей в салоне красоты
Разработка отчетов и графиков
Тестирование и отладка системы учета записей в салоне красоты
Оформление пояснительной записки
Предоставление преподавателю всех необходимых для защиты материалов
32
Сроки
выполнения
23.02.2020
27.02.2020
05.02.2020
01.03.2020
16.03.2020
18.03.2020
01.04.2020
10.04.2020
15.04.2020
15.05.2020
20.05.2020
24.05.2020
06.06.2020
13.06.2020
ПРИЛОЖЕНИЕ Б
ПРИМЕРЫ ОТЧЕТОВ И ГРАФИКОВ
Рисунок B.1 – Список записей
Рисунок B.2 – Себестоимость услуг
Рисунок B.3 – Список клиентов
34
Рисунок B.4 – Список материалов
35
Рисунок B.5 – Доход сотрудников
Рисунок B.6 – График по доходам всех записей
36
Рисунок B.7 – График по доходам сотрудников
Рисунок B.8 – График по доходам от клиентов
37
Рисунок B.9 – График по себестоимости материалов
Рисунок B.10 – График дохода услуг в залах
Рисунок B.11 – График дохода услуг
38
Рисунок B.12 – График дохода в залах
39
Download