Автор работы: Пользователь скрыл имя, 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
Для автоматизации работы базы данных были разработаны на уровне веб приложения
формы для заполнения таблиц со своими классами и методами для сохранения данных
в СУБД, а на уровне СУБД были разработаны триггеры для автоматизации процессов
и проверки некоторых данных. Ниже представлены триггеры, разработанные для данной
БД с кратким описанием и исходным текстом каждого триггера:
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 в данной БД предусмотрен ряд ограничений на информацию. При попытках пользователя ввести некорректные данные или нарушить их целостность ему тут же сообщат, что он сделал ошибку, а результаты его действий будут отменены.
Выводы
В третьей главе
курсовой работы проведен анализ и
выбрано программное
Заключение
Получившийся прототип автоматизированной системы показывает всю сложность разработки подобных приложений, раскрывая все её подводные камни. При выполнении курсовой работы мною был получен опыт в:
В итоге разработана реляционная база данных, содержащая элементы автоматизации и обработки данных. База данных содержит следующие объекты:
Список литературы.
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 ();
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 ();
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 ();
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 ();
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 ();
Информация о работе Разработка БД для АСУ Спортивный магазин ООО "Атлет"