Проектирование и реализация базы данных "О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