Анализ, разработка и реализация базы данных информационной системы OpenPOS

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

Анализ, разработка и реализация базы данных информационной системы OpenPOS

МИНОБРНАУКИ РОССИИ

Федеральное государственное бюджетное образовательное учреждение

высшего профессионального образования

"Пензенский государственный технологический университет"

(ПензГТУ)

Факультет информационных и образовательных технологий

Кафедра "Информационные технологии и системы"

Дисциплина "Управление данными"



КУРСОВАЯ РАБОТА

на тему: "Анализ, разработка и реализация базы данных информационной системы OpenPOS"



Выполнил: студент группы 13ИС2б Борисов И.Т.

Руководитель: ст. преподаватель кафедры ИТС Пискаев К.Ю.






Пенза, 2015 г.

Задание на курсовую работу по дисциплине "Управление данными"


Студента Борисов И.Т. Группа 13ИС2б

Тема работы: "Анализ, разработка и реализация базы данных информационной системы OpenPOS"

Исходные данные (технические требования на работу)

. Назначение базы данных: хранение данных, необходимых для функционирования информационной системы OpenPOS. Система относится к классу POS-систем и предназначена для автоматизации рабочих процессов в заведениях общественного питания.

. Состав и структура исходных данных: база данных openpos из 11 таблиц, предназначенных для хранения информации об учете заказов и учете времени, проведенного сотрудниками на рабочем месте.

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

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

. Графическая часть:

схема БД (физическая) (1 лист формата А4);

схема БД в Web-интерфейсе администрирования MySQL phpMyAdmin (1 лист формата А4).

. Экспериментальная часть:

разработка схемы БД c использованием Sparx Systems Enterprise Architeсt v12.0.1210.

составление и отладка запросов в СУБД MySQL.

. Срок выполнения работы по разделам:

1. Постановка задачи до


2. Разработка схемы БД до


3. Написание базовых запросов до


4. Написание продвинутых запросов до


5. Оформление графической части до


6. Оформление пояснительной записки до



Студент _________________________________ / __________ /

Задание получил "___" ________________ 201_г.

Руководитель ____________________________ / __________ /

Задание выдал "___" ________________ 201_г.

Дата защиты работы ___________________________

Студент _______________________________ / __________ /

Руководитель ___________________________ / ___________ /

Содержание

 

Задание на курсовую работу по дисциплине "Управление данными"

Введение

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

1.2 Общие сведения о проекте

1.3 Основные сведения о предметной области

1.4 Выделение справочных и оперативных данных

1.5 Предполагаемые запросы к базе данных

1.6 Перечень хранимой информации

1.7 Выводы по разделу

2. Моделирование предметной области

2.1 Общие сведения о моделировании предметной области

2.2 Выделение сущностей, атрибутов, ключей, связей

2.3 Проектирование диаграммы "сущность-связь" в Enterprise Architect

2.4 Подготовка диаграммы "сущность-связь" в Enterprise Architect к переносу на целевую СУБД

2.5 Создание базы данных в MySQL. Перенос схемы из Enterprise Architect

2.6 Начальное заполнение базы данных

2.7 Создание диаграммы средствами phpMyAdmin

2.8 Выводы по разделу

3. Создание и запуск базовых запросов SQL

3.1 Общие сведения о базовых запросах SQL

3.2 Выборка данных

3.3 Добавление данных

3.4 Обновление справочных данных

3.5 Удаление данных

3.6 Применение табличных функций SQL

3.7 Применение скалярных функций SQL

3.8 Выводы по разделу

4. Создание и запуск комплексных запросов SQL

4.2 Выборка данных из нескольких таблиц

4.3 Применение подзапросов

4.4 Создание таблиц в базе данных

4.5 Изменение формата таблиц в базе данных

4.6 Удаление таблиц из базы данных

4.7 Применение индексов в базе данных

4.8 Выводы по разделу

5. Создание и использование представлений

5.1 Общие сведения о представлениях

5.2 Создание представлений в базе данных

5.3 Операции с представлениями базы данных

5.4 Выводы по разделу

Заключение

Список литературы

Перечень принятых сокращений

Приложения

Введение

 

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

)        анализ предметной области проектируемой ИС, создание плана по реализации БД, хранящей информацию, необходимую для функционирования субъекта предметной области;

2)      создание схемы базы данных (далее - БД) и её дальнейшая разработка для хранения информации в ИС;

)        реализация БД посредством создания, изменения, удаления хранимых данных, а также манипуляции данными посредством выборки из таблиц.

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

Данная работа включает в себя 5 основных разделов:

)        анализ предметной области: краткая аннотация к курсовой работе и к разрабатываемому проекту в частности, определение основных терминов и функций предметной области, пояснение структуры и принципов работы распределенной системы хранения данных в рабочем режиме;

2)      моделирование структуры данных предметной области: пояснение основных понятий реляционной БД - ключей, значений, атрибутов, связей, проектирование схемы БД с помощью инструмента визуального моделирования Sparx Enterprise Architect 12 (далее - EA), генерация SQL-кода в виде DDL-команд управления проектируемой БД, перенос схемы в систему управления базами данных (далее - СУБД) MySQL 5.1.73 и начальное заполнение БД, создание диаграммы с помощью Web-интерфейса администрирования баз данных phpMyAdmin;

)        работа в спроектированной БД посредством базовых запросов языка SQL: создание SQL-запросов, необходимых для использования в БД, таких, как выборка данных из таблицы, добавление, обновление и удаление данных из таблиц, применение к таблицам встроенных функций;

)        работа в реализованной БД посредством комплексных запросов языка SQL: создание SQL-кода запросов, необходимых для использования в БД - применение подзапросов в качестве условий SQL-команд, выборка данных из нескольких таблиц одновременно, применение индексов к отдельным столбцам таблиц, внедрение дополнительных таблиц в проектируемую БД (создание, редактирование, удаление таблиц);

)        манипуляция данных, хранимых в БД, посредством создания и использования представлений данных на языке SQL: определение понятий представлений данных в БД и их применения, работа с представлениями как в анализируемой структуре данных, так и в проектируемой (создание и удаление представлений, выборка данных из представлений).

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


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

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

1.2 Общие сведения о проекте


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

Задачей разработки модуля является оптимизация и автоматизация рабочих процессов общественного питания, а именно:

)        ведение кадрового учета, хранение информации о сотрудниках предприятия, такой, как личные данные, идентификаторы документов, необходимых для регистрации сотрудника, банковские реквизиты для безналичного расчета с сотрудником в рамках трудового договора;

2)      ведение учета рабочего времени сотрудников за определенно взятый интервал (день, неделя, месяц, год) для последующей генерации суммы почасовой заработной платы за временной интервал;

)        хранение меню заведения;

4)      учет заказов, поступающих от клиентов и последующее создание счета, включающего общую сумму заказов.

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

Рисунок 1 - POS-машина

Принципы работы проектируемой ИС следует разделить на 2 части: модуль работы с сотрудниками и модуль работы с клиентами.

Модуль работы с сотрудниками включает в себя:

)        добавление сводных данных о нанятых сотрудниках организации и удаление данных об уволенных сотрудниках;

2)      хранение необходимой информации о сотрудниках;

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

Модуль работы с сотрудниками включает в себя:

)        хранение меню организации общественного питания с возможностью дальнейшего редактирования;

2)      автоматическая генерация заказов пользователей (tickets) на основании данных, введенных участником обслуживающего персонала как пользователем ИС;

)        автоматическая генерация счета для оплаты услуг клиентом организации на основании поступивших заказов с последующим обновлением статуса (оплачено/не оплачено).

1.3 Основные сведения о предметной области


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

В состав отрасли общественного питания входят:

)        предприятия общественного питания - осуществляют производство кулинарной продукции, а также её реализацию и организацию потребления.

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

)        доготовочные предприятия (общественного питания) - осуществляют приготовление блюд из полуфабрикатов и кулинарных изделий.

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

OpenPOS является одним из экземпляров POS-систем. POS-система (POS - Point of Sale) - это программно-аппаратный комплекс, функционирующий на базе фискального регистратора; за POS-системой закреплен типичный набор кассовых функций: учет и отпуск товара, прием и выдача денег, аннулирование факта покупки и др. На рисунке 2 показан базовый интерфейс экземпляра POS-системы.

информационная система базовый запрос

Рисунок 2 - пользовательский интерфейс системы POS

В настоящее время на рынке информационных систем POS существует немало решений для предприятий общественного питания. Ниже приводится таблица сравнения систем. Критерий пользовательского интерфейса оценивался по десятибальной шкале (0 - отсутствие критерия в структуре программного продукта, 10 - компонент программного обеспечения доведен до совершенства и является одним из его основных преимуществ).

Таблица 1 - сравнение POS-систем по данным на 13.12.2015г.

ИС

R-Keeper

Liko

Jowi

Тип установки

локально

локально

локально

Возможность расширения

да

да

Сенсорный ввод

+

+

+

Пользовательский интерфейс

6

7

8

Стоимость

От 77000 до 180000 рублей

23990 рублей

$150 в месяц


Исходя из проведенного анализа стоит отметить, что системы, являющиеся потенциальными конкурентами OpenPOS, имеют свои преимущества и недостатки. Основным же недочетом является большая сумма общих затрат на приобретение и внедрение системы. Предполагается, что система OpenPOS решит данный недостаток вместе с сохранением всех плюсов традиционных POS-систем (в том числе и сенсорный ввод, реализуемый с помощью утилиты ELO Touchscreen). Разрабатываемая ИС обеспечит объем высоких продаж за счет модульной архитектуры: заведения общественного питания, являющиеся потенциальными клиентами, могут приобрести не полную версию OpenPOS, а только те модули, необходимые для решения своих задач.

Возьмем, к примеру, киоск быстрого питания на содержании у индивидуального предпринимателя. Данный клиент не будет заинтересован в учете сотрудников организации и системе подарочных карт, для него основной проблемой будет являться учет заказов и последующей выручки. Он может приобрести систему OpenPOS, содержащую в себе лишь несколько клиентских модулей. Это существенно уменьшит затраты на автоматизацию деятельности предпринимателя. Таким образом, основным преимуществом проекта перед конкурентами планируется сделать гибкость и способность работать в режиме загрузки/выгрузки отдельных программных модулей.

Также особенностью системы OpenPOS является адаптация POS-системы под особенности ресторанного бизнеса в России: например, добавление в систему возможности хранения номеров документов, необходимых для регистрации и содержании сотрудника в организации.

1.4 Выделение справочных и оперативных данных


БД информационной системы OpenPOS, названная openpos, содержит набор справочных и оперативных данных. Всего БД содержит 11 таблиц.

Справочными данными является информация о сотрудниках системы: личные данные (адрес, дата рождения, контакты для связи), идентификационные номера личных документов (внутренний паспорт, ИНН, СНИЛС и т.д.), реквизиты банковского счета. Также справочными данными в разрабатываемой БД является журнал подарочных карт заведения: идентификатор подарочной карты, имя/фамилия владельца, скидка, действующая при предъявлении карты и меню заведения.

Динамическими данными является информация о заказах и итоговых счетах на оплату. Эти типы данных обновляются постоянно.

1.5 Предполагаемые запросы к базе данных


SQL - этом мощный и в то же время не комплексный язык для управления базами данных. Он поддерживается практически всеми современными базами данных. SQL подразделятся на два подмножества команд: DDL (Data Definition Language - язык определения данных) и DML (Data Manipulation Language - язык обработки данных). Команды DDL используются для создания новых баз данных, таблиц и столбцов, а команды DML - для чтения, записи, сортировки, фильтрования, удаления данных. В рамках курсовой работы будут рассмотрены и команды DDL и команды DML.

Предполагаемые запросы:

)        выбрать из таблицы employee_account всех сотрудников, у которых срок истечения действия банковского счета истекает в течение года;

2)      выбрать из таблицы employee_adress сотрудников, проживающих в том же городе, где находится заведение;

)        выбрать из таблицы membership всех владельцев подарочных карт заведения со скидкой на 15 процентов;

)        выбрать из таблиц bills все открытые (неоплачиваемые счета);

)        добавить в таблицу menu_items новое блюдо;

)        удалить из таблицы employee_info сведения об уволившимся сотруднике.

1.6 Перечень хранимой информации


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

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

1.7 Выводы по разделу


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

2. Моделирование предметной области


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

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

2.1 Общие сведения о моделировании предметной области


Стадии формирования модели предметной области:

)        формализация, обеспечивающая однозначное описание структуры предметной области;

2)      применение графических средств отображения модели;

)        реализация, подразумевающая наличие средств физической реализации модели предметной области;

4)      обеспечение оценки эффективности реализации модели предметной области на основе определенных методов и вычисляемых показателей (в данном случае оценку эффективности обеспечивает заполнение БД данными в корректном формате и отображение результатов работы). На стадии формализации была сформирована схема базы данных системы OpenPOS, распределены данные по таблицам в соответствии с теориями нормальных форм, выделены сущности, атрибуты, ключи, связи между таблицами - компоненты, формирующие БД. Стадия применения графических средств отображения модели была реализована инструментом визуального моделирования Sparx EA посредством добавления таблиц, атрибутов, формирования первичных и внешних ключей и визуализации конечной схемы БД. Стадия реализации состояла из генерации SQL-кода создания структуры данных в EA и дальнейшего переноса схемы в РСУБД MySQL посредством запуска сгенерированного SQL-кода. Стадия обеспечения эффективности реализации модели также состояла из загрузки данных в таблицы проектируемой БД и отображения диаграммы отредактированной БД в веб-инструменте администрирования СУБД phpMyAdmin.

2.2 Выделение сущностей, атрибутов, ключей, связей


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

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

Всего в рамках проектируемой БД были выделены две сущности: управленческая часть (сведения о сотрудниках заведения общественного питания) и клиентская часть (журнал подарочных карт, история заказов, меню заведения). В соответствии с теорией нормальных форм данные клиентской части разделены на 6 таблиц: employee_info (основная информация о сотрудниках: ФИО, должность, контакты для связи), employee_address (фактический адрес проживания сотрудников), employee_paperwork (ID документов сотрудников), employee_account (банковские реквизиты сотрудников для проведения безналичного расчета), employee_military (данные о призыву на воинскую службу в РФ: не годен, имеет приписное свидетельство, имеет военный билет) и employee_timekeeping (фиксированная дана начала и дата окончания рабочего дня сотрудников). В таблицах 2-7 представлена структура вышеперечисленных таблиц, атрибуты, тип данных атрибутов, а также выделены атрибуты, играющие роль первичного ключа (PK) и внешнего ключа (FK).

Таблица 2 - таблица employee_info

employee_id (int)

employee_fname (varchar)

employee_lname (varchar)

employee_birthday (date)

employee_gender (varchar)

employee_position (varchar)

PK






employee_join (date)

employee_family (varchar)

employee_phone (varchar)

employee_email (varchar)

employee_photo (varchar)


Таблица 3 - таблица employee_address

employee_id (int)

employee_region (varchar)

employee_city (varchar)

employee_street (varchar)

employee_home (varchar)

employee_apt (varchar)

employee_zip (int)

PK+FK (employee_info)








Таблица 4 - таблица employee_paperwork

employee_id (int)

employee_passport (int)

employee_inn (int)

employee_snils (int)

employee_book (int)

PK+FK (employee_info)

employee_id (int)

employee_card (int)

employee_accnum (int)

employee_card_exp (date)

PK+FK (employee_info)





Таблица 6 - таблица employee_military

employee_id (int)

employee_mil_status (varchar)

employee_mil_id (int)

PK+FK (employee_info)




Таблица 7 - таблица employee_timekeeping

employee_id (int)

shift_id (int)

shift_date (date)

shift_clockin (date)

shift_clockout (date)

shift_total (date)

PK+FK (employee_info)







Данные клиентской сущности разделены на 5 таблиц: membership (сведения о подарочных картах пользователя), menu_items (список блюд в меню заведения и их статус: в наличии/отсутствует), tickets (сводная таблица заказов от клиентов), bills_components (таблица соответствия заказов и ID общего счета) и bills_info (ведение счетов: данные о сотруднике, обслужившем клиента, ID клиента с подарочной картой - по умолчанию 0, сумма счета, дата генерации счета и статус - оплачено/не оплачено). В таблицах 8-12 представлена структура вышеперечисленных таблиц, атрибуты, тип данных атрибутов, а также выделены атрибуты, играющие роль первичного ключа (PK) и внешнего ключа (FK).

Таблица 8 - таблица membership

member_id (int)

member_fname (varchar)

member_lname (varchar)

membership_discount (int)

membership_status (varchar)

PK






Таблица 9 - таблица menu_items

item_id (int)

item_name (varchar)

item_price (int)

item_status (varchar)

item_description (varchar)

PK






Таблица 10 - таблица tickets

ticket_id (int)

item_id (int)

item_quantity (int)

ticket_price (int)

PK

FK (menu_items)




Таблица 11 - таблица bills_components

bill_id (int)

ticket_id (int)

PK+FK (bills_info)

PK+FK (tickets)


Таблица 12 - таблица bills_info

bill_id (int)

bill_tickets (int)

member_id (int)

employee_id (int)

bill_time (timestamp)

PK





bill_tips (int)

bill_total (int)

bill_status (varchar)

bill_method (varchar)


2.3 Проектирование диаграммы "сущность-связь" в Enterprise Architect


Для наглядности предметной области была спроектирована диаграмма БД "сущность-связь" с применением графических средств отображения модели. Очень важным свойством модели "сущность-связь" является то, что она может быть представлена в виде графической схемы. Это значительно облегчает анализ предметной области.

В качестве средства визуализации был использован программный продукт EA 12. Сначала были созданы таблицы проектируемой БД. Затем были добавлены атрибуты с выделением первичных ключей и присвоением ограничения "NOT NULL" для некоторых атрибутов. Напоследок средствами EA была проведена визуализация полученной базы данных с последующим нанесением связей между таблицами. На рисунке 3 наглядно показан процесс проектирования таблиц с помощью встроенного инструмента Database Builder. В приложении A.1 показана итоговая физическая схема БД.

Рисунок 3 - проектирование таблиц базы данных в EA

2.4 Подготовка диаграммы "сущность-связь" в Enterprise Architect к переносу на целевую СУБД


В процессе подготовки диаграммы БД "сущность-связь" к переносу на целевую СУБД MySQL был автоматически сгенерирован SQL-код. Во встроенном инструменте EA Database Builder в опциях главного элемента MySQL (открытие меню правой кнопкой мыши) был выбран пункт "Generate DDL". Затем в меню сохранения схемы в формате SQL были выбраны все таблицы БД и путь к сохранению файла. При нажатии кнопки "Generate" сгенерированный SQL-код сохранился на компьютере. Таки образом диаграмма сущность-связь была подготовлена к переносу на целевую СУБД.

2.5 Создание базы данных в MySQL. Перенос схемы из Enterprise Architect


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

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

База данных на основе SQL кода была создана с помощью командной оболочки bash. Стоит отметить команды выбора кодировки данных по умолчанию. Одной из проблем баз данных программного обеспечения является распознавание данных на русском языке. В MySQL по умолчанию стоит кодировка latin1, не распознающая кириллицу. Поэтому сразу после создания базы тип кодировки был изменен на UTF-8.

cd /opt- u root - pDATABASE openposCHARACTER SET utf8COLLATE utf8_general_ci;openpos- u root - p openpos < database. sql

Листинг 1 - создание базы данных в MySQL

2.6 Начальное заполнение базы данных


После создания БД с последующим добавлением таблиц РСУБД MySQL появилась совокупность структурированных и связанных между собой таблиц, но данные до сих пор отсутствуют Следующей задачей является заполнение созданной БД значениями.

Существуют несколько способов добавления записей в таблицы. В данной задаче наиболее целесообразным выглядит загрузка записей из текстового файла (команда LOAD DATA LOCAL INFILE). Для этого для каждой таблицы необходимо создать отдельный текстовый файл, записать в него данные в специальном формате и загрузить данные из файла в таблицу при помощи командной строки MySQL. Для добавления записи о модуле достаточно выполнения команды INSERT.

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

USE openpos;

Листинг 2 - SQL-скрипт заполнения БД

На рисунке показан результат работы одной из команд. В общей комплексности в каждую таблицу было добавлено 10 записей.

Рисунок 4 - результат работы команды LOAD DATA в таблице employee_address

2.7 Создание диаграммы средствами phpMyAdmin


Для проверки эффективности реализованной модели предметной области необходимо проверить ее графическое отображение. Таким образом мы можем убедиться, что спроектированная БД не имеет ошибок. Графическое представление данных - это наиболее наглядное изображение полученного распределения результатов исследования. Оно дает возможность с одного взгляда определить структуру и состав изучаемой совокупности, структурные сдвиги, тенденции изменений при переходе от одних значений переменных к другим и т.д.

Для графического отображения реализованной базы данных нужно повторно построить диаграмму "сущность-связь". Для этой цели в MySQL используется Web-приложение администрирования БД phpMyAdmin. В данной курсовой работе приложение phpMyAdmin запускается через локальный хост, имеющий доступ ко всем БД в MySQL.

Для запуска интерфейса phpMyAdmin необходимо зайти на адрес <#"872041.files/image005.gif">

Рисунок 5 - интерфейс управления БД в phpMyAdmin

В приложении А.2 представлена диаграмма спроектированной БД openpos.

2.8 Выводы по разделу


Основной целью данного раздела являлось моделирование предметной области и её внедрение в рабочий процесс. Были описаны общие сведения о моделировании предметной области, этапы моделирования области. Разработана схема БД, описаны сущности, атрибуты, первичные и внешние ключи, а также связи между таблицами. Посредством инструмента графической визуализации EA была спроектирована диаграмма "сущность-связь", на основании которой автоматически сгенерирован SQL-код создания таблиц. С помощью данного кода схема БД была перенесена из EA в РСУБД MySQL, находящуюся в Linux-дистрибутиве CentOS 6. Таблицы созданной БД были заполнены данными из текстовых файлов. Отредактированная БД была повторно визуализирована в виде диаграммы с помощью phpMyAdmin.

Основные навыки, полученные в данном разделе курсовой работы:

)        формирование знаний, необходимых для моделирования предметной области, в частности, понимание, в каких случаях применяется моделирование предметной области;

2)      умение описывать требования к разрабатываемой системе на основе модели с использованием UML;

)        понимание основ построения реляционных баз данных;

)        умение проектировать структуры данных на основе модели предметной области.

3. Создание и запуск базовых запросов SQL


3.1 Общие сведения о базовых запросах SQL


В процессе выполнения данного раздела к разработанной БД информационной системы "Библиотека.ru" были применены базовые запросы языка SQL.

Для этого на компьютере с установленным MySQL необходимо запустить клиента mysql, в окне которого можно вводить команды SQL. Команды SQL не чувствительны к регистру, но традиционно они набираются прописными буквами.

Структурированный язык запросов (Structured Query Language) - стандарт коммуникации с базой данных, который поддержан ANSI. Самая последняя версия - SQL-99, хотя новый стандарт SQL-200n уже находится в разработке. Большинство баз данных твердо придерживается стандарта ANSI-92. Было много обсуждений по поводу введения более современных стандартов, но изготовители коммерческих баз данных отклоняются от этого, развивая свои новые концепции манипуляции хранимыми данными. Почти каждая отдельная база данных использует некоторый уникальный набор синтаксиса, хоть и очень сильно подобного стандарту ANSI. В большинстве случаев, этот синтаксис является расширением базового стандарта, хотя бывают случаи, когда такой синтаксис приводит к различным результатам для разных баз данных. Всегда неплохой идеей будет просмотр документации к базе данных, особенно, если получаются неожиданные результаты.

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

Есть четыре основных типа запросов данных в SQL, которые относятся к так называемому языку манипулирования данными (Data Manipulation Language или DML): SELECT - выбрать строки из таблиц; INSERT - добавить строки в таблицу; UPDATE - изменить строки в таблице; DELETE - удалить строки в таблице.

3.2 Выборка данных


Для извлечения записей из таблиц в SQL определен оператор SELECT. С помощью этой команды осуществляется не только операция реляционной алгебры "выборка" (горизонтальное подмножество), но и предварительное соединение (join) двух и более таблиц, которое рассмотрено в 4 главе данной курсовой работы.

Для операции выборки в БД openpos можно использовать любую таблицу, т.к. ни одна из таблиц не является пустой. Например, отсортируем список сотрудников в таблице employee_info по дате рождения.

SELECT * FROM employee_info ORDER BY employee_birthday DESC;

Листинг 3 - сортированная выборка записей

Одним из предполагаемых SELECT-запросов к базе будет выявление неоплаченных счетов за услуги предприятия. Результат выполнения команды показан на рисунке 6.bill_id, member_id, employee_id, bill_total, bill_time FROM bills_info WHERE bill_status=’doesn`t paid’;

Листинг 4 - выборка по условию

Рисунок 6 - результат выполнения команды SELECT в БД openpos

Также можно выбрать статистику сотрудников, имеющих статус военнообязанных на территории РФ.

SELECT * FROM employee_military WHERE employee_mil_status IS NOT NULL;

Листинг 5 - выборка значений по внешнему ключу

3.3 Добавление данных


Оператор INSERT применяется для добавления информации в базу данных. Более часто запросы на добавление записей в БД openpos будут направляться таблицу tickets, так как происходит постоянное обслуживания клиентов путем генерации итогового счета на основе ценников в меню ресторана. Предполагается автоматизация расчета клиентов. На рисунке 7 показан результат работы команды INSERT.

INSERT INTO tickets VALUES (932, 1, 1, 50);

Листинг 7 - добавление информации о новом акте выдачи книги в таблицу rent

Рисунок 7 - результат добавления записи в таблицу tickets.

Также присутствует необходимость в добавлении новых владельцев дисконтных карт. Запрос будет заключаться в добавлении персональных данных о пользователе командой INSERT.

INSERT INTO membership VALUES (11, Shilyn, Kirill, 0.1, active);

Листинг 7 - добавление нового пользователя в таблицу

3.4 Обновление справочных данных


Оператор UPDATE применяется для обновления информации в базу данных. Обычно обновление справочных данных применяется для изменения группы записей, объединенных конкретным условием. БД openpos имеет справочные данные в таблице employee_paperwork, где хранятся идентификаторы документов, требуемых трудовым законодательством РФ. Например, один из сотрудников сменил паспорт и теперь нужно изменить номер паспорта в базе. Результат выполнения команды показан на рисунке 8.

UPDATE employee_paperwork SET employee_passport=5609911911 WHERE employee_id=5;

Листинг 8 - обновление данных о книжном издательстве

Рисунок 8 - результат обновления записей.

3.5 Удаление данных


Оператор DELETE применяется для удаления информации из базы данных. Обычно удаление данных применяется либо для освобождения памяти под свежие записи (динамические записи), либо в том случае, если какая-либо информация больше не является актуальной (статические данные). В БД openpos нужно стереть запись об аккаунте работника, уволившегося из организации. На рисунке 9 показан результат выполнения команды.

DELETE FROM employee_info WHERE employee_lname=’Novikov’;

Листинг 9 - удаление записи о работнике/пользователе системы

Рисунок 9 - результат удаления записей из БД openpos.

3.6 Применение табличных функций SQL


Встроенные табличные функции языка SQL служат для получения более точных результатов выборки команды SELECT. В данном разделе показано применение таких табличных функций, как CONCAT (объединение значений), и CASE (добавление значений в зависимости от выполнения условия).

В БД openpos можно с помощью функции CASE охарактеризовать состояние банковских карт сотрудников по сроку истечения и выделить из них те, которые необходимо заменить в скором времени. На рисунке 10 показаны результаты работы запроса.employee_id, employee_card_exp, (CASE employee_card_exp WHEN employee_card_exp < '2017-01-01' THEN 'expiring' ELSE 'non-expiring' END) AS 'state' FROM employee_account ORDER BY 3 DESC;

Листинг 10 - применение оператора CASE

Рисунок 10 - результат выполнения функции CASE.

Можно более наглядно показать данные о сотрудниках организации, объединив их имена, отчества и фамилии в одну строку функцией CONCAT, а также вывести полную. На рисунке 18 показаны результаты работы запроса.CONCAT (employee_fname, ‘ ‘, employee_mname, ‘ ’, employee_lname) AS ‘Full name’, employee_position FROM employee_info;

Листинг 11 - применение функции CONCAT

Рисунок 11 - результат выполнения функции CONCAT.

3.7 Применение скалярных функций SQL


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

В БД openpos функцию COUNT можно применить для подсчета в таблице books количества заказов (tickets) на один счет. На рисунке 12 показаны результаты работы запроса.bill_id, COUNT (ticket_id) AS ‘Tickets’ FROM bills_components GROUP BY bill_id;

Листинг 12 - применение скалярной функции COUNT

Рисунок 12 - результат выполнения функции COUNT.

Также в БД openpos можно использовать функцию MAX для просмотра величины самого дорогого счета. На рисунке 13 показаны результаты работы запроса.

SELECT MAX (bill_price) AS Bill record' FROM bills_info;

Листинг 13 - применение функции MAX

Рисунок 13 - результат выполнения функции MAX.

3.8 Выводы по разделу

Основной задачей данного раздела курсовой работы являлось анализ сущности базовых запросов языка SQL, освоение и применение базовых запросов языка SQL, направленных на работу с одной таблицей. В разделе показаны как DML-команды (выборка данных из таблицы, использование табличных и скалярных функций), так и DDL-команды (добавление записей в таблицу, удаление записей из таблицы, обновление отдельных значений в записях таблицы). В приложении Б.2 находится скрипт базовых запросов SQL, выполненный в БД openpos.

4. Создание и запуск комплексных запросов SQL


4.1 Общие сведения о комплексных запросах SQL


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

Например, можно выполнить запрос с использованием внутреннего объединения, результатом которого будет соотношение личных данных владельцев дисконтных карт заведения общественного питания (имя, фамилия) к сделанным заказам. На рисунке 14 показан результат запроса.

SELECT bi. bill_id, m. member_fname, m. member_lname, menu. item_name, bi. bill_status;

FROM bill_info biJOIN membership m ON bi. member_id=m. member_idJOIN bills_components bc ON bc. bill_id=bi. bill_idJOIN tickets t ON t. ticket_id=bc. ticket_idJOIN menu_items menu ON menu. item_id=t. item_idBY m. member_id;

Листинг 14 - создание объединений таблиц для выборки

Рисунок 14 - результаты запроса из нескольких таблиц.

4.3 Применение подзапросов


Запрос находящийся внутри другого запроса называется подзапросом. Подзапрос возвращает значение, которое будет использоваться в основном запросе. Использования подзапросов, есть использования по очереди двух запросов, сперва получаем данные из подзапроса, а затем используем эти данные в качестве данных основного запроса.

В БД openpos подзапрос можно применить в таблице bills_info. Например, можно отобразить информацию о счетах, включающих более 1 заказа. На рисунке 15 показаны результаты работы запроса.bill_id, bill_time, bill_total, bill_status, bill_method FROM bills_info WHERE bill_id IN (SELECT bill_id FROM bills_components, COUNT (ticket_id) AS ‘quantity’ WHERE quantity > 1 GROUP BY bill_id);

Листинг 15 - подзапрос

Рисунок 15 - результаты использования подзапроса.

4.4 Создание таблиц в базе данных

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

В рамках данного подраздела в БД openpos создана дополнительная таблица menu_ingredients, позволяющая вести учет ингридиентов, необходимых для приготовления описанных в меню блюд. Атрибутами данной таблицы являются ID блюда (item_id), играющий роль внешнего ключа, связывающего таблицу с другой таблицей menu_items, ID ингредиента (ingredient_id) как первичный ключ, его имя и итоговая цена (ingredient_name, ingredient_price). На рисунке 16 показана структура созданной таблицы.

CREATE TABLE menu_ingredients

(

item_id INT NOT NULL,_id INT NOT NULL,_name VARCHAR (20),_price INT NOT NULL,KEY (ingredient_id),KEY (item_id) REFERENCES menu_items (item_id)

);

Листинг 16 - создание таблицы

Рисунок 16 - структура таблицы, созданной в БД openpos

4.5 Изменение формата таблиц в базе данных


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

В БД openpos в соответствии с добавленной таблицей menu_ingredients, хранящей сведения об ингредиентах меню, добавляется атрибут ingredient_quantity, описывающий количество единиц ингредиента, необходимых для приготовления блюда. Данная информация может быть использована в качестве памятки поварам, работающим в заведении общественного питания. На рисунке 17 показана структура отредактированной таблицы.

ALTER TABLE menu_ingredients ADD COLUMN ingredient_quantity INT;

Листинг 17 - добавление нового атрибута в таблицу

Рисунок 17 - структура отредактированной таблицы call_status

4.6 Удаление таблиц из базы данных

Обычно с таблицей в базе данных помимо самой информации, хранящейся в базе, связано несколько объектов, например, индекс, создаваемый первичным ключом, или ограничение, налагаемое на столбцы таблицы. При удалении таблицы РСУБД автоматически удаляет и любой связанный с ней индекс. Для удаления таблицы из БД необходимо выполнить команду DROP TABLEВ БД openpos удалена таблица menu_ingredients, созданная в данном разделе.

DROP TABLE menu_ingredients;

Листинг 18 - удаление таблицы

4.7 Применение индексов в базе данных


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

В SQL индексы создаются командой CREATE INDEX. Для создания индексов атрибутов, каждое значение которых уникально, можно воспользоваться командой CREATE UNIQUE INDEX. При создании уникального индекса атрибута СУБД запретит добавлять повторяющиеся значения в индексируемый атрибут.

В данной БД наиболее предпочтительным выглядит использование индексов в таблице employee_info для поиска работника в общей базе по его фамилии, а также в таблице menu_items, где предполагается поиск определенного блюда по его названию.

CREATE INDEX ind_employee ON employee_info (employee_lname);INDEX ind_dish ON menu_items (item_name);

Листинг 19 - создание индексов

Удаление индексов выполняется с помощью команды DROP INDEX. Данная операция была применена для всех индексов, созданных в ходе написания данного раздела.

ALTER TABLE employee_info DROP INDEX ind_employee;TABLE menu_items DROP INDEX ind_dish;

Листинг 20 - удаление индексов из таблиц

4.8 Выводы по разделу


Основной задачей данного раздела являлось ознакомление с комплексными SQL-запросами к предметной области. В данном разделе рассмотрены несколько комплексных запросов: выборка из таблиц-объединений, подзапросы, создание, редактирование и удаление дополнительных таблиц. Также описаны понятие индексации, принципы работы с индексами. В приложении Б.3 находится SQL-скрипт, в котором собраны комплексные запросы к разработанной БД openpos.

5. Создание и использование представлений


5.1 Общие сведения о представлениях


Представления (view) - это одно из мощных средств языка SQL, предназначенное для реализации механизм подсхем пользователей базы данных. Представления позволяют скрыть от пользователей схему базы данных. Они представляют собой хранимые в базе данных запросы, выраженные операторами SELECT. На базе одних представлений могут быть созданы новые представления, которые наследуют все свойства базовых представлений. Формировать представления могут пользователи с привилегиями SELECT для используемых в представлениях таблиц (базовых таблиц).

В данном разделе рассматривается создание представлений, процесс манипуляции данными из представлений (выборка данных), а также удаление представлений из базы данных.

5.2 Создание представлений в базе данных


Представления создаются с помощью команды CREATE VIEW. Структура и хранимые сущности БД openpos позволяют создать несколько представлений для конечного отображения в пользовательском интерфейсе информационной системы OpenPOS. Например, можно создать представление, в котором будут ФИО сотрудников и их адрес. Данное представление покажет наглядную информацию о местах проживания каждого сотрудника организации. На рисунке 18 показана структура созданного представления.

CREATE VIEW employee_place AS

SELECT ei. employee_id, CONCAT (ei. employee_fname, ‘ ’, ei. employee_mname, ‘ ’, ei. employee_lname) AS ‘Employee’, CONCAT (ea. city, ‘ ‘, ea. street, ‘ ‘, ea. home, ‘ ‘, ea. apt) AS ‘Address’employee_info ei INNER JOIN employee_address ea ON ea. employee_id=ei. employee_id ORDER BY ei. employee_id;

Листинг 21 - создание представления данных из нескольких таблиц

Рисунок 18 - структура представления, созданного в БД openpos.

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

CREATE VIEW employee_activity ASb. bill_id, e. employee_fname, e. employee_lname, b. bill_time, b. bill_tips, b. bill_total, b. bill_status, b. bill_methodbills_info bJOIN employee_info e ON e. employee_id=b. employee_idBY e. employee_id;

Листинг 22 - создание представления с использованием скалярной функции

5.3 Операции с представлениями базы данных


Данные из представлений считываются точно так же, как и данные из базовых таблиц - с помощью команды SELECT. Из представления, созданного в БД openpos, можно выделить статистику по определенному каналу call-центра. На рисунке 28 показана структура созданного подзапроса.

SELECT * FROM employee_place WHERE employee_id<5;

Листинг 23 - выборка данных из представления

Рисунок 19 - выборка представления, созданного в БД openpos.

Представления удаляются с помощью команды DROP VIEW. Ниже наглядно показан процесс удаления представления из базы данных.

DROP VIEW employee_place;VIEW employee_activity;

Листинг 20 - удаление представлений

5.4 Выводы по разделу


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

Заключение


В рамках данной курсовой работы были выполнены задачи, направленные на формирование распределенной структуры хранения данных на базе РСУБД и поставленные в рамках данной курсовой работы:

)        проанализирована предметная область проектируемой ИС;

2)      по итогам анализа создан план по реализации БД, хранящей информацию, необходимую для функционирования субъекта предметной области;

)        создана схема БД с её последующей реализацией и внедрением в СУБД;

)        реализовано моделирование рабочих процессов БД посредством передачи в БД SQL-запросов создания, изменения, удаления хранимых данных, а также манипуляции данными посредством выборки из таблиц.

В ходе выполнения курсовой работы:

)        проанализирована предметная область;

2)      разработана структура распределенной системы хранения данных, обеспечивающей корректное функционирование проектируемой ИС;

)        спроектирована диаграмма сущность-связь БД информационной POS-системы OpenPOS посредством визуального моделирования схемы в EA;

)        создана БД в РСУБД MySQL посредством переноса структурированной схемы из EA с последующим заполнением данных из текстового файла;

)        визуализирована диаграмма отредактированной БД с помощью утилиты моделирования БД phpMyAdmin;

)        созданы базовые SQL-запросы (выборка, добавление/изменение/удаление строк) к СУБД с их последующим применением на практике;

)        созданы представления данных с их последующим применением на практике.

В рамках дальнейшей работы над проектом планируется:

)        более углубленное изучение и анализ предметной области, выявление её специфик, известных только участниками деятельности в предметной области;

2)      разработка информационной системы OpenPOS (продумывание алгоритма работы ИС, написание исходного кода, отладка работы программы, тестирование ИС на целевом аппаратном комплексе);

)        автоматизация работы информационной системы с БД, реализованной в рамках данной курсовой работы;

)        презентация разработанного проекта и дальнейшее внедрение в структуру предприятий общественного питания;

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

Список литературы


Основная литература

.         Андрей Кондрашин. Ресторанный бизнес в малых городах. Секреты успешного открытия и эффективного управления. - Ресторанные ведомости, 2015

2.      Виолетта Гвоздовская Управление рестораном, который любит гостей. - Ресторанные ведомости, 2013

.        Кевин Янк. PHP и MySQL. От новичка к профессионалу. - Эксмо, 2013

.        Бэрон Шварц, Вадим Ткаченко. MySQL. Оптимизация производительности - Символ-плюс, 2010г.

.        Алекс Кригель, Борис Трухнов. SQL. Библия пользователя - Вильямс, 2010г.

Дополнительная литература

.         Стефан Фаро. Рефакторинг SQL-приложений - Символ, 2009 г.

7.      Алан Бьюли. Изучаем SQL. - Символ, 2007г.

.        Мартин Грабер. SQL - Лори, 2007г.

.        Д. Крёнке. Теория и практика построения баз данных. - Питер, 2005 г.

.        Крис Фиайли. SQL. Руководство по изучению языка - ДМК Пресс, 2004 г.

Интернет ресурсы

11.     Database Engineering with Enterprise Architect 12 [Электронный ресурс] URL https: // www.youtube.com/watch? v=LLtp49TU1H8 (дата обращения: 09.11.2014г.)

12.    Loading Data into a Table [Электронный ресурс] URL: https: // dev. mysql.com/doc/refman/5.5/en/loading-tables.html (дата обращения: 22.11.2015г.)

.        LOAD DATA INFILE Syntax [Электронный ресурс] URL: https: // dev. mysql.com/doc/refman/5.5/en/load-data.html (дата обращения: 22.11.2015г.)

.        Configuring the Character Set and Collation for Applications [Электронный ресурс] URL: https: // dev. mysql.com/doc/refman/5.7/en/charset-applications.html (дата обращения: 22.11.2015г.)

.        How Do I Enable Remote Access To MySQL Database Server?. [Электронный ресурс] URL: #"872041.files/image020.gif">

Приложение Б

 

SQL-код базы данных

DROP TABLE IF EXISTS `bills_info` CASCADE;TABLE `bills_info`

(

`bill_id` INT NOT NULL,

`bill_tickets` INT,

`member_id` INT 0,`employee_id` INT,

`bill_time` TIMESTAMP (0),

`bill_tips` INT,

`bill_total` INT,

`bill_status` VARCHAR (20),

`bill_method` VARCHAR (20),`PK_bills_info` PRIMARY KEY (`bill_id`)

);TABLE `bills_info`INDEX `IXFK_bills_info_employee_info` (`employee_id` ASC)

;TABLE `bills_info`INDEX `IXFK_bills_info_membership` (`member_id` ASC)

;FOREIGN_KEY_CHECKS=1

Приложение Б.1 - создание таблицы* FROM employee_info ORDER BY employee_birthday DESC;bill_id, member_id, employee_id, bill_total, bill_time FROM bills_info WHERE return_date IS NULL;* FROM employee_military WHERE employee_mil_status IS NOT NULL;INTO tickets VALUES (932, 1, 1, 50);INTO membership VALUES (11, Shilyn, Kirill, 0.1, active);employee_paperwork SET employee_passport=5609911911 WHERE employee_id=5;FROM employee_info WHERE employee_lname=’Novikov’;employee_id, employee_card_exp, (CASE employee_card_exp WHEN employee_card_exp < '2017-01-01' THEN 'expiring' ELSE 'non-expiring' END) AS 'state' FROM employee_account ORDER BY 3 DESC;CONCAT (employee_fname, ‘ ‘, employee_mname, ‘ ’, employee_lname) AS ‘Full name’, employee_position FROM employee_info;bill_id, COUNT (ticket_id) AS ‘Tickets’ FROM bills_components GROUP BY bill_id;MAX (bill_total) AS 'Bill record' FROM bills_info;

Приложение Б.2 - скрипт создания базовых запросов

SELECT bi. bill_id, m. member_fname, m. member_lname, menu. item_name, bi. bill_status;bills_info biJOIN membership m ON bi. member_id=m. member_idJOIN bills_components bc ON bc. bill_id=bi. bill_idJOIN tickets t ON t. ticket_id=bc. ticket_idJOIN menu_items menu ON menu. item_id=t. item_idBY m. member_id;bill_id, bill_time, bill_total, bill_status, bill_method FROM bills_info WHERE bill_id IN

(SELECT bill_id, COUNT (ticket_id) AS ‘quantity’ FROM bills_components WHERE quantity > 1 GROUP BY bill_id);TABLE menu_ingredients

(_id INT NOT NULL,_id INT NOT NULL,_name VARCHAR (20),_price INT NOT NULL,KEY (ingredient_id),KEY (item_id) REFERENCES menu_items (item_id)

);TABLE menu_ingredients ADD COLUMN ingredient_quantity INT;TABLE menu_ingredients;INDEX ind_employee ON employee_info (employee_lname);INDEX ind_dish ON menu_items (item_name);TABLE employee_info DROP INDEX ind_employee;TABLE menu_items DROP INDEX ind_dish;

Приложение Б.3 - скрипт создания комплексных запросов

CREATE VIEW employee_place ASei. employee_id, CONCAT (ei. employee_fname, ‘ ’, ei. employee_mname, ‘ ’, ei. employee_lname) AS ‘Employee’,(ea. employee_city, ‘ ‘, ea. employee_street, ‘ ‘, ea. employee_home, ‘ ‘, ea. employee_apt) AS ‘Address’employee_info ei INNER JOIN employee_address ea ON ea. employee_id=ei. employee_id ORDER BY ei. employee_id;VIEW employee_activity ASb. bill_id, e. employee_fname, e. employee_lname, b. bill_time, b. bill_tips, b. bill_total, b. bill_status, b. bill_methodbills_info bJOIN employee_info e ON e. employee_id=b. employee_idBY e. employee_id;* FROM employee_place WHERE employee_id<5;VIEW employee_place;VIEW employee_activity;

Похожие работы на - Анализ, разработка и реализация базы данных информационной системы OpenPOS

 

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