База данных автомагазина

Автор работы: Пользователь скрыл имя, 13 Января 2013 в 21:00, курсовая работа

Краткое описание

База данных (БД) – это хранилище для некоторого набора занесенных в компьютер данных.
SQL – это сокращенное название структурированного языка запросов (Structured Query Language); является инструментом, предназначенным для выборки и обработки информации, содержащейся в компьютерной БД.
Компьютерная программа, которая управляет БД, называется системой управления базой данных, или СУБД

Прикрепленные файлы: 1 файл

ПЗ.doc

— 409.00 Кб (Скачать документ)

 

3.5 Обоснование наличия НФ

 

Рассмотрим три нормальных формы, которые применяются при  проектировании баз данных и служат для оптимизации базы и приведения ее к согласованному виду:

  1. Атомарность ключа – значения ключа должны быть атомарные. Не должно быть составных ключей типа ФИО, адрес и т.д.
  2. Составной ключ – если ключ состоит из двух и более атрибутов – все не ключевые атрибуты таблицы должны зависеть от ключа в целом, а не от его отдельных атрибутов.
  3. Не ключевые атрибуты должны зависеть только от ключа и не зависеть друг от друга.

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

 

 

 

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, который дает возможность работать с базой данных при этом скрывая ее внутреннее устройство.

 

 

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

 

  1. Справочное руководство по MySQL версии 5.0.3-alpha.
  2. Т. Конверс, Д. Парк и К. Морган. PHP 5 и MySQL.

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` , `id_korpus` , `id_motor` , `cena` , `data_proizvodstva` , `cvet` , `komplekt` ) 

VALUES ('1', '2345', '98765', '65000', '2010.25.09', 'Бежевый', 'Полный');

INSERT INTO `Auto` ( `id_auto` , `id_korpus` , `id_motor` , `cena` , `data_proizvodstva` , `cvet` , `komplekt` ) 

VALUES ('2', '5678', '678934', '68000', '2011.24.02', 'Белый', 'Люкс');

INSERT INTO `Auto` ( `id_auto` , `id_korpus` , `id_motor` , `cena` , `data_proizvodstva` , `cvet` , `komplekt` ) 

VALUES ('3', '1344', '254798', '62000', '2011.05.11', 'Черный', 'Премиум');

INSERT INTO `Auto` ( `id_auto` , `id_korpus` , `id_motor` , `cena` , `data_proizvodstva` , `cvet` , `komplekt` ) 

VALUES ('4', '1234', '543298', '60000', '2011.03.17', 'Зеленый', 'Неполный');

 

 

Заполнение таблиц Должности

INSERT INTO `Dolzhnosti` ( `post` , `name` , `adress` , `phone`  )  
VALUES ('Консультант', 'Нейман Андрей', 'пр-кт Ленина 6\5', '066846325');

Заполнение таблиц Производитель

INSERT INTO `Proizvoditel` ( `id_auto` , `marka` , `id_korpus` , `id_motor` , `cvet` , `data_proizvodstva` , `data_prihoda` , `komplekt` , `cena` )  
VALUES ('1', 'ВАЗ2112', '3245', '98765', 'Бежевый', '2010.09.25' , '2010.08.10', 'Полный', 65000');

INSERT INTO `Proizvoditel` ( `id_auto` , `marka` , `id_korpus` , `id_motor` , `cvet` , `data_proizvodstva` , `data_prihoda` , `komplekt` , `cena` )  
VALUES ('2', 'ВАЗ2114', '5678', '678734', 'Белый', '2011.02.24' , '2010.02.02', 'Люкс', 68000');

 

Заполнение таблици  сотрудники

INSERT INTO `Sotrudniki` ( `id_sotrud` , `name` , `post` , `adress` , `phone` )  
VALUES ('1', 'Нейман Андрей Олегович, 'Консультант', 'пр-кт Ленина 6\5', '0665478549');

 

ПРИЛОЖЕНИЕ Б

 

    Структура проекта

 

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>&nbsp;</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"]]][$i] . "</td>";

    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>&nbsp;</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>

                <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></body></html>";

?>

 

Файл вывода информации чека.

<?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(

Информация о работе База данных автомагазина