Проектирование базы данных металлопроката и метизов в терминах ER-моделирования

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,99 Mb
  • Опубликовано:
    2011-12-14
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Проектирование базы данных металлопроката и метизов в терминах ER-моделирования















Проектирование базы данных металлопроката и метизов в терминах ER-моделирования

Оглавление

Введение

. Проектирование базы данных рынка металлопроката и метизов в терминах ER-моделирования

.1 Описание предметной области рынка металлопроката и метизов

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

.3 Построение логической модели данных рынка металлопроката и метизов

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

.1 Построение физической модели данных каталога металлопроката и метизов на языке SQL средствами СУБД MYSQL

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

. Расчет экономической эффективности каталога продукции ОАО «Металлсервис»

.1 Расчет капитальных вложений

.2 Расчет эксплуатационных расходов

.3 Расчет экономического эффекта

Заключение

Список использованных источников

Приложение

Введение

Данная курсовая работа посвящена проектированию базы данных каталога продукции ОАО «Металлсервис». Предприятие занимается реализацией металлопроката и метизов.

Целью курсового проектирования ставится разработка каталога продукции с применением технологий MySQL, HTML и PHP.

Задачами курсовой работы являются:

-   рассмотрение предметной области рынка метизов и металлопроката;

-       рассмотрение технологии проектирования баз данных при помощи CASE средства ERWin

-   рассмотрение технологий реализации баз данных средствами программы «PHP MyAdmin»;

-       углубление знаний в области языка программирования PHP, а также систематизация знаний в области SQL (языка структурированных запросов);

-       понимание механизмов интеграции технологий SQL и PHP;

-       приобретение знаний в области технологии HTML (языка гипертекстовой разметки);

-       приобретение навыков расчета экономического эффекта от сайта предприятия

1. Проектирование базы данных рынка металлопроката и метизов в терминах ER-моделирования

1.1    Описание предметной области рынка металлопроката и метизов


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

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

Подкатегории включают в себя продукты.

Продукты заказывают пользователи.

После перехода на страницу товара, пользователь может приступить к заказу товара.

Каждый товар сделан из определенной марки стали

Таким образом, мы выделили следующие объекты для исследования:

-   пользователь;

-       категория;

-       подкатегория;

-       продукт;

-       заказ;

-       марка.

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


CA ERwin Data Modeler (ранее называвшийся AllFusion Data Modeler) - программный продукт в области реализации средств CASE-технологий. (ERWin - это исходное название продукта. Появился этот продукт где-то в середине 1990-х. В компании Интерфейс он был доступен еще в пре-релиз виде еще в 1995. BPWin - это значительно более поздний продукт той же компании предназначенный для моделирования бизнес процессов. Впоследствии ERWin множество раз перепродавался. Так что информация из данной статьи вызывает серьезные сомнения.) Позволяет проводить описание, анализ и моделирование модели данных - построитель мета-моделей данных. Занимает одно из лидирующих мест в своём сегменте рынка. В настоящее время выпускается компанией Computer Associates. Распространяется на коммерческой основе. Концептуа́льная моде́ль (англ. conceptual model) - это определённое множество понятий и связей между ними, являющихся смысловой структурой рассматриваемой предметной области.

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

Концептуальная (содержательная) модель - это абстрактная модель, определяющая структуру моделируемой системы, свойства её элементов и причинно-следственные связи, присущие системе и существенные для достижения цели моделирования [3].

В процессе рассмотрения предметной области были определены следующие сущности (таблицы):

-   пользователь (polzovatel);

-       категория (kategoria);

-       подкатегория (podkategoria);

-       продукт (product);

-       заказ (zakaz);

-       mарка (marka).

Концептуальная модель базы данных будет выглядеть следующим образом:

Рисунок 1.1 - Концептуальная модель базы данных, построенная с помощью CASE-средства ErWin

металлопрокат логическая модель база данные

1.3    Построение логической модели данных рынка металлопроката и метизов


На следующем, более низком уровне находится логическая модель данных предметной области. Логическая модель описывает понятия предметной области, их взаимосвязь, а также ограничения на данные, налагаемые предметной областью. Примеры понятий - "сотрудник", "отдел", "проект", "зарплата". Примеры взаимосвязей между понятиями - "сотрудник числится ровно в одном отделе", "сотрудник может выполнять несколько проектов", "над одним проектом может работать несколько сотрудников". Примеры ограничений - "возраст сотрудника не менее 16 и не более 60 лет".

Логическая модель данных является начальным прототипом будущей базы данных. Логическая модель строится в терминах информационных единиц, но без привязки к конкретной СУБД. Более того, логическая модель данных необязательно должна быть выражена средствами именно реляционной модели данных. Основным средством разработки логической модели данных в настоящий момент являются различные варианты ER-диаграмм (Entity-Relationship, диаграммы сущность-связь). Одну и ту же ER-модель можно преобразовать как в реляционную модель данных, так и в модель данных для иерархических и сетевых СУБД, или в постреляционную модель данных. Однако, т.к. мы рассматриваем именно реляционные СУБД, то можно считать, что логическая модель данных для нас формулируется в терминах реляционной модели данных [4].

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

При разработке логической модели данных возникают вопросы: хорошо ли спроектированы отношения? Правильно ли они отражают модель предметной области, а следовательно и саму предметную область?

Ниже, на рисунке 1.2, показана логическая структура базы данных, созданная с помощью ErWin

Рисунок 1.2 - Логическая модель базы данных (ERWin)

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


2.1    Построение физической модели данных каталога металлопроката и метизов языке SQL средствами СУБД MySQL


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

-   объекты становятся таблицами в физической базе данных

-       атрибуты становятся колонками (полями) в физической базе данных. Для каждого атрибута выбирается свой тип данных.

-       уникальные идентификаторы становятся колонками, не допускающими значение NULL. В физической базе данных они называются первичными ключами (primary key).

После составления физической модели базы данных необходимо составить SQL-запрос для создания базы данных разработанной выше структуры «metallservice».

Для СУБД MySQL запрос будет выглядеть следующим образом:

-- Структура таблицы 'product'TABLE product (_ID int(8) not null auto_increment,varchar(100) not null,_id int(8) not null,int(8),_id int(8),int(8) not null,KEY (Product_ID)

);

- Структура таблицы 'marka'TABLE marka (_id int(8) not null auto_increment,varchar (20) not null,KEY (marka_id)

);

- Структура таблицы 'kategoria'TABLE kategoria (_id int(8) not null auto_increment,varchar(100) not null,KEY (kategoria_ID)

);

- Структура таблицы 'podkategoria'TABLE podkategoria (_ID int(8) not null auto_increment,varchar(100) not null,_id int(8) not null,key (podkategoria_id)

);

- Структура таблицы 'zakaz'table zakaz (_id int(8) not null auto_increment,_id int(8) not null,_id int(8) not null,int(8) not null,_zakaza int(8) not null,_pokupki int(8),key (zakaz_id)

);

- Структура таблицы 'polzovatel'table polzovatel (_id int(8) not null auto_increment,varchar (50) not null,varchar (15) not null,varchar (15) not null,key (polzovatel_id)

);

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

. Перейти на страницу приложения PHP MyAdmin (#"526039.files/image003.gif">

Рисунок 2.1 - Выбор базы данных в окне PHP MyAdmin

. Перейти на закладку «SQL» в верхней части приложения.

. Вставить SQL-скрипт, приведенный выше в окно приложения.

. Нажать на кнопку

Для создания связей между таблицами необходимо:

1.  Перейти на вкладку «Designer»

2.      Нажать на кнопку «Create Relation».

3.      Выбрать из таблиц базы данных первичный ключ

.        Выбрать из таблиц базы данных альтернативный ключ.

Ниже приведена физическая структура таблиц базы данных

Рисунок 2.2 - Физическая структура таблиц для базы данных (из приложения «PHP MyAdmin»)

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

 

2.2    Реализация каталога металлопроката и метизов с использованием Вэб-интерфейса, созданного на языке программирования PHP


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

. соединиться с сервером баз данных;

. выбрать базу данных;

. выполнить SQL-запрос;

. вывести данные, полученные в результате запроса.

Для соединения с базой данных используется оператор mysql_connect, для выбора базы данных - mysql_select_db, для выполнения запроса - mysql_query, для выбора данных из БД - mysql_result.

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

Рисунок 2.3 - Внешний вид главной страницы index.php

Текст файла главной страницы index.php приведен в Приложении 2.

Существует два возможных способа ввода данных в таблицы MySQL: c помощью SQL-запросов и через веб-интерфейс.

PHP MyAdmin предоставляет веб-интерфейс для ввода данных в таблицы, но для пользователя, не знакомого с предметной областью разработанной нами базы данных ввод данных в нее будет очень труден. Поэтому нами было принято решение разработать интерфейс администратора для ввода в базу данных возможных позиций металлопроката и метизов.

Ниже приведен код интерфейса ввода металлопроката (metalloprokat.form.php).

<HTML>

<H1>Добавить металлопрокат</H1>

<FORM ACTION="add_product.php" METOD="get">

<p align="left">

Группа товара:<br>

<select name=podkategoria size=1>

<?PHP

$Zapros2 = "select * from podkategoria where kategoria_id=1";

$Rezalt2 = mysql_query($Zapros2,$soed);

$Num_podkategories = mysql_num_rows($Rezalt2);

$k=0;($k < $Num_podkategories)

{

$podkategoria_id = mysql_result($Rezalt2, $k, "podkategoria_id");

$nazvanie = mysql_result($Rezalt2, $k, "nazvanie");("<option value=$podkategoria_id>$nazvanie</option>");

$k++;

}

?>

</select>

<br>

Наименование:<br>

<input size=40 name=nazvanie><br>

Радиус:<br>

<input size=4 name=r1>&nbspмм.<br>

Марка стали:<br>

<select name=marka size=1>

<?PHP

$Zapros = "select * from marka";

$Rezalt = mysql_query($Zapros,$soed) or die(mysql_error());

$Num_marks = mysql_num_rows($Rezalt);

$k=0;($k < $Num_marks)

{

$marka_id = mysql_result($Rezalt, $k, "marka_id") or die(mysql_error());

$nazvanie = mysql_result($Rezalt, $k, "nazvanie") or die(mysql_error());("<option value=$marka_id>$nazvanie</option>");

$k++;

}

?>

</select> </br>

Цена за тонну:

<input size=10 name=cena>руб.

<br><br><br>

<input type=reset value="Очистить">

<input type=submit value="Отправить" name=submit>

</FORM>

</HTML>

В Приложении 2 приведен код страницы интерфейса ввода метизов (metyz_form.php).

Интерфейсы выполнены в виде форм на языке HTML.

Ниже показано окно интерфейса ввода металлопроката.

Рисунок 2.4 - Интерфейс ввода металлопроката

После выбора пользователем подкатегории происходит переход к списку товаров (products_list.php). В формировании этого списка часто используется оператор mysql_result.

Синтаксис оператора: mysql_result (resource result, int row [, mixed field])_result() возвращает содержимое одной ячейки из результирующего набора MySQL. Аргумент field может быть смещением поля, именем поля или именем_таблицы.именем_поля (tablename.fieldname). [6].

При работе с большими результирующими наборами вы можете предусмотреть использование одной из функций, извлекающих ряд целиком. Эти функции возвращают содержимое нескольких ячеек в одном вызове функции, они работают НАМНОГО быстрее, чем mysql_result(). Необхоимо отметить также, что специфицирование числового смещения для аргумента field намного быстрее, чем специфицирование аргумента fieldname или tablename.fieldname [3].

Ниже показано окно списка товаров для категории «Трубы горячедеформированные».

Рисунок 2.5 - Страница списка товаров

Ниже приведен код страницы products_list.php

<?PHP

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

$Zapros3 = "select * from podkategoria where podkategoria_id=$podkategoria";

$Rezalt3 = mysql_query($Zapros3,$soed) or die (mysql_error());

$podkategoria_name = mysql_result($Rezalt3, 0, "nazvanie");"<h1>$podkategoria_name</h1>";

$Zapros3 = "select * from product where podkategoria_id=$podkategoria";

$Rezalt3 = mysql_query($Zapros3,$soed) or die (mysql_error());

$Num_products = mysql_num_rows($Rezalt3) or die (mysql_error());

$k=0;"<table border=1 bordercolor=#000000>";"<tr><td><b>Название</b></td><td><b>Радиус</b></td><td><b>Марка стали</b></td><td><b>Цена</b></td><td><b>Заказать</b></td></tr>";($k < $Num_products)

{

$product_id = mysql_result($Rezalt3, $k, "product_id");

$nazvanie = mysql_result($Rezalt3, $k, "nazvanie");

$r1 = mysql_result($Rezalt3, $k, "r1");

$marka_id = mysql_result($Rezalt3, $k, "marka_id");

$Zapros4 = "select * from marka where marka_id=$marka_id";

$Rezalt4 = mysql_query($Zapros4,$soed) or die (mysql_error());

$marka = mysql_result($Rezalt4, 0, "nazvanie");

$cena = mysql_result($Rezalt3, $k, "cena");"<tr>";"<td>$nazvanie</td><td> $r1</td> <td>$marka</td> <td>$cena</td><td><a href=index.php?page_id=3&product=$product_id>Заказать</a></td>"; "</tr>";

$k++;

}

?>

</table>

После того, как пользователь просмотрел список товаров, он может перейти к заказу, нажав на кнопку .

Интерфейс заказа выглядит следующим образом:

Рисунок 2.6 - Интерфейс заказа

Ниже приведен код страницы интерфейса формы заказа order_form.php

<HTML>

<FORM ACTION="add_order.php" METOD="get">

<H1>Форма заказа</H1>

<H2>Данные клиента</H2>

<div id="catalog">

ФИО:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input size=40 name=fio><br>

Телефон:&nbsp<input size=12 name=telephon><br>

Электронный адрес:&nbsp<input size=12 name=email><br>

</div>

<H2>Данные по заказу</H2>

<div id="catalog">

Вы заказываете:

<?PHP

$Zapros3 = "select * from product where product_id=$product";

$Rezalt3 = mysql_query($Zapros3,$soed) or die (mysql_error());

$nazvanie = mysql_result($Rezalt3, 0, "nazvanie");

$cena = mysql_result($Rezalt3, 0, "cena");"<b>$nazvanie</b><br>Цена:&nbsp<b>$cena</b><br>";"<input type=hidden name=product value=$product>";"<input type=hidden name=cena value=$cena>"

?>

Количество:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input size=2 name=kolichestvo>&nbspтонн<br>

Дата покупки (ДДММГГ):<input size=6 name=data><br>

</div>

<input type=reset value="Очистить">

<input type=submit value="Отправить" name=submit>

</FORM>

</HTML>

Построив физическую модель базы данных с использованием системы управления базами данных MySQL и автоматизировав процессы работы с ней посредством Вэб-интерфейса, созданного на языке программирования PHP, мы создали Интернет-магазин рынка металлопроката и метизов.

3.     
Расчет экономической эффективности каталога продукции ОАО «Металлсервис»


3.1    Расчет капитальных вложений


Единовременные затраты (КВ) на создание Web-сервера включают следующие статьи:

затраты на первоначальный анализ и планирование (ПАП);

затраты на приобретение технических и программных средств (ТПС);

затраты на установку и монтаж оборудования (УМО);

затраты на разработку и создание Web-страниц (РСС);

прочие затраты (ПЗ).

Затраты на первоначальный анализ и планирование установим в размере 1 500 000 беларусских рублей.

Затраты на приобретение технических и программных средств сведены в таблице 3.1. (по данным фирмы «Компьютер трейд» ktr.by).

Таблица 3.1 - Затраты на приобретение технических и программных средств


Затраты на установку и монтаж оборудования определяем по общепринятым нормативам, в процентах от стоимости технических и программных средств. (Норматив затрат - 2,5%).

УМО=ТПС*0,025=3 568 432 *0,025 = 89 211 руб (3.1)

Затраты на разработку и создание Web-страниц подразделяются по следующим статьям:

затраты на потребляемую электроэнергию (КЗэл);

расходы на оплату труда (основная и дополнительная заработная плата) - ФОТ;

начисления на заработную плату (Озп).

Единовременные затраты на потребляемую электроэнергию (КЗэл) определим по следующей формуле:

КЗэл = p*w*Т*t, (3.2)

где p - стоимость 1кВт электроэнергии. Стоимость киловатта электроэнергии приведена по данным сайта #"526039.files/image013.gif">

Затраты по оплате труда определяем по формуле (здесь Т не в днях, а в месяцах):

ФОТ = (зп+зп*Ндп)*Т*N; (3.4)

ФОТ = (1 948 050 + 1 948 050 *0.35)*2*1 = (1 948 050 + 681 817,5)*2*1 = 5 259 734 руб.

Отчислениями с заработной платы (от ФОТ) являются:

отчисления в фонд социальной защиты населения (34%):

ФСЗН =5 279 734 *0,34 = 1 795 109,56 руб

Расчет расходов на оплату труда и соответствующих начислений с заработной платы приведен в таблице 3.3.

Таблица 3.3 - Расчет расходов и отчислений на оплату труда


Расчет затрат по разработке и созданию Web-страниц сведен в таблице 3.4.

Таблица 3.3 - Затраты по разработке и созданию Web-страниц


В прочие затраты включаются затраты на подключение к сети Интернет (будем использовать тариф «Домосед» от ByFly - 54 000 руб/месяц [9]), затраты на регистрацию доменного имени в зоне .by на пять лет (127 000 руб в год) и затраты на оплату хостинга на пять лет (86 900 руб в год).. Услуги представляются компанией Hoster.by. Тогда прочие затраты будут составлять:

ПЗ = 54 000 * 2 + 127 000+86 900*5 = 108 000 + 1 069 500 руб.= 1 177 500

Общая сумма капитальных затрат равна сумме всех предыдущих затрат и приведена в таблице 3.5.

Таблица 3.5 - Общая сумма капитальных вложений в Web-сервер


Как видно, величина единовременных капитальных затрат составляет 13 413 183,36 рублей

3.2    Расчет эксплутационных расходов


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

Затраты на потребляемую электроэнергию (текущие) - (ТЗэл);

Заработная плата обслуживающего персонала (ФОТ);

Начисления на заработную плату (Озп);

Расходы на вспомогательные расходные материалы (ВРМ);

Абонентская плата за услуги связи (АбПл);

Амортизационные отчисления (АмОт);

Затраты на послегарантийный ремонт оборудования (ПгРО);

Расходы на проведение рекламной кампании (РК).

Текущие затраты на потребляемую электроэнергию (ТЗэл) определяются так:

ТЗэл = p*w*t*Тэф, (3.5)

где p - стоимость 1кВт электроэнергии (по данным сайта #"526039.files/image017.gif">

Заработная плата обслуживающего персонала. Годовые затраты по оплате труда обслуживающего персонала определяем аналогично расчету капитальных затрат на оплату труда по формуле (только уже здесь Т=12 и средняя зарплата взята не для веб-разраотчика, а для оператора ЭВМ):

ФОТ = (зп+зп*Ндп)*12*N, (3.7)

ФОТ = (899 100+ 899 100*0.35)*12*1 = (899100 + 314685) * 12 * 2 = 29 130 840 руб

Определим начисления на заработную плату (от ФОТ):

отчисления в фонд социальной защиты населения (34%):

ФСЗН =43 696 260 *0,34 = 9 904 485,6 руб

Расчет расходов на оплату труда и соответствующих начислений с заработной платы сведен в таблице 3.7 на следующей странице

Таблица 3.7 - Расчет текущих годовых расходов и отчислений на оплату труда


Расходы на вспомогательные расходные материалы приведены в таблице 3.8.

Таблица 3.8 - Вспомогательные расходные материалы


Абонентская плата за услуги связи складывается из затрат на пользование интернетом и затрат на телефонную связь. Обе услуги предоставляются компанией «Белтелеком».

Затраты на интернет (тариф «Домосед» [9]) будут равны 54000 руб в месяц

Затраты на телефон [10] будут равны 60 420 руб в месяц

Абонентская плата за услуги связи будет равна

АбПл = (54 000 + 60 420)*12 = 1 373 040 руб

Расчет амортизационных отчислений производится по формуле:

АмОт = ТПС*На/100%,(3.9)

где АмОт - сумма амортизационных отчислений,

ТПС - затраты на приобретение оборудования (технических и программных средств),

На - норма амортизации (%).

Норму амортизации возьмем в размере 20%. Таким образом, сумма амортизационных отчислений составит:

АмОт = 3 568 432* 0,2 = 713 686,4 руб

Норматив затрат на послегарантийный ремонт условно примем в размере 10 % от суммы капитальных затрат на приобретение оборудования (ТПС). Тогда:

ПгРО =3 568 432 * 0,1 = 356 843 руб

Расходы на проводимую рекламную кампанию составят 960 000:

РК = 960 000*12 = 11 520 000 руб

где

000 - пакет "Новость в карусели - 4 выхода в месяц" в разделе "Финансы" на портале tut.by [12];

- количество месяцев.

Результаты расчета текущих затрат по всем статьям эксплуатационных расходов приведены в таблице 3.9.

Таблица 3.9 - Текущие затраты на эксплуатацию и обслуживанию Web-сервера

Таким образом, сумма эксплутационных затрат составляет 54 384 117,88 руб

 

3.3    Расчет экономического эффект


Доход предприятия за 2009 год составил 449 550 000 беларусских рублей. По оценкам экспертов создание корпоративного сайта увеличит приток клиентов на 20%, соответственно увеличение текущего уровня доходов предприятия составит 89 910 000 б.р..

Налог на добавленную стоимость НДС, руб., рассчитывается в размере 20 % (процентов) от общей суммы доходов от основной деятельности по формуле:

НДС = ДО × 0,2 / 1,2(3.7)

Налог на добавленную стоимость будет равен: НДС = 89 910 000 × 20 / 120 = 14 985 000 б.р.

Прирост балансовой прибыли ПБ, руб.,определится по формуле:

ПБ = ДО - НК - З,(3.8)

где ДО - доходы от основной деятельности, б.р..;

НК - налоги и отчисления из выручки, б.р.

З - текущие затраты, руб.

НК = НДС + ОН (3.9)

НК = 14 985 000

Итого прирост балансовой прибыли составит:

ПБ = 89 910 000 - 14 985 000 - 54 348 117 = 20 576 883 руб

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

Пч = ПБ - НП - НМС, (3.10)

где НП - налог на прибыль (24%), руб.;

НМС - местные налоги и сборы, руб.;

НП = ПБ × 0,24(3.11)

НП = 20 576 883 × 0,24 = 4 938 451,92 руб.

НМС = (ПБ - НП) × 0,04(3.12)

НМС = (20 576 883 - 4 938 451,92) × 0,04 = 625 537,24 руб.

Пч = 20 576 883 - 4 938 451,92 - 625 537,24 = 15 012 893,84 руб

Основные показатели для расчета экономического эффекта представлены в табл. 3.10 на следующей странице.

Таблица 3.10 - Основные показатели для расчета экономического эффекта

Показатель

Значение показателя, б.р.

1

2

Прирост доходов

89 910 000

НДС

14 985 000

Прирост балансовой прибыли

20 576 883

Налог на прибыль

4 938 451,92

Прибыль чистая

15 012 893,84


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

Рассчитаем срок окупаемости капитальных вложений. Капитальные вложения окупаются за счет притока прибыли и амортизационных отчислений (амортизация не рассчитывалась).

Сумма этих двух показателей даст чистый финансовый поток ЧФП, руб. (3.14)

ЧФП = Пч + А(3.13)

где А - амортизационные отчисления, руб.;

Пч - чистая прибыль.

ЧФП = 15 012 893,84 + 713 686,40 = 15 726 580,24 руб

Таким образом срок окупаемости Т, определится по формуле:

Т = К / ЧФП,(3.14)

где К - капитальные вложения, руб.;

Т = 13 413 183,66 / 15 726 580,24 = 0,85 года

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

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

Чистый дисконтируемый финансовый поток ЧДФП определяется по формуле (3.16):

ЧДФП = (Пч+А) × Lt ,(3.15)

где Lt - коэффициент дисконтирования.

ЧДФП = (15 726 580,24) × 1 = 15 726 580,24 руб

Коэффициент дисконтирования определяется следующим образом по формуле:

= 1 / ( 1 + i)^t ,(3.16)

где i - годовая ставка дисконтирования, так расчет ведется в беларусских рублях, то примем 0,11;

t - номер года, результаты и затраты которого приводятся к расчетному.

Lt 2011= 1 / (1 + 0,11)^1 = 0,900901;2012= 1 / (1 + 0,11)^2 = 0,811622;2013= 1 / (1 + 0,11)^3 = 0,6731191;2014= 1 / (1 + 0,11)^4 = 0,658730;2015= 1 / (1 + 0,11)^5 = 0,593451;

Чистый дисконтированный доход (ЧДД) как правило, рассчитывается при постоянной ставке дисконтирования на время реализации проекта.

ЧДД = ∑(Sn - Cn) × 1/(1+i)n,(3.17)

где Sn - результаты (доходы) на n-ом шаге расчета;

Cn - затраты на n-ом шаге расчета;

i - ставка (норма) дисконта.

Расчет ЧДД и срока окупаемости сведем в таблице 3.11.

Таблица 3.11 - Расчет эффективности

Наименование показателя

Значение показателя по годам


2010

2011

2012

2013

2014

2015

Сумма капвложений, руб.

-13 413 183,36

-

-

-

-

-

Чистый финансовый поток, руб.

-

15 726 580,24

15 726 580,24

15 726 580,24

15 726 580,24

15 726 580,24

Год расчета

0

1

2

3

4

5

Коэффициент дисконтирования

1

0,900901

0,811622

0,673119

0,65873

0,593451

Чистый дисконтированный финансовый поток, руб.

-13 413 183,36

14 168 091,86

12 764 038,51

10 585 859,96

10 359 570,20

9 332 954,77

Экономический эффект нарастающим итогом

-13 413 183,36

754 908,50

13 518 947,01

24 104 806,98

34 464 377,18

43 797 331,95

Срок окупаемости

0,85 года


Как видно из табл. 3.11 затраты на web-сайт и его продвижение с помощью регистрации в Интернет затраты окупятся в первый же год содержания сайта

Рентабельность (соотношение «затраты-выгоды») PI определяются как отношение всей суммы дисконтированных доходов по проекту А к сумме дисконтированных инвестиционных затрат К, выраженное в процентах.

= А/К × 100% (3.18)

PI = 44 739 831,95 / 13 413 183,36 × 100 = 334 %

Расчет срока окупаемости (экономический эффект нарастающим итогом) представлен в таблице 3.11.

Из таблицы 3.11 видно, что срок окупаемости определяется с использованием дисконтирования, экономический эффект за первый год (2011 г.) уже положителен (754 908,5). К пятому году своего существования сайт принесет прибыль в 43 797 331,95 рублей.

Заключение

В результате курсового проектирования нами разработан сайт интернет-магазина метизов и металлопроката.

Нам удалось прийти к следующим выводам:

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

В то же время CASE средство ERWin позволяет автоматизировать процесс проектирования БД. Встроенные механизмы экспорта данных предоставляют возможности для переноса схемы, созданной пользователем в программе, прямо в базу данных. Возможен и обратный процесс, так называемый реверсный инжиниринг.

Приложение PHP MyAdmin предоставляет удобные средства создания связей между таблицами БД. Инструмент «Designer» позволяет связать первичные ключи с альтернативными и наглядным образом отображает связи между таблицами. Последующие изменения отображаются в программе.

Язык SQL в «связке» с PHP - мощное средство манипулирования данными. В рамках данной курсовой работы были организованы запросы как на выборку из базы данных (список продуктов) так и на внесение данных (интерфейс администрирования и интерфейс заказа).

Расчет экономической эффективности электронного магазина позволил выдвинуть гипотезу, что ко второму году существования сайта он принесет прибыль в 754 908,50 беларусских рублей.

Список использованных источников

1.  Елисеев А. Интернет коммерция в глобальной сети. Преимущества и перспективы заработка с помощью интернет коммерции. http://www.alexnetworks.ru/stat/interkom.htm

2.      Основы информатики: Учебное пособие / А.Н. Морозевич, Н.Н. Говядинова и др.; Под общей редакцией А.Н. Морозевича. - Мн.: Новое знание, 2001. - 231 с.: ил.

.        Статья «Логическая модель» на сайте свободной энциклопедии «Википедия». http://ru.wikipedia.org/wiki/Логическая_модель

.        Статья «Нормальные формы отношений в БД» на сайте «Citforum». http://citforum.ru/database/dblearn/dblearn06.shtml

.        Успенский И.В. Энциклопедия Интернет-бизнеса. - СПб.: Питер, 2001 г. - 526 с.

.        Учебник PHP

.        Харрингтон Д. Проектирование реляционных баз данных .Просто и доступно. М.: Лори, 2001. - 194 с.: ил.

.        Гаврилов Л.П. Основы электронной коммерции и бизнеса. М.: Солон-Пресс, 2009.

.        Тарифы ByFly для работы и отдыха. http://www.byfly.by/client/tariffsrelax/

.        Тарифы на услуги связи, предоставляемые МГТС. http://www.mgts.beltelecom.by/services/telnet/phone/text10/

.        Тарифы на электрическую энергию, поставляемую юридическим лицам и индивидуальным предпринимателям. http://www.newtariffs.ru/tariff/tarify-na-elektricheskuyu-energiyu-postavlyaemuyu-belenergo-yuridicheskim-litsam-i-individual

.        Расценки на услуги рекламы, представляемые порталом tut.by.

Приложение

Дамп базы данных «Metallservice»

-- phpMyAdmin SQL Dump

- phpMyAdmin SQL Dump

- version 3.2.3

- http://www.phpmyadmin.net

-

- Host: localhost

- Generation Time: Oct 10, 2010 at 10:33 PM

- Server version: 5.1.40

- PHP Version: 5.2.12SQL_MODE="NO_AUTO_VALUE_ON_ZERO";

-

- Database: 'metallservice'

-

- --------------------------------------------------------

-

- Table structure for table 'kategoria'

-TABLE kategoria (_id int(8) NOT NULL AUTO_INCREMENT,varchar(100) NOT NULL,KEY (kategoria_id)

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

-

- Dumping data for table 'kategoria'

-INTO kategoria (kategoria_id, nazvanie) VALUES

(1, 'Металлопрокат'),

(2, 'Метизы');

- --------------------------------------------------------

-

- Table structure for table 'marka'

-TABLE marka (_id int(8) NOT NULL AUTO_INCREMENT,varchar(20) NOT NULL,KEY (marka_id)

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

-

- Dumping data for table 'marka'

-INTO marka (marka_id, nazvanie) VALUES

(1, 'Ст20'),

(2, 'Ст10'),

(3, 'Ст09Г2С'),

(4, 'Ст3сп5');

- --------------------------------------------------------

-

- Table structure for table 'podkategoria'

-TABLE podkategoria (_ID int(8) NOT NULL AUTO_INCREMENT,varchar(100) NOT NULL,_id int(8) NOT NULL,KEY (podkategoria_ID)

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

-

- Dumping data for table 'podkategoria'

-INTO podkategoria (podkategoria_ID, nazvanie, kategoria_id) VALUES

(1, 'Трубы г/д', 1),

(2, 'Трубы х/д', 1),

(3, 'Электросварные трубы', 1),

(4, 'Проволока, канаты', 2),

(5, 'Винты, шурупы, болты', 2);

-- --------------------------------------------------------

-

- Table structure for table 'polzovatel'

-TABLE polzovatel (_id int(8) NOT NULL AUTO_INCREMENT,varchar(50) NOT NULL,varchar(15) NOT NULL,KEY (polzovatel_id)

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

-

- Dumping data for table 'polzovatel'

-INTO polzovatel (polzovatel_id, fio, telephon) VALUES

(1, 'Иванов Владимир Петрович', '213121'),

- --------------------------------------------------------

-

- Table structure for table 'product'

-TABLE product (_ID int(8) NOT NULL AUTO_INCREMENT,varchar(100) NOT NULL,_id int(8) NOT NULL,int(8) DEFAULT NULL,_id int(8) DEFAULT NULL,int(8) NOT NULL,KEY (product_ID)

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

-

- Dumping data for table 'product'

-INTO product (product_ID, nazvanie, podkategoria_id, R1, marka_id, cena) VALUES

(4, 'Трубы г/д 57x10', 1, 57, 1, 38690),

(5, 'Трубы г/д 60x4 ', 1, 60, 1, 3869000),

(6, 'Трубы г/д 70x14', 1, 70, 2, 3869009),

(7, 'Трубы г/д 70x8', 1, 70, 2, 3869009),

(8, 'Трубы г/д 76x4 09Г2С', 1, 70, 3, 3869009),

(9, 'Трубы г/д 83x18', 1, 83, 2, 3869000);

- --------------------------------------------------------

-

- Table structure for table 'zakaz'

-TABLE zakaz (_id int(8) NOT NULL AUTO_INCREMENT,_id int(8) NOT NULL,_id int(8) NOT NULL,int(8) NOT NULL,_zakaza int(8) NOT NULL,_pokupki int(8) DEFAULT NULL,KEY (zakaz_id)

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

-

- Dumping data for table 'zakaz'

-INTO zakaz (zakaz_id, polzovatel_id, product_id, kolichestvo, summa_zakaza, data_pokupki) VALUES

(1, 8, 4, 23, 889870, 12122001),

(2, 9, 4, 23, 889870, 12122001);

---

Приложение 2 Листинг страниц сайта

Код страницы add_order.php

<?PHP

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

$Zapros3 = "INSERT INTO polzovatel VALUES('','$fio', '$telephon')" or die (mysql_error());

$Rezalt3 = mysql_query($Zapros3,$soed); "Данные по пользователю внесены в БД!<br>";

$Last_insert = mysql_insert_id();

$summa=$kolichestvo*$cena;

$Zapros3 = "INSERT INTO zakaz VALUES('', $Last_insert, $product, $kolichestvo, $summa, $data)";

$Rezalt3 = mysql_query($Zapros3,$soed) or die (mysql_error()); "Данные по заказу внесены в БД!<br>";

?>

Код страницы add_product

<?PHP

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

$Zapros4 = "INSERT INTO product VALUES('', '$nazvanie', $podkategoria, $r1, $marka, $cena )";

$Rezalt4 = mysql_query($Zapros4,$soed) or die(mysql_error()); "Товар успешно добавлен в базу данных";

?>

Код страницы index.php

<HTML>

<HEAD>

<TITLE>ОАО "Металлсервис"</TITLE>

<link rel="stylesheet" href="styles.css">

</HEAD>

<body>

<center><IMG src="banner.gif" border=1></a></center>

<table cellspacing=2 cellpadding=5 border=2>

<tr>

<td width="200px" valign="top">

<br>

<?php

$i = 0;

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

$Zapros = "select * from kategoria";

$Rezalt = mysql_query($Zapros,$soed) or die(mysql_error());

$Num_kategories = mysql_num_rows($Rezalt) or die(mysql_error());($i < $Num_kategories)

{

$Kategoria_id = mysql_result($Rezalt, $i, "kategoria_id");

$Nazvanie = mysql_result($Rezalt, $i, "nazvanie");("&nbsp<b>$Nazvanie</b><br>");

$Zapros2 = "select * from podkategoria where kategoria_id=$Kategoria_id";

$Rezalt2 = mysql_query($Zapros2,$soed);

$Num_podkategories = mysql_num_rows($Rezalt2);

$k=0;($k < $Num_podkategories)

{

$podkategoria_id = mysql_result($Rezalt2, $k, "podkategoria_id");= mysql_result($Rezalt2, $k, "nazvanie");"<li><a href=index.php?page_id=2&podkategoria=$podkategoria_id><B>$Nazvanie</B></a></li>";

$k++;

}

$i++;

};

?>

<b>Администрирование<b>

<li><a href=index.php?page_id=4><b>Добавить м/п</b></a>

<li><a href=index.php?page_id=5><b>Добавить метиз</b></a>

</td>

<td valign=center align=center>

<?PHP

/* Выбор страницы для отображения в правой части таблицы */

if (isset($page_id))

{($page_id==1) {include "mainpage.php";} else($page_id==2) {include "products_list.php";} else($page_id==3) {include "order_form.php";} else($page_id==4) {include "metalloprokat_form.php";} else($page_id==5) {include "metyz_form.php";}

} else

{("mainpage.php");

};

?>

</td>

</tr>

</table>

</body>;

Код страницы mainpage.php

<HTML>

ОАО "Металлсервис" - предприятие по хранению и переработке металлопродукции. Наша основной вид деятельности - оптовая торговля металлом. На складах компании всегда представлены наиболее востребованные позиции металлопроката и метизов.

</HTML>

Код страницы metyz_form.php

<HTML>

<H1>Добавить метиз</H1>

<FORM ACTION="add_product.php" METOD="get">

<p align="left">

Группа товара:<br>

<select name=podkategoria size=1>

<?PHP

$Zapros2 = "select * from podkategoria where kategoria_id=2";

$Rezalt2 = mysql_query($Zapros2,$soed);

$Num_podkategories = mysql_num_rows($Rezalt2);

$k=0;($k < $Num_podkategories)

{

$podkategoria_id = mysql_result($Rezalt2, $k, "podkategoria_id");

$nazvanie = mysql_result($Rezalt2, $k, "nazvanie");("<option value=$podkategoria_id>$nazvanie</option>");

$k++;

}

?>

</select>

<br>

Наименование:<br>

<input size=40 name=nazvanie><br>

Радиус:<br>

<input size=4 name=r1>Мм.<br>

Марка стали:<br>

<select name=marka size=1>

<?PHP

$Zapros = "select * from marka";

$Rezalt = mysql_query($Zapros,$soed) or die(mysql_error());

$Num_marks = mysql_num_rows($Rezalt);"Hello";

$k=0;($k < $Num_marks)

{

$marka_id = mysql_result($Rezalt, $k, "marka_id") or die(mysql_error());

$nazvanie = mysql_result($Rezalt, $k, "nazvanie") or die(mysql_error());("<option value=$marka_id>$nazvanie</option>");

$k++;

}

?>

</select> </br>

Цена за тонну:

<input size=10 name=cena>руб.

<br><br><br>

<input type=reset value="Очистить">

<input type=submit value="Отправить" name=submit>

</FORM>

</HTML>

Код страницы metalloprokat.form

<HTML>

<H1>Добавить металлопрокат</H1>

<FORM ACTION="add_product.php" METOD="get">

<p align="left">

Группа товара:<br>

<select name=podkategoria size=1>

<?PHP

$Zapros2 = "select * from podkategoria where kategoria_id=1";

$Rezalt2 = mysql_query($Zapros2,$soed);

$Num_podkategories = mysql_num_rows($Rezalt2);

$k=0;($k < $Num_podkategories)

{

$podkategoria_id = mysql_result($Rezalt2, $k, "podkategoria_id");

$nazvanie = mysql_result($Rezalt2, $k, "nazvanie");("<option value=$podkategoria_id>$nazvanie</option>");

$k++;

}

?>

</select>

<br>

Наименование:<br>

<input size=40 name=nazvanie><br>

Радиус:<br>

<input size=4 name=r1>&nbspмм.<br>

Марка стали:<br>

<select name=marka size=1>

<?PHP

$Zapros = "select * from marka";

$Rezalt = mysql_query($Zapros,$soed) or die(mysql_error());

$Num_marks = mysql_num_rows($Rezalt);"Hello";

$k=0;($k < $Num_marks)

{

$marka_id = mysql_result($Rezalt, $k, "marka_id") or die(mysql_error());

$nazvanie = mysql_result($Rezalt, $k, "nazvanie") or die(mysql_error());("<option value=$marka_id>$nazvanie</option>");

$k++;

}

?>

</select> </br>

Цена за тонну:

<input size=10 name=cena>руб.

<br><br><br>

<input type=reset value="Очистить">

<input type=submit value="Отправить" name=submit>

</FORM>

</HTML>

Код страницы order_form.php

<HTML>

<FORM ACTION="add_order.php" METOD="get">

<H1>Форма заказа</H1>

<H2>Данные клиента</H2>

<div id="catalog">

ФИО:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input size=40 name=fio><br>

Телефон:&nbsp<input size=12 name=telephon><br>

</div>

<H2>Данные по заказу</H2>

<div id="catalog">

Вы заказываете:

<?PHP

$Zapros3 = "select * from product where product_id=$product";

$Rezalt3 = mysql_query($Zapros3,$soed) or die (mysql_error());

$nazvanie = mysql_result($Rezalt3, 0, "nazvanie");

$cena = mysql_result($Rezalt3, 0, "cena");"<b>$nazvanie</b><br>Цена:&nbsp<b>$cena</b><br>";"<input type=hidden name=product value=$product>";"<input type=hidden name=cena value=$cena>"

?>

Количество:&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp<input size=2 name=kolichestvo>&nbspтонн<br>

</div>

<input type=reset value="Очистить">

<input type=submit value="Отправить" name=submit>

</FORM>

</HTML>

Код страницы products_list.php

<?PHP

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

$Zapros3 = "select * from podkategoria where podkategoria_id=$podkategoria";

$Rezalt3 = mysql_query($Zapros3,$soed) or die (mysql_error());

$podkategoria_name = mysql_result($Rezalt3, 0, "nazvanie");"<h1>$podkategoria_name</h1>";

$Zapros3 = "select * from product where podkategoria_id=$podkategoria";

$Rezalt3 = mysql_query($Zapros3,$soed) or die (mysql_error());

$Num_products = mysql_num_rows($Rezalt3) or die (mysql_error());

$k=0;"<table border=1 bordercolor=#000000>";"<tr><td><b>Название</b></td><td><b>Радиус</b></td><td><b>Марка стали</b></td><td><b>Цена</b></td><td><b>Заказать</b></td></tr>";($k < $Num_products)

{

$product_id = mysql_result($Rezalt3, $k, "product_id");

$nazvanie = mysql_result($Rezalt3, $k, "nazvanie");

$r1 = mysql_result($Rezalt3, $k, "r1");

$marka_id = mysql_result($Rezalt3, $k, "marka_id");

$Zapros4 = "select * from marka where marka_id=$marka_id";

$Rezalt4 = mysql_query($Zapros4,$soed) or die (mysql_error());

$marka = mysql_result($Rezalt4, 0, "nazvanie");

$cena = mysql_result($Rezalt3, $k, "cena");"<tr>";"<td>$nazvanie</td><td> $r1</td> <td>$marka</td> <td>$cena</td><td><a href=index.php?page_id=3&product=$product_id>Заказать</a></td>";"</tr>";

$k++;

}

?>

</table>

Похожие работы на - Проектирование базы данных металлопроката и метизов в терминах ER-моделирования

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!