Проектирование и создание информационной системы
Скачать 0.7 Mb.
|
MySQLВ Tables Reviews fo Functions ©Events Ещё одна свободно распространяемая система управления базой данных от компании MariaDB Corporation Ab и фонда MariaDB Foundation, распространяется под лицензией GNU GPL. Система является ответвлением от СУБД MySQL, разрабатывается первоначальными разработчиками MySQL с 2009 года. Система имеет и платный вариант с расширенной поддержкой и функционалом. Mariadb - это одна из самых быстрорастущих субд со множеством плагинов, однако ещё не имеющая широкой поддержки сторонним программным обеспечением, как другие СУБД и количеством литературы на русском языке, однако является полностью совместимым с MySQL продуктом. Является довольно безопасным и быстрым продуктом, однако стабильность ещё не так высока, как у СУБД уже давно присутствующих на рынке. Часто рассматривается как вариант альтернативный СУБД MySQL. Техническая документация и ссылки для скачивания доступны на официальном сайте: https://mariadb.org. DB2 Рис. 11. База данных DB2 в интерфейсе EMS SQL Query 2007 Платная СУБД от компании IBM, имеющая возможности nosql, читающая json и xml-файлы. Является кроссплатформенным решением, имеет множество документации и литературы, может быть размещено в облачном хранилище, на физическом сервере, или же и там, и там одновременно. Базовая поддержка доступна только в течение трех лет; после этого, вы должны заплатить за это. Подходит для: крупных организаций, которые делают имеют много ресурсов и обрабатывают большие базы данных. Техническая документация и ссылки для скачивания доступны на официальном сайте: https://www.ibm.com/analytics/us/en/db2/. Из рассмотренных СУБД для решения задач торговой организации была выбрана MySQL. MySQL разработал Михаэль Видениус (Michael Widenius, monty@analytikerna.se), она является небольшой и быстрой реляционной СУБД, основанной на традициях Hughes Technologies Mini SQL (mSQL). Реляционные модели СУБД характеризуются простотой структуры данных, устранением избыточности, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных. Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами. СУБД MySQL предоставляет следующие преимущества при её выборе [20]: реляционная модель данных; свободно-распространяемая под лицензией GNU GPL 2; хорошо адаптирована для веб-приложений; имеет хорошую базу технической документации и литературы; является активно развивающимся продуктом с большим опытом; большое количество специалистов на рынке труда; множество плагинов и отличная интеграция в другое программное обеспечение для веб-приложений; низкие требования к ресурсам аппаратного обеспечения. Важный этап проектирования и разработки базы данных — это создание инфологической и даталогической моделей. Под инфологической моделью понимают описание предметной области, выполненное с использованием специальных языковых средств, не зависящих от используемых в дальнейшем программных средств (это по существу блок-схема алгоритма создания базы данных). Цель инфологического моделирования - обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства (атрибуты). Требования к инфологической модели: адекватное отображение предметной области; непротиворечивость; должна отражать взгляды и потребности всех пользователей системы; однозначная трактовка моделей; модель должна быть конечной; модель должна быть легко расширяемой, то есть иметь возможность ввода новых (удаления) данных без изменения ранее определенных; должна обладать свойствами композиции и декомпозиции (укреплять базу данных или расщеплять); должна быть легко реализуемой на ЭВМ; должна быть независимой от оборудования и языков организации базы данных на ЭВМ. Даталогическое проектирование — это создание модели, являющейся моделью логического уровня и представляющей собой отражение логических связей между элементами данных. Эта модель строится в единицах допустимых конкретной СУБД. Описание логической структуры с помощью средств СУБД называется схемой. Так как это осуществляется с помощью конкретной СУБД, то модели должны быть описаны на языке описания данных этой СУБД. Такое описание и называют даталогической моделью данных. База данных состоит из следующих таблиц: Таблица «Клиенты» - содержит информацию о частных и юридических лицах, которым реализуется товар. Таблица «Избранные клиенты» - содержит информацию о том, у каких пользователей какие клиенты добавлены в качестве избранных. Таблица «Поставщики» - содержит информацию об организациях, осуществляющих поставку продукции. Таблица «Заказы» - заказы, их статус и данные. Таблица «Товары» - продукт, реализуемый компанией и его свойства. Таблица «Бренды» - реестр брендов товаров и информации о них. Таблица «Группы» - группы товаров. Таблица «Конфиг» - содержит основные настройки ИС. Таблица «Пользователи» - пользователи системы, их свойства и права. Таблица «Логи» - содержит логи основных действий пользователей. Таблица «Страницы» - служебная информация о страницах/модулях ИС. Таблица «Курс валюты» - таблица хранит актуальный курс валют для вывода на главные страницы ИС и графики. Таблица «Чат» - содержит сообщения чата. Таблица «Задачи» - в таблице находятся все данные для осуществления функционала «Задачи». Для составления даталогической (рис. 13.) и инфологической (рис. 12.) моделей базы данных, было использовано бесплатное специализированное веб-приложение DbDesigner (http://dbdesigner.net). Рис. 12. Инфологическая модель базы данных id int(ll) login varchan)2bb) pass varchar(2SS) post varchar(2SS) rights varchar(255) del tinyint(4| delivery status tinyint(4J providers int(U) goods int(ll) parent int(ll) ya market tinyint(4) del tinyint|4) intjllj rights varchar(255) link varchar(255) title varchar(255) head varchar<2SS) del tinyint(4) tinyint(4| tinyint(4) int(ll) int(ll) varchar(255l id int(il) time int(ll) int(U) int(U) і ntlll) intlll) і ntlll) goods goods sum int(ll) tinyint(4) delivery tinyirrt(4] tinyirrt(4] varchar(255) tinyint(4) intlll) varchar[255) tinyint(4) varchar(255) varchar(255) tinyint(4) int(ll) varchar|255J tinyint(4) intfll) tinyint(4) phone varchar(255) varchar{255) varthar(25S) varchar{255) r'ny'-it ■" intlll) int(ll) int(ll) int(ll) varchar(255) tinyint(4) tinyint(4| provider tinyint(4) logs priority intlll) iftt|ll) irrt(ll) varchar(255) config developer name varchar(25S) developer contact varchar(255) system name varchar(2S5) system version varcharj255) system version date int(ll} system update text system third party test system future tent system license text org name varchar[255) org torg name varchar(2S5) org inn int(ll) org ogrn int(ll) org bank varchart255) org phone varchar(2SS) org address varchar(255) org email varcharf255) org email pass varchar(2SS) org email smtp varchan)25S) ya market enable tinyint(4) ya market name varchar(2SS) ya market email varchan)2bbi ya market uri varchar(25A) ya market store tinyint(4) ya market pickup tinyint(4) ya market delivery tinyint(4) ya ma rket mincost float!',) Рис. 13. Даталогическая модель базы данных Как видно из спроектированных моделей базы данных — все таблицы некоторым образом связаны друг с другом. К примеру, в таблицы «Заказы» и «Избранные клиенты» имеют поля, связывающие их с таблицей «Клиенты» и хотя таблица «Заказы» никак не связывает себя напрямую с таблицей «Избранные клиенты», через общую для них таблицу «Клиенты» выстраивается характерная для реляционных СУБД связь. Таким образом связываются между собой и все остальные таблицы. Таким образом, создана уже ставшая традиционной реляционная база данных, которая имеет зависимости между данными, но при этом избегает избыточности. Если системе необходимо показать заказы, то оно запрашивает данные о них из таблицы «Заказы» при этом, не запрашивая список клиентов и список товаров, что можно сделать при просмотре конкретного заказа, но и в этом случае запрашивать из базы данных придётся не все товары и всех клиентов, а только определённых, относящихся к данному заказу. В качестве программного обеспечения на сервер были установлены СУБД mysql-server и mysql-client (https://dev.mysql.com/downloads/mysql/) (рис. 14.) в качестве простого и быстрого доступа к управлению СУБД. При помощи MySQL клиента (рис. 14.) и запросов к СУБД были созданы таблицы с полями определённых типов, указаны уникальные индексы (id), которым было присвоено свойство «AUTO_INCREMENT”, указывающее, что порядковый номер будет генерироваться автоматически (предыдущее значение + 1) по мере добавления новых строк в таблицу. root@s: # mysql -uroot -р Enter password: Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 194131 Server version: 5.7.17-log Source distribution Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c* to clear the current input statement. root@localhost [(none)]> use urgpu; Database changed Проектирование и создание информационной системы 1 для торговой организации 1 Содержание 2 Введение 3 1.1. Особенности информатизации торговой организации 5 Веб-приложения имеют свои положительные особенности, соблюдающие и дополняющие свойства открытых систем [4]: 11 1.2. Стандарты разработки веб-приложений 17 2.1. Разработка серверной части информационной системы 24 Mariadb 30 2.2. Разработка клиентской части информационной системы 45 2.3. Тестирование и обзор информационной системы 56 «Главная панель» 65 «Заказы» 68 «Клиенты» 69 «Поставщики» 70 «Статистика» 72 «Задачи» 73 «Логи» 76 Минимальные требования к аппаратному и программному обеспечению: 77 Заключение 80 Список источников и литературы 82 «./index.php» - главный файл веб-приложения. 84 «./templates/all.html» - главный HTML шаблон веб-приложения. 88 «./components/functions.php» - файл содержащий пользовательские PHP- функции. 91 «./components/pages/reports.php» - файл содержащий PHP-код раздела статистики. 108 root@localhost [urgpu]> | Рис. 14. Работа с СУБД MySQL через консоль MySQL-Client Таким образом, разработана база данных торговой организации — основной компонент системы. Данная БД позволяет хранить, обрабатывать и дополнять информацию организации в едином месте. Следующим шагом по настройке back-end части - стала установка HTTP-сервера, умеющего интерпретировать PHP-код. Apache HTTP Server - это свободно распространяемый HTTP сервер под лицензией Apache License 2.0 (http://www.apache.org/). Он осуществляет 2 главные функции: взаимодействует с клиентом по HTTP протоколу и компилирует php-код при помощи соответствующего встроенного модуля (рис. 15.). Данная программа является наиболее актуальной и используемой для создания web-серверов [2]. Также Apache кроссплатформенный, надёжный и гибкий в конфигурации [30]. Получение данных PHP HTTP-server Браузер Ответ в виде HTML страницы * Запрос страницы FHF Рис. 15. Схема работы веб-сервера В качестве языка программирования для написания back-end части web- приложения информационной системы был выбран PHP. PHP (препроцессор гипертекста), первоначально Personal Home Page Tools — «Инструменты для создания персональных веб-страниц»; произносится пи-эйч-пи — скриптовый язык программирования общего назначения, интенсивно применяемый для разработки веб-приложений. В настоящее время поддерживается подавляющим большинством хостинг- провайдеров и является одним из лидеров среди языков программирования, применяющихся для создания динамических веб-сайтов [7,13]. Использование PHP осуществляется под PHP License, являющейся open source лицензией, призванной стимулировать широкое распространение исходного кода. Лицензия позволяет распространение материалов в исходной или бинарной форме с изменениями или без таковых при соблюдении следующих условий [17]: включение текста лицензии PHP, слово PHP не может быть включено в название продукта без письменного подтверждения от PHP Group, следующее уведомление должно быть включено в любую форму распространяемых материалов: "This product includes PHP software, freely available from |