Проектирование логической модели системы
Введение
В последние годы происходит революционное расширение круга задач, которые решаются с помощью компьютеров. Причем расчеты стали в этом круге занимать совершенно незначительное место. Методы обработки, хранения и передачи информации с помощью компьютеров называют компьютерными информационными технологиями.
Современные компьютеры активно применяются в различных сферах человеческой деятельности, так как на сегодняшний день у них расширены функциональные возможности. Деятельность людей связана с обработкой и поиском данных, выполнение различных расчетов, заполнение документов. Все это трудоемкий процесс, и именно благодаря автоматизированным информационным системам он упрощается. Всюду, где нужно хранить, передавать и обрабатывать информацию, компьютер становится незаменимым помощником человеку.
Тема курсового проекта - разработка многопользовательской информационной системы «Парикмахерская».
Цель включает проектирование и реализацию соответствующего программного обеспечения для выбранной предметной области.
Задачами курсового проектирования являются:
- систематизация знаний, полученных при изучении дисциплины;
- приобретение опыта в комплексной разработке и реализации практических задач;
- совершенствование практических навыков в использовании и разработке современных информационных систем;
- практическое использование программы Microsoft SQL Server.
Техническое задание
Анализ предметной области
1.1.1Общие сведения. Объект автоматизации – парикмахерская. Документы, на основании которых создается система:
- правила бытового обслуживания;
- перечень оказываемых услуг;
- должностные инструкции;
- выписка из СанПин о потребителях обслуживание которых запрещаеся;
- правила пользования парикмахерским инвентарем;
- акты на списание не пригодного для использования инвентаря.
1.1.2 Назначение и цели создания системы. Проектирование многопользовательской информационной системы. Систему предполагается использовать на рабочем месте администратора для увеличения скорости обслуживания клиентов. Система позволит облегчить процесс обслуживания клиентов, т.к. он будет вестись автоматизировано. При её применении станет легче подбирать мастера, выполняющего парикмахерские услуги, проверять наличие свободных мастеров, подбирать удобное для клиентов время. Процесс записи к парикмахеру будет осуществляться быстрее, так как это можно будет осуществить прямо с рабочего места.
Цели создания системы. Систему предполагается создать для улучшения качества обслуживания посетителей, обслуживания большего числа клиентов и ускорения работы администратора.
Критерий оценки достижений целей системы – увеличение числа обслуживаемых посетителей. Т.к. система позволит увеличить скорость обслуживания, то увеличится число обслуживаемых клиентов.
Критерием оценки достижений целей системы будет уменьшение вероятности потери информации об оказываемых услугах, которыми пользуются клиенты, вероятности неверной записи клиента к мастеру.
1.1.3 Характеристика объектов автоматизации. Парикмахерская — это предприятие, занимающееся предоставлением услуг для населения по уходу за волосами (стрижка, завивка, создание причёски, окраска, мелирование и другие виды работ с красителями, бритьё и стрижка бород, усов и др.) в оборудованном специально для этого помещении. Стоимость и качество услуг парикмахера зависит от типа оказываемых услуг.
Парикмахерские, в зависимости от ассортимента и качества оказываемых услуг бывают следующих видов:
- парикмахерская;
- парикмахерская-салон;
- парикмахерская-люкс.
Как выше было сказано, парикмахерская – это предприятие, где делают прически, завивку, стригут, красят и т.д.
Парикмахерская - салон оказывает более широкий спектр услуг. В нем оказывают как косметологические услуги, так и маникюр, педикюр и прочее.
А парикмахерская - люкс отличается от всех остальных видов более квалифицированными специалистами и расширенной сферой услуг (массажами головы, рук и т.д.)
Процесс обслуживания клиентов можно разбить на несколько этапов:
- запись – предварительная запись клиента к специалисту;
- оказание услуг – окраска, мелирование, стрижка, и т.д.;
- предоставление дополнительных услуг;
- оплата за предоставленные услуги.
В парикмахерской работают служащие с высшим образованием и средним специальным.
Систему предполагается использовать на рабочем месте администратора. В отделе обслуживания она предполагается использоваться для поиска свободных мастеров, для выбора даты, удобной для клиента, а так же внесение сведений об услугах, которые заказывает клиент.
1.1.4 Требования к системе. Система должна удовлетворять следующим требованиям:
- надежности;
- безопасности;
- информация, хранящаяся в системе должна быть защищена от аварийных ситуаций, влияния внешних воздействий (радиоэлектронная защита);
- квалификация персонала, персонал должен быть обучен правилам работы с системой, при этом не обязательно наличие специального технического образования.
Функции, выполняемые подсистемами объекта автоматизации:
- выдача информации об оказываемых услугах, которыми пользуется клиент, автоматизированная система хранит эту информацию сколь угодно долго.
- запись новых клиентов в парикмахерскую; при использовании автоматизированной системы запись клиентов будет осуществляться легко и быстро, для этого необходимо занести информацию о записи клиента в нужное поле, после чего нажать кнопку добавить.
- поиск сотрудников нужной квалификации, для оказания услуги, для того чтобы найти интересующую информацию пользователь должен в пункте меню «файл» выбрать подпункт «процедуры» и из списка выбрать нужную процедуру;
- поиск клиентов, записанных на интересующее нас число, для того чтобы найти интересующую информацию пользователь должен в пункте меню «файл» выбрать подпункт «процедуры» и из списка выбрать нужную процедуру;
- возможность редактирования баз данных, имеющихся в системе, для редактирования данных пользователь должен поставить галочку для редактирования данных, после этого произвести необходимые изменения в открывшемся окне и сохранить изменения;
- возможность добавления новых данных о клиентах, сотрудниках, оборудовании и аксессуаров, для добавления новых сведений в эти базы данных пользователю нужно ввести данные в соответствующие поля, размещенные на панели для добавления.
- выдача информации о клиенте в соответствии с нужным критерием, без использования автоматизированной системы поиск информации о клиенте занимает значительное время; в автоматизированной системе для поиска будет необходимо только ввести нужный критерий и информация о клиенте будет готова;
- выдача информации о сотрудниках в соответствии с критерием поиска, без использования автоматизированной системы поиск информации о сотруднике занимает значительное время; в автоматизированной системе для поиска будет необходимо только ввести нужный критерий и информация о клиенте будет готова;
- удаление информации.
Для внесения новых каталогов и журналов в список сотрудникам необходимо заполнить много разных документов, проверить правильность их заполнения. При использовании автоматизированной системы проверка и заполнение будет осуществляться одновременно.
1.1.5 Требования к видам обеспечения. Программное обеспечение системы не должно зависеть от аппаратных средств компьютера.
Необходимое программное обеспечение: С++Builder 6, MS Word 2003/2007, MS SQL Server 2000.
1.1.7 Оформление технической документации выполнить в соответствие с требованиями стандарта. Вся техническая документация должна быть оформлена по стандарту СТП 7-2005.
1.1.8 Источники разработки. А.Я. Архангельский «Программирование в Borland С++ Builder 6», Культи Н. Б. «Основы программирования в Borland С++ Builder 6, С. И. Бобровский Borland С++ Builder 6. Учебный курс», Романов. Практикум по программированию на С++. Учебное пособие.
Постановка задачи
Главной задачей администратора парикмахерской является общение с клиентами. При обращении клиента к администратору, он получает информацию об услугах (перечень имеющихся услуг, стоимость, мастера выполняющего данную услугу, а также число, на которое можно записаться). Администратор должен обеспечить быстрое оформление клиента на какую-либо из предоставляемых услуг (внести данные о клиенте, число записи и наименование предоставляемой услуги). При автоматизированной информационной системе, возможно, получить быстро информацию о производимых услугах, об их предоставлении клиентам, о работающем персонале в данной парикмахерской и об имеющемся оборудовании и аксессуарах. При необходимости дополнительной работы с данными базы, можно в любое нужное место любой из таблиц вносить требующиеся сведения.
Создание базы данных позволяет автоматизировать процесс:
- ввода данных о клиентах;
- ввода данных о сотрудниках;
- ввода данных об оборудовании и аксессуарах;
- ввода данных о записи клиентов;
- ввода данных о предоставляемых услугах;
- поиска записей по фрагменту значения поля базы данных.
- редактирования данных о клиентах;
- редактирование данных о сотрудниках;
- редактирование данных об оборудовании и аксессуарах;
- формирование отчетов.
Информационная система должна быть корректной и доступной для любого пользователя.
Интерфейс, наиболее используемый компонент базы данных, должен быть понятен пользователю и, в тоже время, обеспечивать широкие функциональные возможности по работе и редактированию базы данных.
Проектирование логической модели системы
Функциональная модель
Функциональную модель необходимо строить для описания работы программы. Систему представляют, как взаимодействие отдельных функций и работ. Наиболее наглядно и понятно функциональная модель реализуется с помощью CASE-средства BP-win, при помощи нотаций DFD или IDEF0. При этом разрабатываются контекстная диаграмма и диаграммы детализации процессов.
Работу администратора парикмахерской можно схематически изобразить в виде контекстной диаграммы. Входными данными является информация о клиентах, графических изображениях, сотрудниках, а также об услугах и графике работы. Результатом функционирования являются различные отчеты: о клиентах, о графике работы, об услугах, а также об оказанных услугах и об оплате, а также к выходным данным относится информация о записи клиентов, данные о клиентах и о сотрудниках. Механизмом исполнения работы являются сотрудники (в соответствии с рисунком 1).
Рисунок 1 – Контекстная диаграмма
В дальнейшем диаграмма детализируется на уровни. Первый уровень – это диаграмма (представлена на рисунке 2), с помощью которой производится детализация основного процесса, находящегося на контекстной диаграмме. Контекстную диаграмму разбиваем на 3 процесса.
Рисунок 2 – Декомпозиция процесса “Организовать работу парикмахерской”
Полученные процессы – «Организовать работу администратора», «Организовать работу отдела обслуживания», «Организовать работу отдела дополнительных услуг» – также подлежат дальнейшей детализации (представлены на рисунках 3-13).
Процесс «Организовать работу администратора» детализируем на 4 процесса - «Организовать регистрацию клиента», «Организовать информирование клиентов», «Организовать выборку клиентов» и «Организовать выборку персонала». Входными данными являются информация о сотрудниках, информация о клиенте, информация об услугах и о графике работы. Выходными – отчет о клиентах, отчет об услугах, график работы данные о клиентах и о сотрудниках.
Рисунок 3 – Декомпозиция процесса “Организовать работу администратора”
Процесс «Организовать регистрацию клиента» детализируем еще на 5 блоков - «Получить данные о клиенте», «Занести клиента в базу», «записать клиента к мастеру», «определить число записи на прием» и «определить предоставляемые клиенту услуги». Входными данными являются информация о клиенте и информация, о сотрудниках. Выходными – отчет о клиентах, информация о записи, данные о клиенте, отчет об услугах. Механизмом, исполняющим работу, являются сотрудники.
Рисунок 4 – Декомпозиция процесса “Организовать регистрацию клиента”
Процесс «Организовать информирование клиентов» разбиваем на 2 блока- «Сформировать отчет об услугах и стоимости» и «Сформировать отчет о графике работы». Входными данными являются информация об услугах и информация о графике работы. Выходными – отчет об услугах и график работы.
Рисунок 5 – Декомпозиция процесса “ Организовать информирование клиентов ”
Процесс «Организовать выборку клиентов» разбиваем на 6 блоков – «Организовать поиск клиента, фамилия которого заканчивается на «ова»», «Орга-низовать поиск клиента, имя которого заканчивается на «а»», «Организовать поиск клиента, отчество которого заканчивается на «ч»», «Организовать поиск клиента, фамилия которого начинается на «К»», «Организовать поиск клиента, № которого равен 8», «Организовать поиск клиентов, № которых равны 1-10». Входными данными являются информация о клиентах, выходными – данные о клиентах.
Рисунок 6 – Декомпозиция процесса “ Организовать выборку клиентов ”
Процесс «Организовать выборку персонала» разбиваем на 7 блоков – «Организовать поиск сотрудника, фамилия которого заканчивается на «ов»», «Организовать поиск сотрудника, имя которого заканчивается на «я»», «Организовать поиск сотрудника, отчество которого заканчивается на «а»», «Организовать поиск сотрудника, фамилия которого начинается на «Р»», «Организовать поиск сотрудника, № которого равен 11», «Организовать поиск сотрудников, № которых равны от 10 до 20», «Организовать поиск сотрудника по № отдела». Входными данными являются информация о сотрудниках, выходными – данные о сотруднике.
Рисунок 7 – Декомпозиция процесса “ Организовать выборку персонала ”
Процесс «Организовать работу отдела обслуживания» детализируем на 2 процесса - «Организовать работу мастеров» и «Организовать работу отдела тех. обслуживания». Входными данными являются информация о сотрудниках, информация об аксессуарах и информация об услугах. Выходными – отчет об оказанных услугах. Механизмом являются сотрудники.
Рисунок 8 – Декомпозиция процесса “Организовать работу отдела обслужи-
вания ”
В свою очередь процесс «Организовать работу мастеров» можно разбить еще на 2 процесса - «Организовать работу женского зала» и «Организовать работу мужского зала». Входными данными является информация о сотрудниках, информация об услугах и информация об аксессуарах. Выходными - отчет об оказанных услугах. Механизмом являются сотрудники.
Рисунок 9 – Декомпозиция процесса “ Организовать работу мастеров ”
Процесс «Организовать работу женского зала» разбиваем на 3 блока - «определить мастера, выполняющего заданную операцию», «выбрать услугу по уходу за волосами для женщин» и «Сформировать отчет о предоставленных мастером услуг». Входными данными являются информация о сотрудниках и информация об услугах. Выходными – отчет об оказанных услугах. Механизмом являются сотрудники.
Рисунок 10 – Декомпозиция процесса “ Организовать работу женского зала ”
Процесс «Организовать работу мужского зала» разбиваем на 2 блока - «выбрать услугу по уходу за волосами для мужчин» и «оформить отчет о предоставленных мастером услуг». Входными данными являются информация о сотрудниках и информация об услугах. Выходными – отчет об оказанных услугах. Механизмом являются сотрудники.
Рисунок 11 – Декомпозиция процесса “ Организовать работу мужского зала ”
Процесс «Организовать работу отдела дополнительных услуг» разбиваем на 1 блок - «Организовать работу маникюрного кабинета», где входными данными являются информация о сотрудниках, информация об услугах, информация о клиентах. Выходными – отчет об оказанных услугах. Механизмом являются сотрудники.
Рисунок 12 – Декомпозиция процесса “ Организовать работу отдела дополнтель-
ных услуг ”
Процесс «Организовать работу маникюрного кабинета» разбиваем на 3 блока - «Записать клиента к мастеру на маникюр», «выбрать услугу по уходу за руками и ногтями», «оформить отчет о предоставленной клиенту услуге», где входными данными являются информация о сотрудниках, информация об услугах, информация о клиентах. Выходными – отчет об оказанных услугах. Механизмом являются сотрудники.
Рисунок 13 – Декомпозиция процесса “ Организовать работу маникюрного
кабинета ”
Диаграмма дерева узлов. Диаграмма дерева узлов показывает иерархию процессов в модели и позволяет рассмотреть всю модель целиком, но не показывает взаимосвязи между процессами. Она имеет вид традиционного иерархического дерева, где верхний узел (прямоугольник) соответствует работе с контекстной диаграммы, а последующие нижние узлы представляют собой дочерние уровни декомпозиции. Можно также создать диаграмму дерева узлов лишь для некоторой части модели.
На диаграмме дерево узлов нижний уровень детализации представляется в виде списка, остальные процессы в виде прямоугольников. Диаграмма дерева узлов проектируемой базы данных представлена на рисунке 14.
Рисунок 14 – Диаграмма дерева узлов
Информационная модель
Для отображения информационной модели рассматриваемого процесса используются следующие сущности:
- «Клиенты» – для отображения информации о клиентах. Содержит код клиента, фамилию, имя, отчество и номер телефона.
- «Персонал» – для отображения информации об обслуживающем персонале. Содержит табельный номер сотрудника, фамилию, имя, отчество, должность и отдел в котором он работает.
- «Запись клиента» – для хранения информации о записи клиента на какую-либо из услуг. Данная сущность содержит информацию о числе записи, номере услуги, клиента и табельного номера сотрудника, предоставляющего данную услугу.
- «Услуги» – информация об услугах. Содержит код услуги, наименование, стоимость и табельный номер сотрудника, предоставляющего данную услугу.
- «Оборудование и аксессуары» – хранит информацию об оборудовании и аксессуарах имеющихся в парикмахерской. Содержит информацию о коде аксессуара, наименовании, дате получения, табельно номера сотрудника, которым было получено оборудование и номере отдела получившего аксессуар либо оборудование.
- «Отделы» – для отображения информации об отделах. В данной сущности отображается номер отдела, его название и фамилия начальника.
На логическом уровне проектирования в моделируемой базе данных присутствуют следующие типы связей между описанными сущностями:
- иденцифицирующие связи;
- неиденцифицирующие связи;
- связи один-ко-многим.
Связь между сущностями «Персонал» и «Отделы» не идентифицирующая, т.к. в каждом отделе может работать несколько сотрудников. Связь не разрешает присутствие нулей. Тип связи 1 ко многим.
Связь между сущностями «Персонал» и «Оборудование и аксессуары» идентифицирующая. Тип связи один ко многим, так как один сотрудник может заказывать много аксессуаров необходимых для работы.
Связь между сущностями «Персонал» и «Услуги» не идентифицирующая, так как любую услугу из списка должен выполнять мастер соответствующей квалификации (должности). Тип связи один ко многим, так как не один мастер может осуществлять различные виды услуг.
Связь между сущностями «Клиенты» и «Запись» идентифицирующая, так как для записи в парикмахерскую необходима информация о клиенте и о числе, интересующего клиента. Тип связи один ко многим, так как один клиент может записываться на множество услуг.
Связь между сущностями «Запись» и «Услуги» идентифицирующая, так как для записи необходима информация об услугах. Тип связи один ко многим, так как на одну запись клиента может предоставляться множество услуг.
ER – диаграмма логического уровня приведена на рисунке 15.
Рисунок 15 – ER – диаграмма логического уровня.
Первая нормальная форма требует, чтобы значения всех атрибутов отношения были атомарными. При рассмотрении информационной модели было отмечено, что значения атрибутов всех отношений логически разделить на элементы нельзя и, следовательно, они удовлетворяют условию первой нормальной формы. Пример, рассмотрим таблицу «Клиенты». Ключевой атрибут в ней – «Номер_клиента» не может быть разделен на элементы. Не ключевые атрибуты – «фамилия», «имя», «отчество», «телефон» также являются атомарными.
ER-диаграмма физического уровня. Очень важно было при проектировании информационной модели данных обеспечить целостность по сущности и по ссылкам.
Для соблюдения целостности достаточно гарантировать отсутствие в любом отношении картежей с одним и тем же значение первичного ключа. При обновлении ссылающегося отношения или модификации значений внешнего ключа в существующих ключах достаточно следить за тем, чтобы не появлялись некорректные значения внешнего ключа. При удалении картежа из отношения существуют три подхода поддержания целостности по ссылкам:
- запрещается производить удаление ключа, на который существуют ссылки, т.е. сначала нужно либо удалить ссылающиеся картежи, либо соответствующим образом изменить значения их внешнего ключа;
- при удалении картежа, на который используются ссылки во всех ссылающихся картежах, значение внешнего ключа автоматически становится неопределенным;
– каскадное удаление - при удалении картежа из отношения, на которое ведет ссылка и ссылается отношение, автоматически удаляются все ссылки на картежи.
При проектировании данной информационной модели было реализовано каскадное удаление.
При удалении записи из таблицы «Отделы» не возникнет ошибки со ссылающимися записями из таблицы «Персонал», т.к. записи из таблицы «Персонал» удалятся вместе со ссылающимися на них записями из таблицы «Отделы».
При удалении записи из таблицы «Клиенты» не возникнет ошибки со ссылающимися записями из таблицы «Запись», т.к. записи из таблицы «Клиенты» удалятся вместе со ссылающимися на них записями из таблицы «Запись».
Реализация ссылочной целостности:
- при удалении данных из таблицы «Заказы», нужно либо удалить ссылающиеся картежи из таблиц «услуги» и «Клиенты», либо соответствующим образом изменить значения их внешнего ключа;
- при удалении данных из таблицы «Персонал», нужно либо удалить ссылающиеся картежи из таблиц «услуги» и «оборудование и аксессуары», либо соответствующим образом изменить значения внешнего ключа;
- при изменении данных в таблице «запись» информация о записи будет автоматически обновляться (каскадное обновление);
Одной и той же логической модели может соответствовать несколько разных физических. В физической модели важно описать всю информацию о конкретных физических объектах – таблицах, колонках, индексах, процедурах.
ER-диаграмма физического уровня показана на рисунке 16.
Рисунок 16 – ER – диаграмма физического уровня