Проектирование и реализация базы данных "Оn-line магазин"

Проектирование инфологической модели данных. Уровни модели данных. Проектирование представлений, последовательностей, триггеров, хранимых процедур. Реализация базы данных в среде серверной СУБД PostgreSQL 8.4. Разработка клиент-серверного приложения.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 19.02.2012
Размер файла 4,5 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

· Поиск игр по названию/издателю/разработчику (для всех пользователей)

· Осуществление покупок (для покупателей)

· Добавление новых товаров (для продавцов и администратора)

· Вывод на экран истории заказов (для покупателей)

· Вывод на экран зарплаты сотрудников (для администратора)

· Вывод на экран невостребованных больше месяца товаров (для продавцов и администратора)

Рисунок 7.1. Главная страница разработанного web-приложения.

7.1 Руководство пользователя

7.1.1 Регистрация

Незарегистрированные пользователи имеют доступ к функции регистрации и поиска товара.

Для регистрации нового пользователя, пройдите по ссылке «Регистрация» и заполните все поля, затем нажмите на кнопку «Зарегистрироваться» - рис. 7.1. В случае успешной регистрации, Вы сможете войти на сайт под своим логином и паролем.

Рисунок 7.1. Регистрация нового пользователя.

7.1.2 Поиск

Поиск по каталогу товаров может осуществлять любой пользователь магазина. Для осуществления поиска введите в соответствующее поле ввода искомый текст и нажмите на кнопку «Искать» - рис. 7.2. Если в поле ввода текста ничего не ввести и нажать на кнопку «Искать», то будет выведен на экран весь список товаров в каталоге, которые есть в наличии на текущий день.

Рисунок 7.2. Поиск товара.

7.1.3 Авторизация и деавторизация

Если Вы являетесь зарегистрированным пользователем, то для авторизации введите свой логии и пароль в соответствующие поля и нажмите «Войти» - рис. 7.3.

Рисунок 7.3. Авторизация.

Для деавторизации достаточно нажать на кнопку «Выйти», которая появляется, после успешной авторизации на месте полей ввода логина и пароля - рис. 7.4.

Рисунок 7.4. Деавторизация.

В случае успешной авторизации, в зависимости от Вашей роли в магазине (покупатель, продавец, администратор), смотрите соответствующий раздел данного руководства пользователя.

7.1.4 Возможности для покупателей

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

Для просмотра истории своих заказов, нажмите на соответствующую кнопку в меню покупателя - рис. 7.5.

Рисунок 7.5. Меню покупателя.

Пример истории заказов представлен на рисунке 7.6.

Рисунок 7.6. Пример истории заказов.

Для редактирования своего профиля, нажмите на соответствующую кнопку в меню покупателя - рис. 7.5. Вы увидите ваши регистрационные данные с возможностью их изменить. Для сохранения результатов нажмите на кнопку «Сохранить изменения» - рис. 7.7.

Рисунок 7.7. Редактирование профиля.

Чтобы совершить покупку, с помощью функции поиска (раздел 7.1.2) найдите интересующий Вас товар, а затем в колонке «Купить» нажмите на ссылку с изображением корзины напротив интересующего Вас товара - рис 7.8.

Рисунок 7.8. Осуществление покупки.

После перехода по ссылке Вы увидите страницу оформления заказа, где можете ввести количество покупаемого товара - рис. 7.9. Для осуществления покупки нажмите на кнопку «Купить».

Рисунок 7.9. Страница оформления заказа.

7.1.5 Возможности для продавцов

Продавец с помощью меню продавца может выполнять следующие действия: добавлять в каталог новые товары, а также узнавать о невостребованном товаре в каталоге магазина (товар, который не продавался больше месяца) - рис. 7.10.

Рисунок 7.10. Меню продавца.

Чтобы добавить новый товар, нажмите на кнопку «Добавить новый товар», а затем после перехода на страницу добавления товара, заполните все поля и нажмите на кнопку «Добавить товар» - рис. 7.11.

Рисунок 7.11. Страница добавления нового товара.

Чтобы посмотреть невостребованный товар, нажмите на соответствующую кнопку в меню продавца - рис. 7.10.

Пример результата поиска невостребованного товара представлен на рисунке 7.12.

Рисунок 7.12. Пример результата поиска невостребованного товара.

7.1.6 Возможности для администратора

Администратор может выполнять следующие действия: добавлять новый товар, просматривать невостребованный товар, а также просматривать зарплату сотрудников магазина. Добавление товара и просмотр невостребованного товара осуществляется аналогично с данными действиями для продавцов (раздел 7.1.5), только из меню администратора - рис. 7.13.

Рисунок 7.13. Меню администратора.

Для просмотра зарплаты сотрудников, нажмите на соответствующую кнопку в меню администратора.

Пример отчета по зарплате сотрудников представлен на рисунке 7.14.

Рисунок 7.14. Пример отчета по зарплате сотрудников.

7.2 Листинг программы

В данном разделе представлены части листинга приложения, отвечающие за основные функции работы с СУБД PostgreSQL 8.4. Остальные функции приложения, связанные с работой с СУБД, реализованы аналогично ниже представленным.

7.2.1 Регистрация нового покупателя

public class Registration implements Command {

public void execute(HttpServletRequest request, HttpServletResponse response, ServletContext sc, HttpSession session) throws IOException {

String s = "";

Connection c = ((JDBCConnectionPool) sc.getAttribute("ConPool")).checkOut();

String login = request.getParameter("Rlogin");

String pass = request.getParameter("Rpass");

String cpass = request.getParameter("RCpass");

String email = request.getParameter("email");

String lastname = request.getParameter("Rlastname");

String firstname = request.getParameter("Rfirstname");

String thirdname = request.getParameter("Rthirdname");

String webmoney = request.getParameter("Rwebmoney");

String address = request.getParameter("Raddress");

String phone = request.getParameter("Rphone");

if (!phone.equals("") && !cpass.equals("") && !email.equals("") && !login.equals("") && !pass.equals("") && !lastname.equals("") && !firstname.equals("") && !thirdname.equals("") && !webmoney.equals("") && !address.equals("")){

try {

Statement stmt = c.createStatement();

stmt.executeUpdate("INSERT INTO buyers (last_name,first_name,third_name,login, password, email, webmoney_account_number,home_address, phone) " +

"VALUES ('" + lastname + "','" + firstname + "','" + thirdname + "','" + login + "','" + pass + "','" + email + "','" + webmoney + "','" + address + "','" + phone + "');");

s = "Регистрация прошла успешно. Теперь Вы можете войти на сайт под своим логином и паролем.";

} catch (SQLException e) {

s = "К сожалению регистрация невозможна!";

}

}else

s = "<center><h3>Заполенены не все поля!</h3><p><p> <a href=\"javascript:history.go(-1)\" class=\"link\">Назад</a></center>";

request.setAttribute("answer", s);

RequestDispatcher dispatcher = sc.getRequestDispatcher("/index.jsp");

try {

dispatcher.forward(request, response);

} catch (ServletException e) {

e.printStackTrace();

}

((JDBCConnectionPool) sc.getAttribute("ConPool")).checkIn(c);

}

}

7.2.2 Редактирование профиля покупателя

public class EditBuyerProfile implements Command {

public void execute(HttpServletRequest request, HttpServletResponse response, ServletContext sc, HttpSession session) throws IOException {

String s = "";

Connection c = ((JDBCConnectionPool) sc.getAttribute("ConPool")).checkOut();

String login = request.getParameter("Rlogin");

String pass = request.getParameter("Rpass");

String email = request.getParameter("email");

String lastname = request.getParameter("Rlastname");

String firstname = request.getParameter("Rfirstname");

String cpass = request.getParameter("RCpass");

String thirdname = request.getParameter("Rthirdname");

String webmoney = request.getParameter("Rwebmoney");

String address = request.getParameter("Raddress");

String phone = request.getParameter("Rphone");

int b_id = (Integer) session.getAttribute("id");

if (session.getAttribute("role") != null)

request.setAttribute("succ", true);

if (!phone.equals("") && !cpass.equals("") && !email.equals("") && !login.equals("") && !pass.equals("") && !lastname.equals("") && !firstname.equals("") && !thirdname.equals("")

&& !webmoney.equals("") && !address.equals("")) {

try {

Statement stmt = c.createStatement();

stmt.executeUpdate("UPDATE buyers SET last_name='" + lastname + "',first_name='" + firstname + "',third_name='" + thirdname + "',login='" + login + "', password='" + pass + "', email='" + email + "', webmoney_account_number='" + webmoney + "',home_address='" + address + "', phone='" + phone + "' " +

" WHERE buyers.buyer_id=" + b_id + ";");

s = "Данные успешно изменены!";

} catch (SQLException e) {

s = "<center><h3>К сожалению данные изменить невозможно!</h3><p><p> <a href=\"javascript:history.go(-1)\" class=\"link\">Назад</a></center>";

}

} else

s = "<center><h3>Заполенены не все поля!</h3><p><p> <a href=\"javascript:history.go(-1)\" class=\"link\">Назад</a></center>";

request.setAttribute("answer", s);

RequestDispatcher dispatcher = sc.getRequestDispatcher("/index.jsp");

try {

dispatcher.forward(request, response);

} catch (ServletException e) {

e.printStackTrace();

}

((JDBCConnectionPool) sc.getAttribute("ConPool")).checkIn(c);

}

}

7.2.3 Вывод на экран истории заказов клиента

public class OrdersHistory implements Command {

public void execute(HttpServletRequest request, HttpServletResponse response, ServletContext sc, HttpSession session) throws IOException {

String s = "";

try {

Connection c = ((JDBCConnectionPool) sc.getAttribute("ConPool")).checkOut();

Statement stmt = c.createStatement();

s = FindBadGoods(stmt, session);

((JDBCConnectionPool) sc.getAttribute("ConPool")).checkIn(c);

} catch (SQLException e) {

e.printStackTrace();

}

if (session.getAttribute("role") != null)

request.setAttribute("succ", true);

request.setAttribute("search", s);

RequestDispatcher dispatcher = sc.getRequestDispatcher("/index.jsp");

try {

dispatcher.forward(request, response);

} catch (ServletException e) {

e.printStackTrace();

}

}

private String FindBadGoods(Statement stmt, HttpSession session) {

ResultSet rs;

String Name;

int Count;

Date DateOfReteil;

StringBuffer sb = new StringBuffer();

Integer b_id;

b_id = (Integer) session.getAttribute("id");

if (b_id != null && (session.getAttribute("role").equals("buyer"))) {

sb.append("<table border=\"1\">\n" +

" <tr>\n" +

" <td><b>Название</b></td>\n" +

" <td><b>Куплено штук</b></td>\n" +

" <td><b>Дата покупки</b></td>\n" +

" </tr>\n");

try {

rs = stmt.executeQuery("SELECT * FROM \"OrdersHistory\"('" + b_id + "');");

while (rs.next()) {

Name = rs.getString(1);

Count = rs.getInt(2);

DateOfReteil = rs.getDate(3);

SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy");

String formattedDate = formatter.format(DateOfReteil);

sb.append("<tr>\n" +

" <td align=\"center\">" + Name + "</td>\n" +

" <td align=\"center\">" + Count + "</td>\n" +

" <td align=\"center\">" + formattedDate + "</td>\n" +

" </tr>\n");

}

sb.append("</table><p><p><center><a href=\"javascript:history.go(-1)\" class=\"link\">Назад</a></center>");

rs.close();

System.out.println();

} catch (SQLException e) {

sb.delete(0, sb.length() - 1);

sb.append("Ошибка! В БД отсутствуют запрашиваемые данные!<p><p><center><a href=\"javascript:history.go(-1)\" class=\"link\">Назад</a></center>");

}

} else

sb.append("<h3>Для осуществления данной операции Вам необходимо войти на сайт или зарегестрироваться.</h3></center><p><p><center><a href=\"javascript:history.go(-1)\" class=\"link\">Назад</a></center>");

return sb.toString();

}

public String getURL() {

return null;

}

}

8. Заключение

В данном курсовом проекте была создана база данных «On-line магазин», которая содержит информацию о работе интернет-магазина. В ходе выполнения данного курсового проекта были выполнены все пункты задания для курсового проекта:

- анализ предметной области;

- выделение сущностей и атрибутов;

- установление связей между сущностями;

- проектирование логического и физического уровней, используя CASE-средство ERwin;

- реализация базы данных в СУБД PostgreSQL;

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

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

В ходе проектирования и реализации БД были получены знания об основах работы с СУБД PostgreSQL, написании подпрограмм на языке plpgSQL, получен практический опыт самостоятельного проектирования и реализации баз данных в архитектуре «клиент-сервер» на языке высокого уровня Java.

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

1. Дорофеев, A.С. Методические указания к выполнению курсового проекта по дисциплинам базы данных, управление данными: учебное пособие / А.С. Дорофеев. - Иркутск: Издательство Иркутского государственного технического университета, 2007 г..

2. Трипутина, В.В. Проектирование баз данных с помощью Case-средства ErWin. Методические указания к выполнению лабораторных работ: учебное пособие / В.В. Трипутина. - Иркутск: Издательство Иркутского государственного технического университета.

3. Кренке, Д. Теория и практика построения баз данных / Д. Кренке. - СПб: ПИТЕР, 2005 г.

4. Википедия - Свободная энциклопедия [электронный ресурс]. - Режим доступа: ru.wikipedia.org

Размещено на Allbest.ru


Подобные документы

  • Ограничения, присутствующие в предметной области. Проектирование инфологической модели данных. Описание основных сущностей и их атрибутов. Логический и физический уровни модели данных. Реализация базы данных: представления, триггеры, хранимые процедуры.

    курсовая работа [1,7 M], добавлен 10.02.2013

  • Реализация приложения "Книжный магазин" средствами систем управления базами данных. Проектирование структуры базы данных, определение сущности и атрибутов. Логическое проектирование базы данных и реализация базы данных в СУБД Microsoft Office Access.

    курсовая работа [7,8 M], добавлен 13.02.2023

  • Построение инфологической (концептуальной) модели предметной области. Проектирование логической и физической структуры базы данных. Реализация проекта в среде конкретной СУБД. Организация корректировки и ввода данных в БД. Разработка интерфейса.

    курсовая работа [1,4 M], добавлен 14.01.2018

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

    контрольная работа [50,1 K], добавлен 30.10.2009

  • Специфика создания базы данных "On-line магазин", содержащей информацию о работе интернет-магазина. Проектирование логического и физического уровней с использованием CASE-средства Erwin. Реализация базы данных в архитектуре "клиент-сервер" на языке Java.

    курсовая работа [1,2 M], добавлен 26.06.2012

  • Проектирование физической и логической моделей удаленной базы данных для АЗС. Разработка базы данных в СУБД Firebird с помощью утилиты IBExpert. Создание клиентского приложения для Windows с использованием клиент-серверной технологии в среде C++ Builder.

    курсовая работа [3,9 M], добавлен 18.01.2017

  • Информационные задачи и круг пользователей системы. Выработка требований и ограничений. Разработка проекта базы данных. Программная реализация проекта базы данных. Разработка хранимых процедур для поддержки сложных ограничений целостности в базе данных.

    курсовая работа [706,2 K], добавлен 17.06.2012

  • Выбор методологии проектирования и системы управления базами данных. Описание предметной области и проектирование физической структуры базы данных. Реализация проекта в MS SQL Server 2008. Построение инфологической модели. Ограничения целостности связи.

    курсовая работа [679,2 K], добавлен 22.01.2013

  • Проектирование базы данных фирмы по предоставлению телекоммуникационных услуг с помощью СУБД MS SQL SERVER. Построение логической и физической модели данных. Описание информационных потребностей пользователя. Создание хранимых процедур и триггеров.

    курсовая работа [2,3 M], добавлен 21.03.2015

  • Понятие базы данных, модели данных. Классификация баз данных. Системы управления базами данных. Этапы, подходы к проектированию базы данных. Разработка базы данных, которая позволит автоматизировать ведение документации, необходимой для деятельности ДЮСШ.

    курсовая работа [1,7 M], добавлен 04.06.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.