/>/>МИНИСТЕРСТВО ОБРАЗОВАНИЯ РОССИЙСКОЙФЕДЕРАЦИИ
Федеральное государственное образовательное учреждениевысшего профессионального образования «Чувашский государственный университетим. И.Н. Ульянова»
Факультет информатики и вычислительной техники
Кафедра «Информационно-вычислительных систем»
Дисциплина «Базы данных»
Пояснительная записка
к курсовой работе
на тему:
«Ремонт часов»
Выполнил: студент ИВТ13-06
Димитриев А. А
Проверил: Буланкина Е.Ю
Чебоксары – 2009 г.
ЗаданиеНеобходимовыполнить анализ предметной области «Ремонт часов», провести ее нормализацию иреализовать программно. При этом обязательно использование СУБД MySQL, языка HTML, технологии PHP и ADO и на выборскриптовые языки VBScript или JavaScript.
Анализ.Предметная область Нормализация базыданных
Даноописание предметной области:
Ремонтчасов.
Автоматизироватьсистему заказа часовой мастерской. О заказе известно: марка часов, клиент (ФИО,адрес, телефон), мастера, которые выполняют заказ, описание услуг и запасныхчастей заказа. Необходимо иметь информацию о расценках мастерской. Если клиентприносит сразу несколько часов в ремонт, то они оформляются разными заказами.
Описаниефункций базы данных:
ü Система должнахранить данные о мастерах: код мастера, ФИО мастера.
ü Система должна хранитьданные об услугах, предоставляемые мастерской: код услуги, вид услуги,стоимость услуги;
ü Система должнахранить данные о запасных частях: код детали, вид детали, стоимость.
Переченьсущностей БД:
1) Мастера;
2) Клиенты;
3) Услуги;
4) Запасные части;
5) Заказ;
Описаниесущностей БД:
1) Мастера. Это сущность. О нам известно код мастера,ФИО мастера.
2) Клиенты. Это сущность. О клиенте намизвестно код клиента, ФИО клиента, адрес и телефон клиента.
3) Услуги. Это сущность. Об услуге нам известнокод услуги, наименование услуги, стоимость.
4) Запасные Части. Это сущность. О запасных частях намизвестно код, наименование и стоимость детали.
5) Заказ. Это сущность. О заказе нам известномарка часов, клиент (ФИО, адрес, телефон), мастера, которые выполняют заказ,описание услуг и запасных частей заказа.
Переченьи описание атрибутов БД№ Имя атрибута Описание атрибута 1 Код Мастера Уникальный код мастера 2 ФИО Мастера Фамилия, Имя, Отчество мастера 3 Код Клиента Уникальный код клиента 4 ФИО Клиента Фамилия, Имя, Отчество клиента 5 Тел Клиента Телефон клиента 6 Адрес Клиента Адрес клиента 7 Код Услуги Уникальный код услуги 8 Наимен Услуги Наименование услуги 9 Стоимость Услуги Стоимость услуги 10 Код Зап Части Уникальный код запасной части 11 Наимен Зап Части Наименование запасной части 12 Стоимость Зап Части Стоимость 13 Код Заказа Уникальный код заказа 14 Код Клиента Уникальный код клиента 15 Марка Часов Марка часов
Проектирование.Нормализация базы данных. Схема данных
Нормализациябазы данных с использованием модели ER-диаграмм
ПостроениеER-диаграммы
1) Мастера;
2) Клиенты;
3) Услуги;
4) Запасные части;
5) Заказ;
//--------------------------Шаг1:-----------------------------------------------------------------------------------------------------------------------------
Определиммодальность связи.
«Мастерне обязательно выполняет Заказ» (модальность связи со стороны сущности Мастер «необязательно»).
«Заказобязательно выполняется Мастером» (модальность связи со стороны сущности Заказ«обязательно»).
Определимкардинальность связи.
«ОдинМастер может выполнять несколько Заказов”»(кардинальность со стороны сущности Заказ«Много»).
«Надодним Заказом могут работать несколько Мастеров» (кардинальность со сторонысущности Мастер «Много»).
/>
//-------------------------------------------------------------------------------------------
---------------------------------------------------------------------
//--------------------------Шаг2:--------------------------------------------------------
---------------------------------------------------------------------
Есликлиент приносит сразу несколько часов в ремонт, то они оформляются разнымизаказами.
Определиммодальность связи.
Клиентобязательно оформляет Заказ (модальность связи со стороны сущности Клиентобязательно).
«УЗаказа обязательно имеется Клиент» (модальность связи со стороны сущности Заказ«обязательно»).
Определимкардинальность связи.
«Клиентможет принести сразу несколько часов, то они оформляются разными Заказами»(кардинальность со стороны сущности Заказ «Много»).
«ОдинЗаказ оформляется только на одного Клиента» (кардинальность со стороны сущностиКлиент «Один»).
/>
//-------------------------------------------------------------------------------------------
---------------------------------------------------------------------
//--------------------------Шаг3:--------------------------------------------------------
---------------------------------------------------------------------
Озаказе известно: марка часов, клиент(ФИО, адрес, телефон), мастера, которыевыполняют заказ, описание услуг и запасных частей заказа.
Определиммодальность связи.
«ВЗаказе обязательно присутствуют Услуги» (модальность связи со стороны сущности Заказ«обязательно»).
«Услугане обязательно присутствует в Заказе» (модальность связи со стороны сущности Услуги«не обязательно»).
Определимкардинальность связи.
«Водин Заказ может входить несколько видов Услуг» (кардинальность со сторонысущности Услуги «Много»).
«Однии те же Услуги могут входить в разные Заказы» (кардинальность со сторонысущности Заказ «Много»).
/>
//-------------------------------------------------------------------------------------------
---------------------------------------------------------------------
//--------------------------Шаг4:--------------------------------------------------------
---------------------------------------------------------------------
Озаказе известно: марка часов, клиент(ФИО, адрес, телефон), мастера, которыевыполняют заказ, описание услуг и запасных частей заказа.
Определиммодальность связи.
«ВЗаказе не обязательно имеются Запасные части» (модальностьсвязи со стороны сущности Заказ «не обязательно»).
«Запасныечасти не обязательно имеются в Заказе» (модальность связи со сторонысущности Запасные части «не обязательно»).
Определимкардинальность связи.
«Водин Заказ могут входить несколько Запасных частей» (кардинальность со сторонысущности Запасные части «Много»).
«Одните же виды Деталей(запасные части) могут входить в разные Заказы»(кардинальность со стороны сущности Заказ «Много»).
/>
//-------------------------------------------------------------------------------------------
------------------------------------------
Окончательнаядиаграмма имеет вид:
/>
Отношенияпосле нормализации
Клиент(Код Клиента, ФИО Клиента, Адрес Клиента, Тел Клиента);
Мастер(Код Мастера, ФИО Мастера);
Услуги(Код Услуги, Вид Услуги, Стоимость);
ЗапЧасти (Код Зап Части, Наимен Зап Части, Стоимость);
Заказ(Код Заказа, Код Клиента, Марка Часов);
ЗаказМастер (Код Заказа, Код Мастера);
ЗаказУслуги (Код Заказа, Код Услуги);
ЗаказЗап Части (Код Заказа, Код Зап Части);
Переченьи описание таблиц и их полей (с указанием типов данных и ограничений) в своднойтаблице
Таблица2. Своднаятаблица имен отношений, атрибутов, таблиц, полей и типов данных базы данных «РемонтЧасов» после нормализации методом ER-диаграммИмя отношения (таблицы) Имя атрибута Имя поля Тип данных Описание Клиент КодКлиента KodKlienta bigint(3)+ * Уникальный код клиента ФИОКлиента FIOKlienta varchar(45) ФИО клиента АдресКлиента AdresKlienta varchar(45) Адрес клиента ТелКлиента TelKlienta bigint(9) Телефон клиента Мастера КодМастера KodMastera bigint(3)+ * Уникальный код мастера ФИОМастера FIOMastera varchar(45) ФИО мастера Услуги КодУслуги KodService bigint(3)+* Уникальный код услуги ВидУслуги NameService varchar(45) Вид услуги Стоимость CenaService int(9) Стоимость услуги Запасные части КодЗапЧасти KodZapChasti bigint(3)+ * Уникальный код детали ВидЗапЧасти NameZapChasti varchar(45) Вид детали Стоимость CenaZapChasti int(9) Стоимость детали Заказ КодЗаказа KodZakaza bigint(3)+ * Уникальный код заказа КодКлиента KodKlienta bigint(3) Код клиента МаркаЧасов MarkaChasov varchar(45) Марка часов клиента ЗаказМастер КодЗаказа KodZakaza bigint(3) Уникальный код заказа КодМастера KodMastera bigint(3) Уникальный код мастера ЗаказУслуги КодЗаказа KodZakaza bigint(3) Уникальный код заказа КодУслуги KodService bigint(3) Уникальный код суслуги ЗаказЗапЧасти КодЗаказа KodZakaza bigint(3) Уникальный код заказа КодЗапЧасти KodZapChasti bigint(3) Уникальный код детали
Программнаячасть. Руководство программиста
Вданной выполненной курсовой работе по дисциплине «Базы данных» был спроектировансайт «Ремонт часов».
Былииспользованы такие языки программирования сайтов, как, PHP, HTML, JavaScript, MySQL.
Вразработанном приложении использовались функции:
1)mysql_connect — Открывает соединение с сервером MySQL.
Описание: resource mysql_connect ([string server [, string username [, string password [, bool new_link [, intclient_flags]]]]] ). Возвращаетуказатель на соединение с MySQL в случае успешного выполнения, или FALSE при неудаче.
Пример использования mysql_connect()
2)mysql_select_db — Выбирает базу данных MySQL.
Описание: bool mysql_select_db (string database_name [, resource link_identifier] )
ВозвращаетTRUE в случае успешного завершения или FALSE в случае возникновения ошибки.
Примериспользования mysql_select_db()
3)mysql_query — Посылает запрос MySQL. mysql_query() посылает запрос активнойбазе данных сервера, на который ссылается переданный указатель.
Пример: mysql_query(«selectNazvanSudna from Suda», $conn);
4)mysql_fetch_array — Обрабатывает ряд результата запроса, возвращаяассоциативный массив, численный массив или оба.
Описание: array mysql_fetch_array( resource result [, int result_type] )
Возвращаетмассив с обработанным рядом результата запроса, или FALSE, если рядов больше нет.
Пример: $row11 =mysql_fetch_array($query11);
Вомногих файлах применялась функция IsInputEmpty(), определяющая заполнены липоля для ввода.
function IsInputEmpty(val1)
{
if((val1.length==0))
{
alert(«Заполните,пожалуйста, все поля!»);
return false;
};
return true;
};
-->
Тестирование.Результаты тестирования
Приразработке сайта использовалась проверка на заполненные поля.
1) При помощи ЯваСкрипта:
/>
Покаполе не будет заполнено программа дальше работать не будет.
Сопровождение. Руководство пользователя
/>
Главнаястраница сайта index1.htm
1)Главная страница содержит 4 гиперссылок: основная из них «Заказ» адресуется настраницу addzakaz.php.
Приоформлении заказа нужно заполнить шесть полей: Фамилия Клиента, Имя Клиента,Отчество Клиента, Телефон Клиента, Адрес Клиента, Марка часов; а также нужновыбрать Мастеров для выполнения заказа, Услуги и Запасные части из имеющегосясписка. При занесении новой записи данные поступают в таблицы: Klient, Zakaz, ZakazMaster, ZakazService, ZakazZapChasti.
/>
2) Функция «услуги»
/>
/>Позволяет просмотреть предоставляемые услуги
3) Функция «О нас»
/>
Позволяетпросмотреть информацию о сервисном центре.
4)Функция “Добавить/удалить” позволяет добавить в базу данных нового мастера,услуги, запасные части или удалить из списка. После выбора этой функциипользователю необходимо выбрать одну из 3 ссылок.
/>
Список использованной литературы
1. Колисниченко Д.Н.Самоучитель PHP 5. – Издание 2-е – СПб.: Наука иТехника, 2005.
2. Кузнецов М.В.,Симдянов И.В., Голышев С.В. PHP 5на примерах. – СПб.: БХВ – Петербург, 2005.
3. Кузнецов С.Д. PHP 4.0. Руководство пользователя. – М.:Майор, 2001.
Приложение1
Исходныйтекст приложения
//--------------Основнаяфункция----------------------------------------------------
--------------------
addzakaz.php
Transitional//EN"«www.w3.org/TR/html4/loose.dtd»>
Оформление заказа
style1 {
font-family: «Times New Roman», Times, serif;
font-size:18px;
color:#3399FF;
}
-->
[на главную | назад]
Оформлениезаказа
$conn = mysql_connect(«localhost»,«root», "");
mysql_select_db(«RemontChasov», $conn);
if($_SERVER['REQUEST_METHOD']!=='POST')
{
echo'Введите данные клиента:';
echo '';
echo '
Фамилия
Имя
Отчество
Телефон
Адрес
Маркачасов
';
echo '
';
}
if (isset($FKlienta) && isset ($IKlienta) &&isset ($OKlienta)&& isset ($MarkaChasov)&& strlen($FKlienta)!=0&& strlen($IKlienta)!=0 && strlen($OKlienta)!=0&& strlen($MarkaChasov)!=0)
{
echo '
if($_SERVER['REQUEST_METHOD']=='POST')
{
echo '
№
Мастер
';
$query7 = mysql_query(«Select * from Master»,$conn);
while ($row7 = mysql_fetch_array($query7))
{
echo '
'.$row7['KodMastera'].'
'.$row7['FIOMastera'].'
';
}
echo ' ';
echo ' ';
echo '';
echo '
width=«300»>Услуги
';
$query8 = mysql_query(«Select NameService fromService», $conn);
while ($row8 = mysql_fetch_array($query8))
{
echo '#'.$row8['NameService'].'
}
echo '';
echo ' Запасныечасти
';
$query9 = mysql_query(«Select NameZapChasti from ZapChasti»,$conn);
while ($row9 = mysql_fetch_array($query9))
{
echo '#'.$row9['NameZapChasti'].' ';
}
echo '';
echo '';
echo '
';
}
echo ' ';
}
?>
[на главную | назад]
nextaddzakaz.php
Заказ
style1 {
font-family: «Times New Roman», Times, serif;
font-size:18px;
color:#3399FF;
}
-->
[на главную |
назад]
Оформлениезаказа
Оформлениезаказа
$conn = mysql_connect(«localhost»,«root», "");
mysql_select_db(«RemontChasov», $conn);
if( isset($_POST['kodmastera']))
{
$FIOKlienta = $_POST['fklienta'].' '.$_POST['iklienta'].'$_POST['oklienta'];
mysql_query(«INSERT INTO Klient (KodKlienta, FIOKlienta,TelKlienta, AdresKlienta ) VALUES('', '$FIOKlienta', '{$_POST['telklienta']}','{$_POST['adresklienta']}')», $conn);
$KodKlienta = mysql_insert_id();
mysql_query(«INSERT INTO Zakaz (KodZakaza, KodKlienta,MarkaChasov) VALUES ('', '$KodKlienta', '{$_POST['markachasov']}' )»,$conn);
$idZakaza = mysql_insert_id();
$res=count($kodmastera);
for($i=0; $i
{
mysql_query(«INSERT INTO ZakazMaster (KodZakaza,KodMastera) VALUES ('$idZakaza', '{$_POST['kodmastera'][$i]}')», $conn);
}
echo(mysql_error());
$query0 = mysql_query(«Select FIOMastera from Masterwhere KodMastera='{$_POST['kodmastera']}'», $conn);
$row0 = mysql_fetch_array($query0);
echo 'ФИО клиента: '.$FIOKlienta.'';
echo 'Телефон клиента: '.$_POST['telklienta'].'';
echo 'Адрес клиента: '.$_POST['adresklienta'].'';
echo 'Марка часов: '.$_POST['markachasov'].'';
echo'Мастера, выполняющие заказ: '.$row0['FIOMastera'].'';
}
?>
[на главную | назад]
------------------------------------------------------------------------------------------------------------------------