Распределенная база данных электронного магазина по продажам принтеров

Автор работы: Пользователь скрыл имя, 08 Ноября 2015 в 10:59, курсовая работа

Описание работы

Целью курсовой работы является развитие навыков по практическому использованию технологии распределённых баз данных для организации бизнеса в секторе сетевой экономики посредством языка программирования РНР, проектирование и реализация электронного магазина и базы данных рынка принтеров.
Для достижения поставленной цели в работе ставятся следующие задачи:
- изучить язык написания скриптов PHP для доступа к базам данных;
- проанализировать предметную область интернет-магазинов принтеров;
- спроектировать базу данных рынка принтеров;
- реализовать спроектированную базу данных средствами СУБД MySQL и языка программирования РНР в интерактивной среде Интернет.
- рассчитать эффективность создания сайта.

Содержание работы

ВВЕДЕНИЕ 5
1 ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ МАГАЗИНА ПРИНТЕРОВ В ТЕРМИНАХ ER-МОДЕЛИРОВАНИЯ 6
1.1 ОПИСАНИЕ ПРЕДМЕТНОЙ ОБЛАСТИ МАГАЗИНА ПРИНТЕРОВ 6
1.2 ПОСТРОЕНИЕ КОНЦЕПТУАЛЬНОЙ МОДЕЛИ БАЗЫ ДАННЫХ 7
1.3 ПОСТРОЕНИЕ ЛОГИЧЕСКОЙ МОДЕЛИ ДАННЫХ 10
2 РЕАЛИЗАЦИЯ МОДЕЛИ БАЗЫ ДАННЫХ МАГАЗИНА ПРИНТЕРОВ В ИНТЕРАКТИВНОЙ СРЕДЕ ИНТЕРНЕТ 13
2.1 ПОСТРОЕНИЕ ФИЗИЧЕСКОЙ МОДЕЛИ ДАННЫХ НА ЯЗЫКЕ SQL СРЕДСТВАМИ СУБД MYSQL 13
2.2 РЕАЛИЗАЦИЯ ПРОЕКТИРУЕМОЙ СХЕМЫ БАЗЫ ДАННЫХ С ИСПОЛЬЗОВАНИЕМ WEB-ИНТЕРФЕЙСА, СОЗДАННОГО НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ PHP 16
3 РАСЧЕТ ЭКОНОМИЧЕСКОЙ ЭФФЕКТИВНОСТИ ЭЛЕКТРОННОГО МАГАЗИНА ПРИНТЕРОВ 27
3.1 РАСЧЕТ КАПИТАЛЬНЫХ ВЛОЖЕНИЙ 27
3.2 РАСЧЕТ ЭКСПЛУАТАЦИОННЫХ РАСХОДОВ 28
3.3 РАСЧЕТ ЭКОНОМИЧЕСКОГО ЭФФЕКТА 30
ЗАКЛЮЧЕНИЕ 36
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 37
ПРИЛОЖЕНИЕ 1 38
ПРИЛОЖЕНИЕ 2 42
ПРИЛОЖЕНИЕ 3 45
ПРИЛОЖЕНИЕ 4 48
ПРИЛОЖЕНИЕ 5 52
ПРИЛОЖЕНИЕ 6 58
ПРИЛОЖЕНИЕ 7 62

Файлы: 1 файл

kursovaya-magazin_printerov.doc

— 976.00 Кб (Скачать файл)

В нашем случае присутствует связь (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;}

-->

   </style>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></HEAD>

<body>

<p align="center">

<a href="counter.php"></a></p>

  • использование таблицы:

<table width="90%" border="0" align="center">

      <tr>

        <td width="213" bgcolor="#CCFFFF"><div align="center" class="style15">Магазин  принтеров </div></td>

        <td colspan="2" align="center" bgcolor="#99FF00"></td>

     </tr>

     

      <tr>

        <td valign="top" bgcolor="#66FFFF"><p class="style5"><span class="style8"></span></p>         

  • использование прочих способов создания (форматирования) странички: (теги font, center и т.д.)

<p><span class="style9"><a href="index.php" class="style4">ГЛАВНАЯ</a></span></p>

        <p><span class="style9"><a href="about.php" class="style4">О МАГАЗИНЕ</a></span></p>

        <p><span class="style11"><a href="vid.php?Vid=1" class="style4">КАТАЛОГ  ПРОДУКЦИИ</a></span></p></td>

        <td width="70%" bgcolor="#FFFF66"><p align="center" class="style3">Вот уже 8 лет «КопТех – Принтеры» работает для вас на  белорусском рынке принтеров. Ассортимент принтеров нашей компании, представлен тремя ведущими  фирмами-производителями, которые на сегодняшний день являются одной из  крупнейшей мировой корпорацией Konica Minolta. Используя наше обширное  предложение по принтерам, Вы всегда сможете выбрать для  себя наиболее подходящую модель по таким параметрам как: </p>

          <p><strong>- функциональность;</strong></p>

          <p><strong>- надёжность;</strong></p>

          <p><strong>- цена.</strong></p>

          <div align="justify">Благодарим Вас за посещение нашего сайта и надеемся на дальнейшую взаимовыгодную и плодотворную работу.

          </div>

          <p align="center" class="style3">&nbsp;</p>

          <p align="center" class="style3">&nbsp;</p>

          <p align="center" class="style3">&nbsp;</p>

          <p align="center" class="style3">&nbsp;</p>

          <p align="center" class="style3"><br>

            <br>

        </p></td>

        <td width="91" valign="top" bgcolor="#9999FF"><div align="center">

          <p><b>

          </b></p>

        </div>          <span class="style12"></span></td>

      </tr>

    </table>

</BODY>

</HTML>

Далее рассмотрим вывод каталога продукции на сайте с использованием php. (рисунок 2.3.)

Рисунок 2.3 - Каталог Интернет-магазина

 

Чтобы работать с базой данных нужно выполнить несколько действий:

  1. Соединиться с сервером баз данных: $soed=mysql_connect("localhost", "root", ""); соединяемся с MySQL по адресу  "localhost" с именем пользователя "root", без пароля, т.е. пароль ""
  2. Выбрать базу данных: mysql_select_db("Printer", $soed); выбираем базу данных  "printer"
  3. Выполнить SQL-запрос: $Zapros = "select * from vid";
  4. Вывести данные полученные в результате запроса:

$i = 0;

while ($i < $Num_vid){

$Vid_id = mysql_result($Rezalt, $i, "vid_id");

$Nazvanie = mysql_result($Rezalt, $i, "nazvanie");

print "<P><H3><A HREF=\"vid1.php?Vid=$Vid_id\">$Nazvanie</A> </H3>";

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

<?php

// Соединяемся с базой данных

$soed=mysql_connect("localhost", "root", "");

// Выбираем базу данных

mysql_select_db("Printer", $soed);

// Создаем запрос

$Zapros = "select * from vid";

// Получаем данные из базы  данных

$Rezalt = mysql_query($Zapros,$soed);

// Считаем количество записей  в массиве

$Num_vid = mysql_num_rows($Rezalt);

// Задаем значение переменной  равной 0

$i = 0;

// Выводим информацию пока соблюдается  условие «если»

while ($i < $Num_vid){

// Выводим результат запроса

$Vid_id = mysql_result($Rezalt, $i, "vid_id");

// в переменную $Vid_id заносим значение поля vid_id текущей строки

$Nazvanie = mysql_result($Rezalt, $i, "nazvanie");

// в переменную $Nazvanie заносится значение поля nazvanie текущей строки

print "<P><H3><A HREF=\"vid1.php?Vid=$Vid_id\">$Nazvanie</A></H3>";

// вывод в браузер гиперссылки 

$i++;

// i = i+1

}

?>

Далее на главной странице производим выборку видов принтеров рисунок 2.4.

Рассмотрим скрипт реализующий работу каталога:

           <?php

// Соединяемся с базой данных

$soed=mysql_connect("localhost", "root", "");

// Выбираем базу данных

mysql_select_db("Printer", $soed);

// Создаем запрос

$Zapros3 = "select * from prod where vid_id = $Vid";

// Получаем данные из базы  данных

$Rezalt3 = mysql_query($Zapros3,$soed);

//  выбор только нужного принтера

$Num_row3 = mysql_num_rows($Rezalt3);

Информация о работе Распределенная база данных электронного магазина по продажам принтеров