1. Системный анализ
1.1 Общее описание системы «электронной торговли»
В связи с ростом электронной коммерции сейчас в Интернете наиболее часто встречаются приложения, основанные на метафоре «корзины покупок» или «электронного магазина». Обычно пользователи обращаются к таким приложениям из своих веб-браузеров. Каталог товаров дает пользователям возможность просматривать и искать на сайте элементы, предназначенные для продажи. Пользователи могут выбирать объекты для покупки добавляя их в «корзину покупок». Это означает, что корзина содержит список объектов, выбранных покупателем.
После того как пользователь выбрал интересующие его товары, он сможет изучить содержимое своей корзины и при необходимости, изменить количество выбранных элементов или вовсе удалить их из корзины. Когда клиент уверен, что в корзине находятся то что он готов приобрести, он подтверждает заказ и оплачивает покупки.
Приобретенный товар доставляется покупателю по почтовому адресу. Адрес, информация о кредитной карте и другие личные данные вводятся покупателем во время создания учетной записи либо при оплате заказ. Популярный пример подобного приложения в Интернете, сайт OZON.ru, где можно купить книги, музыкальные компакт-диски, программные продукты и т.п.
1.2 Анализ требований к корзине покупок
Приложение реализующее корзину покупок адресовано двум категориям пользователей. Первая – это покупатели, посещающие электронный магазин с помощью браузера, а вторая категория – это администраторы, которые управляют сайтом, либо с помощью браузера, либо непосредственно используя возможности операционной системы и системы управления базами данных. Сформулируем ряд требований, которые должны быть обеспечены для этих групп пользователей:
Требования покупателей. Они включают в себя следующее:
· Покупатель должен иметь возможность использовать приложение из любого веб-браузера, поддерживающего стандарт HTML и cookie.
· Новые пользователи должны иметь возможность регистрироваться самостоятельно, либо при помощи представителей фирмы. Каждому зарегистрированному пользователю будет присвоен персональный идентификатор.
· Пользователи должны иметь возможность покупать товар посредством создаваемого приложения.
· Пользователи должны иметь возможность просматривать полный список наименований товаров, представленных на сайте.
· Пользователи должны иметь возможность выполнять поиск товара по названию.
· Пользователи должны иметь возможность выполнять поиск по всей базе данных по ключевым словам.
· Пользователи должны иметь возможность выбирать и добавлять объекты в корзину, а затем принимать решение о подтверждении заказа.
· Пользователи должны иметь возможность изменять количество выбранных товаров или вовсе удалять их из корзины перед тем, как подтвердить заказ.
· После оплаты все выбранные товары должны быть доставлены пользователю.
· Пользователи должны иметь возможность просматривать статус сделанных заказов.
· Необходимо обеспечить возможность использования приложения одновременно большим количеством посетителей.
· Производительность приложения не должна падать по мере роста доступных товаров на сайте.
Требования администратора.
· Администратору необходима возможность удаленного управления приложением через веб-браузер.
· Администратор должен иметь возможность удалять зарегистрированных пользователей.
· Администратору необходима возможность изменения статуса заказов покупателей, после того как они будут ему отправлены.
2. Обзор языковой и программной базы
2.1 Что такое РНР
РНР – это серверный язык сценариев, разработанный специально для Web. В HTML-страницу можно внедрить PHP-код, который будет выполняться при каждом ее посещении. PHP-код интерпретируется Web-сервером и генерирует HTML-код или другой вывод, наблюдаемый посетителями страницы.
Разработка РНР была начата в 1994 году и вначале осуществлялась одним человеком, Расмусом Лердорфом. Впоследствии этот язык адаптировался многими талантливыми людьми и прошел через четыре основных редакции, пока не стал широко используемым и зрелым продуктом, с которым мы имеем дело в настоящее время. По состоянию на август 2004 года он использовался в более чем четырнадцати миллионах доменов, разбросанных по всему миру, причем их число довольно-таки быстро увеличивается. Многие из этих сравнительных тестов показывают, что MySQL работает на несколько порядков быстрее конкурирующих продуктов. В 2002 году журнал eWeek. опубликовал результаты сравнения производительности пяти баз данных, используемых для построения Web-приложений. Лучший результат был разделен между MySQL и значительно более дорогой системой Oracle.
Пакет MySQL доступен бесплатно в соответствие с лицензией на программное обеспечение с открытым исходным кодом или, если это необходимо для приложения, за небольшую сумму можно приобрести коммерческую лицензию. Лицензия необходима в случае, если вы хотите распространять MySQL как часть своего приложения, которое не должно подпадать под действие лицензии OpenSource. Если вы не планируете распространять приложения или пользуетесь свободным программным обеспечением, в лицензии необходимости нет.
В большинстве современных баз данных используется язык SQL. Если ранее вы работали с другими СУРБД, переход к этой системе не должен вызывать какие-либо затруднения. Установка MySQL столь же проста, как и установка многих аналогичных продуктов.
MySQL может использоваться в среде многих UNIX-подобных систем, а также в среде MicrosoftWindows. Как и в случае РНР, исходный код MySQL можно свободно загружать и изменять. В большинстве случаев и для большинства пользователей этот момент нё является важным, однако он способствует душевному спокойствию, гарантируя стабильность и безопасность дальнейшей работы.
Далеко не для всех продуктов с открытым исходным кодом предоставляется поддержка, обучение, консалтинг и сертификация со стороны соответствующих компаний-разработчиков. Тем не менее, все вышеупомянутое в отношении РНР обеспечивается компанией MySQL АВ (www.mysql.com).
В число крупных изменений, внесенных в MySQL 5.0, входят:
– Хранимые процедуры.
– Поддержка курсоров.
Среди других изменений следует отметить более полную совместимость со стандартом ANSI и улучшения, касающиеся производительности. Если вы продолжаете пользоваться предыдущей версией сервера MySQL, возможно, принять решение перейти на новую версию поможет следующий список важных функциональных возможностей, которые были добавлены в MySQL 5.0:
– Поддержка подзапросов.
– Типы данных GIS для хранения географических данных.
– Усовершенствованная поддержка интернационализации.
– Безопасный в отношении транзакций механизм хранения innoDB, ставший стандартным.
– Кэш запросов MySQL, существенно увеличивающий скорость выполнения повторяющихся запросов, которые часто выдаются Web-приложениями.
Перечислим основные преимущества пакета MySQL.
· Многопоточность. Поддержка нескольких одновременных запросов.
· Архитектура клиент-сервер – полностью используя преимущества компьютерных систем и сетей, MySQL позволяет процессам быть разделенным между сервером БД и клиентским программным обеспечением. Компьютер с установленной на нем СУБД отвечает за серверную часть процесса, а клиентские рабочие станции отвечают за представление и отображение информации.
· Управление большим количеством данных – MySQL поддерживает громадные БД терабайтного размера. MySQL позволяет полностью контролировать размещение данных и эффективно использовать дорогостоящее оборудование.
· Одновременный доступ большого количества пользователей – MySQL поддерживает одновременное подключение большого количества пользователей, выполняющих различные приложения, оперирующие одними и теми же данными. Он минимизирует конкуренцию за доступ к данным и обеспечивает согласованность данных.
· Высокая надежность – MySQL может работать 24 часа в сутки. Такие системные операции как резервное копирование или частичные неполадки компьютерной системы не прерывают использование БД.
· Оптимизация связей с присоединением многих данных за один проход.
· Записи фиксированной и переменной длины. ODBC драйвер в комплекте с исходником.
· Гибкая система привилегий и паролей. MySQL позволяет выборочно контролировать доступ к данным. Так администратор БД может выборочно запретить использование определенных приложений, не воздействуя на остальные приложения.
· Безопасность – для защиты от неавторизованного доступа и использования данных MySQL безотказную систему безопасности, включающую ограничение и отслеживание попыток доступа к данным.
· Переносимость – MySQL программное обеспечение может работать под различными операционными системами. Приложения, разработанные для MySQL, могут переноситься с одной платформы на другую без или с незначительными изменениями.
· До 16 ключей в таблице. Каждый ключ может иметь до 15 полей.
· Поддержка ключевых полей и специальных полей в операторе CREATE.
· Поддержка чисел длинной от 1 до 4 байт, строк переменной длины и меток времени.
· Интерфейс с языками С, php и perl.
· Основанная на потоках, быстрая система памяти.
· Все данные хранятся в формате ISO8859_1.
· Все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках.