Файл: Разработка Web-сайта с использованием технологии PHP и MS SQL.pdf
Добавлен: 28.03.2023
Просмотров: 360
Скачиваний: 6
СОДЕРЖАНИЕ
1.1 Описание предметной области. Постановка задачи
1.2.Выбор средств / методологии проектирования. Выбор СУБД
1.3. Проектирование и создание базы данных
1.4. Подготовка для работы с языком PHP
1.5 Оценка экономической эффективности проекта
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ 1 – Структура тестовой БД.
ПРИЛОЖЕНИЕ 2 – Логическая структура БД для домашней библиотеки.
ПРИЛОЖЕНИЕ 3 – Скрипты создания таблиц и связей в БД library.
Для создания новых записей или редактирования существующих нужно использовать раздел «Администрирование». При нажатии на заголовок раскрываются доступные опции (Рисунок 29).
Рисунок 29 – Раздел «Администрирование»
Разберем пример добавления автора. При клике на соответствующую кнопку «Добавить автора» раскрывается форма для ввода данных на отдельной странице (Рисунок 22). Форма организована с помощью HTML тега <form>, метод GET позволяет передать данные из формы в соответствующие переменные и с помощью PHP (драйвер SQL для PHP, семейство функций sqlsrv) записать эти данные в БД. В случае наличия связей между таблицами реализованы выпадающие списки с возможными вариантами (Рисунок 30).
Рисунок 30 – Форма добавления нового автора.
После ввода данных идет обработка данных с помощью вспомогательной страницы, которая не отображается пользователю, а переадресовывает сразу на стартовую страницу. Попробуем создать нового автора. На данный момент в БД записаны некоторые данные (Рисунок 31).
Рисунок 31 – Данные в таблице authors
Попробуем добавить нового автора – Наталью Мазуркевич. Вводим все известные данные о ней (Рисунок 32).
Рисунок 32 – Заполненная форма
Нажимаем кнопку «Добавить». Мы вновь оказываемся на стартовой странице. Проверяем в БД, что информация успешно записана (Рисунок 33).
Рисунок 33 – Данные в БД после добавления нового автора через сайт
Добавление новой книги организовано слегка сложнее. Ввод данных идет поэтапно, с помощью нескольких страниц. Это связано с тем, что существуют зависимые списки (жанр и поджанр, полки и шкафы), которые возможно реализовать только посредством javascript, что усложнит процесс разработки сайта и сделает его экономически менее выгодным по затраченному времени.
Аналогичным образом можно изменить или добавить любые записи в БД, предусмотрено редактирование всех данных через интерфейс по аналогичной схеме. Запись новых данных происходит с помощью php-запроса:
$sql="insert into books ( name, auth) values('".$_SESSION['bookname']."', ".$_SESSION['auth_id'].")";
$result=sqlsrv_query($on_link, $sql);
Аналогично происходит обновление данных:
$sql="update books set [comment]=(select case when '".$_SESSION['comment']."'<>'' then '".$_SESSION['comment']."' else(select [comment] from books where id=".$_SESSION['book_id'].") end) where id=".$_SESSION['book_id'];
$result=sqlsrv_query($on_link, $sql);
Разработка интерфейса и реализация проекта
Какие же отчеты могут понадобиться пользователю? Конечно же выгрузка со всеми книгами в библиотеке и с указанием всех их характеристик. Далее, задаваясь вопросом, что бы почитать, можно пользоваться отдельной выгрузкой с непрочитанными книгами. И, чтобы порекомендовать книги друзьям, можно получить выгрузку с уже прочитанными книгами. И последний отчет – пользовательский, где пользователь сам отмечает какую информацию из таблиц он желает получить. Список отчетов так же находится на стартовой странице и разворачивается нажатием на заголовок (Рисунок 34).
Рисунок 34 – Список доступных отчетов
Выгрузка отчетов реализована с помощью построчной обработки данных php:
while ($row = sqlsrv_fetch_array($result_select, SQLSRV_FETCH_ASSOC)) {
fputcsv($fp, array_values($row));
}
Данные преобразуются в CSV с помощью соответствующих заголовков и скачиваются на ПК пользователя. Для каждого отчета прописан свой отдельный SELECT, который предоставляет возможность получать необходимый набор данных. Структура стандартных отчетов приведена ниже на рисунках 35-37.
Рисунок 35 - Структура отчета "Все книги"
Рисунок 36 - Структура отчета "Непрочитанные книги"
Рисунок 37 - Структура отчета "Прочитанные книги"
На странице пользовательского отчета необходимо отметить чекбоксы полей, которые необходимо включить в отчет (Рисунок 38). После этого, с помощью языка php идет объединение этих чекбоксов в запрос к базе, в результате которого выгружается отчет. Данный отчет являлся самым сложным в реализации, так как необходимо обработать большое количество условий.
Рисунок 38 - Страница пользовательского отчета
1.5 Оценка экономической эффективности проекта
Для определения целесообразности реализуемого проекта необходимо рассмотреть затраты времени на создание БД и сайта и сопоставить их со временем, которое этот проект позволяет сэкономить. Ниже приведена таблица затрат времени.
№ |
Действие |
Затраты |
1 |
Установка и настройка MS SQL Server и сопутствующих приложений |
3 часа |
2 |
Создание базы данных, создание таблиц и связей |
1,5 часа |
3 |
Отрисовка графики (лого сайта) |
1 час |
4 |
Настройки php и драйверов для SQL |
2 часа |
5 |
Создание сайта |
5 часов |
6 |
Заполнение сайта исходными данными |
1,5 часа |
Получается, что всего на настройку сайта потребовалось 14 часов. В среднем, мне необходимо найти 3-4 книги в месяц, а так же просто просмотреть книги 5-7 раз в месяц. На поиск книги я трачу 5 минут, на просмотр всех книг 10-15 минут. Т.е. 4*5+7*15=125 минут в месяц. Сейчас же, чтобы найти книгу мне понадобится 1 минута, и 3 минуты на просмотр всех книг. 4*1+7*3=25. Значит в среднем я экономлю около 100 минут в месяц. За год я сэкономлю 1200 минут, а это 20 часов, что уже превышает время, потраченное мной на разработку БД и сайта.
ЗАКЛЮЧЕНИЕ
В рамках курсовой работы была изучена теория, определены основные понятия и технологии распределенной обработки данных и Web программирования. Был проведен анализ основных моделей БД, в результате которого была выбрана реляционная модель построения баз данных для дальнейшего использования. В качестве основных языков Web программирования были выбраны языки HTML и PHP
Так же были рассмотрены особенности построения языка структурированных запросов SQL, который является информационно-логическим языком, предназначенным для описания, изменения и извлечения данных, хранимых в реляционных базах данных. А так же особенности и основные операторы языка PHP – языка программирования высокого уровня, исполняемого на серверной части.
Так же был рассмотрен практический пример использования PHP совместно с MS SQL на основании разработки веб – сайта. В ходе работы была спроектирована и создана БД на сервере MS SQL Server, подготовлена площадка для запуска php, разработан интерфейс и созданы страницы сайта.
В процессе выполнения курсовой работы решены следующие задачи:
- раскрыты сущность понятий база данных, системы управления базами данных путем изучения классификации баз данных и СУБД;
- был описан прицип работы и основные операторы языка PHP;
- проведен сравнительный анализ разных видов СУБД;
- рассмотрен основной синтаксис языка SQL;
- разработана и реализована база данных;
- Подготовлены и протестированы все страницы сайта и скрипты.
Учитывая, что все поставленные задачи курсовой работы решены, можно утверждать, что цель курсовой работы достигнута.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
- Новиков Б., Домбровская Г. Настройка приложений баз данных. – BHV, 2011. – С.22
- Боуман Дж.С., Эмерсон С.Л., Дарновски М. Практическое руководство по SQL. – Вильямс, 2011. – С.56-90
- Матросов А.В., Сергеев А.О., Чаунин М.П. HTML 4.0. – СПб.: БХВ-Петербург, 2011. – 672 с.:
- Дейт К. Введение в системы баз данных, 8-е издание. – Вильямс, 2006. – С.725
- Дейт К. SQL и реляционная теория. Как грамотно писать код на SQL. – Символ-Плюс, 2010. – С.123
- 102Дунаев В.В. Базы данных. Язык SQL. – СПб. : БХВ-Петербург, 2010. – С.88
- Дейт К., Дарвен Х. Основы будущих систем баз данных. Третий манифест. – Янус-К, 2011. – С. 196
- Дж. Кастаньетто, Х.Рават, С.Шуман, К.Сколло, Д.Велиаф «Профессиональное РНР программирование». – Пер. с англ. – СПб: Символ-Плюс, 2010. – С.76
- Иванова Г.С. – «Основы программирования» Учебник для вузов. – М.: Изд-во МГТУ им. Н.Э. Баумана, 2010. – С.156
- Кренке Д. Теория и практика построения баз данных. – Питер, 2010. – С.206
- Мирошниченко Г. Реляционные базы данных. Практические приемы оптимальных решений. – СПб. : БХВ-Петербург, 2011. – С.199
- Астахова И.Ф., Толстобров А.П., Мельников В.М. SQL в примерах и задачах. – Мн.: Новое знание, 2011. – С.4
- Гончаров А. Самоучитель HTML. – СПб.: Питер, 2008. – 240 с.:
- Тоу Д. Настройка SQL. Для профессионалов. – Питер, 2011. – С.103
- Гарсиа-Молина Г., Ульман Дж., Уидом Дж. Системы баз данных. Полный курс. - Вильямс, 2010. – С.125
- MySQL. Библиотека профессионала – Киев: Диалектика, 2012 – С.170-179
- PHP/MySQL для начинающих – Кудиц-образ, 2010 – С.44-108
- Шкарина Л. Язык SQL: учебный курс. – СПб.: Питер, 2001 – С.23-96
- https://www.php.net/ - Инструкциb по установке, настройке и использовании php.
- https://www.microsoft.com/ - Инструкции по работе с приложениями от Microsoft
- https://www.php.net/manual/ru/funcref.php - Справочник функций, PHP
- http://htmlbook.ru/ - Справочник по HTML и CSS
- https://ru.wikipedia.org/wiki/База_данных – открытая библиотека Wikipedia, статья «Базы данных»
- https://www.oracle.com/ru/ - официальный сайт Oracle в России, статьи по БД и СУБД.
- https://site-do.ru/ - открытые уроки по SQL, БД и PHP
ПРИЛОЖЕНИЕ 1 – Структура тестовой БД.
pid |
name |
last_name |
birthday |
address |
1 |
Александр |
Иванов |
01.06.1995 |
Москва |
2 |
Светлана |
Сидорова |
20.02.1976 |
Самара |
3 |
Мария |
Крайнова |
30.04.1992 |
Оренбург |
4 |
Алиса |
Селезнева |
01.05.2001 |
Киев |
5 |
Игорь |
Верник |
05.06.1989 |
Минск |
6 |
Алексей |
Сидоров |
04.03.1996 |
Оренбург |
7 |
Илья |
Горный |
02.01.2002 |
Екатеринбург |
8 |
Марина |
Клюкова |
05.02.1998 |
Тамбов |
9 |
Светлана |
Смелая |
04.05.1995 |
Самара |
10 |
Олег |
Павлов |
01.06.2002 |
Москва |
11 |
Ольга |
Павлова |
06.08.1965 |
Киев |
12 |
Оксана |
Кротова |
07.04.1974 |
Москва |
13 |
Ксения |
Ветрова |
04.09.1980 |
Санкт-Петербург |
pid |
emp_id |
assign |
offid |
salid |
manager |
hire_date |
6 |
1 |
Директор |
1 |
6 |
NULL |
01.05.2010 |
5 |
2 |
Ассистент |
2 |
2 |
1 |
05.06.2010 |
2 |
3 |
Менеджер по продажам |
4 |
3 |
6 |
01.05.2010 |
9 |
4 |
Программист |
3 |
1 |
7 |
01.05.2010 |
7 |
5 |
Специалист поддержки |
1 |
7 |
6 |
05.06.2010 |
4 |
6 |
Директор офиса |
2 |
5 |
1 |
15.06.2010 |
11 |
7 |
Директор офиса |
4 |
5 |
1 |
15.06.2010 |
8 |
8 |
Переводчик |
1 |
8 |
6 |
25.10.2011 |
13 |
9 |
Юрист |
3 |
9 |
1 |
01.05.2010 |
1 |
10 |
Менеджер по продажам |
1 |
3 |
6 |
05.06.2010 |
12 |
11 |
Специалист отдела кадров |
4 |
10 |
1 |
01.05.2010 |
10 |
12 |
Бухгалтер |
1 |
11 |
13 |
05.06.2010 |
3 |
13 |
Старший бухгалтер |
2 |
4 |
7 |
01.05.2010 |
offid |
address |
city |
name |
1 |
Москва, Верхний проезд, 1Б |
Москва |
Центр |
2 |
Самара, ул. Ленинградская, 34А |
Самара |
Орг |
3 |
Киев, ул. Большая, 1, оф 314. |
Киев |
Укр |
4 |
Москва, Садовое кольцо, 217, оф. 54 |
Москва |
Мск-2 |
salid |
curr |
salary |
tax |
1 |
UAH |
10000,00 |
10,00 |
2 |
RUB |
45000,00 |
13,00 |
3 |
RUB |
70000,00 |
13,00 |
4 |
RUB |
349002,00 |
26,00 |
5 |
RUB |
245213,00 |
13,00 |
6 |
RUB |
4123522,00 |
13,00 |
7 |
RUB |
23215,00 |
13,00 |
8 |
RUB |
24356,00 |
13,00 |
9 |
UAH |
12459,00 |
10,00 |
10 |
RUB |
213953,00 |
26,00 |
11 |
RUB |
243514,00 |
13,00 |