Создание электронного магазина принтеров

РЕФЕРАТ

курсовой  работы

«Создание электронного магазина принтеров» 

     Объем работы 36 с, в том числе 10 рис., 11 табл., 10 наим. лит., 7 приложений. 

     Ключевые  слова: ER – модели, PHP, MySQL, WEB, связь, первичный ключ, логическая модель, СУБД, HTML, база данных.  

     В курсовой работе разрабатывается динамический сайт рынка принтеров, разработка которого включает в себя следующие этапы:

     а) Анализ предметной области и построение концептуальной модели;

     б) Построение логической и физической модели базы данных;

     в) Реализация базы данных с учетом Вэб-интерфейса.

     В курсовой работе обоснована необходимость  разработки баз данных способы их использования. Разработана структура базы данных и определены ее основные связи межу таблицами.

     В практической части рассмотрены  вопросы анализа, проектирования и создания баз данных. Разработан сайт интернет-магазина для торговли принтерами с использованием гипертекста HTML и скриптов РНР и подключенной базой данных созданной с помощью MYSQL.

     Разработанный сайт позволяет осуществлять автоматизировать продажи принтеров. 
 

 

     

     ОГЛАВЛЕНИЕ 

 

Введение

     PHP был задуман где-то в конце 1994 года Расмусом Ледорфом(Rasmus Lerdorf). Ранние невыпущенные версии использовались на его домашней странице для того, чтобы следить за тем кто просматривал его интерактивное резюме. Первая используемая версия cтала доступна где-то в начале 1995 и была известна как Personal Home Page Tools. Она состояла из очень упрощенного движка синтаксического анализатора, который понимал только несколько специальных макрокоманд и ряд утилит, которые затем были в общем использовании на домашних страницах. Гостевые книги, счетчики и некоторые другие дополнения.

     PHP, что означает "PHP: Препроцессор Гипертекста", является широко используемым языком сценариев общего назначения с открытым исходным кодом. PHP создавался специально для ведения Web-разработок и может использоваться непосредственно в HTML-коде. Синтаксис языка берет начало из C, Java и Perl и является легким для изучения. Преимущественным назначением PHP является предоставление web-разработчикам возможности быстрого создания динамически генерируемых web-страниц, однако, область применения PHP не ограничивается только этим.

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

     Для достижения поставленной цели в работе ставятся следующие задачи:

     - изучить язык написания скриптов  PHP для доступа к базам данных;

     - проанализировать предметную область  интернет-магазинов принтеров;

     - спроектировать базу данных рынка  принтеров;

     - реализовать спроектированную базу  данных средствами СУБД MySQL и языка программирования РНР в интерактивной среде Интернет.

    - рассчитать эффективность создания сайта.

 

  1. ПРОЕКТИРОВАНИЕ  БАЗЫ ДАННЫХ магазина принтеров в терминах ER-моделирования
    1. Описание  предметной области  магазина принтеров

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

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

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

     Проведем  анализ предметной области. Магазин реализует товары (принтеры), товары покупают клиенты. Клиенты покупают товар, делая заказ.

      Постараемся выделить наиболее существенные объекты, необходимые при работе нашего магазина. Как правило, в магазинах осуществляется классификация по видам. В базе данных одним из объектов предметной области будут виды принтеров.

      Далее при нажатии на ссылку с названием  вида принтеров открываются все принтеры определенного вида, следовательно, вторым объектом для базы данных будут сами принтеры, которые будут привязаны к определенным видам. У любого магазина есть покупатели, поэтому третьим объектом нашей базы данных будут покупатели. В магазинах есть возможность добавления товаров в корзину, все заказанные товары формируются в заказ и отправляются администратору, следовательно в базе данных четвертым объектом будут покупки сделанные пользователями магазина.

      Сущность – любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных. Сущностями могут быть люди, места, самолеты, рейсы, вкус, цвет и т.д. Необходимо различать такие понятия, как тип сущности и экземпляр сущности. Понятие тип сущности относится к набору однородных личностей, предметов, событий или идей, выступающих как целое. Экземпляр сущности относится к конкретной вещи в наборе. Например, типом сущности может быть ГОРОД, а экземпляром – Минск, Москва, Киев и т.д.

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

    1. Построение  концептуальной модели базы данных

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

     Одна  из наиболее популярных семантических моделей данных - модель "Сущность-Связи" (часто ее называют кратко ER-моделью).

     Основными понятиями ER-модели являются сущность, связь и атрибут.

     Сущность - это реальный или представляемый объект, информация о котором должна сохраняться и быть доступна. В диаграммах ER-модели сущность представляется в виде прямоугольника, содержащего имя сущности. При этом имя сущности - это имя типа, а не некоторого конкретного экземпляра этого типа. Для большей выразительности и лучшего понимания имя сущности может сопровождаться примерами конкретных объектов этого типа. Каждый экземпляр сущности должен быть отличим от любого другого экземпляра той же сущности (это требование в некотором роде аналогично требованию отсутствия кортежей-дубликатов в реляционных таблицах

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

     Связь представляется в виде ромба и  имени связи внутри ромба.

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

     Атрибутом сущности является любая деталь, которая служит для уточнения, идентификации, классификации, числовой характеристики или выражения состояния сущности. Имена атрибутов заносятся в овал, соединенный с сущностью линией.

     В результате анализа предметной области  были определены следующие сущности:

  • Модель принтеров (classes).
  • Принтеры (goods).
  • Покупатели (buyers).
  • Счет (orders).

     Определим типы связей существующих между выделенными нами сущностями. Для этого снова анализируем требования к БД. Тип связи представляет собой название связи, ее координальность в этой связи. Результат анализа представлен в табл. 1.1. 

Таблица 1.1 - Типы связей между сущностями

Тип

сущности

Тип связи Тип сущности Координальность
classes принадлежит (belong) goods
buyers оформляет (bill) orders
goods принадлежит(belong) orders
 

     На  следующем этапе проектирования базы данных мы построим ER-диаграмму отражающую основные виды сущностей и связи между ними (рисунок 1.1).

Рисунок 1.1 - ER-диаграмма концептуальной модели 

     Выделим атрибуты сущностей.

     Выявленные  атрибуты приведены в табл. 1.2.

     Затем определим атрибуты, являющиеся потенциальными и первичными ключами.

     Для этого из табл. 1.2 выберем возможные потенциальные ключи. Затем из них выберем первичные ключи. 

Таблица 1.2 - Атрибуты сущностей и связей

Тип сущности (связи) Атрибут Домен Обязательность
goods good_id Целое Да
good_name Символьный(50)  
description Символьный(255)  
image Символьный(20)  
class_id  Целое  
good_price  Целое  
orders order_id Целое Да
buyer_id Целое Да
order_date data  
buyers buyer_id Целое Да
buyer_name Символьный(100) Да
buyer_phone Символьный(20) Да
buyer_address Символьный(100) Да
classes class_id Целое Да
class_name Символьный(255) Да
 

     Следует отметить, что потенциальный ключ должен обладать следующими свойствами:

  • уникальность – в каждом кортеже отношения его потенциальный ключ единственным образом идентифицирует это кортеж;
  • неприводимость – никакое допустимое подмножество потенциального ключа не обладает свойством уникальности.

     Первичный же ключ – это потенциальный ключ, вероятность потери уникальности которого мала по сравнению с другими потенциальными ключами. Также следует учесть то, что СУБД легче индексировать числовые, чем символьные ключи.

     На  основании вышеизложенного составим табл. 1.3 первичных и альтернативных ключей. 

 

Таблица 1.3 - Первичные и альтернативные ключи

Сущность Первичный ключ Альтернативный  ключ
goods good_id good_name

class_id

orders order_id order_id

buyer_id

order_date

buyers buyer_id buyer_name

buyer_phone

classes class_id class_name
    1. Построение  логической модели данных

     Логическая  модель данных является начальным прототипом будущей базы данных. Логическая модель строится в терминах информационных единиц, но без привязки к конкретной СУБД. Более того, логическая модель данных необязательно должна быть выражена средствами именно реляционной модели данных (рисунок 1.2).

 

Рисунок 1.2 - Введение новой сущности orderbook 

     При построении логической модели можно  использовать язык ER-диаграмм (от англ. Entity-Relationship, т.е. сущность-связь). В них сущности изображаются помеченными прямоугольниками, ассоциации – помеченными ромбами или шестиугольниками, атрибуты – помеченными овалами, а связи между ними – ненаправленными ребрами, над которыми может проставляться степень связи (1 или буква, заменяющая слово "много") и необходимое пояснение.

     Логическая  модель описывает понятия предметной области, их взаимосвязь, а также  ограничения на данные, налагаемые предметной областью.

     В нашем случае присутствует связь  (goods принадлежит(belong) orders). Так как реализация такой связи в СУБД реляционного типа затруднительна, нужно ввести новую сущность, назовем ее orderbook.

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

     Логическая  модель базы данных приведена на рисунке 1.3.

Рисунок 1.3 – ER-диаграмма логической модели базы данных магазина 

     В данной главе был проведен анализ процесса разработки базы данных, который состоял из следующих этапов:

  • перед началом проектирования базы данных необходимо проанализировать предметную область, для которой создается база, собрать и проанализировать требования пользователей системы;
  • построить концептуальную модель (сформулировать  объекты, описывающие предметную область проектируемой БД, и описать атрибуты, составляющих структуру каждого объекта, построить ER-диаграмму);
  • построить логическую модель, отражающую особенности представления о функционировании предприятия одновременно многих типов пользователей.

     Физически спроектированную модель рынка принтеров реализуем с помощью языка SQL  во второй главе.

 

  1. РЕАЛИЗАЦИЯ  МОДЕЛИ БАЗЫ ДАННЫХ МАГАЗИНА принтеров В ИНТЕРАКТИВНОЙ СРЕДЕ ИНТЕРНЕТ
    1. Построение  физической модели данных на языке SQL средствами СУБД MySQL

     Теперь  приступим к физическому проектированию базы данных. Любая база данных состоит  из таблиц (отношений), поэтому теперь наша задача построить таблицы основываясь  на логической модели базы данных. Правила перевода из логической модели данных в физическую следующие (рисунок 2.1):

  1. Объекты становятся таблицами в физической базе данных
  2. Атрибуты становятся колонками (полями) в физической базе данных. Для каждого атрибута выбирается свой тип данных.
  3. Уникальные идентификаторы становятся колонками, не допускающими значение NULL. В физической базе данных они называются первичными ключами (primary key).

Рисунок 2.1 – Схема таблиц для базы данных магазина 

     Теперь у нас есть схема таблиц базы данных (рисунок 2.1), теперь нужно перевести все эти таблицы в SQL (язык структурированных запросов). В общем случае модели данных разрабатываются таким образом чтобы не зависеть от конкретной базы данных. Поэтому разработанную физическую модель данных можно применить к любой СУБД. В нашем случае это будет MySQL. MySQL – компактный многопоточный сервер баз данных. MySQL характеризуется большой скоростью, устойчивостью и легкостью в использовании. В базе данных MySql таблицы создаются с помощью sql-запроса. 

     // Создание таблицы

     CREATE TABLE `buyers` (

     // Создание строк в таблице

       `buyer_id` int(10) NOT NULL auto_increment,

       `buyer_name` varchar(100) NOT NULL default '',

       `buyer_phone` varchar(20) NOT NULL default '',

       `buyer_address` varchar(100) NOT NULL default '',

     // Задаем ключевое поле таблицы

       PRIMARY KEY  (`buyer_id`)

     ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; 

     // Создание таблицы

     CREATE TABLE `classes` (

     // Создание строк в таблице

       `class_id` int(10) NOT NULL auto_increment,

       `class_name` varchar(255) NOT NULL default '',

     // Задаем ключевое поле таблицы

       PRIMARY KEY  (`class_id`)

     ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; 

     // Вставляем в таблицу значения

     INSERT INTO `classes` VALUES (1, 'Hewlett-Packard');

     INSERT INTO `classes` VALUES (2, 'Samsung');

     INSERT INTO `classes` VALUES (3, 'Canon'); 
 

     // Создание таблицы

     CREATE TABLE `goods` (

     // Создание строк в таблице

       `good_id` int(10) NOT NULL auto_increment,

       `good_name` varchar(50) NOT NULL default '',

       `description` varchar(255) NOT NULL default '',

       `class_id` int(10) NOT NULL default '0',

       `good_price` int(10) NOT NULL default '0',

       `image` varchar(20) NOT NULL default '',

     // Задаем ключевое поле таблицы

       PRIMARY KEY  (`good_id`)

     ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; 

     // Вставляем в таблицу значения

     INSERT INTO `goods` VALUES (1, 'Лазерный принтер HP LaserJet P1005', 'Скорость печати (чёрно-белая, обычное качество, A4)', 1, 140, '1.jpg');

     INSERT INTO `goods` VALUES (2, 'Лазерный принтер HP LaserJet P2005', 'Монохромный лазерный принтер для индивидуального использования дома или в небольшом офисе.', 1, 145, '2.jpg');

     INSERT INTO `goods` VALUES (3, 'Лазерный принтер Samsung ML-2010PR', 'Ресурс: 5000 страниц в месяц Процессор: 150 МГц Первая страница: 10 секунд Типы печатных носителей: Бумага, конверты, наклейки,', 2, 130, '3.jpg');

     INSERT INTO `goods` VALUES (4, 'Samsung SCX-4200', 'МФУ A4, принтер/копир/сканер,до18стр/мин,600x2400dpi USB/LPT', 2, 195, '4.jpg');

     INSERT INTO `goods` VALUES (5, 'Canon LBP-2900b Bl', 'Монохромный лазерный принтер для индивидуального использования дома или в небольшом офисе', 3, 145, '5.jpg');

     INSERT INTO `goods` VALUES (6, 'Samsung ML-2015', 'Лазерный принтер  A4, 1200 dpi, 20ppm, 8 Mb, USB/LPT', 2, 120, '6.jpg'); 

     // Создание таблицы

     CREATE TABLE `orderbook` (

     // Создание строк в таблице

       `position_id` int(10) NOT NULL auto_increment,

       `order_id` int(10) NOT NULL default '0',

       `good_id` int(10) NOT NULL default '0',

       `quantity` int(10) NOT NULL default '0',

     // Задаем ключевое поле таблицы

       PRIMARY KEY  (`position_id`)

     ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ; 

     // Создание таблицы

     CREATE TABLE `orders` (

     // Создание строк в таблице

       `order_id` int(10) NOT NULL auto_increment,

       `order_date` date NOT NULL default '0000-00-00',

       `buyer_id` int(10) NOT NULL default '0',

     // Задаем ключевое поле таблицы

       PRIMARY KEY  (`order_id`)

     ) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;

    1. Реализация  проектируемой схемы базы данных с использованием Web-интерфейса, созданного на языке программирования PHP

     Наш интернет-магазин реализуем с  использованием языка гипертекстовой разметки html, языка программирования php и СУБД MySQL.

     Главная часть функционирования сайта –  работа с базой данных.

     Для работы с базой данных через web-интерфейс необходимо выполнить следующую последовательность действий:

  • Соединиться с сервером баз данных;
  • Выбрать базу данных;
  • Выполнить SQL-запрос;
  • Вывести данные, полученные в результате запроса.

     Исходные коды сценариев находятся в приложениях.

     Вид главной страницы показан на рисунке 2.2.

     Рассмотрим  сценарий отображающий главную страницу. Исходные коды сценариев находятся  в приложениях. Одной из главных  частей работы является работа с базой  данных.

Рисунок 2.2 - Главная страница Интернет-магазина 

     Рассмотрим  построение вэб-интерфейса приведенной  страницы. Остальные страницы построены  аналогично.

     Сайт  был разработан в текстовом редакторе  «Блокнот». Была сформирована HTML страничка с PHP кодом и сохранена с расширением *.php.

     Страницы  сайта были созданы используя  теги. Основные элементы форматирования, используемые на сайте это:

     <HTML>

     <HEAD>

  • Использование заголовка

        <TITLE>Сайт по продаже принтеров</TITLE>

  • Использование стилей

        <style type="text/css">

     <!--

     body {background-color: #FFFFFF;}

     .style3 {font-family: Verdana, Arial, Helvetica, sans-serif;

           font-size: 16px;}

     .style4 {font-family: Verdana, Arial, Helvetica, sans-serif}

     .style5 {color: #CCFF00; font-weight: bold;}

     .style8 {color: #CCFFFF}

     .style9 {color: #CCFFFF; font-weight: bold; font-size: 14px; }

     .style11 {color: #FFFFCC; font-weight: bold; font-size: 14px; }

     .style12 {color: #FFFFCC}

     .style15 {font-family: Verdana, Arial, Helvetica, sans-serif; color: #CC00FF; font-size: 24px; font-weight: bold;}