РАЗРАБОТКА КНИЖНОГО ИНТЕРНЕТ МАГАЗИНА НА ОСНОВЕ БИБЛИОГРАФИЧЕСКОЙ СИСТЕМЫ
Алрикаби Касим Абдулджаббар Хамад
Магистр фундаментальная информатика информационные технологии, Ди-Кар , Ирак
РАЗРАБОТКА КНИЖНОГО ИНТЕРНЕТ МАГАЗИНА НА ОСНОВЕ БИБЛИОГРАФИЧЕСКОЙ СИСТЕМЫ
Аннотация
В данной работе рассматриваются особенности реализации книжного интернет магазина на основе библиографической системы с использованием документно-ориентированной модели хранения информации.
Ключевые слова: PHP,СУБД , NoSQL и MongoDB.
Alrikabi Qasim Abduljabbar Hamad
Master Fundamental Computer Science Information Technology, Dhi Qar, Iraq
Abstract
This paper discusses the features of realization online book store on the basis of bibliographic systems using document-oriented model of information storage.
Key words: PHP, DBMS, NoSQL & MongoDB.
С каждым годом увеличивается объем рынка электронной коммерции. По проведенным исследованиям в США книги стоят на втором месте по продажам через интернет [2]. Поэтому разработка новых моделей построения книжных магазинов является актуальной задачей.
Цель данной работы разработать информационную модель интернет магазина, позволяющую производить поиск товара и связанной продукции по его библиографическому описанию.
Задачами, решаемыми в рамках данной работы являются: реализация серверной системы учета и продажи товара, позволяющей создавать связанные списки дополнительной продукции на основе библиографической информации, реализация web-интерфейса клиентской части, позволяющей осуществлять управление интернет-магазином администраторами и производить покупку товара пользователями.
Архитектура магазина в сети Интернет как правило состоит из двух основных частей: серверной и клиентской. К серверной части относят программное обеспечение, выполняемое на стороне сервера, и базу данных, содержащую информационную модель магазина. Клиентская часть интернет-магазина представляет собой программное обеспечение, выполняющееся на стороне пользователя. Как правило, данная структура состоит из набора представлений, осуществляющих отображение данных от серверной части и управляющих бизнес-логикой магазина. Клиентское программное обеспечение структурно делится на пользовательскую и административную части.
При проектировании серверной части основной проблемой является подбор хранилища данных под информационную модель сайта. В веб-проектах, обычно, применяют реляционные клиент-серверные СУБД. В таких системах используется реляционная модель данных - модель, в которой объекты описываются совокупностью своих свойств. В реляционных СУБД данные хранятся в виде простых таблиц. Проектирование реляционных баз опирается на процедуру нормализации – приведении совокупности свойств к «нормальным формам». Целью нормализации является избавление от логической избыточности в базе данных, то есть уменьшение возможной противоречивости в хранимой информации. В процессе нормализации данные объекта разносятся по разным таблицам, тем самым достигается хранение каждого элемента информации только в одном месте. Однако это приводит в дальнейшем к сложностям при конструировании запросов к базе данных. Наиболее характерно этот недостаток проявляется в случае, если заранее неизвестно какие свойства будут у товара в интернет-магазине.
В подобных ситуациях, когда нужно хранить данные с разнородными характеристиками, не усложняя информационную модель, можно применить NoSQL технологию хранения данных [11]. NoSQL решения используют нерегламентированную структуру данных. Это позволяет в отдельно взятый объект или группу объектов добавить произвольное поле без предварительного декларативного изменения структуры всей таблицы. Наиболее распространенным типом NoSQL хранилищ являются документно-ориентированные СУБД. В основе документно-ориентированных СУБД лежат структуры в виде деревьев. Аналогом таблиц в реляционных базах данных здесь служат коллекции, в которые добавляются объекты. Коллекции могут содержать другие коллекции. Такой подход помогает хранить сложные иерархические данные и осуществлять по ним быстрый поиск. В работе была использована документно-ориентированная система управления базами данных MongoDB.
Информационная модель сайта содержит данные, которые можно сгруппировать по трем категориям: данные пользователей, данные книг, данные заказа. Каждая из категорий представляет собой коллекцию объектов в СУБД. Структура объектов в коллекциях оптимизируется под наиболее часто использующиеся серверные запросы.
Объект, задающий модель книги в магазине описывается полями: название, список авторов, город печати, издательство, количество страниц, год выпуска, ISBN-код, обложка, цена экземпляра, количество экземпляров, описание, список альтернативных названий, список ключевых слов, список отзывов, список идентификационных номеров связанных книг. Поля подобраны таким образом, чтобы содержать необходимую информацию для построения библиографической ссылки согласно ГОСТ Р 7.0.5-2008. Использование библиографической ссылки в качестве представления модели книги позволяет оптимизировать поиск на стороне клиента. Дополнение библиографических данных в модели книги информацией о ключевых словах и альтернативных названиях позволяет добиться большей гибкости поиска на стороне сервера. Документно-ориентированный подход позволяет хранить только указанную информацию. Контроль за целостностью информационной модели осуществляется серверной частью интернет-магазина.
При непосредственном проектировании интерфейса в работе была использована концепция модель-представление-контроллер. После анализа основных функций электронного магазина, были выделены три модели и два представления:
- модель авторизации – отвечает за регистрацию, аутентификацию пользователя на сайте;
- модель заказов – отвечает за контроль поступающих заказов;
- модель ассортимента – отвечает за все операции проводимые с коллекцией данных о книгах в магазине.
- пользовательский шаблон – позволяет посетителю сайта просматривать ассортимент и выполнять поиск товара, оформлять заказы, просматривать свои текущие заказы;
- шаблон администратора – позволяет просматривать ассортимент магазина, редактировать, удалять и добавлять информацию о товаре, просматривать и изменять состояние заказов от покупателей.
При реализации моделей использовался язык PHP. Контроллеры и представления были написаны с использованием JavaScript и HTML5.
В результате было построено веб-приложение, реализующее системы учета, продажи и поиска товара, позволяющее создавать связанные списки дополнительной продукции на основе библиографической информации. Библиографическая система была реализована как часть подсистемы поиска товара, что позволило сократить объем данных в запросах за счет скомпанованной в библиографические ссылки информации о товаре. При реализации приложения активно применялись современные приемы построения динамических сайтов: AJAX-запросы, «гибкая» разметка страниц на основе HTML5, применение NoSQL хранилищ данных.
Литература
- Бэнкер Кайл MongoDB в действи [Книга]. - М. : ДМК Пресс, 2012. - стр. 394
- Вора Паван Шаблоны проектирования веб-приложений [Книга]. - М. : Эксмо, 2011.
- Эрик Редмонд, Джим Р. Уилсон Семь баз данных за семь недель. Введение в современные базы данных и идеологию NoSQL [Книга]. - М. : ДМК Пресс, 2012. - стр. 384.
References
- Bjenker Kajl MongoDB v dejstvi [Kniga]. - M. : DMK Press, 2012. - str. 394
- Vora Pavan Shablony proektirovanija veb-prilozhenij [Kniga]. - M. : Jeksmo, 2011.
- Jerik Redmond, Dzhim R. Uilson Sem' baz dannyh za sem' nedel'. Vvedenie v sovremennye bazy dannyh i ideologiju NoSQL [Kniga]. - M. : DMK Press, 2012. - str. 384.