Курсовая работа: Разработка автоматизированной информационной системы процесса обработки заказов магазина цифровой и бытовой техники

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

g. ОГРН - строковый тип данных;

h. КПП - строковый тип данных;

i. ИНН - строковый тип данных;

j. Р/с - строковый тип данных.

В данной сущности для поля «Статус» задан целочисленный тип данных, т.к. в это поле будет помещаться значение из связанной сущности №2. Также в сущности хранятся персональные данные, регламентируемые формами договоров купли-продажи между юридическими лицами и между юридическим и физическим лицами.

2) Сущность «Статус»:

a. Номер статуса - ключевое поле;

b. Название статуса - строковый тип данных;

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

3) Сущность «Товары»:

a. Номер клиента - ключевое поле;

b. Модель - строковый тип данных;

c. Бренд - целочисленный тип данных;

d. Категория - целочисленный тип данных;

e. Цена - денежный тип данных;

f. Описание - тестовый тип данных.

Для удобства подбора товара выделены сущности №4 и №5:

4) Сущность «Бренд»:

a. Номер бренда - ключевое поле;

b. Имя бренда.

5) Сущность «Категории товаров»:

a. Номер категории - ключевое поле;

b. Имя категории.

6) Сущность «Карточка заказа»:

a. Номер карточки - ключевое поле;

b. Номер клиента - целочисленный тип данных.

c. Дата заказа - дата;

d. Сумма заказа - денежный тип данных;

7) Сущность «Список товаров»:

a. Номер карточки - ключевое поле;

b. Номер товара - ключевое поле;

c. Количество - целочисленный тип данных.

Инфологическая модель (рисунок 9) была построена при помощи веб-сервиса DB Design.

Рисунок 9 - Инфологическая модель АИС

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

2. Реализация

2.1 Обоснование выбора СУБД

На сегодняшний день для реализации БД существует множество различных систем управления базами данных, отличающихся своими возможностями и требованиями к вычислительным ресурсам. Самыми популярными их них являются: Oracle Database, MS SQL Server, MySQL, MS Access.

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

Приложение распространяется под лицензией GNU General Public License и поэтому многие другие разработчики интегрируют его в свои разработки, например XAMPP, Denwer, AppServ, Open Server.

MySQL -- свободная реляционная система управления базами данных. Разработку и поддержку MySQL осуществляет корпорация Oracle, получившая права на торговую марку вместе с поглощённой Sun Microsystems, которая ранее приобрела шведскую компанию MySQL AB. Продукт распространяется как под GNU General Public License, так и под собственной коммерческой лицензией. Помимо этого, разработчики создают функциональность по заказу лицензионных пользователей. Именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации.

MySQL является решением для малых и средних приложений. Входит в состав серверов WAMP, AppServ, LAMP и в портативные сборки серверов Денвер, XAMPP, VertrigoServ. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц.

Помимо универсальности и распространенности СУБД MySQL обладает целым комплексом важных преимуществ перед другими системами. В частности, следует отметить такие качества как:

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

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

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

· Масштабируемость. Являясь весьма универсальной СУБД, MySQL в равной степени легко может быть использована для работы и с малыми, и с большими объемами данных.

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

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

· Недостаточная надежность. В вопросах надежности некоторых процессов по работе с данными (например, связь, транзакции, аудит) MySQL уступает некоторым другим СУБД.

· Низкая скорость разработки. Как и многим другим программным продуктам с открытым кодом, MySQL не достает некоторого технического совершенства, что порой сказывается на эффективности процессов разработки.

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

· при распределённых операциях, когда функционала SQLite (другая популярная система) не хватает;

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

· для работы с интернет-страницами и веб-приложениями, поскольку MySQL является наиболее удобной СУБД для этой сферы применения;

· при работе со специфическим проектом, где функционал MySQL дает оптимальный результат.

MySQL поддерживает SQL (структурированный язык запросов) и может применяться в качестве SQL-сервера. Это означает, что общаться с сервером можно на языке SQL: клиент посылает серверу запрос, тот его обрабатывает и отдает клиенту только те данные, которые были получены в результате этого запроса.

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

2.2 Проектирование реляционной модели данных

После того, как была построена инфологическая модель и выбрана СУБД, можно приступать к разработке системы.

Все таблицы и типа полей в базе данных соответствуют инфологической модели, описанной в главе 1.

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

На рисунках 10-16 представлены структуры таблиц, на основе которых будут прописываться запросы.

Рисунок 10 - структура таблицы «Клиенты»

В таблице «Клиенты» (рисунок 11) поля mail, ogrn, kpp, inn, rs могут содержать в себе пустое значение, т.к. они являются обязательными только для клиентов, имеющих статус юридического лица.

Рисунок 11 - структура таблицы «Статус»

Рисунок 12 - структура таблицы «Товары»

Рисунок 13 - структура таблицы «Бренд»

Рисунок 14 - структура таблицы «Категории товаров»

Рисунок 15 - структура таблицы «Карточка заказа»

Рисунок 16 - структура таблицы «Список товаров»

Все наименования таблиц и названия таблиц прописаны на английском языке. Это сделано для корректной работы СУБД и удобства написания запросов. Также для полей строкового и текстового формата выбрана кодировка utf8_general_ci, для корректного отображения текста в этих полях.

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

Рисунок 17 - Схема данных

На схеме данных видно, что таблицы «goods» и «order_check» связаны по ключевым полям, а также сама таблица «order_check» имеет сразу два ключевых поля. За счет такой структуры и обеспечивается возможность выбрать несколько товаров в одной карточке заказа.

Одна из основных функций SQL -- получение данных из СУБД. Для построения всевозможных запросов к базе данных используется оператор SELECT. Он позволяет выполнять сложные проверки и обработку данных. На рисунке 18 представлена общая структура запроса.

Рисунок 18 - Общая структура запроса

Параметры оператора:

· DISTINCT - используется для исключения повторяющихся строк из результата;

· ALL - (по умолчанию) используется для получения всех данных, в том числе и повторений;

· FROM - перечисляет используемые в запросе таблицы из базы данных;

· WHERE - это условный оператор, который используется для ограничения строк по какому-либо условию;

· GROUP BY - используется для группировки строк;

· HAVING - применяется после группировки строк для фильтрации по значениям агрегатных функций;

· ORDER BY - используется для сортировки. У него есть два параметра:

· ASC (по умолчанию) - используется для сортировки по возрастанию;

· DESC - по убыванию;

· LIMIT - используется для ограничения количества строк для вывода.

Следующие действия демонстрируют логический порядок обработки инструкции SELECT. Этот порядок определяет, когда объекты, определенные в одном шаге, становятся доступными для предложений в последующих шагах.

Например, в предложении WHERE не доступны псевдонимы столбцов, определяемых в предложении SELECT, потому что, согласно списку, оно выполняется до SELECT.

1. FROM;

2. WHERE;

3. GROUP BY;

4. HAVING;

5. SELECT;

6. DISTINCT;

7. ORDER BY.

Однако фактическое выполнение инструкций определяется СУБД и порядок из этого списка может значительно отличаться.

На рисунке 19 представлен запрос, который выводит список всех товаров.

Рисунок 19 - Запрос на вывод всех товаров

Подобным образом прописываются остальные запросы.

Для добавления/изменения/удаления данных используются команды INSERT/UPDATE/DELETE соответственно. Общая конструкция запроса представляет собой: выбор одной из команд INSERT/UPDATE/DELETE, при помощи команды INTO выбирается таблица и ее поля, в которых будет происходить работа с данными, далее команда VALUE добавляет значение в указанные поля. Запрос на добавлении данных в карточку заказа в ПРИЛОЖЕНИИ Б (рисунки Б.1-Б.3).

Запрос на вывод карточки заказа показан в ПРИЛОЖЕНИИ Б (рисунок Б.4). В запросе используется функция SELECT, в которой выбираются поля из таблицы «Карточка заказа», а также поля связанных с ней таблиц. Чтобы объединить таблицы в запросе используется команда JOIN, а конкретно INNER JOIN. Для наглядности работы данного оператора приведен пример на рисунке 20 в виде кругов Эйлера.

Рисунок 20 - INNER JOIN

Чтобы отобразить информацию по списку заказов, необходим запрос, представленный в ПРИЛОЖЕНИИ Б (Рисунок Б.5), в котором выбираются необходимые поля, а также используется оператор группировки GROUP BY и оператор сортировки ORDER BY с параметром DESC, который выводит список значений по убыванию.

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

Рисунок 21 - Запрос на самый прибыльный товар

В ПРИЛОЖЕНИИ Б (рисунок Б.6) представлен запрос на вывод общей суммы продаж фирмы за всё время. Для его реализации также используется оператор SUM который вычисляет сумму множества значений, содержащихся в определенном поле отобранных запросом записей.

Если нужно вывести информацию о том на какую сумму купил товаров клиент за всё время, то будет выполняться запрос, представленный ПРИЛОЖЕНИИ А (рисунок Б.7), в результате которого будет выведен список клиентов и их общая сумма покупок.

Известно, что различные отчетности могут составляться за конкретный период времени. Чтобы вывести такую информацию потребуется прописать запрос, представленный в ПРИЛОЖЕНИИ Б (рисунок Б.8), в котором используется ограничение WHERE и условие BETWEEN, который задаёт условие, что переменная должна находиться в заданном диапазоне. При необходимости пользователь может самостоятельно изменять промежуток времени, используя прикладной интерфейс.

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

2.3 Реализация информационной системы

Чтобы запрашиваться какую-либо информацию посредством запросов, таблицы должны хранить в себе данный. Пример минимального набора данных для тестирования информационной системы представлен на рисунке 22, на котором изображена таблица «Клиенты». В данной таблице содержатся все поля, описанные в инфологической модели данных. Также некоторые поля таблицы содержат значение NULL, то есть данные в этих полях отсутствуют. Для полей phone, ogrn, kpp, inn, rs задана определенная длина значения, которая представляет собой маску ввода.