Автор работы: Пользователь скрыл имя, 13 Января 2013 в 21:00, курсовая работа
База данных (БД) – это хранилище для некоторого набора занесенных в компьютер данных.
SQL – это сокращенное название структурированного языка запросов (Structured Query Language); является инструментом, предназначенным для выборки и обработки информации, содержащейся в компьютерной БД.
Компьютерная программа, которая управляет БД, называется системой управления базой данных, или СУБД
3.5 Обоснование наличия НФ
Рассмотрим три нормальных формы, которые применяются при проектировании баз данных и служат для оптимизации базы и приведения ее к согласованному виду:
Как можно видеть из реляционной схемы базы данных, все таблицы находятся в третьей нормальной форме: ключи во всех таблицах атомарные, если ключ составной – единственный не ключевой атрибут полностью зависит от него, все не ключевые атрибуты зависят только от ключевых и не зависят друг от друга.
3.6 Используемые триггеры и процедуры
Для упрощения работы с базой данных будут задействованы триггер :
При покупке автомобиля, авто автоматически будет удаленно из таблицы автомобилей в наличии
delimiter |
create trigger t1
after insert on prodazha for each row
begin
delete from avto where id_auto = new.id_auto;
end;|
delimiter ;
Процедура с помощью которой можно посмотреть чек по проданной машине
delimiter |
create procedure ch(id int)
begin
select p.id_auto, name_pokupatel, cena from prodazha p, proizvoditel where p.id_auto = id;
end|
delimiter ;
4 ПРОЕКТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Для написания программного обеспечения был выбран язык PHP.
PHP - это язык обработки гипертекста (HTML), используемый на стороне сервера, конструкции которого вставляются в HTML-текст. Его основные преимущества: широкая поддержка различных технологий, совместимость с серверами, базами данных, простота и бесплатность.
4.1Интерфейс программного обеспечения
Рисунок 4.1.1-Внешний вид
На глвной странице есть 5 кнопок каждая из каторы отвечает за отображение соотвецтвующей таблице. При нажатии на на кнопки будут отражатся таблици БД.
Рисунок 4.1.2-Таблица автомобилей
В таблице автомобилей находятся авто те, которе есть в наличии. С лева красная кнопка для удаления записей, а зеленый плюс для внесения в базу автомобилей. Ниже всего списка есть поля с знаком «%» с помощью которых можно отсортировать список по любомому из столбцов или значей. По умолчанию «%» это все значения для отображения.
Рисунок 4.1.3-Таблица продажа
В таблице продаже отображаются автомобиле которые уже были проданы. Проданные автомобили атоматически удаляются из таблици имеющихся авто в наличии. С лева есть кнопка и зображеним листка, при нажатии которой отображается чек покупателя. Изображение и чеком покупателя видно на рисунке 4.1.4.
Рисунок 4.1.4-Чек покупателя
Рисунок 4.1.5-Таблица сотрудников
Рисунок 4.1.6-Таблица производителя
ЗАКЛЮЧЕНИЕ
В результате выполнения данного курсового проекта была разработана база данных «Автосалона», средствами СУБД MySQL. Для обеспечения удобного и легкого доступа к информации, хранимой в БД, был создан интерфейс на языке PHP, который дает возможность работать с базой данных при этом скрывая ее внутреннее устройство.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
3. Паэранд Ю.Э. , Охрименко П.В. Методические указания по оформлению курсовых проектов и работ /Алчевск: ДГМИ, 2002. – 50 с.
4. Конспект лекций по дисциплине «Организация баз данных».
ПРИЛОЖЕНИЕ А
Создание базы данных:
create database automag;
use automag;
set names cp1251;
Создание таблици «Avto»
CREATE TABLE `Auto` (
`id_auto` varchar(50) NOT NULL,
`id_korpus` int(11) NOT NULL,
`id_motor` int(11) NOT NULL,
`cena` int(11) NOT NULL,
`data_proizvodstva` date NOT NULL,
`cvet` varchar(50) NOT NULL,
`komplekt` varchar(99) NOT NULL,
PRIMARY KEY (`id_auto`));
Создание таблици « Dolzhnosti »
CREATE TABLE `Dolzhnosti` (
`post` varchar(50) NOT NULL,
`name` varchar(50) NOT NULL,
`adress` varchar(50) NOT NULL,
`phone` int(11) NOT NULL,
PRIMARY KEY (`post`));
Создание таблици « Prodazha »
CREATE TABLE `Prodazha` (
`id_prodazh` int(11) NOT NULL,
`id_auto` int(11) NOT NULL,
`name_pokupatel` varchar(50) NOT NULL,
`num_pasport` int(11) NOT NULL,
`adress` varchar(50) NOT NULL,
`phone` int(11) NOT NULL,
PRIMARY KEY (`id_prodazh`));
Создание таблици « Proizvoditel »
CREATE TABLE `Proizvoditel` (
`id_auto` int(11) NOT NULL,
`marka` varchar(50) NOT NULL,
`id_korpus` int(11) NOT NULL,
`id_motor` int(11) NOT NULL,
`cvet` varchar(50) NOT NULL,
`data_proizvodstva` date NOT NULL,
`data_prihoda` date NOT NULL,
`komplekt` varchar(50) NOT NULL,
`cena` int(11) NOT NULL,
PRIMARY KEY (`id_auto`));
Создание таблици «Sotrudnik»
CREATE TABLE `Sotrudniki` (
`id_sotrud` varchar(50) NOT NULL default '',
`name` varchar(50) NOT NULL,
`post` varchar(50) NOT NULL,
`adress` varchar(50) NOT NULL,
`phone` varchar(50) NOT NULL,
PRIMARY KEY (`id_sotrud`));
Заполнение таблиц Автомобили
INSERT INTO `Auto` ( `id_auto`
VALUES ('1', '2345', '98765',
INSERT INTO `Auto` ( `id_auto`
VALUES ('2', '5678', '678934',
INSERT INTO `Auto` ( `id_auto`
VALUES ('3', '1344', '254798',
INSERT INTO `Auto` ( `id_auto`
VALUES ('4', '1234', '543298',
Заполнение таблиц Должности
INSERT INTO `Dolzhnosti` ( `
VALUES ('Консультант', 'Нейман Андрей', 'пр-кт
Ленина 6\5', '066846325');
Заполнение таблиц Производитель
INSERT INTO `Proizvoditel` ( `
VALUES ('1', 'ВАЗ2112', '3245'
INSERT INTO `Proizvoditel` ( `
VALUES ('2', 'ВАЗ2114', '5678'
Заполнение таблици сотрудники
INSERT INTO `Sotrudniki` ( `
VALUES ('1', 'Нейман Андрей Олегович, 'Консультант', 'пр-
ПРИЛОЖЕНИЕ Б
Структура проекта
action.php – файл обработчик действий.
add.jpg – изображения добаления информации.
ch.jpg– маленька изображение чека чека.
ch.php– файл обработчик вывода чека.
ch1.png– изображение верхней части чека.
ch1.png – изображение нижней части чека.
del.jpg – изобржаение удаления информации.
fil.jpg – изображение фильтра (поиска).
iframe.php – файл вывода информации чека.
include.php – файл рабты с БД.
index.php – файл главной таблици.
phpinfo.php– служебный файл.
script.js – скрипт обработки кликов.
style.css – таблица стилей.
table.php – файл обработки вывода таблиц.
ПРИЛОЖЕНИЕ В
Скрипты сайта
Начальная страница:
<?php
require_once("include.php");
echo "
<html>
<head>
<title>Автосалон" . (!isset($_GET["table"]) ? "" : " : : " . $values[$_GET["table"]]) . "</title>
<script type = 'text/javascript' src = 'script.js'></script>
<link rel = 'stylesheet' type = 'text/css' href = 'style.css' />
<meta http-equiv = 'content-type' content = 'text/html; charset = windows-1251'>
</head>
<body>
<table style = 'width: 100%; height: 100%' cellpadding = '0' cellspacing = '0'>
<tr>
<td> </td>
<td style = 'width: 1200px;' valign = 'top'>
";
if (!isset($_GET["table"]))
{
echo "<center>";
for ($i = 0; $i < count($ids); $i++)
echo "<input type = 'submit' class = 'selection' value = '" . $values[$i] . "' onMouseOver = 'mouseOver(\"" . $i . "\")' onClick = 'mouseClick(\"" . $i . "\")' />";
echo "
<input type = 'hidden' id = 'table' name = 'table' />
</center>";
}
else
{
$length = count($cols[$ids[$_GET["table"
$width = 1020 / $length;
$filter = "%";
for ($i = 1; $i < $length; $i++)
$filter .= "~%";
echo "<br />" . $values[$_GET["table"]] . "<br /><br />
<center><table class = 'header'>
<tr>
";
for ($i = 0; $i < $length; $i++)
echo "<td style = 'width: "
. $width . "'>" . $cols[$ids[$_GET["table"]]][$
echo "
</tr>
</table></center>
<iframe src = 'table.php?table=" . $ids[$_GET["table"]] . "&filter=" . $filter . "' allowTransparency = 'true' frameBorder = '0'></iframe>
<a href = '.'>К выбору таблицы</a>
";
}
echo "
</td>
<td> </td>
</tr>
</table>
</body>
</html>
";
?>
Файл обработчик действий
<?php
require_once("include.php");
function redirect($path)
{ echo "<meta http-equiv = 'refresh' content = '0; " . $path . "'>"; }
if (isset($_GET["action"], $_GET["table"]))
{
$c = mysql_connect("localhost", "root", "1234");
mysql_query("use automag");
mysql_query("set names cp1251");
$prims = array("avto" => "id_auto", "dolzhnosti" => "post", "prodazha" => "id_prodazh", "proizvoditel" => "id_prodazh", "proizvoditel" => "id_auto", "sotrudniki" => "id_sotrud");
if (isset($_GET["id"]) && $_GET["action"] == "delete")
mysql_query("delete from " . $_GET["table"] . " where " . $myss[$_GET["table"]][0] . " = " . $_GET["id"]);
elseif (isset($_GET["val"]) && $_GET["action"] == "add")
{
$exp = explode("~", $_GET["val"]);
if ($exp[0] == "")
{
$q = mysql_query("select max(" . $myss[$_GET["table"]][0] . ") from " . $_GET["table"]);
$f = mysql_fetch_array($q);
$exp[0] = $f[0] + 1;
}
$q = "insert into " . $_GET["table"] . " values(";
for ($i = 0; $i < count($exp); $i++)
$q .= "'" . $exp[$i] . "', ";
$q = substr($q, 0, strlen($q) - 2) . ")";
mysql_query($q);
}
$length = count($cols[$_GET["table"]]);
$filter = "%";
for ($i = 1; $i < $length; $i++)
$filter .= "~%";
redirect("table.php?table=" . $_GET["table"] . "&count=" . $length . "&filter=" . $filter);
mysql_close($c);
}
?>
Файл обработчик вывода чека.
<?php
if (isset($_GET["id_auto"]) && isset($_GET["name_pokupatel"]) && isset($_GET["cena"]))
{
echo "<html><head>
<meta http-equiv = 'content-type' content = 'text/html; charset = windows-1251'>
<title>Сертификат</title>
</head>
<body>
<center><table>
<tr><td><img src = 'ch1.png' /></td></tr>
<tr><td style = 'height: 300px; padding: 20px;'>
<table><tr>
<td valign = 'top'>
<table style = 'font-size: 20px; font-weight: bold; margin-top: 8px;'>
<tr><td align = 'right'>ID Автомобиля:</td></tr>
<tr><td align = 'right'>Имя покупателя:</td></
<tr><td align = 'right'>Стоимость:</td></tr>
</table>
</td>
<td valign = 'top'>
<iframe src = 'iframe.php?id_auto=" . $_GET["id_auto"] . "&name_pokupatel=" . $_GET["name_pokupatel"] . "&cena=" . $_GET["cena"] . "' allowTransparency = 'true' frameBorder = '0'></iframe>
</td>
</tr></table>
</td></tr>
<tr><td><img src = 'ch2.png' /></td></tr>
</table>
";
}
echo "<br /><br /><a href = '.'>К
выбору таблицы</a></center></
?>
Файл вывода информации чека.
<?php
echo "
<html>
<head>
<meta http-equiv = 'content-type' content = 'text/html; charset = ibm866'>
</head>
<body>
<table style = 'font-size: 20px; font-weight: bold;'>
<tr><td style = 'color: navy;'>" . $_GET["id_auto"] . "</td></tr>
<tr><td style = 'color: navy;'>" . $_GET["name_pokupatel"] . "</td></tr>
<tr><td style = 'color: navy;'>" . $_GET["cena"] . "</td></tr>
</table>
</body>
</html>
";
?>
Файл работы с БД
<?php
$ids = array("avto", "prodazha", "dolzhnosti", "proizvoditel", "sotrudniki");
$values = array("Автомобили", "Продажа", "Должности", "Производитель", "Сотрудники");
$cols = array(