Проектирование базы данных металлопроката и метизов в терминах ER-моделирования
Логическая модель данных является начальным прототипом будущей базы данных. Логическая модель строится в терминах информационных единиц, но без привязки к конкретной СУБД. Более того, логическая модель данных необязательно должна быть выражена средствами именно реляционной модели данных. Основным средством разработки логической модели данных в настоящий момент являются различные варианты… Читать ещё >
Проектирование базы данных металлопроката и метизов в терминах ER-моделирования (реферат, курсовая, диплом, контрольная)
Проектирование базы данных металлопроката и метизов в терминах ER-моделирования
Оглавление Введение
1. Проектирование базы данных рынка металлопроката и метизов в терминах ER-моделирования
1.1 Описание предметной области рынка металлопроката и метизов
1.2 Построение концептуальной модели базы данных рынка металлопроката и метизов
1.3 Построение логической модели данных рынка металлопроката и метизов
2. Реализация модели базы данных рынка металлопроката и метизов в интерактивной среде интернет
2.1 Построение физической модели данных каталога металлопроката и метизов на языке SQL средствами СУБД MYSQL
2.2 Реализация каталога металлопроката и метизов с использованием вэб-интерфейса, созданного на языке программирования PHP
3. Расчет экономической эффективности каталога продукции ОАО «Металлсервис»
3.1 Расчет капитальных вложений
3.2 Расчет эксплуатационных расходов
3.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) — это определённое множество понятий и связей между ними, являющихся смысловой структурой рассматриваемой предметной области.
Концептуальная модель — модель предметной области, состоящей из перечня взаимосвязанных понятий, используемых для описания этой области, вместе со свойствами и характеристиками, классификацией этих понятий, по типам, ситуациям, признакам в данной области и законов протекания процессов в ней. (Толковый словарь по искусственному интеллекту) Концептуальная (содержательная) модель — это абстрактная модель, определяющая структуру моделируемой системы, свойства её элементов и причинно-следственные связи, присущие системе и существенные для достижения цели моделирования.
В процессе рассмотрения предметной области были определены следующие сущности (таблицы):
— пользователь (polzovatel);
— категория (kategoria);
— подкатегория (podkategoria);
— продукт (product);
— заказ (zakaz);
— mарка (marka).
Концептуальная модель базы данных будет выглядеть следующим образом:
Рисунок 1.1 — Концептуальная модель базы данных, построенная с помощью CASE-средства ErWin
металлопрокат логическая модель база данные
1.3 Построение логической модели данных рынка металлопроката и метизов
На следующем, более низком уровне находится логическая модель данных предметной области. Логическая модель описывает понятия предметной области, их взаимосвязь, а также ограничения на данные, налагаемые предметной областью. Примеры понятий — «сотрудник», «отдел», «проект», «зарплата». Примеры взаимосвязей между понятиями — «сотрудник числится ровно в одном отделе», «сотрудник может выполнять несколько проектов», «над одним проектом может работать несколько сотрудников». Примеры ограничений — «возраст сотрудника не менее 16 и не более 60 лет» .
Логическая модель данных является начальным прототипом будущей базы данных. Логическая модель строится в терминах информационных единиц, но без привязки к конкретной СУБД. Более того, логическая модель данных необязательно должна быть выражена средствами именно реляционной модели данных. Основным средством разработки логической модели данных в настоящий момент являются различные варианты ER-диаграмм (Entity-Relationship, диаграммы сущность-связь). Одну и ту же ER-модель можно преобразовать как в реляционную модель данных, так и в модель данных для иерархических и сетевых СУБД, или в постреляционную модель данных. Однако, т.к. мы рассматриваем именно реляционные СУБД, то можно считать, что логическая модель данных для нас формулируется в терминах реляционной модели данных.
Решения, принятые на предыдущем уровне, при разработке модели предметной области, определяют некоторые границы, в пределах которых можно развивать логическую модель данных, в пределах же этих границ можно принимать различные решения. Например, модель предметной области складского учета содержит понятия «склад», «накладная», «товар». При разработке соответствующей реляционной модели эти термины обязательно должны быть использованы, но различных способов реализации тут много — можно создать одно отношение, в котором будут присутствовать в качестве атрибутов «склад», «накладная», «товар», а можно создать три отдельных отношения, по одному на каждое понятие.
При разработке логической модели данных возникают вопросы: хорошо ли спроектированы отношения? Правильно ли они отражают модель предметной области, а следовательно и саму предметную область?
Ниже, на рисунке 1.2, показана логическая структура базы данных, созданная с помощью ErWin
Рисунок 1.2 — Логическая модель базы данных (ERWin)
2. Реализация модели базы данных рынка металлопроката и метизов в интерактивной среде интернет
2.1 Построение физической модели данных каталога металлопроката и метизов языке SQL средствами СУБД MySQL
Теперь приступим к физическому проектированию базы данных. Любая база данных состоит из таблиц (отношений), поэтому теперь наша задача построить таблицы, основываясь на логической модели базы данных. Правила перевода из логической модели данных в физическую следующие:
— объекты становятся таблицами в физической базе данных
— атрибуты становятся колонками (полями) в физической базе данных. Для каждого атрибута выбирается свой тип данных.
— уникальные идентификаторы становятся колонками, не допускающими значение NULL. В физической базе данных они называются первичными ключами (primary key).
После составления физической модели базы данных необходимо составить SQL-запрос для создания базы данных разработанной выше структуры «metallservice».
Для СУБД MySQL запрос будет выглядеть следующим образом:
— Структура таблицы 'product'
CREATE TABLE product (
product_ID int (8) not null auto_increment,
nazvanie varchar (100) not null,
podkategoria_id int (8) not null,
R1 int (8),
marka_id int (8),
cena int (8) not null,
PRIMARY KEY (Product_ID)
);
— Структура таблицы 'marka'
CREATE TABLE marka (
marka_id int (8) not null auto_increment,
nazvanie varchar (20) not null,
PRIMARY KEY (marka_id)
);
— Структура таблицы 'kategoria'
CREATE TABLE kategoria (
kategoria_id int (8) not null auto_increment,
nazvanie varchar (100) not null,
PRIMARY KEY (kategoria_ID)
);
— Структура таблицы 'podkategoria'
CREATE TABLE podkategoria (
podkategoria_ID int (8) not null auto_increment,
nazvanie varchar (100) not null,
kategoria_id int (8) not null,
primary key (podkategoria_id)
);
— Структура таблицы 'zakaz'
create table zakaz (
zakaz_id int (8) not null auto_increment,
polzovatel_id int (8) not null,
product_id int (8) not null,
kolichestvo int (8) not null,
summa_zakaza int (8) not null,
data_pokupki int (8),
primary key (zakaz_id)
);
— Структура таблицы 'polzovatel'
create table polzovatel (
polzovatel_id int (8) not null auto_increment,
fio varchar (50) not null,
telephon varchar (15) not null,
email varchar (15) not null,
primary key (polzovatel_id)
);
Для вставки информации в базу данных необходимо выполнить следующие действия:
1. Перейти на страницу приложения PHP MyAdmin (http://localhost/ Tools/phpMyAdmin/index.php).
2. Выбрать базу данных metallservice (в левой части окна приложения).
Рисунок 2.1 — Выбор базы данных в окне PHP MyAdmin
3. Перейти на закладку «SQL» в верхней части приложения.
4. Вставить SQL-скрипт, приведенный выше в окно приложения.
5. Нажать на кнопку
Для создания связей между таблицами необходимо:
1. Перейти на вкладку «Designer»
2. Нажать на кнопку «Create Relation».
3. Выбрать из таблиц базы данных первичный ключ
4. Выбрать из таблиц базы данных альтернативный ключ.
Ниже приведена физическая структура таблиц базы данных Рисунок 2.2 — Физическая структура таблиц для базы данных (из приложения «PHP MyAdmin»)
Создав таблицы в базе данных и установив связи между ними, можно приступать к непосредственной реализации каталога металлопроката и метизов с использованием Веб-интерфейса
2.2 Реализация каталога металлопроката и метизов с использованием Вэб-интерфейса, созданного на языке программирования PHP
Для работы с базой данных через с помощью языка PHP необходимо выполнить следующую последовательность действий:
1. соединиться с сервером баз данных;
2. выбрать базу данных;
3. выполнить SQL-запрос;
4. вывести данные, полученные в результате запроса.
Для соединения с базой данных используется оператор 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).
Добавить металлопрокат
В Приложении 2 приведен код страницы интерфейса ввода метизов (metyz_form.php).
Интерфейсы выполнены в виде форм на языке HTML.
Ниже показано окно интерфейса ввода металлопроката.
Рисунок 2.4 — Интерфейс ввода металлопроката
После выбора пользователем подкатегории происходит переход к списку товаров (products_list.php). В формировании этого списка часто используется оператор mysql_result.
Синтаксис оператора: mysql_result (resource result, int row [, mixed field])
mysql_result () возвращает содержимое одной ячейки из результирующего набора MySQL. Аргумент field может быть смещением поля, именем поля или именем_таблицы.именем_поля (tablename.fieldname).
При работе с большими результирующими наборами вы можете предусмотреть использование одной из функций, извлекающих ряд целиком. Эти функции возвращают содержимое нескольких ячеек в одном вызове функции, они работают НАМНОГО быстрее, чем mysql_result (). Необхоимо отметить также, что специфицирование числового смещения для аргумента field намного быстрее, чем специфицирование аргумента fieldname или tablename.fieldname.
Ниже показано окно списка товаров для категории «Трубы горячедеформированные».
Рисунок 2.5 — Страница списка товаров
Ниже приведен код страницы products_list.php
$soed=mysql_connect («localhost», «root», «»);
mysql_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»);
print «
$podkategoria_name
«;$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;
print «
«;print «
«;while ($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»);
print «
«;print «
«;print «
«;$k++;
}
?>
Название | Радиус | Марка стали | Цена | Заказать |
$nazvanie | $r1 | $marka | $cena | Заказать |
После того, как пользователь просмотрел список товаров, он может перейти к заказу, нажав на кнопку .
Интерфейс заказа выглядит следующим образом:
Рисунок 2.6 — Интерфейс заказа
Ниже приведен код страницы интерфейса формы заказа order_form.php