Разработка БД для АСУ Спортивный магазин ООО "Атлет"

Автор работы: Пользователь скрыл имя, 23 Октября 2012 в 19:57, курсовая работа

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

Целью данной работы является построение информационной системы (ИС) «Спортивный магазин «Атлет» для автоматизации работы спортивного онлайн-магазина.
Задачи данной работы:
провести системный анализ предметной области «Спортивные товары»;
провести обзор информационных технологий, подходящих для разработки информационной системы магазина спортивных товаров;
изучить аналогичные информационные системы данной предметной области;
описать требования, предъявляемые к разработке данной базы данных;
разработать инфологическую модель базы данных;
обосновать выбор модели данных и осуществить логическое проектирование информационной системы;
нормализовать спроектированную модель и составить схему базы данных;
осуществить физическое проектирование базы данных на выбранной СУБД;
разработать программное обеспечение, реализующее отчеты и формы для базы данных;
отладить работу программного обеспечения.

Содержание работы

Введение 3
Глава 1. Анализ предметной области 5
1.1. Системный анализ объекта автоматизации «Спортивный магазин «Атлет» 5
1.2. Обзор информационных технологий, подходящих для разработки ИС 8
1.3. Обзор продуктов-аналогов 16
1.4. Требования к разрабатываемой базе данных 19
Выводы 20
Глава 2. Проектирование базы данных для объекта автоматизации «Спортивный магазин «Атлет» 21
2.1. Разработка инфологической модели 21
2.2. Обоснование выбора модели данных 22
2.3. Логическое проектирование 25
2.4. Нормализация, схема базы данных 28
Выводы 30
Глава 3. Программная реализация 32
3.1. Анализ и выбор СУБД 32
3.2. Физическое проектирование базы данных в СУБД 33
3.3. Разработка представлений 34
3.4. Разработка форм 35
3.5. Разработка отчетов 35
3.6. Реализация ограничений 36
3.7. Безопасность и контроль 37
Заключение 38
Список литературы 39
Приложение. Исходные коды триггеров 40

Содержимое работы - 1 файл

курсач.doc

— 1.83 Мб (Скачать файл)

Для автоматизации работы базы данных были разработаны на уровне веб приложения

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

в СУБД, а на уровне СУБД были разработаны триггеры для автоматизации процессов

и проверки некоторых  данных. Ниже представлены триггеры, разработанные для данной

БД с кратким  описанием и исходным текстом  каждого триггера:

  • adddate - добавляет дату продажи товара; (Приложение, триггер 1)
  • addnews- добавляет новость в таблицу событий, если продукт находится  на складе более 100 дней, то меняет цену на него минус 50%;(Приложение, триггер 2)
  • addtowh - добавление на склад товаров после заказа;(Приложение, триггер 3)
  • addselldate - добавление даты после продажи;(Приложение, триггер 4)
  • addtowhsell - добавление даты поступления на склад. (Приложение, триггер 5)

 

3.3. Разработка  представлений

Представления создаются в базе данных для вывода информации в удобном для пользователя виде. В данной БД представления  созданы, чтобы реализовать ряд  основных запросов к базе данных и  предоставить пользователю в более  «презентабельном виде». Далее приведён перечень представления с кратким описанием:

    • Все сотрудники – выводит таблицу с сотрудниками, занесёнными в БД;
    • Все поставщики – выводит таблицу с перечнем всех поставщиков;
    • Все заказы – выводит таблицу с заказами;
    • Все бренды – выводит таблицу с брендами;
    • Все товары- выводит таблицу со всеми товарами;
    • Все покупки – выводит таблицу с перечнем всех покупок;
    • Все продукты – выводит таблицу с перечнем всех продуктов;
    • Вся события – выводит информацию о всех событиях;
    • Склад – выводит информацию о позициях на складе;

Ниже продемонстрируем работу некоторых представлений.

Рис. 3.1. Список всех сотрудников

3.4. Разработка форм

Во время  конструирования базы данных форма  выполняет роль интерфейса, удобного для пользователя. При разработке данной БД были разработаны формы, написанные на языке платформе Ruby On Rails и использованы в качестве интерфейса для ввода и вывода данных, а так же для реализации некоторых мер безопасности. Далее приведён перечень основных форм:

  • Форма авторизации – запрашивает логин и пароль для доступа к базе данных и, в зависимости от введенных данных, переводит пользователя на интерфейс с набором инструментов, доступных его группе пользователей;
  • Форма руководителя – интерфейс содержит набор инструментов для пользователя руководитель;
  • Форма менеджера - интерфейс содержит набор инструментов для пользователя  менеджер;
  • Форма продавца - интерфейс содержит набор инструментов для пользователя продавец;

Так же были созданы  формы для ввода информации в  каждую таблицу.

Рис. 3.2 Форма для менеджеров

 

3.5. Разработка отчетов

Для автоматизации  и упрощения учебного процесса были предусмотрены отчёты. Также была предусмотрена возможность распечатки отчетов. Далее приведены основные отчеты:

    • Вывод информации о всех поставщиках;
    • Вывод информации о всех продуктах;
    • Вывод информации о всех сотрудниках;
    • Вывод информации о всех проданных товарах.

На рис. 3.3 продемонстрирована функциональность отчета, задача которого показать список менеджеров с информацией о них:

Рис. 3.3: Список менеджеров

 

3.6. Реализация ограничений

Для реализации ограничений на информацию, разработанных в части I данной работы, были разработаны программные проверки данных. При вводе некорректных данных применяется обработка исключений и выдаётся окно с указанием ошибки (рис. 3.4).

Рис. 3.4: Информация об ошибке

 

3.7. Безопасность  и контроль

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

1. Авторизация  и аутентификация.

При входе в  интерфейс данной БД пользователю предлагается ввести логин пароль для входа  в систему. Если что-то из данных параметров будет введено неверно, доступ к интерфейсу базы данных будет закрыт, а пользователю будет выдано соответствующее сообщение. Пример окна авторизации представлен на рисунке 3.5.

Рис. 3.5. Окно авторизации  пользователя.

2. Разграничение  прав.

После авторизации  пользователь попадает в интерфейс своей группы ,и он может совершать какие либо действия только предоставленным ему инструментарием.

3. Ограничения.

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

 

Выводы

В третьей главе  курсовой работы проведен анализ и  выбрано программное обеспечение  для реализации БД, в которой осуществлено физическое проектирование базы данных. При этом построена схема базы данных, введены ограничения на информацию, составлены процедуры и триггеры, и получены отчеты. Для реализации форм и отчетов написаны программы на языке Ruby с использованием технологии Rails. В конце главы рассмотрены вопросы безопасности и контроля доступа к информации, хранящейся в базе данных.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Заключение

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

  • написании описания предметной области,
  • формализации получившегося описания,
  • проектировании базы данных,
  • проектировании веб-приложения,
  • изучении различных руководств как на русском, так и на английском языках.

В итоге разработана  реляционная база данных, содержащая элементы автоматизации и обработки данных. База данных содержит следующие объекты:

  • 10 таблиц;
  • 5 проверочных ограничений;
  • 3 триггера;
  • 11 процедур;
  • 12 формы.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

  1. Сайт «Википедия», статья «Система управления базами данных» http://ru.wikipedia.org/wiki/%D0%A1%D0%A3%D0%91%D0%94
  2. Статья «Microsoft Access – настольная СУБД», сайт «Таурион» http://www.taurion.ru
  3. Статья «ERWin», сайт «Компьютер информ» http://www.ci.ru
  4. Описание к программе «CASE Studio», сайт «Рулоад» http://www.ruloads.com
  5. Официальный сайт АСУ «Спортмастер» http://www.sportmaster.ru
  6. Официальный сайт АСУ «Спортград» http://sportgrad.ru
  7. Официальный сайт АСУ «Декатлон»  http://www.decathlon.ru
  8. Электронный учебник «Разработка реляционных баз данных», сайт «МГТУ» http://www.mstu.edu.ru
  9. Статья «Объектно-ориентированная модель данных» сайт «СитФорум»http://citforum.ru
  10. Гладченко А., Щербинина В. «Репликация SQL Server 2005/2008», 2009
  11. Статья «CASE-технологии. Современные методы и средства проектирования информационных систем», сайт «CITForum» http://citforum.ru
  12. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. -М: "Финансы и статистика", 1989.- 351 с.
  13. Официальный сайт PostreSQL http://www.postgresql.org/
  14. Сайт «Википедия», статья «Ruby on Rails» http://ru.wikipedia.org/wiki/Ruby_on_rails
  15. Сайт Ruby on Rails http://www.rubyonrails.ru/

 

 

 

 

 

 

 

Приложение. Исходные коды триггеров

  • Триггер 1. adddate - добавляет дату продажи товара:

CREATE OR REPLACE FUNCTION add_date() RETURNS TRIGGER AS $$

DECLARE

BEGIN

  update orders SET orderdate = CURRENT_DATE where id = NEW.id;

  RETURN NEW;

END;

$$ LANGUAGE plpgsql;

CREATE TRIGGER adddate

AFTER INSERT ON orders FOR EACH ROW EXECUTE PROCEDURE add_date ();

 

  • Триггер 2. addnews - добавляет новость в таблицу событий, если продукт находится на складе более 100 дней и меняет цену на него минус 50%:

CREATE OR REPLACE FUNCTION add_news() RETURNS TRIGGER AS $$

DECLARE

vr record;

BEGIN

FOR vr IN SELECT id,product, saledate FROM warehouses WHERE current_date - saledate >100

LOOP

insert into events values("Скидка 50% на: ",vr.product);

update warehouse set saledate = current_date where id = vr.id;

END LOOP;

END;

$$ LANGUAGE plpgsql;

CREATE TRIGGER addnews

AFTER INSERT OR UPDATE ON warehouses FOR EACH ROW EXECUTE PROCEDURE add_news ();

 

  • Триггер 3. addtowh - автоматическое добавление на склад товаров после заказа:

CREATE OR REPLACE FUNCTION add_towh() RETURNS TRIGGER AS $$

DECLARE

    idsupp integer;

    idprod integer;

BEGIN

    SELECT PRODUCT INTO idsupp from SUPPLIERS where ID = NEW.SUPPLIER;

    SELECT ID INTO idprod from PRODUCTS where ID = idsupp;

SELECT ID INTO idsupp from WAREHOUSES where product = idprod;

    if (idsupp > 0) then

  update warehouses set amount = amount + new.amount where product = idprod;

    else

        insert into warehouses (product,amount) values(idprod, new.amount);    

    end if;

    RETURN NEW;

END;

$$ LANGUAGE plpgsql;

CREATE TRIGGER addtowh

AFTER INSERT ON orders FOR EACH ROW EXECUTE PROCEDURE add_towh ();

 

  • Триггер 4. addselldate - автоматическое добавление даты после продажи:

CREATE OR REPLACE FUNCTION add_selldate() RETURNS TRIGGER AS $$

DECLARE

BEGIN

NEW.SELLDATE := CURRENT_DATE;

RETURN NEW;

END;

$$ LANGUAGE plpgsql;

CREATE TRIGGER addselldate

BEFORE INSERT ON purchases FOR EACH ROW EXECUTE PROCEDURE add_selldate ();

 

  • Триггер 5. addtowhsell - автоматическое добавление даты поступления на склад

CREATE OR REPLACE FUNCTION add_towhsell() RETURNS TRIGGER AS $$

DECLARE

    idsupp integer;

BEGIN

update warehouses set amount = amount - new.amount where product = NEW.PRODUCT;

    RETURN NEW;

END;

$$ LANGUAGE plpgsql;

CREATE TRIGGER addtowhsell

AFTER INSERT ON purchases FOR EACH ROW EXECUTE PROCEDURE add_towhsell ();

 


Информация о работе Разработка БД для АСУ Спортивный магазин ООО "Атлет"