Файл: Разработка Web-сайта с использованием технологии PHP и MS SQL.pdf
Добавлен: 28.03.2023
Просмотров: 367
Скачиваний: 6
СОДЕРЖАНИЕ
1.1 Описание предметной области. Постановка задачи
1.2.Выбор средств / методологии проектирования. Выбор СУБД
1.3. Проектирование и создание базы данных
1.4. Подготовка для работы с языком PHP
1.5 Оценка экономической эффективности проекта
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ 1 – Структура тестовой БД.
ПРИЛОЖЕНИЕ 2 – Логическая структура БД для домашней библиотеки.
ПРИЛОЖЕНИЕ 3 – Скрипты создания таблиц и связей в БД library.
Рисунок 6 – Пример объектно-ориентированной БД
- Объектно-реляционная модель данных (Рисунок 7) совмещает в себе объектно-ориентированную модель по качеству хранящихся данных и реляционный подход к структуре хранения.
Рисунок 7 – Объектно-реляционная модель данных
Далее рассмотрим классификацию СУБД по организации данных. В такой классификации выделяют два типа СУБД.
- Локальная – БД называется локальной, если все ее части находятся на одном компьютере. Преимущество такой модели в ее независимости от сетевых процессов, т.к. все операции управления производятся на одном ПК. Но главный недостаток очевиден – редактирование БД происходит независимо на каждом ПК и, в случае работы в ней нескольких пользователей, сложно собрать и актуализировать все БД.
- Распределенная – БД называется распределенной, если ее части размещаются на двух или более устройствах. Это наиболее удобный вариант БД для многопользовательских систем. Так же, к плюсам подобного устройства БД можно отнести то, что части БД могут храниться на устройствах различного вида и с разными ОС.
По способу доступа к данным мы выделяем три основных вида организации СУБД.
- Файл-серверная архитектура – специфика данной архитектуры заключается в том, что пользователю передаются файлы из БД, но обрабатываются они уже на ПК пользователя. Из минусов такой системы сразу можно отметить, что на сеть дается дополнительная нагрузка в связи с излишними данными, передаваемыми пользователю, что негативно сказывается в случае большого объема объектов, хранящихся на сервере. Однако, эта структура отличается своей простотой, поэтому ее все еще можно встретить на некоторых небольших предприятиях.
- Клиент-серверная архитектура позволяет избежать тех проблем, которые преподносит файл-серверная архитектура. В подобной СУБД большая часть обработки данных происходит на машине сервера, а значит машина пользователя получает уже нужное количество данных, что позволяет снизить нагрузку на сеть, в отличие от предыдущего вида СУБД.
- Встраиваемая архитектура удобна, если БД используется только на одной машине. В этом случае СУБД встроена (тесно связана) с прикладной программой, обращающейся к ней. При этом сама БД находится на той же машине. Конечно, подобная структура не подойдет для средних или крупных предприятий, где администрирование производится несколькими людьми.
SQL (Structure Query Language) является языком программирования, который применяется для организации взаимодействия пользователя с реляционной базой данных. SQL работает по следующей схеме: запрос, написанный программистом на языке SQL обращается к некой СУБД, которая в свою очередь извлекает необходимую информацию из БД.
Рисунок 8 – Схема работы SQL
Несмотря на довольно простой принцип действия, сейчас можно говорить, что SQL предназначен не только для выборки данных, хотя это и является его основной функцией, но этот язык предлагает пользователю гораздо больше возможностей:
- Структура и организация запрашиваемых данных;
- Выборка данных;
- Обработка данных (добавление, изменение, удаление);
- Управление доступом к данным;
- Организация совместного использования БД;
- Обеспечение целостности данных.
Все эти возможности реализуются с помощью операторов SQL, либо встроенных функций СУБД. Рассмотрим основные операторы языка SQL.
Для удобства дальнейшей работы предлагаю воспользоваться примером БД, структура которой представлена в Приложении 1.
Запросы в языке SQL имеют примерно одинаковую структуру:
Рисунок 9 - Структура SQL запросов
Конечно, чем сложнее выборка данных, тем сложнее структура, больше подзапросов и массивнее объем обрабатываемых данных. Так же могут добавляться блоки условий и группировки данных, но основная структура практически всегда сохраняется в представленном виде.
Итак, все запросы на выборку данных в языке SQL начинаются с оператора SELECT. Следом за ним можно встретить следующие варианты:
- «TOP(n)» – где n – это количество строк. С помощью этого оператора мы можем вывести фиксированное количество строк. Используется совместно с перечнем столбцов.
- «pid, name, last_name» – перечень названий столбцов (через запятую), которые необходимо вывести в итоговой таблице.
- «*» - оператор, обозначающий все столбцы. Может использоваться как совместно с перечнем столбцов, так и индивидуально.
Далее, после определения набора столбцов следует оператор FROM. Здесь описываются таблицы, из которых необходимо получить данные. Чаще всего здесь используются операторы INNER/LEFT/RIGHT/FULL JOIN для объединения нескольких таблиц.
В случае необходимости, добавляется оператор условия WHERE, либо, если используются агрегирующие функции, HAVING. Здесь мы можем «отфильтровать» данные по нужным нам параметрам.
И заключительные операторы GROUP BY и ORDER BY. GROUP BY позволяет объединить строки с одинаковыми значениями в определенных столбцах (при этом, должны быть выбраны все столбцы, которые перечислены в операторе SELECT). Оператор ORDER BY позволяет сортировать данные в итоговой таблице, используется совместно с asc – по возрастанию, или desc – по убыванию.
Например, нам нужно из нашей БД выбрать фамилию, имя, город (в котором находится офис сотрудника) и должность сотрудников, с годом рождения с 1990 по 2000 включительно. Запрос будет выглядеть следующим образом:
Рисунок 10 - Пример запроса
Далее разберем операторы, позволяющие управлять данными в БД.
INSERT |
позволяет добавить одну или несколько строк с данными в существующую таблицу. |
DELETE |
позволяет удалить одну или несколько строк из существующей таблицы в БД. |
CREATE |
позволяет создать элемент БД (таблицу, хранимую процедуру, функцию). |
DROP |
позволяет удалить элемент БД (таблицу, хранимую процедуру, функцию). |
UPDATE |
позволяет изменить уже существующие данные в существующей таблице. |
Примеры использования:
Рисунок 11 - Примеры использования операторов
В данных примерах рассмотрены самые простые запросы, которые можно построить с помощью языка SQL. Но в жизни запросы гораздо сложнее и затрагивают большее количество данных. Данные могут не только выводиться при определенных условиях, но могут подвергаться более глубокому анализу. Поэтому SQL завоевал большое количество пользователей.
В рамках данной курсовой работы мы будем использовать MS SQL для проектирования БД домашней библиотеки. Учитывая структуру будущей БД, будет логичным выбором использование объектно-реляционной структуры БД.
1.3. Проектирование и создание базы данных
Ранее мы уже определили основные характеристики, или атрибуты, которыми должна обладать книга. Для удобства использования и экономии места в БД мы будем использовать реляционную модель, которая позволит избежать дублирующих значений.
Прежде чем приступить непосредственно к созданию БД, нужно продумать архитектуру будущей базы. Структурировать таблицы и данные.
Преследуя финальную цель – иметь удобную и понятную БД для домашней библиотеки – необходимо создать таблицу, в которой мы будем хранить данные о книгах – books (Рисунок 12).
Рисунок 12 – Таблица books
В качестве столбцов таблицы мы добавляем:
- Id – уникальный идентификатор книги, внешний ключ;
- Name – название книги, тип данных varchar;
- Auth – информация об авторе, ссылка на таблицу со списком авторов;
- Genre – жанр книги, ссылка на таблицу со списком жанров;
- Subgenre – поджанр книги, ссылка на таблицу со списком поджанров;
- Lang – язык, на которой написана книга, ссылка на таблицу со списком языков;
- Color – цвет обложки книги, ссылка на таблицу со списком цветов;
- Pos – расположение книги, ссылка на таблицу со списком шкафов и полок;
- Read – была книга прочитана или нет;
- Comment – поле для комментария.
Теперь создаем таблицу с авторами – authors (Рисунок 13).
Рисунок 13 – Таблица authors
- Id – уникальный идентификатор автора, внешний ключ;
- Last_name – фамилия автора;
- Name – имя автора;
- F_name – отчество автора (если имеется);
- Birthday – дата рождения автора;
- D_day – дата смерти (если имеется);
- S_bio – краткая биография;
- Native – родной язык автора.
Таблица со списком жанров и поджанров – genres (Рисунок 14).
Рисунок 14 – Таблица genres
- Id – уникальный идентификатор жанра/поджанра, внешний ключ;
- Name – название жанра/поджанра;
- Type – разделение на жанр/поджанр;
- Parent_id – ссылка на родительский жанр у поджанров.
Таблица с перечнем языков – languages (Рисунок 15).
Рисунок 15 – Таблица languages
- Id – уникальный идентификатор языка, внешний ключ;
- Name – название языка на этом языке;
- Name_en – название языка на английском.
Таблица с цветами – colors (Рисунок 16).
Рисунок 16 – Таблица colors
- Id – уникальный идентификатор цвета, внешний ключ;
- Name – название цвета.
Таблица с определением места книги – position (Рисунок 17).
Рисунок 17 – таблица position
- Id – уникальный идентификатор позиции, внешний ключ;
- Cabinet – id шкафа;
- Shelf – id полки
Таблица со всеми шкафами и полками – storage (Рисунок 18).
Рисунок 18 – таблица storage
- Id – уникальный идентификатор шкафа/полки, внешний ключ;
- Type – разделение на шкафы и полки;
- Parent_id – ссылка на родительский шкаф у полок;
- Desk – описание (местонахождение шкафа и тд).
Полная структура БД представлена в Приложении 2.
Далее создаем все таблицы, описанные выше, и устанавливаем связи. Проверяем схему получившейся БД. Скрипты создания таблиц и создания связей, а так же схема БД приведены в Приложении 3.
1.4. Подготовка для работы с языком PHP
Область применения PHP очень широка, но в основном PHP используется для написания сценариев, работающих на стороне сервера. С помощью PHP можно производить различные операции с содержимым html-файлов, устанавливать cookie, управлять аутентификацией, форматировать HTTP-заголовки и т.п. PHP предоставляет возможности доступа к БД, позволяет проводить интеграцию с самыми разными внешними библиотеками. Таким образом, PHP в руках хорошего специалиста позволит удовлетворить практически любое пожелание конечного пользователя.
Основные преимущества PHP:
- Поддерживает работу с большинством СУБД
- Работает на разных платформах
- Поддерживает различные веб-серверы
- Код считывается и выполняется на стороне сервера
- Является одним из наиболее простых для освоения
- Предоставляет открытый исходный код
В результате, выбирая PHP в качестве языка программирования, мы получим отличные возможности использования языка, свободу в выборе операционной системы и веб-сервера. А также мы имеем возможность выбора между объектно-ориентированным программированием (ООП) и процедурным или же их сочетания.
PHP – это веб-ориентированный язык, т.е. язык, предназначенный для использования в интернете, а значит отлично подходящий создания сайтов. Важным достоинством PHP является тот факт, что его можно сочетать с HTML-кодом, а это значит php-код легко внедряется непосредственно в HTML-теги и наоборот HTML-теги можно внедрить в код PHP.
Скрипты необходимо начинать с тегов <?php и заканчивать ?>, можно пользоваться и сокращенной формой <? И ?>. Скрипты, написанные на PHP, выполняются на сервере, а результат в виде HTML-кода отправляется обратно в браузер.
Все, что написано внутри тегов будет считываться как код, все, что находится за пределами тегов будет считаться обычным HTML. Код можно разместить в любом месте документа.