Главная      Учебники - Разные     Лекции (разные) - часть 20

 

Поиск            

 

<i><b>Новая</b></i> <i><b>страница</b></i> 1

 

             

Новая страница 1

Федеральное агентство по образованию Российской Федерации

Новокузнецкий филиал-институт государственного образовательного

учреждения высшего профессионального образования
”Кемеровский государственный университет”

Факультет информационных технологий

Кафедра общей и прикладной информатики

К У Р С О В А Я Р А Б О Т А

по курсу: “ Базы данных и экспертные системы ”

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

коммерческого предприятия и её реализация в виде web-приложения

Выполнил: ст. гр. ПМИ-042

Шулаков М. В.

Проверил: Погула В. В.

Новокузнецк, 2007


Данная работа содержит описание созданной базы данных (инфологическая модель и её физическая реализация), описание приложения, необходимого для работы с базой данных, и код самого приложения.

Ключевые слова: заказы, товары, заказчики, цифровая техника, Интернет-магазин, web-приложение, база данных, инфологическая модель, физическая реализация.

Количество страниц работы – 30, рисунков – 6, использованных источников – 6, приложений – 1.

Цель работы – разработать и создать базу данных и приложение, которое будет использовать эту базу данных, в соответствии с выбранной предметной областью. Объектом исследования являются торговые отношения и взаимосвязи между продавцом и покупателем, выраженные в системе создания, хранения, просмотра и редактирования заказов на товары. Исследование проводится в соответствии с общими правилами проектирования информационных систем, но вместе с тем имеет отличительные особенности в связи с использованием «банковской» системы организации данных. Таким образом, сначала разрабатывается реляционная база данных в виде схем и выражений реляционной алгебры, потом эта модель преобразуется в соответствии с выбранной СУБД, и создаётся её описание на языке SQL; после этого, проектируется и реализуется на практике приложение, которое будет использовать и при необходимости редактировать эту базу данных.

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

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


Задание на проектирование

Спроектировать базу данных и реализовать ее физически с использованием одной из доступных СУБД. Кроме того, необходимо разработать приложение для обслуживания базы данных. Предметную область студент выбирает самостоятельно.

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


Содержание

Введение…………………………………………………………………………….5

Основная часть работы

· Анализ задачи………………………………………………………………….....6

· Инфологическая модель………………………………………………………....7

· Даталогическая модель. Физическое проектирование в СУБД……..............8

· Структура приложения и инструкция по работе с ним…………………….12

Заключение ...........................................................................................................16

Список литературы ..............................................................................................17

Приложения ...........................................................................................................18


Введение

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

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

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

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

  1. Выбрать предметную область, на описание которой будет направлен проект.
  2. Разработать для этой предметной области модель “сущность-связь” (инфологическую модель). Обосновать мощность и обязательность или необязательность связей, выбор ключей.
  3. Превратить эту модель в даталогическую. Обосновать при этом выбор того или иного способа реализации схем отношений и связей между ними, выбор типов для атрибутов отношений. Реализовать модель в виде физической базы данных.
  4. Указать последовательность команд SQL для создания базы данных со всеми необходимыми объектами (см. пример скрипта в приложении).
  5. Разработать приложение (например, на Delphi) для ввода и редактирования данных и построения отчетов, основываясь на проекте базы данных, разработанной в ходе выполнения п.п. 1.-4.

Основная часть работы

Анализ задачи.

Я решил разрабатывать базу данных для системы заказов коммерческого предприятия. Сама база данных будет создана c использованием утилиты phpMyAdmin, входящей в комплекс программ «Денвер-2» (который позволяет запустить полноценный веб-сервер Apache с поддержкой PHP, Perl и сервер MySQL на машине, работающей под управлением MS Windows 95/98/Me/NT/2000/XP). Приложение, которое будет использовать созданную базу данных, будет написано на языке web-программирования PHP; таким образом, оно будет состоять из нескольких web-страниц, связанных между собой ссылками и формами.


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

Листинг 2. Файл «logo.htm» – файл верхнего фрейма

( логотип web- приложения ).

<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns="http://www.w3.org/TR/REC-html40">

<head>

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

<title>&#1053;&#1086;&#1074;&#1072;&#1103; &#1089;&#1090;&#1088;&#1072;&#1085;&#1080;&#1094;&#1072; 1</title>

<!--mstheme--> <link rel="stylesheet" href="pics/wate1011.css">

<meta name="Microsoft Theme" content="water 1011">

<link rel="File-List" href="logo.files/filelist.xml">

<!--[if !mso]>

<style>

v\:* { behavior: url(#default#VML) }

o\:* { behavior: url(#default#VML) }

.shape { behavior: url(#default#VML) }

</style>

<![endif]--><!--[if gte mso 9]>

<xml><o:shapedefaults v:ext="edit" spidmax="1027"/>

</xml><![endif]-->

</head>

<body>

<p align="center"><!--[if gte vml 1]><v:shapetype id="_x0000_t136"

coordsize="21600,21600" o:spt="136" adj="10800" path="m@7,l@8,m@5,21600l@6,21600e">

<v:formulas>

<v:f eqn="sum #0 0 10800"/>

<v:f eqn="prod #0 2 1"/>

<v:f eqn="sum 21600 0 @1"/>

<v:f eqn="sum 0 0 @2"/>

<v:f eqn="sum 21600 0 @3"/>

<v:f eqn="if @0 @3 0"/>

<v:f eqn="if @0 21600 @1"/>

<v:f eqn="if @0 0 @2"/>

<v:f eqn="if @0 @4 21600"/>

<v:f eqn="mid @5 @6"/>

<v:f eqn="mid @8 @5"/>

<v:f eqn="mid @7 @8"/>

<v:f eqn="mid @6 @7"/>

<v:f eqn="sum @6 0 @5"/>

</v:formulas>

<v:path textpathok="t" o:connecttype="custom" o:connectlocs="@9,0;@10,10800;@11,21600;@12,10800"

o:connectangles="270,180,90,0"/>

<v:textpath on="t" fitshape="t"/>

<v:handles>

<v:h position="#0,bottomRight" xrange="6629,14971"/>

</v:handles>

<o:lock v:ext="edit" text="t" shapetype="t"/>

</v:shapetype><v:shape id="_x0000_s1026" type="#_x0000_t136" style='width:433.5pt;

height:54pt'>

<v:shadow on="t" opacity="52429f"/>

<v:textpath style='font-family:"Arial";font-size:48pt;font-style:italic;

v-text-kern:t' trim="t" fitpath="t" string="&#1048;&#1085;&#1090;&#1077;&#1088;&#1085;&#1077;&#1090; - &#1084;&#1072;&#1075;&#1072;&#1079;&#1080;&#1085;"/>

</v:shape><![endif]--> <![if !vml]><img border=0 width=583 height=76

src="logo.files/image001.gif" alt="&#1048;&#1085;&#1090;&#1077;&#1088;&#1085;&#1077;&#1090; - &#1084;&#1072;&#1075;&#1072;&#1079;&#1080;&#1085;" v:shapes="_x0000_s1026"><![endif]>

</p>

</body>

</html>

Листинг 3.Файл « menu . htm » – файл левого нижнего фрейма

(список категорий товаров).

<html>

<head>

<meta http-equiv="Content-Language" content="en-us">

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

<title>Menu</title>

<!--mstheme--> <link rel="stylesheet" href="pics/wate1011.css">

<meta name="Microsoft Theme" content="water 1011, default">

</head>

<body>

&#1042;&#1099;&#1073;&#1077;&#1088;&#1080;&#1090;&#1077; &#1088;&#1072;&#1079;&#1076;&#1077;&#1083; :<ul style="text-align: left; line-height: 200%">

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

?>

<HTML>

<HEAD>

<META NAME="generator" CONTENT="Spider Writer HTML Editor">

<TITLE>Оформление заказа</TITLE>

</HEAD>

<BODY BGColor="#E6E6FA" Text="#191970">

<?php

if (count ($Chk)!= 0 ) { // если отмечен хотя бы один товар

if ($Quantity) {

foreach ($Chk as $index => $v)

if ($Quantity[$index] == "" ) $Quantity[$index]=1 ;

}

else { print ("массив не введён!" ); }

$Host = "localhost" ;

$User = "root" ;

$Password = "" ;

$DBname = "e-shop" ;

$TableName = "articles" ;

$DBlink = mysql_connect($Host,$User,$Password);

$Query = "SELECT * FROM $TableName WHERE " ; //вывод на экран выбранных покупателем товаров

$i=0 ;

foreach ($Chk as $index => $val){ // добавление выводимых строк в SQL-запрос

if ($i== 0 ) $Query.="ID=". $index;

else $Query.=" OR ID=". $index;

$i++ ;

}

$Result = mysql_db_query($DBname,$Query,$DBlink);

$Sum=0 . 0 ;

while ($Rows = mysql_fetch_array($Result)) {

$IDi = $Rows[ID];

$Sum += $Rows[Price]* $Quantity[$IDi]; //подсчёт общей стоимости

}

//Форма для отправления заказа:

print ("<FONT Color=#000066 Size=+2>Заполните форму для отправления заказа:</FONT>" );

print ("\n<FORM Action=\" ProcessingOrder. php\" Method=\" Post\">\n" );

print ("&nbsp;<P Align=\" Left\"> <FONT Color=#191970 Size=3> Ф . И . О .<FONT Color=#ff3333>*</FONT>:&nbsp; <INPUT Size=50 MaxLength=50 Type=\" Text\" Name=\" FIO\"><BR><BR>\n" );

print (" Дата рождения <FONT Color=#ff3333>*</FONT>: " );

DDList(1 ,31 ,"DateTime[Day]" ); print (" - " ); DDList(1 ,12 ,"DateTime[Month]" ); print (" - " ); DDList(1980 ,2000 ,"DateTime[Year]" ); print ("<BR><BR>\n" );

print ("A дрес получателя <FONT Color=#ff3333>*</FONT>:&nbsp;<INPUT Size=40 MaxLength=40 Type=\" Text\" Name=\" Address\"><BR><BR>\n" );

print ("E-mail:&nbsp;<INPUT Type=\" Text\" Name=\" Email\"><BR><BR>\n" );

Print (" Контактный телефон :&nbsp;<INPUT Type=\" Text\" Name=\" NumberPhone\"><BR><BR>\n" );

print ("<FONT Color=#778899 Size=-1><FONT Color=#ff3333>*</FONT> - поля , обязательные для заполнения </FONT>\n<BR><BR>" );

print ("<INPUT Type=\" Submit\" Value=\" Отправить заказ\">&nbsp;&nbsp;&nbsp;&nbsp;<INPUT TYPE=\"Reset \">\n<BR><BR>" );

print ("\n<FONT Color=#00008B SIZE=\" 4 \"> Общая стоимость заказа : <B><FONT Color=#DC143C>". $Sum."</FONT></B> рублей .</FONT>" );

$Result = mysql_db_query($DBname,$Query,$DBlink);

print ("\n<HR Color=#191970>" );

print ("<FONT Color=#000066><H3>В вашей корзине находятся следующие товары:</H3></FONT>" );

print ("<TABLE Align=\" top\" Border=0 CellPadding=4 CellSpacing=6 Width=800>" );

while ($Row = mysql_fetch_array($Result)) {

print ("<TR>\n" );

print ("<TD rowSpan=\" 2 \"> <IMG alt=\" $Row[Name]\" src=\" $Row[Image]\" width=\" 50 \" align=\" Texttop\" vspace=\" 0 \" border=\" 1 \"> </TD>\n" ); //вывод картинки на экран

print ("<TD height=\" 25 \" bgcolor=#000080 VALING=\" TOP\" ALING=\" CENTER\"> <FONT color=#CCFFFF>$Row[Name]</FONT> </TD>\n" ); //наименование товара

print ("<TD bgcolor=#000080 VALING=\" TOP\" ALING=\" CENTER\"><FONT color=#CCFFCC>$Row[Price] рублей </FONT></TD>\n" );

print ("</TR>\n" );

print ("<TR><TD colspan=\" 2 \" bgcolor=#CCCCFF VALING=\" TOP\" ALING=\" Left\">&nbsp;&nbsp;$Row[Text]<BR>\n" );//описание товара

$IDn = $Row[ID]; // количество выбранных товаров

print ("<FONT Color=#00008B Size=4><P Align=\" Bottom\"> Количество : $Quantity[$IDn] шт </FONT></TD>" );

print ("<INPUT Type=\" Hidden\" Name=\" Quantity[$IDn]\" Value=\" $Quantity[$IDn]\">\n" );

print ("<INPUT Type=\" Hidden\" Name=\" IPrice[$IDn]\" Value=\" $Row[Price]\">\n" );

print ("</TR>\n" );

}

print ("</TABLE>" );

mysql_close($DBlink);

}

else { // ни один товар не был отмечен

print ("<BR>&nbsp;&nbsp;<FONT Color=#FF3333 Size=4>Вы не выбрали ни одного товара!</FONT>" );

}

?>

</FORM>

</BODY>

</HTML>

Листинг 6.Файл « ProcessingOrder . php » – файл для формирования заказа и создания записи о заказчике.

<HTML>

<HEAD>

<META NAME="generator" CONTENT="Spider Writer HTML Editor">

<TITLE>Обработка запроса</TITLE>

</HEAD>

<BODY BGColor="#E6E6FA" Text="#191970">

<?php

if ($FIO and $Address and $DateTime) {

$FIO = trim ($FIO);

$Address = trim ($Address);

$DateBorn = $DateTime["Year" ]."-". $DateTime["Month" ]."-". $DateTime["Day" ];

$Host = "localhost" ;

$User = "root" ;

$Password = "" ;

$DBname = "e-shop" ;

$TableName1 = "clients" ;

$TableName2 = "inquiries" ;

$DBlink =mysql_connect($Host,$User,$Password);

$Query1 = "INSERT INTO $TableName1 VALUES(\" \",\" $FIO\",\" $DateBorn\",\" $NumberPhone\",\" $Address\",\" $Email\")" ; //добавление записи в таблицу заказчиков

$Result = mysql_db_query($DBname,$Query1,$DBlink);

$QueryForID = "SELECT * FROM $TableName1 WHERE FIO = '". $FIO."' and DateBorn = '". $DateBorn."' and ADDRESS = '". $Address."';" ;

$ResultID = mysql_db_query($DBname,$QueryForID,$DBlink); //определение ID заказчика для внесение в заказ

while ($Row = mysql_fetch_array($ResultID))

$IdenClient=$Row[ID];

reset ($Quantity); //сброс указателя в массиве количества товаров

for ($i=1 ;$i<=count ($Quantity);$i++ ) { //добавление записей в таблицу заказов (для данного пользователя)

$Each_Quantity = each ($Quantity); //создание массива со следующим элементом в массиве количества товаров и с индексом этого элемента

$IdArtc = $Each_Quantity[0 ]; $QuentArtc=$Each_Quantity[1 ]; $DTnow=date ("Y-m-d H:i:s" );

$Query2 = "INSERT INTO $TableName2 VALUES(\" \",\" $IdArtc\",\" $IdenClient\",\" $QuentArtc\",\" $IPrice[$IdArtc]\",\" $DTnow\")" ;

$querybool[] = mysql_db_query($DBname,$Query2,$DBlink);

}

if ($Result) {

if ($querybool){

foreach ($querybool as $index => $val) {

if ($val=0 ) {

print ("<FONT Color=#FF3333 Size=4> Запрос не прошёл !</FONT>\n" );

break ;

}

}

print ("<B>Запрос был успешно выполнен!</B>\n" );

}

}

else {

print ("<FONT Color=#FF3333 Size=4> Запрос не прошёл !</FONT>\n" );

}

mysql_close($DBlink);

}

elseif (! $FIO) {

print ("<FONT Color=#FF3333 Size=4> Вы не заполнили поле \" Ф. И. О. \"!</FONT><BR>\n" );

}

elseif (! $Address) {

print ("<FONT Color=#FF3333 Size=4> Вы не заполнили поле \" Адрес\"!</FONT>" );

}

?>

</BODY>

</HTML>

Листинг 7.Файл « ListOrders . php » – файл для вывода на экран (в виде таблице) сформированных заказов.

<HTML>

<HEAD>

<META NAME="generator" CONTENT="Spider Writer HTML Editor">

<TITLE>Списки созданных заказов</TITLE>

</HEAD>

<BODY BGColor="#E6E6FA" Text="#191970">

<FONT Color=#000066><H3 Align="Center">Список составленных заказов:</H3></FONT><BR>

<?php

$Host = "localhost" ;

$User = "root" ;

$Password = "" ;

$DBname = "e-shop" ;

$TableName1 = "inquiries" ;

$TableName2 = "clients" ;

$TableName3 = "articles" ;

$DBlink = mysql_connect($Host,$User,$Password);

$Query = "SELECT * FROM $TableName1" ; //вывод на экран созданных заказов

$QSearchFromClients = "SELECT * FROM $TableName2 WHERE ID='" ; //поиск заказчика по его ID, и вывод его ФИО и адреса

$QSearchFromArticles = "SELECT * FROM $TableName3 WHERE ID='" ; //поиск товара по его ID, и вывод его названия

print ("<TABLE Align=\" center\" Border=0 CellPadding=2 CellSpacing=4 Width=1000>\n" );

print ("<TH bgcolor=#000080><FONT Color=#F5FFFA> Номер заказа </FONT></TH>\n" );

print ("<TH bgcolor=#000080><FONT Color=#F5FFFA> Название товара </FONT></TH>\n" );

print ("<TH bgcolor=#000080><FONT Color=#F5FFFA> Категория товара </FONT></TH>\n" );

print ("<TH bgcolor=#000080><FONT Color=#F5FFFA> ФИО заказчика </FONT></TH>\n" );

print ("<TH bgcolor=#000080><FONT Color=#F5FFFA> Адрес заказчика </FONT></TH>\n" );

print ("<TH bgcolor=#000080><FONT Color=#F5FFFA> Количество заказанного товара </FONT></TH>\n" );

print ("<TH bgcolor=#000080><FONT Color=#F5FFFA> Цена товара </FONT></TH>\n" );

print ("<TH bgcolor=#000080><FONT Color=#F5FFFA> Итоговая стоимость заказа </FONT></TH>\n" );

print ("<TH bgcolor=#000080><FONT Color=#F5FFFA> Дата и время поступления заказа </FONT></TH>\n" );

$Result = mysql_db_query($DBname,$Query,$DBlink);

while ($INQ = mysql_fetch_array($Result)) {

print ("<TR bgcolor=#CCCCFF>\n" );

print ("<TD>$INQ[ID]</TD>" );

print ("<TD>" );

$SearchFromArticles =$QSearchFromArticles. $INQ[IDartc]."';" ; //запрос на товар с текущим ID

$ResultArtcls = mysql_db_query($DBname,$SearchFromArticles,$DBlink);

if (! $ResultArtcls) { //проверка запроса на товар

print ("Не удалость прочитать требуемые данные из таблицы $TableName3!" );

break ;

}

$ART = mysql_fetch_array($ResultArtcls); //получение записи о товаре в виде массива

print ("$ART[Name]</TD>" );

print ("<TD>" );

$SearchFromArticles =$QSearchFromArticles. $INQ[IDartc]."';" ; //запрос на товар с текущим ID

$ResultArtcls = mysql_db_query($DBname,$SearchFromArticles,$DBlink);

if (! $ResultArtcls) { //проверка запроса на товар

print ("Не удалость прочитать требуемые данные из таблицы $TableName3!" );

break ;

}

$ART = mysql_fetch_array($ResultArtcls); //получение записи о товаре в виде массива

print ("$ART[Category]</TD>" );

print ("<TD>" );

$SearchFromClients =$QSearchFromClients. $INQ[IDclnt]."';" ; //запрос на ФИО и адрес заказчика с текущим ID

$ResultClnts = mysql_db_query($DBname,$SearchFromClients,$DBlink);

if (! $ResultClnts) { //проверка запроса на заказчика

print ("Не удалость прочитать требуемые данные из таблицы $TableName2!" );

break ;

}

$CLI = mysql_fetch_array($ResultClnts); //получение записи о заказчике в виде массива

print ("$CLI[FIO]</TD>" );

print ("<TD>$CLI[ADDRESS]</TD>" );

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