Реляционная база данных. Практически все СУБД позволяют добавлять новые данные в таблицы. С этой точки зрения СУБД не отличаются от программ электронных таблиц (MicrosoftExcel), которые могут эмулировать некоторые функции баз данных. Существует три принципиальных отличия между СУБД и программами электронных таблиц:
- СУБД разрабатываются с целью обеспечения эффективной обработки больших объёмов информации, намного больших, чем те, с которыми справляются электронные таблицы;
- СУБД может легко связывать две таблицы так, что для пользователя они будут представляться одной таблицей. Реализовать такую возможность в электронных таблицах практически невозможно;
- СУБД минимизируют общий объём базы данных. Для этого таблицы, содержащие повторяющиеся данные, разбиваются на несколько связанных таблиц.[13]
Так как средой программирования была выбрана PHP, то логично, что работая в связке Apache/PHP/MySQL, системой управления базой данных был выбран MySQL. [18]
СУБД MySQL - одна из множества баз данных, поддерживаемых в PHP. MySQL разработал Михаэль Видениус. MySQL является относительно небольшой и быстрой реляционной СУБД основанной на традициях Hughes Technologies Mini SQL (mSQL). [16]
Система MySQL распространяется бесплатно и обладает достаточной мощностью для решения реальных задач. SQL - это аббревиатура от слов Structured Query Language, что означает структурированный язык запросов. Этот язык является стандартным средством для доступа к различным базам данных.
Система MySQL представляет собой сервер, к которому могут подключаться пользователи удаленных компьютеров.
Основные приятные стороны пакета MySQL:
- Многопоточность. Поддержка нескольких одновременных запросов;
- Оптимизация связей с присоединением многих данных за один проход;
- Записи фиксированной и переменной длины;
- ODBC драйвер в комплекте с исходником;
- Гибкая система привилегий и паролей;
- До 16 ключей в таблице. Каждый ключ может иметь до 15 полей;
- Поддержка ключевых полей и специальных полей в операторе CREATE;
- Поддержка чисел длинной от 1 до 4 байт (ints, float, double, fixed), строк переменной длины и меток времени;
- Интерфейс с языками C и perl;
- Основанная на потоках, быстрая система памяти;
- Утилита проверки и ремонта таблицы;
- Все данные хранятся в формате ISO8859_1;
- Все операции работы со строками не обращают внимания на регистр символов в обрабатываемых строках;
- Псевдонимы применимы как к таблицам, так и к отдельным колонкам в таблице;
- Все поля имеют значение по умолчанию. INSERT можно использовать на любом подмножестве полей;
- Легкость управления таблицей, включая добавление и удаление ключей и полей.
2.4.2 Проектирование информационной базы
База данных обеспечивает хранение информации, а также удобный и быстрый доступ к данным. Она представляет собой совокупность данных различного характера, организованных по определенным правилам.
Требования к организации баз данных:
- Удовлетворяет всем требованиям пользователей к содержимому базы данных;
- Гарантирует непротиворечивость и целостность данных;
- Неизбыточность:
- Обеспечивает естественное, легкое для восприятия структурирование информации;
- Удовлетворяет требованиям пользователей к производительности базы данных.
Логическое проектирование БД. Разрабатывается логическая структура БД, соответствующая логической модели предметной области. Решение этой задачи существенно зависит от модели данных (некоторая абстракция, будучи приложена к конкретным данным, позволяет пользователям и разработчикам трактовать их как информацию, т.е. сведения, содержащие не только данные, но и взаимосвязь между ними), поддерживаемой выбранной СУБД. Результатом выполнения этого этапа являются схемы БД концептуального и внешнего уровней архитектуры, составленные на языках определения данных (DDL).
Реляционные базы данных состоят из нескольких таблиц, связь между которыми устанавливается с помощью совпадающих полей. Каждая запись в таблицах идентифицирует один объект.
Отношения между таблицами БД строятся по принципу: главная-подчиненная, где в главной первичный ключ, а в подчиненной – внешний ключ, по которому идет связь с главной таблицей, – механизм внешних ключей (для поддержания ссылочной целостности данных). Смысл этого механизма состоит в том, что некоему атрибуту (или группе атрибутов) одного отношения назначается ссылка на первичный ключ другого отношения; тем самым закрепляются связи подчиненности между этими отношениями. При этом отношение, на первичный ключ которого ссылается внешний ключ другого отношения, называется master-отношением, или главным отношением; а отношение, от которого исходит ссылка, называется detail-отношением, или подчиненным отношением.
Связи бывают:
- один-к-одному – одной записи глав табл соотв 1 запись в подчиненной
- один-ко-многим – 1 записи глав табл может соотв-ть несколько записей в подчиненной
- многие-ко-многим – Она не реализуется в некоторых СУБД , поэтому эта связь разбивается на один-ко-многим введением дополнительной таблицы, строки которой состоят из внешних ключей, ссылающихся на первичные ключи двух таблиц.
Следует определить наборы связей между таблицами для функциональной взаимосвязанной работы базы данных в системе (рис.2.6).
Рис.2.6 Схема данных.
В данной БД основными используются таблицы:
1. "Клиенты": код клиента, фамилия, имя, отчество, страна, область, почтовый индекс, город, адрес, номер телефона, e-mail.
Поле код клиента является ключевым. Фамилия, имя, отчество, страна, область, почтовый индекс, город, адрес, номер телефона, e-mail – для отправления заказа, уведомлений, квитанций об оплате, гарантийных талонов.
2. "Заказы": номер заказа, код товара, код клиента, количество, дата.
Номер заказа – ключевое поле.
3. "Товары": код товара, код категории, артикул, новая цена, старая цена, количество на складе, фото, описание, рейтинг.
4. "Категории": код категории, название, описание, количество.
В данной таблице хранятся данные о категориях товаров для более удобного описания товаров.
5. "Склад": код товара, количество товара, код поставщика.
Таким образом, выше описана база данных, таблицы базы, которые дают общее представление о внутренней работе системы.
Выводы по главе
Данная глава была посвящена проектированию и разработке Интернет – магазина. Для проектирования системы была выбрана методология объектно-ориентированного проектирования. В качестве инструментальных средств были выбраны BPWin и RationalRose, поддерживающие данную методологию и описывающие все функции системы. Также были определены потоки информации внутри системы, участники и формы взаимодействия.
Так же во второй главе были описаны выбранная среда разработки PHP и СУБД MySQL. Спроектирована база данных, состоящая из девяти таблиц.
Глава 3. Реализация и тестирование
3.1 Организация интерфейса с пользователем
Когда пользователь всемирной сети попадает в Интернет – магазин "МобилТел", то первой он видит главную страницу (рисунок 3.1).
Рис. 3.1 Главная страница.
Посетитель рассматривает витрину Интернет – магазина, на которой он видит представленные товары. Для того чтобы заказать какою-нибудь модель сотового телефона или аксессуара, необходимо зайти в нужный раздел. Также существует виртуальная витрина, где представлены новинки телефонов. Чтобы заказать "новинку", необходимо щелкнуть по ее картинке. Так же на сайте осуществлен поиск телефонов и аксессуаров по названии. Для осуществления поиска необходимо ввести слово в поле и нажать ENTER.
Выбрав раздел, например Сотовая связь – Nokia, посетитель попадает на страницу, где представлены все телефоны марки Нокиа с указанием цен. Чтобы заказать нужный телефон, необходимо нажать на ее картинке или названии, и тогда эта модель попадает в "покупательскую корзину"(рисунок 3.2).
Рис. 3.2 Раздел Nokia.
Существует возможность просмотреть характеристики любого телефона. Для этого необходимо нажать на ссылку "подробнее" (рисунок 3.3).
Здесь представлена характеристика телефона. Также из данного раздела можно добавить товар в "покупательскую корзину", нажав на ссылку "Добавить в корзину".
Можно оценить этот телефон по следующей шкале:
1. Отлично
2. Хорошо
3. Средне
4. Плохо
5. Очень плохо
И нажать на кнопку оценить.
Рис.3.3. Выбранная модель телефона.
На следующем рисунке 3.4. представлена "покупательская корзина", в которую покупатель откладывает выбранные товары. После того как выбрали нужный телефон или аксессуар, можно ввести количество покупаемых товаров. Также можно отказаться от выбранного товара, удалив его из корзины (нажать красный крестик). После этого можно продолжить выбирать товары, либо окончательно оформить заказ.
Рис.3.4. "Покупательская корзина".
Когда покупатель отобрал нужные товары в "покупательскую корзину" и нажал кнопку "Оформить заказ", перед ним появляется следующее окно (рисунок 3.5).